diff --git a/Backend/alembic/versions/6a126cc5b23c_add_capacity_room_size_view_to_rooms.py b/Backend/alembic/versions/6a126cc5b23c_add_capacity_room_size_view_to_rooms.py new file mode 100644 index 00000000..28ff8e19 --- /dev/null +++ b/Backend/alembic/versions/6a126cc5b23c_add_capacity_room_size_view_to_rooms.py @@ -0,0 +1,29 @@ +"""add_capacity_room_size_view_to_rooms + +Revision ID: 6a126cc5b23c +Revises: add_stripe_payment_method +Create Date: 2025-11-17 16:25:09.581786 + +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = '6a126cc5b23c' +down_revision = 'add_stripe_payment_method' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # Add the three new columns to rooms table + op.add_column('rooms', sa.Column('capacity', sa.Integer(), nullable=True)) + op.add_column('rooms', sa.Column('room_size', sa.String(length=50), nullable=True)) + op.add_column('rooms', sa.Column('view', sa.String(length=100), nullable=True)) + + +def downgrade() -> None: + # Remove the three columns from rooms table + op.drop_column('rooms', 'view') + op.drop_column('rooms', 'room_size') + op.drop_column('rooms', 'capacity') diff --git a/Backend/alembic/versions/96c23dad405d_add_system_settings_table.py b/Backend/alembic/versions/96c23dad405d_add_system_settings_table.py new file mode 100644 index 00000000..348e7209 --- /dev/null +++ b/Backend/alembic/versions/96c23dad405d_add_system_settings_table.py @@ -0,0 +1,60 @@ +"""add_system_settings_table + +Revision ID: 96c23dad405d +Revises: 59baf2338f8a +Create Date: 2025-11-17 11:51:28.369031 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import mysql + +# revision identifiers, used by Alembic. +revision = '96c23dad405d' +down_revision = '59baf2338f8a' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # Create system_settings table (if it doesn't exist) + from sqlalchemy import inspect + bind = op.get_bind() + inspector = inspect(bind) + tables = inspector.get_table_names() + + if 'system_settings' not in tables: + op.create_table('system_settings', + sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), + sa.Column('key', sa.String(length=100), nullable=False), + sa.Column('value', sa.Text(), nullable=False), + sa.Column('description', sa.Text(), nullable=True), + sa.Column('updated_at', sa.DateTime(), nullable=False), + sa.Column('updated_by_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['updated_by_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_system_settings_id'), 'system_settings', ['id'], unique=False) + op.create_index(op.f('ix_system_settings_key'), 'system_settings', ['key'], unique=True) + + # Add currency column to users table (if it doesn't exist) + columns = [col['name'] for col in inspector.get_columns('users')] + if 'currency' not in columns: + op.add_column('users', sa.Column('currency', sa.String(length=3), nullable=False, server_default='VND')) + # ### end Alembic commands ### + + +def downgrade() -> None: + # Drop currency column from users table + try: + op.drop_column('users', 'currency') + except Exception: + # Column might not exist, skip + pass + + # Drop system_settings table + op.drop_index(op.f('ix_system_settings_key'), table_name='system_settings') + op.drop_index(op.f('ix_system_settings_id'), table_name='system_settings') + op.drop_table('system_settings') + # ### end Alembic commands ### + diff --git a/Backend/alembic/versions/__pycache__/59baf2338f8a_initial_migration_create_all_tables_.cpython-312.pyc b/Backend/alembic/versions/__pycache__/59baf2338f8a_initial_migration_create_all_tables_.cpython-312.pyc index 1cf866f5..8852a425 100644 Binary files a/Backend/alembic/versions/__pycache__/59baf2338f8a_initial_migration_create_all_tables_.cpython-312.pyc and b/Backend/alembic/versions/__pycache__/59baf2338f8a_initial_migration_create_all_tables_.cpython-312.pyc differ diff --git a/Backend/alembic/versions/__pycache__/6a126cc5b23c_add_capacity_room_size_view_to_rooms.cpython-312.pyc b/Backend/alembic/versions/__pycache__/6a126cc5b23c_add_capacity_room_size_view_to_rooms.cpython-312.pyc new file mode 100644 index 00000000..6a578129 Binary files /dev/null and b/Backend/alembic/versions/__pycache__/6a126cc5b23c_add_capacity_room_size_view_to_rooms.cpython-312.pyc differ diff --git a/Backend/alembic/versions/__pycache__/96c23dad405d_add_system_settings_table.cpython-312.pyc b/Backend/alembic/versions/__pycache__/96c23dad405d_add_system_settings_table.cpython-312.pyc new file mode 100644 index 00000000..e79eea68 Binary files /dev/null and b/Backend/alembic/versions/__pycache__/96c23dad405d_add_system_settings_table.cpython-312.pyc differ diff --git a/Backend/alembic/versions/__pycache__/add_stripe_payment_method.cpython-312.pyc b/Backend/alembic/versions/__pycache__/add_stripe_payment_method.cpython-312.pyc new file mode 100644 index 00000000..30dfef5e Binary files /dev/null and b/Backend/alembic/versions/__pycache__/add_stripe_payment_method.cpython-312.pyc differ diff --git a/Backend/alembic/versions/add_stripe_payment_method.py b/Backend/alembic/versions/add_stripe_payment_method.py new file mode 100644 index 00000000..a442b6a3 --- /dev/null +++ b/Backend/alembic/versions/add_stripe_payment_method.py @@ -0,0 +1,50 @@ +"""add_stripe_payment_method + +Revision ID: add_stripe_payment_method +Revises: 96c23dad405d +Create Date: 2025-01-17 12:00:00.000000 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import mysql + +# revision identifiers, used by Alembic. +revision = 'add_stripe_payment_method' +down_revision = '96c23dad405d' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # Note: MySQL ENUM modifications can be tricky. + # If payments table already has data with existing enum values, + # we need to preserve them when adding 'stripe' + + # For MySQL, we need to alter the ENUM column to include the new value + # Check if we're using MySQL + bind = op.get_bind() + if bind.dialect.name == 'mysql': + # Alter the ENUM column to include 'stripe' + # This preserves existing values and adds 'stripe' + op.execute( + "ALTER TABLE payments MODIFY COLUMN payment_method ENUM('cash', 'credit_card', 'debit_card', 'bank_transfer', 'e_wallet', 'stripe') NOT NULL" + ) + else: + # For other databases (PostgreSQL, SQLite), enum changes are handled differently + # For SQLite, this might not be needed as it doesn't enforce enum constraints + pass + # ### end Alembic commands ### + + +def downgrade() -> None: + # Remove 'stripe' from the ENUM (be careful if there are existing stripe payments) + bind = op.get_bind() + if bind.dialect.name == 'mysql': + # First, check if there are any stripe payments - if so, this will fail + # In production, you'd want to migrate existing stripe payments first + op.execute( + "ALTER TABLE payments MODIFY COLUMN payment_method ENUM('cash', 'credit_card', 'debit_card', 'bank_transfer', 'e_wallet') NOT NULL" + ) + # ### end Alembic commands ### + diff --git a/Backend/requirements.txt b/Backend/requirements.txt index 0b60cf4d..f805fe39 100644 --- a/Backend/requirements.txt +++ b/Backend/requirements.txt @@ -16,6 +16,7 @@ pillow==10.1.0 aiosmtplib==3.0.1 jinja2==3.1.2 alembic==1.12.1 +stripe>=13.2.0 # Enterprise features (optional but recommended) # redis==5.0.1 # Uncomment if using Redis caching diff --git a/Backend/src/__pycache__/main.cpython-312.pyc b/Backend/src/__pycache__/main.cpython-312.pyc index 8a1eb58b..214e3ce3 100644 Binary files a/Backend/src/__pycache__/main.cpython-312.pyc and b/Backend/src/__pycache__/main.cpython-312.pyc differ diff --git a/Backend/src/config/__pycache__/settings.cpython-312.pyc b/Backend/src/config/__pycache__/settings.cpython-312.pyc index a44e4b31..ed6ad98b 100644 Binary files a/Backend/src/config/__pycache__/settings.cpython-312.pyc and b/Backend/src/config/__pycache__/settings.cpython-312.pyc differ diff --git a/Backend/src/config/settings.py b/Backend/src/config/settings.py index 2881b6ab..e21d4689 100644 --- a/Backend/src/config/settings.py +++ b/Backend/src/config/settings.py @@ -91,6 +91,11 @@ class Settings(BaseSettings): # Health Check HEALTH_CHECK_INTERVAL: int = Field(default=30, description="Health check interval in seconds") + # Stripe Payment Gateway + STRIPE_SECRET_KEY: str = Field(default="", description="Stripe secret key") + STRIPE_PUBLISHABLE_KEY: str = Field(default="", description="Stripe publishable key") + STRIPE_WEBHOOK_SECRET: str = Field(default="", description="Stripe webhook secret") + @property def database_url(self) -> str: """Construct database URL""" diff --git a/Backend/src/main.py b/Backend/src/main.py index ce48c970..ecfda6d7 100644 --- a/Backend/src/main.py +++ b/Backend/src/main.py @@ -193,15 +193,17 @@ app.include_router(privacy_routes.router, prefix=settings.API_V1_PREFIX) # Import and include other routes from .routes import ( - room_routes, booking_routes, payment_routes, banner_routes, + room_routes, booking_routes, payment_routes, invoice_routes, banner_routes, favorite_routes, service_routes, promotion_routes, report_routes, - review_routes, user_routes, audit_routes, admin_privacy_routes + review_routes, user_routes, audit_routes, admin_privacy_routes, + system_settings_routes ) # Legacy routes (maintain backward compatibility) app.include_router(room_routes.router, prefix="/api") app.include_router(booking_routes.router, prefix="/api") app.include_router(payment_routes.router, prefix="/api") +app.include_router(invoice_routes.router, prefix="/api") app.include_router(banner_routes.router, prefix="/api") app.include_router(favorite_routes.router, prefix="/api") app.include_router(service_routes.router, prefix="/api") @@ -211,11 +213,13 @@ app.include_router(review_routes.router, prefix="/api") app.include_router(user_routes.router, prefix="/api") app.include_router(audit_routes.router, prefix="/api") app.include_router(admin_privacy_routes.router, prefix="/api") +app.include_router(system_settings_routes.router, prefix="/api") # Versioned routes (v1) app.include_router(room_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(booking_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(payment_routes.router, prefix=settings.API_V1_PREFIX) +app.include_router(invoice_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(banner_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(favorite_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(service_routes.router, prefix=settings.API_V1_PREFIX) @@ -225,6 +229,7 @@ app.include_router(review_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(user_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(audit_routes.router, prefix=settings.API_V1_PREFIX) app.include_router(admin_privacy_routes.router, prefix=settings.API_V1_PREFIX) +app.include_router(system_settings_routes.router, prefix=settings.API_V1_PREFIX) logger.info("All routes registered successfully") diff --git a/Backend/src/middleware/__pycache__/security.cpython-312.pyc b/Backend/src/middleware/__pycache__/security.cpython-312.pyc index a4e0fb76..3ffd272c 100644 Binary files a/Backend/src/middleware/__pycache__/security.cpython-312.pyc and b/Backend/src/middleware/__pycache__/security.cpython-312.pyc differ diff --git a/Backend/src/models/__init__.py b/Backend/src/models/__init__.py index fc1e9f1c..20e9bdbe 100644 --- a/Backend/src/models/__init__.py +++ b/Backend/src/models/__init__.py @@ -16,6 +16,8 @@ from .favorite import Favorite from .audit_log import AuditLog from .cookie_policy import CookiePolicy from .cookie_integration_config import CookieIntegrationConfig +from .system_settings import SystemSettings +from .invoice import Invoice, InvoiceItem __all__ = [ "Role", @@ -36,5 +38,8 @@ __all__ = [ "AuditLog", "CookiePolicy", "CookieIntegrationConfig", + "SystemSettings", + "Invoice", + "InvoiceItem", ] diff --git a/Backend/src/models/__pycache__/__init__.cpython-312.pyc b/Backend/src/models/__pycache__/__init__.cpython-312.pyc index a019c14e..bad4ebeb 100644 Binary files a/Backend/src/models/__pycache__/__init__.cpython-312.pyc and b/Backend/src/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/src/models/__pycache__/booking.cpython-312.pyc b/Backend/src/models/__pycache__/booking.cpython-312.pyc index 1db28591..821c4040 100644 Binary files a/Backend/src/models/__pycache__/booking.cpython-312.pyc and b/Backend/src/models/__pycache__/booking.cpython-312.pyc differ diff --git a/Backend/src/models/__pycache__/invoice.cpython-312.pyc b/Backend/src/models/__pycache__/invoice.cpython-312.pyc new file mode 100644 index 00000000..b443ac2b Binary files /dev/null and b/Backend/src/models/__pycache__/invoice.cpython-312.pyc differ diff --git a/Backend/src/models/__pycache__/payment.cpython-312.pyc b/Backend/src/models/__pycache__/payment.cpython-312.pyc index 0797cabd..b053a6df 100644 Binary files a/Backend/src/models/__pycache__/payment.cpython-312.pyc and b/Backend/src/models/__pycache__/payment.cpython-312.pyc differ diff --git a/Backend/src/models/__pycache__/room.cpython-312.pyc b/Backend/src/models/__pycache__/room.cpython-312.pyc index 90ed2248..71ea50da 100644 Binary files a/Backend/src/models/__pycache__/room.cpython-312.pyc and b/Backend/src/models/__pycache__/room.cpython-312.pyc differ diff --git a/Backend/src/models/__pycache__/system_settings.cpython-312.pyc b/Backend/src/models/__pycache__/system_settings.cpython-312.pyc new file mode 100644 index 00000000..7e1c5364 Binary files /dev/null and b/Backend/src/models/__pycache__/system_settings.cpython-312.pyc differ diff --git a/Backend/src/models/__pycache__/user.cpython-312.pyc b/Backend/src/models/__pycache__/user.cpython-312.pyc index ad21e321..fdbcb33e 100644 Binary files a/Backend/src/models/__pycache__/user.cpython-312.pyc and b/Backend/src/models/__pycache__/user.cpython-312.pyc differ diff --git a/Backend/src/models/booking.py b/Backend/src/models/booking.py index 6d8f1bb5..5c725ec6 100644 --- a/Backend/src/models/booking.py +++ b/Backend/src/models/booking.py @@ -35,6 +35,7 @@ class Booking(Base): user = relationship("User", back_populates="bookings") room = relationship("Room", back_populates="bookings") payments = relationship("Payment", back_populates="booking", cascade="all, delete-orphan") + invoices = relationship("Invoice", back_populates="booking", cascade="all, delete-orphan") service_usages = relationship("ServiceUsage", back_populates="booking", cascade="all, delete-orphan") checkin_checkout = relationship("CheckInCheckOut", back_populates="booking", uselist=False) diff --git a/Backend/src/models/invoice.py b/Backend/src/models/invoice.py new file mode 100644 index 00000000..33ce7ac3 --- /dev/null +++ b/Backend/src/models/invoice.py @@ -0,0 +1,100 @@ +from sqlalchemy import Column, Integer, String, DateTime, Numeric, Text, Enum, ForeignKey, Boolean +from sqlalchemy.orm import relationship +from datetime import datetime +import enum +from ..config.database import Base + + +class InvoiceStatus(str, enum.Enum): + draft = "draft" + sent = "sent" + paid = "paid" + overdue = "overdue" + cancelled = "cancelled" + + +class Invoice(Base): + __tablename__ = "invoices" + + id = Column(Integer, primary_key=True, index=True, autoincrement=True) + invoice_number = Column(String(50), unique=True, nullable=False, index=True) + booking_id = Column(Integer, ForeignKey("bookings.id"), nullable=False) + user_id = Column(Integer, ForeignKey("users.id"), nullable=False) + + # Invoice details + issue_date = Column(DateTime, default=datetime.utcnow, nullable=False) + due_date = Column(DateTime, nullable=False) + paid_date = Column(DateTime, nullable=True) + + # Amounts + subtotal = Column(Numeric(10, 2), nullable=False, default=0.00) + tax_rate = Column(Numeric(5, 2), nullable=False, default=0.00) # Tax percentage + tax_amount = Column(Numeric(10, 2), nullable=False, default=0.00) + discount_amount = Column(Numeric(10, 2), nullable=False, default=0.00) + total_amount = Column(Numeric(10, 2), nullable=False) + amount_paid = Column(Numeric(10, 2), nullable=False, default=0.00) + balance_due = Column(Numeric(10, 2), nullable=False) + + # Status + status = Column(Enum(InvoiceStatus), nullable=False, default=InvoiceStatus.draft) + + # Company/Organization information (for admin to manage) + company_name = Column(String(200), nullable=True) + company_address = Column(Text, nullable=True) + company_phone = Column(String(50), nullable=True) + company_email = Column(String(100), nullable=True) + company_tax_id = Column(String(100), nullable=True) + company_logo_url = Column(String(500), nullable=True) + + # Customer information (snapshot at invoice creation) + customer_name = Column(String(200), nullable=False) + customer_email = Column(String(100), nullable=False) + customer_address = Column(Text, nullable=True) + customer_phone = Column(String(50), nullable=True) + customer_tax_id = Column(String(100), nullable=True) + + # Additional information + notes = Column(Text, nullable=True) + terms_and_conditions = Column(Text, nullable=True) + payment_instructions = Column(Text, nullable=True) + + # Metadata + created_by_id = Column(Integer, ForeignKey("users.id"), nullable=True) + updated_by_id = Column(Integer, ForeignKey("users.id"), nullable=True) + created_at = Column(DateTime, default=datetime.utcnow, nullable=False) + updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False) + + # Relationships + booking = relationship("Booking", back_populates="invoices") + user = relationship("User", foreign_keys=[user_id], backref="invoices") + created_by = relationship("User", foreign_keys=[created_by_id]) + updated_by = relationship("User", foreign_keys=[updated_by_id]) + items = relationship("InvoiceItem", back_populates="invoice", cascade="all, delete-orphan") + + +class InvoiceItem(Base): + __tablename__ = "invoice_items" + + id = Column(Integer, primary_key=True, index=True, autoincrement=True) + invoice_id = Column(Integer, ForeignKey("invoices.id"), nullable=False) + + # Item details + description = Column(String(500), nullable=False) + quantity = Column(Numeric(10, 2), nullable=False, default=1.00) + unit_price = Column(Numeric(10, 2), nullable=False) + tax_rate = Column(Numeric(5, 2), nullable=False, default=0.00) + discount_amount = Column(Numeric(10, 2), nullable=False, default=0.00) + line_total = Column(Numeric(10, 2), nullable=False) + + # Optional reference to booking items + room_id = Column(Integer, ForeignKey("rooms.id"), nullable=True) + service_id = Column(Integer, ForeignKey("services.id"), nullable=True) + + # Metadata + created_at = Column(DateTime, default=datetime.utcnow, nullable=False) + + # Relationships + invoice = relationship("Invoice", back_populates="items") + room = relationship("Room") + service = relationship("Service") + diff --git a/Backend/src/models/payment.py b/Backend/src/models/payment.py index ab9d8822..4171c49f 100644 --- a/Backend/src/models/payment.py +++ b/Backend/src/models/payment.py @@ -11,6 +11,7 @@ class PaymentMethod(str, enum.Enum): debit_card = "debit_card" bank_transfer = "bank_transfer" e_wallet = "e_wallet" + stripe = "stripe" class PaymentType(str, enum.Enum): diff --git a/Backend/src/models/room.py b/Backend/src/models/room.py index d44cd5d5..fa92c800 100644 --- a/Backend/src/models/room.py +++ b/Backend/src/models/room.py @@ -22,6 +22,9 @@ class Room(Base): status = Column(Enum(RoomStatus), nullable=False, default=RoomStatus.available) price = Column(Numeric(10, 2), nullable=False) featured = Column(Boolean, nullable=False, default=False) + capacity = Column(Integer, nullable=True) # Room-specific capacity, overrides room_type capacity + room_size = Column(String(50), nullable=True) # e.g., "1 Room", "2 Rooms", "50 sqm" + view = Column(String(100), nullable=True) # e.g., "City View", "Ocean View", etc. images = Column(JSON, nullable=True) amenities = Column(JSON, nullable=True) description = Column(Text, nullable=True) diff --git a/Backend/src/models/system_settings.py b/Backend/src/models/system_settings.py new file mode 100644 index 00000000..ce4e619b --- /dev/null +++ b/Backend/src/models/system_settings.py @@ -0,0 +1,21 @@ +from sqlalchemy import Column, Integer, String, DateTime, Text, ForeignKey +from sqlalchemy.orm import relationship +from datetime import datetime +from ..config.database import Base + + +class SystemSettings(Base): + """ + System-wide settings controlled by administrators. + Stores key-value pairs for platform configuration like currency, etc. + """ + __tablename__ = "system_settings" + + id = Column(Integer, primary_key=True, index=True, autoincrement=True) + key = Column(String(100), unique=True, nullable=False, index=True) + value = Column(Text, nullable=False) + description = Column(Text, nullable=True) + updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False) + updated_by_id = Column(Integer, ForeignKey("users.id"), nullable=True) + updated_by = relationship("User", lazy="joined") + diff --git a/Backend/src/models/user.py b/Backend/src/models/user.py index 92bec800..445e5772 100644 --- a/Backend/src/models/user.py +++ b/Backend/src/models/user.py @@ -15,6 +15,7 @@ class User(Base): phone = Column(String(20), nullable=True) address = Column(Text, nullable=True) avatar = Column(String(255), nullable=True) + currency = Column(String(3), nullable=False, default='VND') # ISO 4217 currency code is_active = Column(Boolean, nullable=False, default=True) created_at = Column(DateTime, default=datetime.utcnow, nullable=False) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False) diff --git a/Backend/src/routes/__pycache__/auth_routes.cpython-312.pyc b/Backend/src/routes/__pycache__/auth_routes.cpython-312.pyc index 9d78f8d9..8a473243 100644 Binary files a/Backend/src/routes/__pycache__/auth_routes.cpython-312.pyc and b/Backend/src/routes/__pycache__/auth_routes.cpython-312.pyc differ diff --git a/Backend/src/routes/__pycache__/booking_routes.cpython-312.pyc b/Backend/src/routes/__pycache__/booking_routes.cpython-312.pyc index af97e9d9..dae85e6d 100644 Binary files a/Backend/src/routes/__pycache__/booking_routes.cpython-312.pyc and b/Backend/src/routes/__pycache__/booking_routes.cpython-312.pyc differ diff --git a/Backend/src/routes/__pycache__/invoice_routes.cpython-312.pyc b/Backend/src/routes/__pycache__/invoice_routes.cpython-312.pyc new file mode 100644 index 00000000..fe3adf71 Binary files /dev/null and b/Backend/src/routes/__pycache__/invoice_routes.cpython-312.pyc differ diff --git a/Backend/src/routes/__pycache__/payment_routes.cpython-312.pyc b/Backend/src/routes/__pycache__/payment_routes.cpython-312.pyc index d73a5c9a..ee76f0cd 100644 Binary files a/Backend/src/routes/__pycache__/payment_routes.cpython-312.pyc and b/Backend/src/routes/__pycache__/payment_routes.cpython-312.pyc differ diff --git a/Backend/src/routes/__pycache__/room_routes.cpython-312.pyc b/Backend/src/routes/__pycache__/room_routes.cpython-312.pyc index 540b142b..8132d57a 100644 Binary files a/Backend/src/routes/__pycache__/room_routes.cpython-312.pyc and b/Backend/src/routes/__pycache__/room_routes.cpython-312.pyc differ diff --git a/Backend/src/routes/__pycache__/system_settings_routes.cpython-312.pyc b/Backend/src/routes/__pycache__/system_settings_routes.cpython-312.pyc new file mode 100644 index 00000000..197db1e9 Binary files /dev/null and b/Backend/src/routes/__pycache__/system_settings_routes.cpython-312.pyc differ diff --git a/Backend/src/routes/__pycache__/user_routes.cpython-312.pyc b/Backend/src/routes/__pycache__/user_routes.cpython-312.pyc index defef067..83eb0152 100644 Binary files a/Backend/src/routes/__pycache__/user_routes.cpython-312.pyc and b/Backend/src/routes/__pycache__/user_routes.cpython-312.pyc differ diff --git a/Backend/src/routes/auth_routes.py b/Backend/src/routes/auth_routes.py index a8f365ea..bf42926f 100644 --- a/Backend/src/routes/auth_routes.py +++ b/Backend/src/routes/auth_routes.py @@ -196,7 +196,8 @@ async def update_profile( email=profile_data.get("email"), phone_number=profile_data.get("phone_number"), password=profile_data.get("password"), - current_password=profile_data.get("currentPassword") + current_password=profile_data.get("currentPassword"), + currency=profile_data.get("currency") ) return { "status": "success", diff --git a/Backend/src/routes/booking_routes.py b/Backend/src/routes/booking_routes.py index 37a88312..13a9110a 100644 --- a/Backend/src/routes/booking_routes.py +++ b/Backend/src/routes/booking_routes.py @@ -1,5 +1,5 @@ from fastapi import APIRouter, Depends, HTTPException, status, Query -from sqlalchemy.orm import Session +from sqlalchemy.orm import Session, joinedload, selectinload from sqlalchemy import and_, or_ from typing import Optional from datetime import datetime @@ -11,9 +11,11 @@ from ..config.settings import settings from ..middleware.auth import get_current_user, authorize_roles from ..models.user import User from ..models.booking import Booking, BookingStatus -from ..models.room import Room +from ..models.room import Room, RoomStatus from ..models.room_type import RoomType from ..models.payment import Payment, PaymentMethod, PaymentType, PaymentStatus +from ..services.room_service import normalize_images, get_base_url +from fastapi import Request from ..utils.mailer import send_email from ..utils.email_templates import ( booking_confirmation_email_template, @@ -129,6 +131,7 @@ async def get_all_bookings( @router.get("/me") async def get_my_bookings( + request: Request, current_user: User = Depends(get_current_user), db: Session = Depends(get_db) ): @@ -138,6 +141,7 @@ async def get_my_bookings( Booking.user_id == current_user.id ).order_by(Booking.created_at.desc()).all() + base_url = get_base_url(request) result = [] for booking in bookings: booking_dict = { @@ -157,11 +161,25 @@ async def get_my_bookings( # Add room info if booking.room and booking.room.room_type: + # Normalize room images if they exist + room_images = [] + if booking.room.images: + try: + room_images = normalize_images(booking.room.images, base_url) + except: + room_images = [] + booking_dict["room"] = { "id": booking.room.id, "room_number": booking.room.room_number, + "floor": booking.room.floor, + "images": room_images, # Include room images "room_type": { + "id": booking.room.room_type.id, "name": booking.room.room_type.name, + "base_price": float(booking.room.room_type.base_price) if booking.room.room_type.base_price else 0.0, + "capacity": booking.room.room_type.capacity, + "images": room_images, # Also include in room_type for backwards compatibility } } @@ -221,10 +239,17 @@ async def create_booking( booking_number = generate_booking_number() # Determine if deposit is required + # Cash requires deposit, Stripe doesn't require deposit (full payment or deposit handled via payment flow) requires_deposit = payment_method == "cash" deposit_percentage = 20 if requires_deposit else 0 deposit_amount = (float(total_price) * deposit_percentage) / 100 if requires_deposit else 0 + # For Stripe, booking can be confirmed immediately after payment + initial_status = BookingStatus.pending + if payment_method == "stripe": + # Will be confirmed after successful Stripe payment + initial_status = BookingStatus.pending + # Create booking booking = Booking( booking_number=booking_number, @@ -235,7 +260,7 @@ async def create_booking( num_guests=guest_count, total_price=total_price, special_requests=notes, - status=BookingStatus.pending, + status=initial_status, requires_deposit=requires_deposit, deposit_paid=False, ) @@ -243,24 +268,101 @@ async def create_booking( db.add(booking) db.flush() - # Create deposit payment if required - if requires_deposit: + # Create payment record if Stripe payment method is selected + if payment_method == "stripe": + from ..models.payment import Payment, PaymentMethod, PaymentStatus, PaymentType payment = Payment( booking_id=booking.id, - amount=deposit_amount, - payment_method=PaymentMethod.bank_transfer, - payment_type=PaymentType.deposit, - deposit_percentage=deposit_percentage, + amount=total_price, + payment_method=PaymentMethod.stripe, + payment_type=PaymentType.full, payment_status=PaymentStatus.pending, - notes=f"Deposit payment ({deposit_percentage}%) for booking {booking_number}", + payment_date=None, ) db.add(payment) + db.flush() + + # Create deposit payment if required (for cash method) + # Note: For cash payments, deposit is paid on arrival, so we don't create a pending payment record + # The payment will be created when the customer pays at check-in db.commit() db.refresh(booking) - # Fetch with relations - booking = db.query(Booking).filter(Booking.id == booking.id).first() + # Fetch with relations for proper serialization (eager load payments) + from sqlalchemy.orm import joinedload + booking = db.query(Booking).options(joinedload(Booking.payments)).filter(Booking.id == booking.id).first() + + # Determine payment_method and payment_status from payments + payment_method_from_payments = None + payment_status_from_payments = "unpaid" + if booking.payments: + latest_payment = sorted(booking.payments, key=lambda p: p.created_at, reverse=True)[0] + payment_method_from_payments = latest_payment.payment_method.value if isinstance(latest_payment.payment_method, PaymentMethod) else latest_payment.payment_method + if latest_payment.payment_status == PaymentStatus.completed: + payment_status_from_payments = "paid" + elif latest_payment.payment_status == PaymentStatus.refunded: + payment_status_from_payments = "refunded" + + # Serialize booking properly + booking_dict = { + "id": booking.id, + "booking_number": booking.booking_number, + "user_id": booking.user_id, + "room_id": booking.room_id, + "check_in_date": booking.check_in_date.isoformat() if booking.check_in_date else None, + "check_out_date": booking.check_out_date.isoformat() if booking.check_out_date else None, + "guest_count": booking.num_guests, + "total_price": float(booking.total_price) if booking.total_price else 0.0, + "status": booking.status.value if isinstance(booking.status, BookingStatus) else booking.status, + "payment_method": payment_method_from_payments or payment_method, + "payment_status": payment_status_from_payments, + "deposit_paid": booking.deposit_paid, + "requires_deposit": booking.requires_deposit, + "notes": booking.special_requests, + "guest_info": { + "full_name": current_user.full_name, + "email": current_user.email, + "phone": current_user.phone_number if hasattr(current_user, 'phone_number') else (current_user.phone if hasattr(current_user, 'phone') else ""), + }, + "createdAt": booking.created_at.isoformat() if booking.created_at else None, + "updatedAt": booking.updated_at.isoformat() if booking.updated_at else None, + "created_at": booking.created_at.isoformat() if booking.created_at else None, + } + + # Add payments if they exist + if booking.payments: + booking_dict["payments"] = [ + { + "id": p.id, + "booking_id": p.booking_id, + "amount": float(p.amount) if p.amount else 0.0, + "payment_method": p.payment_method.value if isinstance(p.payment_method, PaymentMethod) else p.payment_method, + "payment_type": p.payment_type.value if isinstance(p.payment_type, PaymentType) else p.payment_type, + "deposit_percentage": p.deposit_percentage, + "payment_status": p.payment_status.value if isinstance(p.payment_status, PaymentStatus) else p.payment_status, + "transaction_id": p.transaction_id, + "payment_date": p.payment_date.isoformat() if p.payment_date else None, + "notes": p.notes, + "created_at": p.created_at.isoformat() if p.created_at else None, + } + for p in booking.payments + ] + + # Add room info if available + if booking.room: + booking_dict["room"] = { + "id": booking.room.id, + "room_number": booking.room.room_number, + "floor": booking.room.floor, + } + if booking.room.room_type: + booking_dict["room"]["room_type"] = { + "id": booking.room.room_type.id, + "name": booking.room.room_type.name, + "base_price": float(booking.room.room_type.base_price) if booking.room.room_type.base_price else 0.0, + "capacity": booking.room.room_type.capacity, + } # Send booking confirmation email (non-blocking) try: @@ -291,7 +393,7 @@ async def create_booking( return { "success": True, - "data": {"booking": booking}, + "data": {"booking": booking_dict}, "message": f"Booking created. Please pay {deposit_percentage}% deposit to confirm." if requires_deposit else "Booking created successfully" } except HTTPException: @@ -304,12 +406,22 @@ async def create_booking( @router.get("/{id}") async def get_booking_by_id( id: int, + request: Request, current_user: User = Depends(get_current_user), db: Session = Depends(get_db) ): """Get booking by ID""" try: - booking = db.query(Booking).filter(Booking.id == id).first() + # Eager load all relationships to avoid N+1 queries + # Using selectinload for better performance with multiple relationships + booking = db.query(Booking)\ + .options( + selectinload(Booking.payments), + joinedload(Booking.user), + joinedload(Booking.room).joinedload(Room.room_type) + )\ + .filter(Booking.id == id)\ + .first() if not booking: raise HTTPException(status_code=404, detail="Booking not found") @@ -318,6 +430,19 @@ async def get_booking_by_id( if current_user.role_id != 1 and booking.user_id != current_user.id: # Not admin raise HTTPException(status_code=403, detail="Forbidden") + # Determine payment_method and payment_status from payments + # Get latest payment efficiently (already loaded via joinedload) + payment_method = None + payment_status = "unpaid" + if booking.payments: + # Find latest payment (payments are already loaded, so this is fast) + latest_payment = max(booking.payments, key=lambda p: p.created_at if p.created_at else datetime.min) + payment_method = latest_payment.payment_method.value if isinstance(latest_payment.payment_method, PaymentMethod) else latest_payment.payment_method + if latest_payment.payment_status == PaymentStatus.completed: + payment_status = "paid" + elif latest_payment.payment_status == PaymentStatus.refunded: + payment_status = "refunded" + booking_dict = { "id": booking.id, "booking_number": booking.booking_number, @@ -325,24 +450,56 @@ async def get_booking_by_id( "room_id": booking.room_id, "check_in_date": booking.check_in_date.isoformat() if booking.check_in_date else None, "check_out_date": booking.check_out_date.isoformat() if booking.check_out_date else None, - "num_guests": booking.num_guests, + "guest_count": booking.num_guests, # Frontend expects guest_count "total_price": float(booking.total_price) if booking.total_price else 0.0, "status": booking.status.value if isinstance(booking.status, BookingStatus) else booking.status, + "payment_method": payment_method or "cash", + "payment_status": payment_status, "deposit_paid": booking.deposit_paid, "requires_deposit": booking.requires_deposit, - "special_requests": booking.special_requests, + "notes": booking.special_requests, # Frontend expects notes + "guest_info": { + "full_name": booking.user.full_name if booking.user else "", + "email": booking.user.email if booking.user else "", + "phone": booking.user.phone_number if booking.user and hasattr(booking.user, 'phone_number') else (booking.user.phone if booking.user and hasattr(booking.user, 'phone') else ""), + } if booking.user else None, + "createdAt": booking.created_at.isoformat() if booking.created_at else None, + "updatedAt": booking.updated_at.isoformat() if booking.updated_at else None, "created_at": booking.created_at.isoformat() if booking.created_at else None, } # Add relations + # Only get base_url if we need it (room has images) + if booking.room and booking.room.images: + base_url = get_base_url(request) + # Normalize room images if they exist + try: + room_images = normalize_images(booking.room.images, base_url) + except: + room_images = [] + else: + room_images = [] + if booking.room: + booking_dict["room"] = { "id": booking.room.id, "room_number": booking.room.room_number, + "floor": booking.room.floor, + "status": booking.room.status.value if isinstance(booking.room.status, RoomStatus) else booking.room.status, + "images": room_images, # Include room images directly on room object } if booking.room.room_type: + # Use room images if room_type doesn't have images (which is typical) + # RoomType doesn't have images column, images are stored on Room + room_type_images = room_images if room_images else [] + booking_dict["room"]["room_type"] = { + "id": booking.room.room_type.id, "name": booking.room.room_type.name, + "base_price": float(booking.room.room_type.base_price) if booking.room.room_type.base_price else 0.0, + "capacity": booking.room.room_type.capacity, + "images": room_type_images, } if booking.payments: @@ -385,6 +542,20 @@ async def cancel_booking( if booking.status == BookingStatus.cancelled: raise HTTPException(status_code=400, detail="Booking already cancelled") + # Prevent cancellation of confirmed bookings + if booking.status == BookingStatus.confirmed: + raise HTTPException( + status_code=400, + detail="Cannot cancel a confirmed booking. Please contact support for assistance." + ) + + # Only allow cancellation of pending bookings + if booking.status != BookingStatus.pending: + raise HTTPException( + status_code=400, + detail=f"Cannot cancel booking with status: {booking.status.value}. Only pending bookings can be cancelled." + ) + booking.status = BookingStatus.cancelled db.commit() diff --git a/Backend/src/routes/invoice_routes.py b/Backend/src/routes/invoice_routes.py new file mode 100644 index 00000000..72a6be88 --- /dev/null +++ b/Backend/src/routes/invoice_routes.py @@ -0,0 +1,249 @@ +from fastapi import APIRouter, Depends, HTTPException, status, Query +from sqlalchemy.orm import Session +from typing import Optional +from datetime import datetime + +from ..config.database import get_db +from ..middleware.auth import get_current_user, authorize_roles +from ..models.user import User +from ..models.invoice import Invoice, InvoiceStatus +from ..models.booking import Booking +from ..services.invoice_service import InvoiceService + +router = APIRouter(prefix="/invoices", tags=["invoices"]) + + +@router.get("/") +async def get_invoices( + booking_id: Optional[int] = Query(None), + status_filter: Optional[str] = Query(None, alias="status"), + page: int = Query(1, ge=1), + limit: int = Query(10, ge=1, le=100), + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Get invoices for current user (or all invoices for admin)""" + try: + # Admin can see all invoices, users can only see their own + user_id = None if current_user.role_id == 1 else current_user.id + + result = InvoiceService.get_invoices( + db=db, + user_id=user_id, + booking_id=booking_id, + status=status_filter, + page=page, + limit=limit + ) + + return { + "status": "success", + "data": result + } + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{id}") +async def get_invoice_by_id( + id: int, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Get invoice by ID""" + try: + invoice = InvoiceService.get_invoice(id, db) + + if not invoice: + raise HTTPException(status_code=404, detail="Invoice not found") + + # Check access: admin can see all, users can only see their own + if current_user.role_id != 1 and invoice["user_id"] != current_user.id: + raise HTTPException(status_code=403, detail="Forbidden") + + return { + "status": "success", + "data": {"invoice": invoice} + } + except HTTPException: + raise + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.post("/") +async def create_invoice( + invoice_data: dict, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Create a new invoice from a booking (Admin/Staff only)""" + try: + # Only admin/staff can create invoices + if current_user.role_id not in [1, 2]: + raise HTTPException(status_code=403, detail="Forbidden") + + booking_id = invoice_data.get("booking_id") + if not booking_id: + raise HTTPException(status_code=400, detail="booking_id is required") + + # Check if booking exists + booking = db.query(Booking).filter(Booking.id == booking_id).first() + if not booking: + raise HTTPException(status_code=404, detail="Booking not found") + + # Create invoice + invoice = InvoiceService.create_invoice_from_booking( + booking_id=booking_id, + db=db, + created_by_id=current_user.id, + tax_rate=invoice_data.get("tax_rate", 0.0), + discount_amount=invoice_data.get("discount_amount", 0.0), + due_days=invoice_data.get("due_days", 30), + company_name=invoice_data.get("company_name"), + company_address=invoice_data.get("company_address"), + company_phone=invoice_data.get("company_phone"), + company_email=invoice_data.get("company_email"), + company_tax_id=invoice_data.get("company_tax_id"), + company_logo_url=invoice_data.get("company_logo_url"), + customer_tax_id=invoice_data.get("customer_tax_id"), + notes=invoice_data.get("notes"), + terms_and_conditions=invoice_data.get("terms_and_conditions"), + payment_instructions=invoice_data.get("payment_instructions"), + ) + + return { + "status": "success", + "message": "Invoice created successfully", + "data": {"invoice": invoice} + } + except HTTPException: + raise + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.put("/{id}") +async def update_invoice( + id: int, + invoice_data: dict, + current_user: User = Depends(authorize_roles("admin", "staff")), + db: Session = Depends(get_db) +): + """Update an invoice (Admin/Staff only)""" + try: + invoice = db.query(Invoice).filter(Invoice.id == id).first() + if not invoice: + raise HTTPException(status_code=404, detail="Invoice not found") + + # Update invoice + updated_invoice = InvoiceService.update_invoice( + invoice_id=id, + db=db, + updated_by_id=current_user.id, + **invoice_data + ) + + return { + "status": "success", + "message": "Invoice updated successfully", + "data": {"invoice": updated_invoice} + } + except HTTPException: + raise + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.post("/{id}/mark-paid") +async def mark_invoice_as_paid( + id: int, + payment_data: dict, + current_user: User = Depends(authorize_roles("admin", "staff")), + db: Session = Depends(get_db) +): + """Mark an invoice as paid (Admin/Staff only)""" + try: + amount = payment_data.get("amount") + + updated_invoice = InvoiceService.mark_invoice_as_paid( + invoice_id=id, + db=db, + amount=amount, + updated_by_id=current_user.id + ) + + return { + "status": "success", + "message": "Invoice marked as paid successfully", + "data": {"invoice": updated_invoice} + } + except HTTPException: + raise + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.delete("/{id}") +async def delete_invoice( + id: int, + current_user: User = Depends(authorize_roles("admin")), + db: Session = Depends(get_db) +): + """Delete an invoice (Admin only)""" + try: + invoice = db.query(Invoice).filter(Invoice.id == id).first() + if not invoice: + raise HTTPException(status_code=404, detail="Invoice not found") + + db.delete(invoice) + db.commit() + + return { + "status": "success", + "message": "Invoice deleted successfully" + } + except HTTPException: + raise + except Exception as e: + db.rollback() + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/booking/{booking_id}") +async def get_invoices_by_booking( + booking_id: int, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Get all invoices for a specific booking""" + try: + # Check if booking exists and user has access + booking = db.query(Booking).filter(Booking.id == booking_id).first() + if not booking: + raise HTTPException(status_code=404, detail="Booking not found") + + # Check access: admin can see all, users can only see their own bookings + if current_user.role_id != 1 and booking.user_id != current_user.id: + raise HTTPException(status_code=403, detail="Forbidden") + + result = InvoiceService.get_invoices( + db=db, + booking_id=booking_id + ) + + return { + "status": "success", + "data": result + } + except HTTPException: + raise + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + diff --git a/Backend/src/routes/payment_routes.py b/Backend/src/routes/payment_routes.py index 554fc8e6..a12ff975 100644 --- a/Backend/src/routes/payment_routes.py +++ b/Backend/src/routes/payment_routes.py @@ -1,4 +1,4 @@ -from fastapi import APIRouter, Depends, HTTPException, status, Query +from fastapi import APIRouter, Depends, HTTPException, status, Query, Request, Header from sqlalchemy.orm import Session from typing import Optional from datetime import datetime @@ -12,6 +12,7 @@ from ..models.payment import Payment, PaymentMethod, PaymentType, PaymentStatus from ..models.booking import Booking, BookingStatus from ..utils.mailer import send_email from ..utils.email_templates import payment_confirmation_email_template +from ..services.stripe_service import StripeService router = APIRouter(prefix="/payments", tags=["payments"]) @@ -340,3 +341,250 @@ async def update_payment_status( except Exception as e: db.rollback() raise HTTPException(status_code=500, detail=str(e)) + + +@router.post("/stripe/create-intent") +async def create_stripe_payment_intent( + intent_data: dict, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Create a Stripe payment intent""" + try: + # Check if Stripe is configured (from database or environment) + from ..services.stripe_service import get_stripe_secret_key + secret_key = get_stripe_secret_key(db) + if not secret_key: + secret_key = settings.STRIPE_SECRET_KEY + + if not secret_key: + raise HTTPException( + status_code=500, + detail="Stripe is not configured. Please configure Stripe settings in Admin Panel or set STRIPE_SECRET_KEY environment variable." + ) + + booking_id = intent_data.get("booking_id") + amount = float(intent_data.get("amount", 0)) + currency = intent_data.get("currency", "usd") + + # Log the incoming amount for debugging + import logging + logger = logging.getLogger(__name__) + logger.info(f"Creating Stripe payment intent - Booking ID: {booking_id}, Amount: ${amount:,.2f}, Currency: {currency}") + + if not booking_id or amount <= 0: + raise HTTPException( + status_code=400, + detail="booking_id and amount are required" + ) + + # Validate amount is reasonable (Stripe max is $999,999.99) + if amount > 999999.99: + logger.error(f"Amount ${amount:,.2f} exceeds Stripe's maximum of $999,999.99") + raise HTTPException( + status_code=400, + detail=f"Amount ${amount:,.2f} exceeds Stripe's maximum of $999,999.99. Please contact support for large payments." + ) + + # Verify booking exists and user has access + booking = db.query(Booking).filter(Booking.id == booking_id).first() + if not booking: + raise HTTPException(status_code=404, detail="Booking not found") + + if current_user.role_id != 1 and booking.user_id != current_user.id: + raise HTTPException(status_code=403, detail="Forbidden") + + # Create payment intent + intent = StripeService.create_payment_intent( + amount=amount, + currency=currency, + metadata={ + "booking_id": str(booking_id), + "booking_number": booking.booking_number, + "user_id": str(current_user.id), + }, + db=db + ) + + # Get publishable key from database or environment + from ..services.stripe_service import get_stripe_publishable_key + publishable_key = get_stripe_publishable_key(db) + if not publishable_key: + publishable_key = settings.STRIPE_PUBLISHABLE_KEY + + if not publishable_key: + import logging + logger = logging.getLogger(__name__) + logger.warning("Stripe publishable key is not configured") + raise HTTPException( + status_code=500, + detail="Stripe publishable key is not configured. Please configure it in Admin Panel (Settings > Stripe Settings) or set STRIPE_PUBLISHABLE_KEY environment variable." + ) + + if not intent.get("client_secret"): + import logging + logger = logging.getLogger(__name__) + logger.error("Payment intent created but client_secret is missing") + raise HTTPException( + status_code=500, + detail="Failed to create payment intent. Client secret is missing." + ) + + return { + "status": "success", + "message": "Payment intent created successfully", + "data": { + "client_secret": intent["client_secret"], + "payment_intent_id": intent["id"], + "publishable_key": publishable_key, + } + } + except HTTPException: + raise + except ValueError as e: + import logging + logger = logging.getLogger(__name__) + logger.error(f"Payment intent creation error: {str(e)}") + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + import logging + logger = logging.getLogger(__name__) + logger.error(f"Unexpected error creating payment intent: {str(e)}", exc_info=True) + raise HTTPException(status_code=500, detail=str(e)) + + +@router.post("/stripe/confirm") +async def confirm_stripe_payment( + payment_data: dict, + current_user: User = Depends(get_current_user), + db: Session = Depends(get_db) +): + """Confirm a Stripe payment""" + try: + payment_intent_id = payment_data.get("payment_intent_id") + booking_id = payment_data.get("booking_id") + + if not payment_intent_id: + raise HTTPException( + status_code=400, + detail="payment_intent_id is required" + ) + + # Confirm payment (this commits the transaction internally) + payment = StripeService.confirm_payment( + payment_intent_id=payment_intent_id, + db=db, + booking_id=booking_id + ) + + # Ensure the transaction is committed before proceeding + # The service method already commits, but we ensure it here too + try: + db.commit() + except Exception: + # If already committed, this will raise an error, which we can ignore + pass + + # Get fresh booking from database to get updated status (after commit) + booking = db.query(Booking).filter(Booking.id == payment["booking_id"]).first() + if booking: + db.refresh(booking) + + # Send payment confirmation email (non-blocking, after commit) + # This won't affect the transaction since it's already committed + if booking and booking.user: + try: + client_url = settings.CLIENT_URL or os.getenv("CLIENT_URL", "http://localhost:5173") + email_html = payment_confirmation_email_template( + booking_number=booking.booking_number, + guest_name=booking.user.full_name, + amount=payment["amount"], + payment_method="stripe", + transaction_id=payment["transaction_id"], + client_url=client_url + ) + await send_email( + to=booking.user.email, + subject=f"Payment Confirmed - {booking.booking_number}", + html=email_html + ) + except Exception as e: + import logging + logger = logging.getLogger(__name__) + logger.warning(f"Failed to send payment confirmation email: {e}") + + return { + "status": "success", + "message": "Payment confirmed successfully", + "data": { + "payment": payment, + "booking": { + "id": booking.id if booking else None, + "booking_number": booking.booking_number if booking else None, + "status": booking.status.value if booking else None, + } + } + } + except HTTPException: + db.rollback() + raise + except ValueError as e: + import logging + logger = logging.getLogger(__name__) + logger.error(f"Payment confirmation error: {str(e)}") + db.rollback() + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + import logging + logger = logging.getLogger(__name__) + logger.error(f"Unexpected error confirming payment: {str(e)}", exc_info=True) + db.rollback() + raise HTTPException(status_code=500, detail=str(e)) + + +@router.post("/stripe/webhook") +async def stripe_webhook( + request: Request, + db: Session = Depends(get_db) +): + """Handle Stripe webhook events""" + try: + # Check if webhook secret is configured (from database or environment) + from ..services.stripe_service import get_stripe_webhook_secret + webhook_secret = get_stripe_webhook_secret(db) + if not webhook_secret: + webhook_secret = settings.STRIPE_WEBHOOK_SECRET + + if not webhook_secret: + raise HTTPException( + status_code=503, + detail={ + "status": "error", + "message": "Stripe webhook secret is not configured. Please configure it in Admin Panel (Settings > Stripe Settings) or set STRIPE_WEBHOOK_SECRET environment variable." + } + ) + + payload = await request.body() + signature = request.headers.get("stripe-signature") + + if not signature: + raise HTTPException( + status_code=400, + detail="Missing stripe-signature header" + ) + + result = StripeService.handle_webhook( + payload=payload, + signature=signature, + db=db + ) + + return { + "status": "success", + "data": result + } + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) + except Exception as e: + db.rollback() + raise HTTPException(status_code=500, detail=str(e)) diff --git a/Backend/src/routes/room_routes.py b/Backend/src/routes/room_routes.py index e13344fb..b59173ae 100644 --- a/Backend/src/routes/room_routes.py +++ b/Backend/src/routes/room_routes.py @@ -197,7 +197,7 @@ async def search_available_rooms( raise HTTPException(status_code=500, detail=str(e)) -@router.get("/{id}") +@router.get("/id/{id}") async def get_room_by_id(id: int, request: Request, db: Session = Depends(get_db)): """Get room by ID""" try: @@ -225,9 +225,81 @@ async def get_room_by_id(id: int, request: Request, db: Session = Depends(get_db "room_number": room.room_number, "floor": room.floor, "status": room.status.value if isinstance(room.status, RoomStatus) else room.status, - "price": float(room.price) if room.price else 0.0, + "price": float(room.price) if room.price is not None and room.price > 0 else None, "featured": room.featured, "description": room.description, + "capacity": room.capacity, + "room_size": room.room_size, + "view": room.view, + "amenities": room.amenities, + "created_at": room.created_at.isoformat() if room.created_at else None, + "updated_at": room.updated_at.isoformat() if room.updated_at else None, + "average_rating": round(float(review_stats.average_rating or 0), 1) if review_stats and review_stats.average_rating else None, + "total_reviews": review_stats.total_reviews or 0 if review_stats else 0, + } + + # Normalize images + try: + room_dict["images"] = normalize_images(room.images, base_url) + except: + room_dict["images"] = [] + + # Add room type + if room.room_type: + room_dict["room_type"] = { + "id": room.room_type.id, + "name": room.room_type.name, + "description": room.room_type.description, + "base_price": float(room.room_type.base_price) if room.room_type.base_price else 0.0, + "capacity": room.room_type.capacity, + "amenities": room.room_type.amenities, + "images": [] # RoomType doesn't have images column in DB + } + + return { + "status": "success", + "data": {"room": room_dict} + } + except HTTPException: + raise + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{room_number}") +async def get_room_by_number(room_number: str, request: Request, db: Session = Depends(get_db)): + """Get room by room number""" + try: + room = db.query(Room).filter(Room.room_number == room_number).first() + + if not room: + raise HTTPException(status_code=404, detail="Room not found") + + # Get review stats + review_stats = db.query( + func.avg(Review.rating).label('average_rating'), + func.count(Review.id).label('total_reviews') + ).filter( + and_( + Review.room_id == room.id, + Review.status == ReviewStatus.approved + ) + ).first() + + base_url = get_base_url(request) + + room_dict = { + "id": room.id, + "room_type_id": room.room_type_id, + "room_number": room.room_number, + "floor": room.floor, + "status": room.status.value if isinstance(room.status, RoomStatus) else room.status, + "price": float(room.price) if room.price is not None and room.price > 0 else None, + "featured": room.featured, + "description": room.description, + "capacity": room.capacity, + "room_size": room.room_size, + "view": room.view, "amenities": room.amenities, "created_at": room.created_at.isoformat() if room.created_at else None, "updated_at": room.updated_at.isoformat() if room.updated_at else None, @@ -266,6 +338,7 @@ async def get_room_by_id(id: int, request: Request, db: Session = Depends(get_db @router.post("/", dependencies=[Depends(authorize_roles("admin"))]) async def create_room( room_data: dict, + request: Request, current_user: User = Depends(get_current_user), db: Session = Depends(get_db) ): @@ -281,6 +354,13 @@ async def create_room( if existing: raise HTTPException(status_code=400, detail="Room number already exists") + # Ensure amenities is always a list + amenities_value = room_data.get("amenities", []) + if amenities_value is None: + amenities_value = [] + elif not isinstance(amenities_value, list): + amenities_value = [] + room = Room( room_type_id=room_data.get("room_type_id"), room_number=room_data.get("room_number"), @@ -288,16 +368,60 @@ async def create_room( status=RoomStatus(room_data.get("status", "available")), featured=room_data.get("featured", False), price=room_data.get("price", room_type.base_price), + description=room_data.get("description"), + capacity=room_data.get("capacity"), + room_size=room_data.get("room_size"), + view=room_data.get("view"), + amenities=amenities_value, ) db.add(room) db.commit() db.refresh(room) + # Get base URL for proper response + base_url = get_base_url(request) + + # Serialize room data + room_dict = { + "id": room.id, + "room_type_id": room.room_type_id, + "room_number": room.room_number, + "floor": room.floor, + "status": room.status.value if isinstance(room.status, RoomStatus) else room.status, + "price": float(room.price) if room.price is not None and room.price > 0 else None, + "featured": room.featured, + "description": room.description, + "capacity": room.capacity, + "room_size": room.room_size, + "view": room.view, + "amenities": room.amenities if room.amenities else [], + "created_at": room.created_at.isoformat() if room.created_at else None, + "updated_at": room.updated_at.isoformat() if room.updated_at else None, + } + + # Normalize images + try: + room_dict["images"] = normalize_images(room.images, base_url) + except: + room_dict["images"] = [] + + # Add room type info + if room.room_type: + room_dict["room_type"] = { + "id": room.room_type.id, + "name": room.room_type.name, + "description": room.room_type.description, + "base_price": float(room.room_type.base_price) if room.room_type.base_price else 0.0, + "capacity": room.room_type.capacity, + "amenities": room.room_type.amenities if room.room_type.amenities else [], + "images": [] + } + return { "status": "success", "message": "Room created successfully", - "data": {"room": room} + "data": {"room": room_dict} } except HTTPException: raise @@ -310,6 +434,7 @@ async def create_room( async def update_room( id: int, room_data: dict, + request: Request, current_user: User = Depends(authorize_roles("admin")), db: Session = Depends(get_db) ): @@ -337,14 +462,70 @@ async def update_room( room.featured = room_data["featured"] if "price" in room_data: room.price = room_data["price"] + if "description" in room_data: + room.description = room_data["description"] + if "capacity" in room_data: + room.capacity = room_data["capacity"] + if "room_size" in room_data: + room.room_size = room_data["room_size"] + if "view" in room_data: + room.view = room_data["view"] + if "amenities" in room_data: + # Ensure amenities is always a list + amenities_value = room_data["amenities"] + if amenities_value is None: + room.amenities = [] + elif isinstance(amenities_value, list): + room.amenities = amenities_value + else: + room.amenities = [] db.commit() db.refresh(room) + # Get base URL for proper response + base_url = get_base_url(request) + + # Serialize room data similar to get_room_by_id + room_dict = { + "id": room.id, + "room_type_id": room.room_type_id, + "room_number": room.room_number, + "floor": room.floor, + "status": room.status.value if isinstance(room.status, RoomStatus) else room.status, + "price": float(room.price) if room.price is not None and room.price > 0 else None, + "featured": room.featured, + "description": room.description, + "capacity": room.capacity, + "room_size": room.room_size, + "view": room.view, + "amenities": room.amenities if room.amenities else [], + "created_at": room.created_at.isoformat() if room.created_at else None, + "updated_at": room.updated_at.isoformat() if room.updated_at else None, + } + + # Normalize images + try: + room_dict["images"] = normalize_images(room.images, base_url) + except: + room_dict["images"] = [] + + # Add room type info + if room.room_type: + room_dict["room_type"] = { + "id": room.room_type.id, + "name": room.room_type.name, + "description": room.room_type.description, + "base_price": float(room.room_type.base_price) if room.room_type.base_price else 0.0, + "capacity": room.room_type.capacity, + "amenities": room.room_type.amenities if room.room_type.amenities else [], + "images": [] + } + return { "status": "success", "message": "Room updated successfully", - "data": {"room": room} + "data": {"room": room_dict} } except HTTPException: raise @@ -379,6 +560,57 @@ async def delete_room( raise HTTPException(status_code=500, detail=str(e)) +@router.post("/bulk-delete", dependencies=[Depends(authorize_roles("admin"))]) +async def bulk_delete_rooms( + room_ids: dict, + current_user: User = Depends(authorize_roles("admin")), + db: Session = Depends(get_db) +): + """Bulk delete rooms (Admin only)""" + try: + ids = room_ids.get("ids", []) + if not ids or not isinstance(ids, list): + raise HTTPException(status_code=400, detail="Invalid room IDs provided") + + if len(ids) == 0: + raise HTTPException(status_code=400, detail="No room IDs provided") + + # Validate all IDs are integers + try: + ids = [int(id) for id in ids] + except (ValueError, TypeError): + raise HTTPException(status_code=400, detail="All room IDs must be integers") + + # Check if all rooms exist + rooms = db.query(Room).filter(Room.id.in_(ids)).all() + found_ids = [room.id for room in rooms] + not_found_ids = [id for id in ids if id not in found_ids] + + if not_found_ids: + raise HTTPException( + status_code=404, + detail=f"Rooms with IDs {not_found_ids} not found" + ) + + # Delete all rooms + deleted_count = db.query(Room).filter(Room.id.in_(ids)).delete(synchronize_session=False) + db.commit() + + return { + "status": "success", + "message": f"Successfully deleted {deleted_count} room(s)", + "data": { + "deleted_count": deleted_count, + "deleted_ids": ids + } + } + except HTTPException: + raise + except Exception as e: + db.rollback() + raise HTTPException(status_code=500, detail=str(e)) + + @router.post("/{id}/images", dependencies=[Depends(authorize_roles("admin", "staff"))]) async def upload_room_images( id: int, @@ -435,7 +667,7 @@ async def upload_room_images( @router.delete("/{id}/images", dependencies=[Depends(authorize_roles("admin", "staff"))]) async def delete_room_images( id: int, - image_url: str, + image_url: str = Query(..., description="Image URL or path to delete"), current_user: User = Depends(authorize_roles("admin", "staff")), db: Session = Depends(get_db) ): @@ -445,12 +677,39 @@ async def delete_room_images( if not room: raise HTTPException(status_code=404, detail="Room not found") - # Update room images (images are stored on Room, not RoomType) + # Normalize the incoming image_url to extract the path + # Handle both full URLs and relative paths + normalized_url = image_url + if image_url.startswith('http://') or image_url.startswith('https://'): + # Extract path from URL + from urllib.parse import urlparse + parsed = urlparse(image_url) + normalized_url = parsed.path + + # Normalize paths for comparison (ensure leading slash) + if not normalized_url.startswith('/'): + normalized_url = f"/{normalized_url}" + + # Get filename from normalized path + filename = Path(normalized_url).name + + # Update room images - compare by filename or full path existing_images = room.images or [] - updated_images = [img for img in existing_images if img != image_url] + updated_images = [] + + for img in existing_images: + # Normalize stored image path + stored_path = img if img.startswith('/') else f"/{img}" + stored_filename = Path(stored_path).name + + # Compare by filename or full path + # Keep images that don't match + if (img != normalized_url and + stored_path != normalized_url and + stored_filename != filename): + updated_images.append(img) # Delete file from disk - filename = Path(image_url).name file_path = Path(__file__).parent.parent.parent / "uploads" / "rooms" / filename if file_path.exists(): file_path.unlink() diff --git a/Backend/src/routes/system_settings_routes.py b/Backend/src/routes/system_settings_routes.py new file mode 100644 index 00000000..e197a835 --- /dev/null +++ b/Backend/src/routes/system_settings_routes.py @@ -0,0 +1,302 @@ +from fastapi import APIRouter, Depends, HTTPException, status +from sqlalchemy.orm import Session +from typing import Optional + +from ..config.database import get_db +from ..middleware.auth import get_current_user, authorize_roles +from ..models.user import User +from ..models.system_settings import SystemSettings + +router = APIRouter(prefix="/admin/system-settings", tags=["admin-system-settings"]) + + +@router.get("/currency") +async def get_platform_currency( + db: Session = Depends(get_db) +): + """Get platform currency setting (public endpoint for frontend)""" + try: + setting = db.query(SystemSettings).filter( + SystemSettings.key == "platform_currency" + ).first() + + if not setting: + # Default to VND if not set + return { + "status": "success", + "data": { + "currency": "VND", + "updated_at": None, + "updated_by": None + } + } + + return { + "status": "success", + "data": { + "currency": setting.value, + "updated_at": setting.updated_at.isoformat() if setting.updated_at else None, + "updated_by": setting.updated_by.full_name if setting.updated_by else None + } + } + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.put("/currency") +async def update_platform_currency( + currency_data: dict, + current_user: User = Depends(authorize_roles("admin")), + db: Session = Depends(get_db) +): + """Update platform currency (Admin only)""" + try: + currency = currency_data.get("currency", "").upper() + + # Validate currency code + if not currency or len(currency) != 3 or not currency.isalpha(): + raise HTTPException( + status_code=400, + detail="Invalid currency code. Must be a 3-letter ISO 4217 code (e.g., USD, EUR, VND)" + ) + + # Get or create setting + setting = db.query(SystemSettings).filter( + SystemSettings.key == "platform_currency" + ).first() + + if setting: + setting.value = currency + setting.updated_by_id = current_user.id + else: + setting = SystemSettings( + key="platform_currency", + value=currency, + description="Platform-wide currency setting for displaying prices across the application", + updated_by_id=current_user.id + ) + db.add(setting) + + db.commit() + db.refresh(setting) + + return { + "status": "success", + "message": "Platform currency updated successfully", + "data": { + "currency": setting.value, + "updated_at": setting.updated_at.isoformat() if setting.updated_at else None, + "updated_by": setting.updated_by.full_name if setting.updated_by else None + } + } + except HTTPException: + raise + except Exception as e: + db.rollback() + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/") +async def get_all_settings( + current_user: User = Depends(authorize_roles("admin")), + db: Session = Depends(get_db) +): + """Get all system settings (Admin only)""" + try: + settings = db.query(SystemSettings).all() + + result = [] + for setting in settings: + result.append({ + "key": setting.key, + "value": setting.value, + "description": setting.description, + "updated_at": setting.updated_at.isoformat() if setting.updated_at else None, + "updated_by": setting.updated_by.full_name if setting.updated_by else None + }) + + return { + "status": "success", + "data": { + "settings": result + } + } + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/stripe") +async def get_stripe_settings( + current_user: User = Depends(authorize_roles("admin")), + db: Session = Depends(get_db) +): + """Get Stripe payment settings (Admin only)""" + try: + secret_key_setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_secret_key" + ).first() + + publishable_key_setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_publishable_key" + ).first() + + webhook_secret_setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_webhook_secret" + ).first() + + # Mask secret keys for security (only show last 4 characters) + def mask_key(key_value: str) -> str: + if not key_value or len(key_value) < 4: + return "" + return "*" * (len(key_value) - 4) + key_value[-4:] + + result = { + "stripe_secret_key": "", + "stripe_publishable_key": "", + "stripe_webhook_secret": "", + "stripe_secret_key_masked": "", + "stripe_webhook_secret_masked": "", + "has_secret_key": False, + "has_publishable_key": False, + "has_webhook_secret": False, + } + + if secret_key_setting: + result["stripe_secret_key"] = secret_key_setting.value + result["stripe_secret_key_masked"] = mask_key(secret_key_setting.value) + result["has_secret_key"] = bool(secret_key_setting.value) + result["updated_at"] = secret_key_setting.updated_at.isoformat() if secret_key_setting.updated_at else None + result["updated_by"] = secret_key_setting.updated_by.full_name if secret_key_setting.updated_by else None + + if publishable_key_setting: + result["stripe_publishable_key"] = publishable_key_setting.value + result["has_publishable_key"] = bool(publishable_key_setting.value) + + if webhook_secret_setting: + result["stripe_webhook_secret"] = webhook_secret_setting.value + result["stripe_webhook_secret_masked"] = mask_key(webhook_secret_setting.value) + result["has_webhook_secret"] = bool(webhook_secret_setting.value) + + return { + "status": "success", + "data": result + } + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.put("/stripe") +async def update_stripe_settings( + stripe_data: dict, + current_user: User = Depends(authorize_roles("admin")), + db: Session = Depends(get_db) +): + """Update Stripe payment settings (Admin only)""" + try: + secret_key = stripe_data.get("stripe_secret_key", "").strip() + publishable_key = stripe_data.get("stripe_publishable_key", "").strip() + webhook_secret = stripe_data.get("stripe_webhook_secret", "").strip() + + # Validate secret key format (should start with sk_) + if secret_key and not secret_key.startswith("sk_"): + raise HTTPException( + status_code=400, + detail="Invalid Stripe secret key format. Must start with 'sk_'" + ) + + # Validate publishable key format (should start with pk_) + if publishable_key and not publishable_key.startswith("pk_"): + raise HTTPException( + status_code=400, + detail="Invalid Stripe publishable key format. Must start with 'pk_'" + ) + + # Validate webhook secret format (should start with whsec_) + if webhook_secret and not webhook_secret.startswith("whsec_"): + raise HTTPException( + status_code=400, + detail="Invalid Stripe webhook secret format. Must start with 'whsec_'" + ) + + # Update or create secret key setting + if secret_key: + setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_secret_key" + ).first() + + if setting: + setting.value = secret_key + setting.updated_by_id = current_user.id + else: + setting = SystemSettings( + key="stripe_secret_key", + value=secret_key, + description="Stripe secret key for processing payments", + updated_by_id=current_user.id + ) + db.add(setting) + + # Update or create publishable key setting + if publishable_key: + setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_publishable_key" + ).first() + + if setting: + setting.value = publishable_key + setting.updated_by_id = current_user.id + else: + setting = SystemSettings( + key="stripe_publishable_key", + value=publishable_key, + description="Stripe publishable key for frontend payment forms", + updated_by_id=current_user.id + ) + db.add(setting) + + # Update or create webhook secret setting + if webhook_secret: + setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_webhook_secret" + ).first() + + if setting: + setting.value = webhook_secret + setting.updated_by_id = current_user.id + else: + setting = SystemSettings( + key="stripe_webhook_secret", + value=webhook_secret, + description="Stripe webhook secret for verifying webhook events", + updated_by_id=current_user.id + ) + db.add(setting) + + db.commit() + + # Return masked values + def mask_key(key_value: str) -> str: + if not key_value or len(key_value) < 4: + return "" + return "*" * (len(key_value) - 4) + key_value[-4:] + + return { + "status": "success", + "message": "Stripe settings updated successfully", + "data": { + "stripe_secret_key": secret_key if secret_key else "", + "stripe_publishable_key": publishable_key, + "stripe_webhook_secret": webhook_secret if webhook_secret else "", + "stripe_secret_key_masked": mask_key(secret_key) if secret_key else "", + "stripe_webhook_secret_masked": mask_key(webhook_secret) if webhook_secret else "", + "has_secret_key": bool(secret_key), + "has_publishable_key": bool(publishable_key), + "has_webhook_secret": bool(webhook_secret), + } + } + except HTTPException: + raise + except Exception as e: + db.rollback() + raise HTTPException(status_code=500, detail=str(e)) + diff --git a/Backend/src/routes/user_routes.py b/Backend/src/routes/user_routes.py index d2246d9c..d908d115 100644 --- a/Backend/src/routes/user_routes.py +++ b/Backend/src/routes/user_routes.py @@ -66,6 +66,7 @@ async def get_users( "phone_number": user.phone, # For frontend compatibility "address": user.address, "avatar": user.avatar, + "currency": getattr(user, 'currency', 'VND'), "is_active": user.is_active, "status": "active" if user.is_active else "inactive", "role_id": user.role_id, @@ -117,6 +118,7 @@ async def get_user_by_id( "phone_number": user.phone, "address": user.address, "avatar": user.avatar, + "currency": getattr(user, 'currency', 'VND'), "is_active": user.is_active, "status": "active" if user.is_active else "inactive", "role_id": user.role_id, @@ -194,6 +196,7 @@ async def create_user( "full_name": user.full_name, "phone": user.phone, "phone_number": user.phone, + "currency": getattr(user, 'currency', 'VND'), "role_id": user.role_id, "is_active": user.is_active, } @@ -248,6 +251,10 @@ async def update_user( user.role_id = role_map.get(user_data["role"], 3) if "status" in user_data and current_user.role_id == 1: user.is_active = user_data["status"] == "active" + if "currency" in user_data: + currency = user_data["currency"] + if len(currency) == 3 and currency.isalpha(): + user.currency = currency.upper() if "password" in user_data: password_bytes = user_data["password"].encode('utf-8') salt = bcrypt.gensalt() @@ -263,6 +270,7 @@ async def update_user( "full_name": user.full_name, "phone": user.phone, "phone_number": user.phone, + "currency": getattr(user, 'currency', 'VND'), "role_id": user.role_id, "is_active": user.is_active, } diff --git a/Backend/src/services/__pycache__/auth_service.cpython-312.pyc b/Backend/src/services/__pycache__/auth_service.cpython-312.pyc index d3c01b91..cdd0f9ed 100644 Binary files a/Backend/src/services/__pycache__/auth_service.cpython-312.pyc and b/Backend/src/services/__pycache__/auth_service.cpython-312.pyc differ diff --git a/Backend/src/services/__pycache__/invoice_service.cpython-312.pyc b/Backend/src/services/__pycache__/invoice_service.cpython-312.pyc new file mode 100644 index 00000000..652abef1 Binary files /dev/null and b/Backend/src/services/__pycache__/invoice_service.cpython-312.pyc differ diff --git a/Backend/src/services/__pycache__/room_service.cpython-312.pyc b/Backend/src/services/__pycache__/room_service.cpython-312.pyc index b0224e59..07186233 100644 Binary files a/Backend/src/services/__pycache__/room_service.cpython-312.pyc and b/Backend/src/services/__pycache__/room_service.cpython-312.pyc differ diff --git a/Backend/src/services/__pycache__/stripe_service.cpython-312.pyc b/Backend/src/services/__pycache__/stripe_service.cpython-312.pyc new file mode 100644 index 00000000..7e423939 Binary files /dev/null and b/Backend/src/services/__pycache__/stripe_service.cpython-312.pyc differ diff --git a/Backend/src/services/auth_service.py b/Backend/src/services/auth_service.py index 823114da..d58627c7 100644 --- a/Backend/src/services/auth_service.py +++ b/Backend/src/services/auth_service.py @@ -81,6 +81,7 @@ class AuthService: "email": user.email, "phone": user.phone, "avatar": user.avatar, + "currency": getattr(user, 'currency', 'VND'), "role": user.role.name if user.role else "customer", "createdAt": user.created_at.isoformat() if user.created_at else None, "updatedAt": user.updated_at.isoformat() if user.updated_at else None, @@ -265,7 +266,8 @@ class AuthService: email: Optional[str] = None, phone_number: Optional[str] = None, password: Optional[str] = None, - current_password: Optional[str] = None + current_password: Optional[str] = None, + currency: Optional[str] = None ) -> dict: """Update user profile""" user = db.query(User).filter(User.id == user_id).first() @@ -295,6 +297,12 @@ class AuthService: user.email = email if phone_number is not None: user.phone = phone_number + if currency is not None: + # Validate currency code (ISO 4217, 3 characters) + if len(currency) == 3 and currency.isalpha(): + user.currency = currency.upper() + else: + raise ValueError("Invalid currency code. Must be a 3-letter ISO 4217 code (e.g., USD, EUR, VND)") db.commit() db.refresh(user) diff --git a/Backend/src/services/currency_service.py b/Backend/src/services/currency_service.py new file mode 100644 index 00000000..f45d8536 --- /dev/null +++ b/Backend/src/services/currency_service.py @@ -0,0 +1,101 @@ +""" +Currency conversion service +Handles currency conversion between different currencies +""" +from typing import Dict +from decimal import Decimal + +# Base currency is VND (Vietnamese Dong) +# Exchange rates relative to VND (1 VND = base) +# These are approximate rates - in production, fetch from an API like exchangerate-api.com +EXCHANGE_RATES: Dict[str, Decimal] = { + 'VND': Decimal('1.0'), # Base currency + 'USD': Decimal('0.000041'), # 1 VND = 0.000041 USD (approx 24,000 VND = 1 USD) + 'EUR': Decimal('0.000038'), # 1 VND = 0.000038 EUR (approx 26,000 VND = 1 EUR) + 'GBP': Decimal('0.000033'), # 1 VND = 0.000033 GBP (approx 30,000 VND = 1 GBP) + 'JPY': Decimal('0.0061'), # 1 VND = 0.0061 JPY (approx 164 VND = 1 JPY) + 'CNY': Decimal('0.00029'), # 1 VND = 0.00029 CNY (approx 3,400 VND = 1 CNY) + 'KRW': Decimal('0.055'), # 1 VND = 0.055 KRW (approx 18 VND = 1 KRW) + 'SGD': Decimal('0.000055'), # 1 VND = 0.000055 SGD (approx 18,000 VND = 1 SGD) + 'THB': Decimal('0.0015'), # 1 VND = 0.0015 THB (approx 667 VND = 1 THB) + 'AUD': Decimal('0.000062'), # 1 VND = 0.000062 AUD (approx 16,000 VND = 1 AUD) + 'CAD': Decimal('0.000056'), # 1 VND = 0.000056 CAD (approx 18,000 VND = 1 CAD) +} + +# Supported currencies list +SUPPORTED_CURRENCIES = list(EXCHANGE_RATES.keys()) + + +class CurrencyService: + """Service for currency conversion""" + + @staticmethod + def get_supported_currencies() -> list: + """Get list of supported currency codes""" + return SUPPORTED_CURRENCIES + + @staticmethod + def convert_amount(amount: float, from_currency: str, to_currency: str) -> float: + """ + Convert amount from one currency to another + + Args: + amount: Amount to convert + from_currency: Source currency code (ISO 4217) + to_currency: Target currency code (ISO 4217) + + Returns: + Converted amount + """ + from_currency = from_currency.upper() + to_currency = to_currency.upper() + + if from_currency == to_currency: + return amount + + if from_currency not in EXCHANGE_RATES: + raise ValueError(f"Unsupported source currency: {from_currency}") + if to_currency not in EXCHANGE_RATES: + raise ValueError(f"Unsupported target currency: {to_currency}") + + # Convert to VND first, then to target currency + amount_vnd = Decimal(str(amount)) / EXCHANGE_RATES[from_currency] + converted_amount = amount_vnd * EXCHANGE_RATES[to_currency] + + return float(converted_amount) + + @staticmethod + def get_exchange_rate(from_currency: str, to_currency: str) -> float: + """ + Get exchange rate between two currencies + + Args: + from_currency: Source currency code + to_currency: Target currency code + + Returns: + Exchange rate (1 from_currency = X to_currency) + """ + from_currency = from_currency.upper() + to_currency = to_currency.upper() + + if from_currency == to_currency: + return 1.0 + + if from_currency not in EXCHANGE_RATES: + raise ValueError(f"Unsupported source currency: {from_currency}") + if to_currency not in EXCHANGE_RATES: + raise ValueError(f"Unsupported target currency: {to_currency}") + + # Rate = (1 / from_rate) * to_rate + rate = EXCHANGE_RATES[to_currency] / EXCHANGE_RATES[from_currency] + return float(rate) + + @staticmethod + def format_currency_code(currency: str) -> str: + """Format currency code to uppercase""" + return currency.upper() if currency else 'VND' + + +currency_service = CurrencyService() + diff --git a/Backend/src/services/invoice_service.py b/Backend/src/services/invoice_service.py new file mode 100644 index 00000000..2e4665a7 --- /dev/null +++ b/Backend/src/services/invoice_service.py @@ -0,0 +1,388 @@ +""" +Invoice service for managing invoices +""" +from sqlalchemy.orm import Session +from sqlalchemy import func, and_, or_ +from typing import Optional, Dict, Any, List +from datetime import datetime, timedelta +from ..models.invoice import Invoice, InvoiceItem, InvoiceStatus +from ..models.booking import Booking +from ..models.payment import Payment, PaymentStatus +from ..models.user import User + + +def generate_invoice_number(db: Session) -> str: + """Generate a unique invoice number""" + # Format: INV-YYYYMMDD-XXXX + today = datetime.utcnow().strftime("%Y%m%d") + + # Get the last invoice number for today + last_invoice = db.query(Invoice).filter( + Invoice.invoice_number.like(f"INV-{today}-%") + ).order_by(Invoice.invoice_number.desc()).first() + + if last_invoice: + # Extract the sequence number and increment + try: + sequence = int(last_invoice.invoice_number.split("-")[-1]) + sequence += 1 + except (ValueError, IndexError): + sequence = 1 + else: + sequence = 1 + + return f"INV-{today}-{sequence:04d}" + + +class InvoiceService: + """Service for managing invoices""" + + @staticmethod + def create_invoice_from_booking( + booking_id: int, + db: Session, + created_by_id: Optional[int] = None, + tax_rate: float = 0.0, + discount_amount: float = 0.0, + due_days: int = 30, + **kwargs + ) -> Dict[str, Any]: + """ + Create an invoice from a booking + + Args: + booking_id: Booking ID + db: Database session + created_by_id: User ID who created the invoice + tax_rate: Tax rate percentage (default: 0.0) + discount_amount: Discount amount (default: 0.0) + due_days: Number of days until due date (default: 30) + **kwargs: Additional invoice fields (company info, notes, etc.) + + Returns: + Invoice dictionary + """ + booking = db.query(Booking).filter(Booking.id == booking_id).first() + if not booking: + raise ValueError("Booking not found") + + user = db.query(User).filter(User.id == booking.user_id).first() + if not user: + raise ValueError("User not found") + + # Generate invoice number + invoice_number = generate_invoice_number(db) + + # Calculate amounts + subtotal = float(booking.total_price) + tax_amount = (subtotal - discount_amount) * (tax_rate / 100) + total_amount = subtotal + tax_amount - discount_amount + + # Calculate amount paid from completed payments + amount_paid = sum( + float(p.amount) for p in booking.payments + if p.payment_status == PaymentStatus.completed + ) + balance_due = total_amount - amount_paid + + # Determine status + if balance_due <= 0: + status = InvoiceStatus.paid + paid_date = datetime.utcnow() + elif amount_paid > 0: + status = InvoiceStatus.sent + paid_date = None + else: + status = InvoiceStatus.draft + paid_date = None + + # Create invoice + invoice = Invoice( + invoice_number=invoice_number, + booking_id=booking_id, + user_id=booking.user_id, + issue_date=datetime.utcnow(), + due_date=datetime.utcnow() + timedelta(days=due_days), + paid_date=paid_date, + subtotal=subtotal, + tax_rate=tax_rate, + tax_amount=tax_amount, + discount_amount=discount_amount, + total_amount=total_amount, + amount_paid=amount_paid, + balance_due=balance_due, + status=status, + company_name=kwargs.get("company_name"), + company_address=kwargs.get("company_address"), + company_phone=kwargs.get("company_phone"), + company_email=kwargs.get("company_email"), + company_tax_id=kwargs.get("company_tax_id"), + company_logo_url=kwargs.get("company_logo_url"), + customer_name=user.full_name or f"{user.email}", + customer_email=user.email, + customer_address=user.address, + customer_phone=user.phone, + customer_tax_id=kwargs.get("customer_tax_id"), + notes=kwargs.get("notes"), + terms_and_conditions=kwargs.get("terms_and_conditions"), + payment_instructions=kwargs.get("payment_instructions"), + created_by_id=created_by_id, + ) + + db.add(invoice) + + # Create invoice items from booking + # Room item + room_item = InvoiceItem( + invoice_id=invoice.id, + description=f"Room: {booking.room.room_number} - {booking.room.room_type.name if booking.room.room_type else 'N/A'}", + quantity=1, + unit_price=float(booking.total_price), + tax_rate=tax_rate, + discount_amount=0.0, + line_total=float(booking.total_price), + room_id=booking.room_id, + ) + db.add(room_item) + + # Add service items if any + for service_usage in booking.service_usages: + service_item = InvoiceItem( + invoice_id=invoice.id, + description=f"Service: {service_usage.service.name}", + quantity=float(service_usage.quantity), + unit_price=float(service_usage.service.price), + tax_rate=tax_rate, + discount_amount=0.0, + line_total=float(service_usage.quantity) * float(service_usage.service.price), + service_id=service_usage.service_id, + ) + db.add(service_item) + subtotal += float(service_usage.quantity) * float(service_usage.service.price) + + # Recalculate totals if services were added + if booking.service_usages: + tax_amount = (subtotal - discount_amount) * (tax_rate / 100) + total_amount = subtotal + tax_amount - discount_amount + balance_due = total_amount - amount_paid + + invoice.subtotal = subtotal + invoice.tax_amount = tax_amount + invoice.total_amount = total_amount + invoice.balance_due = balance_due + + db.commit() + db.refresh(invoice) + + return InvoiceService.invoice_to_dict(invoice) + + @staticmethod + def update_invoice( + invoice_id: int, + db: Session, + updated_by_id: Optional[int] = None, + **kwargs + ) -> Dict[str, Any]: + """ + Update an invoice + + Args: + invoice_id: Invoice ID + db: Database session + updated_by_id: User ID who updated the invoice + **kwargs: Fields to update + + Returns: + Updated invoice dictionary + """ + invoice = db.query(Invoice).filter(Invoice.id == invoice_id).first() + if not invoice: + raise ValueError("Invoice not found") + + # Update allowed fields + allowed_fields = [ + "company_name", "company_address", "company_phone", "company_email", + "company_tax_id", "company_logo_url", "notes", "terms_and_conditions", + "payment_instructions", "status", "due_date", "tax_rate", "discount_amount" + ] + + for field in allowed_fields: + if field in kwargs: + setattr(invoice, field, kwargs[field]) + + # Recalculate if tax_rate or discount_amount changed + if "tax_rate" in kwargs or "discount_amount" in kwargs: + tax_rate = kwargs.get("tax_rate", invoice.tax_rate) + discount_amount = kwargs.get("discount_amount", invoice.discount_amount) + + invoice.tax_amount = (invoice.subtotal - discount_amount) * (float(tax_rate) / 100) + invoice.total_amount = invoice.subtotal + invoice.tax_amount - discount_amount + invoice.balance_due = invoice.total_amount - invoice.amount_paid + + # Update status based on balance + if invoice.balance_due <= 0 and invoice.status != InvoiceStatus.paid: + invoice.status = InvoiceStatus.paid + invoice.paid_date = datetime.utcnow() + elif invoice.balance_due > 0 and invoice.status == InvoiceStatus.paid: + invoice.status = InvoiceStatus.sent + invoice.paid_date = None + + invoice.updated_by_id = updated_by_id + invoice.updated_at = datetime.utcnow() + + db.commit() + db.refresh(invoice) + + return InvoiceService.invoice_to_dict(invoice) + + @staticmethod + def mark_invoice_as_paid( + invoice_id: int, + db: Session, + amount: Optional[float] = None, + updated_by_id: Optional[int] = None + ) -> Dict[str, Any]: + """ + Mark an invoice as paid + + Args: + invoice_id: Invoice ID + db: Database session + amount: Payment amount (if None, uses balance_due) + updated_by_id: User ID who marked as paid + + Returns: + Updated invoice dictionary + """ + invoice = db.query(Invoice).filter(Invoice.id == invoice_id).first() + if not invoice: + raise ValueError("Invoice not found") + + payment_amount = amount if amount is not None else float(invoice.balance_due) + invoice.amount_paid += payment_amount + invoice.balance_due = invoice.total_amount - invoice.amount_paid + + if invoice.balance_due <= 0: + invoice.status = InvoiceStatus.paid + invoice.paid_date = datetime.utcnow() + else: + invoice.status = InvoiceStatus.sent + + invoice.updated_by_id = updated_by_id + invoice.updated_at = datetime.utcnow() + + db.commit() + db.refresh(invoice) + + return InvoiceService.invoice_to_dict(invoice) + + @staticmethod + def get_invoice(invoice_id: int, db: Session) -> Optional[Dict[str, Any]]: + """Get invoice by ID""" + invoice = db.query(Invoice).filter(Invoice.id == invoice_id).first() + if not invoice: + return None + return InvoiceService.invoice_to_dict(invoice) + + @staticmethod + def get_invoices( + db: Session, + user_id: Optional[int] = None, + booking_id: Optional[int] = None, + status: Optional[str] = None, + page: int = 1, + limit: int = 10 + ) -> Dict[str, Any]: + """ + Get invoices with filters + + Args: + db: Database session + user_id: Filter by user ID + booking_id: Filter by booking ID + status: Filter by status + page: Page number + limit: Items per page + + Returns: + Dictionary with invoices and pagination info + """ + query = db.query(Invoice) + + if user_id: + query = query.filter(Invoice.user_id == user_id) + if booking_id: + query = query.filter(Invoice.booking_id == booking_id) + if status: + try: + status_enum = InvoiceStatus(status) + query = query.filter(Invoice.status == status_enum) + except ValueError: + pass + + # Get total count + total = query.count() + + # Apply pagination + offset = (page - 1) * limit + invoices = query.order_by(Invoice.created_at.desc()).offset(offset).limit(limit).all() + + return { + "invoices": [InvoiceService.invoice_to_dict(inv) for inv in invoices], + "total": total, + "page": page, + "limit": limit, + "total_pages": (total + limit - 1) // limit + } + + @staticmethod + def invoice_to_dict(invoice: Invoice) -> Dict[str, Any]: + """Convert invoice model to dictionary""" + return { + "id": invoice.id, + "invoice_number": invoice.invoice_number, + "booking_id": invoice.booking_id, + "user_id": invoice.user_id, + "issue_date": invoice.issue_date.isoformat() if invoice.issue_date else None, + "due_date": invoice.due_date.isoformat() if invoice.due_date else None, + "paid_date": invoice.paid_date.isoformat() if invoice.paid_date else None, + "subtotal": float(invoice.subtotal) if invoice.subtotal else 0.0, + "tax_rate": float(invoice.tax_rate) if invoice.tax_rate else 0.0, + "tax_amount": float(invoice.tax_amount) if invoice.tax_amount else 0.0, + "discount_amount": float(invoice.discount_amount) if invoice.discount_amount else 0.0, + "total_amount": float(invoice.total_amount) if invoice.total_amount else 0.0, + "amount_paid": float(invoice.amount_paid) if invoice.amount_paid else 0.0, + "balance_due": float(invoice.balance_due) if invoice.balance_due else 0.0, + "status": invoice.status.value if invoice.status else None, + "company_name": invoice.company_name, + "company_address": invoice.company_address, + "company_phone": invoice.company_phone, + "company_email": invoice.company_email, + "company_tax_id": invoice.company_tax_id, + "company_logo_url": invoice.company_logo_url, + "customer_name": invoice.customer_name, + "customer_email": invoice.customer_email, + "customer_address": invoice.customer_address, + "customer_phone": invoice.customer_phone, + "customer_tax_id": invoice.customer_tax_id, + "notes": invoice.notes, + "terms_and_conditions": invoice.terms_and_conditions, + "payment_instructions": invoice.payment_instructions, + "items": [ + { + "id": item.id, + "description": item.description, + "quantity": float(item.quantity) if item.quantity else 0.0, + "unit_price": float(item.unit_price) if item.unit_price else 0.0, + "tax_rate": float(item.tax_rate) if item.tax_rate else 0.0, + "discount_amount": float(item.discount_amount) if item.discount_amount else 0.0, + "line_total": float(item.line_total) if item.line_total else 0.0, + "room_id": item.room_id, + "service_id": item.service_id, + } + for item in invoice.items + ], + "created_at": invoice.created_at.isoformat() if invoice.created_at else None, + "updated_at": invoice.updated_at.isoformat() if invoice.updated_at else None, + } + diff --git a/Backend/src/services/room_service.py b/Backend/src/services/room_service.py index 7335bdc9..806fb97e 100644 --- a/Backend/src/services/room_service.py +++ b/Backend/src/services/room_service.py @@ -40,7 +40,20 @@ def normalize_images(images, base_url: str) -> List[str]: def get_base_url(request) -> str: """Get base URL for image normalization""" - return os.getenv("SERVER_URL") or f"http://{request.headers.get('host', 'localhost:3000')}" + # Try to get from environment first + server_url = os.getenv("SERVER_URL") + if server_url: + return server_url.rstrip('/') + + # Get from request host header + host = request.headers.get('host', 'localhost:8000') + # Ensure we use the backend port if host doesn't have a port + if ':' not in host: + host = f"{host}:8000" + + # Use http or https based on scheme + scheme = request.url.scheme if hasattr(request.url, 'scheme') else 'http' + return f"{scheme}://{host}" async def get_rooms_with_ratings( @@ -72,6 +85,9 @@ async def get_rooms_with_ratings( "price": float(room.price) if room.price else 0.0, "featured": room.featured, "description": room.description, + "capacity": room.capacity, + "room_size": room.room_size, + "view": room.view, "amenities": room.amenities, "created_at": room.created_at.isoformat() if room.created_at else None, "updated_at": room.updated_at.isoformat() if room.updated_at else None, @@ -102,44 +118,319 @@ async def get_rooms_with_ratings( return result +def get_predefined_amenities() -> List[str]: + """Get comprehensive list of predefined hotel room amenities""" + return [ + # Basic Amenities + "Free WiFi", + "WiFi", + "High-Speed Internet", + "WiFi in Room", + + # Entertainment + "Flat-Screen TV", + "TV", + "Cable TV", + "Satellite TV", + "Smart TV", + "Netflix", + "Streaming Services", + "DVD Player", + "Stereo System", + "Radio", + "iPod Dock", + + # Climate Control + "Air Conditioning", + "AC", + "Heating", + "Climate Control", + "Ceiling Fan", + "Air Purifier", + + # Bathroom Features + "Private Bathroom", + "Ensuite Bathroom", + "Bathtub", + "Jacuzzi Bathtub", + "Hot Tub", + "Shower", + "Rain Shower", + "Walk-in Shower", + "Bidet", + "Hair Dryer", + "Hairdryer", + "Bathrobes", + "Slippers", + "Toiletries", + "Premium Toiletries", + "Towels", + + # Food & Beverage + "Mini Bar", + "Minibar", + "Refrigerator", + "Fridge", + "Microwave", + "Coffee Maker", + "Electric Kettle", + "Tea Making Facilities", + "Coffee Machine", + "Nespresso Machine", + "Kitchenette", + "Dining Table", + "Room Service", + "Breakfast Included", + "Breakfast", + "Complimentary Water", + "Bottled Water", + + # Furniture & Space + "Desk", + "Writing Desk", + "Office Desk", + "Work Desk", + "Sofa", + "Sitting Area", + "Lounge Area", + "Dining Area", + "Separate Living Area", + "Wardrobe", + "Closet", + "Dresser", + "Mirror", + "Full-Length Mirror", + "Seating Area", + + # Bed & Sleep + "King Size Bed", + "Queen Size Bed", + "Double Bed", + "Twin Beds", + "Single Bed", + "Extra Bedding", + "Pillow Menu", + "Premium Bedding", + "Blackout Curtains", + "Soundproofing", + + # Safety & Security + "Safe", + "In-Room Safe", + "Safety Deposit Box", + "Smoke Detector", + "Fire Extinguisher", + "Security System", + "Key Card Access", + "Door Lock", + "Pepper Spray", + + # Technology + "USB Charging Ports", + "USB Ports", + "USB Outlets", + "Power Outlets", + "Charging Station", + "Laptop Safe", + "HDMI Port", + "Phone", + "Desk Phone", + "Wake-Up Service", + "Alarm Clock", + "Digital Clock", + + # View & Outdoor + "Balcony", + "Private Balcony", + "Terrace", + "Patio", + "City View", + "Ocean View", + "Sea View", + "Mountain View", + "Garden View", + "Pool View", + "Park View", + "Window", + "Large Windows", + "Floor-to-Ceiling Windows", + + # Services + "24-Hour Front Desk", + "24 Hour Front Desk", + "24/7 Front Desk", + "Concierge Service", + "Butler Service", + "Housekeeping", + "Daily Housekeeping", + "Turndown Service", + "Laundry Service", + "Dry Cleaning", + "Ironing Service", + "Luggage Storage", + "Bell Service", + "Valet Parking", + "Parking", + "Free Parking", + "Airport Shuttle", + "Shuttle Service", + "Car Rental", + "Taxi Service", + + # Fitness & Wellness + "Gym Access", + "Fitness Center", + "Fitness Room", + "Spa Access", + "Spa", + "Sauna", + "Steam Room", + "Hot Tub", + "Massage Service", + "Beauty Services", + + # Recreation + "Swimming Pool", + "Pool", + "Indoor Pool", + "Outdoor Pool", + "Infinity Pool", + "Pool Access", + "Golf Course", + "Tennis Court", + "Beach Access", + "Water Sports", + + # Business & Work + "Business Center", + "Meeting Room", + "Conference Room", + "Fax Service", + "Photocopying", + "Printing Service", + "Secretarial Services", + + # Accessibility + "Wheelchair Accessible", + "Accessible Room", + "Elevator Access", + "Ramp Access", + "Accessible Bathroom", + "Lowered Sink", + "Grab Bars", + "Hearing Accessible", + "Visual Alarm", + + # Family & Pets + "Family Room", + "Kids Welcome", + "Baby Crib", + "Extra Bed", + "Crib", + "Childcare Services", + "Pets Allowed", + "Pet Friendly", + + # Additional Features + "Smoking Room", + "Non-Smoking Room", + "No Smoking", + "Interconnecting Rooms", + "Adjoining Rooms", + "Suite", + "Separate Bedroom", + "Kitchen", + "Full Kitchen", + "Dishwasher", + "Oven", + "Stove", + "Washing Machine", + "Dryer", + "Iron", + "Ironing Board", + "Clothes Rack", + "Umbrella", + "Shoe Shine Service", + + # Luxury Features + "Fireplace", + "Jacuzzi", + "Steam Shower", + "Spa Bath", + "Bidet Toilet", + "Smart Home System", + "Lighting Control", + "Curtain Control", + "Automated Systems", + "Personalized Service", + "VIP Treatment", + "Butler", + "Private Entrance", + "Private Elevator", + "Panic Button", + + # Entertainment & Media + "Blu-ray Player", + "Gaming Console", + "PlayStation", + "Xbox", + "Sound System", + "Surround Sound", + "Music System", + + # Special Features + "Library", + "Reading Room", + "Study Room", + "Private Pool", + "Private Garden", + "Yard", + "Courtyard", + "Outdoor Furniture", + "BBQ Facilities", + "Picnic Area", + ] + + async def get_amenities_list(db: Session) -> List[str]: - """Get all unique amenities from room types and rooms""" - all_amenities = [] + """Get all unique amenities from room types and rooms, plus predefined amenities""" + # Start with predefined comprehensive list + all_amenities = set(get_predefined_amenities()) # Get from room types room_types = db.query(RoomType.amenities).all() for rt in room_types: if rt.amenities: if isinstance(rt.amenities, list): - all_amenities.extend([str(a).strip() for a in rt.amenities]) + all_amenities.update([str(a).strip() for a in rt.amenities if str(a).strip()]) elif isinstance(rt.amenities, str): try: import json parsed = json.loads(rt.amenities) if isinstance(parsed, list): - all_amenities.extend([str(a).strip() for a in parsed]) + all_amenities.update([str(a).strip() for a in parsed if str(a).strip()]) else: - all_amenities.extend([s.strip() for s in rt.amenities.split(',')]) + all_amenities.update([s.strip() for s in rt.amenities.split(',') if s.strip()]) except: - all_amenities.extend([s.strip() for s in rt.amenities.split(',')]) + all_amenities.update([s.strip() for s in rt.amenities.split(',') if s.strip()]) # Get from rooms rooms = db.query(Room.amenities).all() for r in rooms: if r.amenities: if isinstance(r.amenities, list): - all_amenities.extend([str(a).strip() for a in r.amenities]) + all_amenities.update([str(a).strip() for a in r.amenities if str(a).strip()]) elif isinstance(r.amenities, str): try: import json parsed = json.loads(r.amenities) if isinstance(parsed, list): - all_amenities.extend([str(a).strip() for a in parsed]) + all_amenities.update([str(a).strip() for a in parsed if str(a).strip()]) else: - all_amenities.extend([s.strip() for s in r.amenities.split(',')]) + all_amenities.update([s.strip() for s in r.amenities.split(',') if s.strip()]) except: - all_amenities.extend([s.strip() for s in r.amenities.split(',')]) + all_amenities.update([s.strip() for s in r.amenities.split(',') if s.strip()]) - # Return unique, non-empty values - return sorted(list(set([a for a in all_amenities if a]))) + # Return unique, sorted values + return sorted(list(all_amenities)) diff --git a/Backend/src/services/stripe_service.py b/Backend/src/services/stripe_service.py new file mode 100644 index 00000000..b27e562e --- /dev/null +++ b/Backend/src/services/stripe_service.py @@ -0,0 +1,409 @@ +""" +Stripe payment service for processing card payments +""" +import stripe +from typing import Optional, Dict, Any +from ..config.settings import settings +from ..models.payment import Payment, PaymentMethod, PaymentType, PaymentStatus +from ..models.booking import Booking, BookingStatus +from ..models.system_settings import SystemSettings +from sqlalchemy.orm import Session +from datetime import datetime + + +def get_stripe_secret_key(db: Session) -> Optional[str]: + """Get Stripe secret key from database or environment variable""" + try: + setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_secret_key" + ).first() + if setting and setting.value: + return setting.value + except Exception: + pass + # Fallback to environment variable + return settings.STRIPE_SECRET_KEY if settings.STRIPE_SECRET_KEY else None + + +def get_stripe_publishable_key(db: Session) -> Optional[str]: + """Get Stripe publishable key from database or environment variable""" + try: + setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_publishable_key" + ).first() + if setting and setting.value: + return setting.value + except Exception: + pass + # Fallback to environment variable + return settings.STRIPE_PUBLISHABLE_KEY if settings.STRIPE_PUBLISHABLE_KEY else None + + +def get_stripe_webhook_secret(db: Session) -> Optional[str]: + """Get Stripe webhook secret from database or environment variable""" + try: + setting = db.query(SystemSettings).filter( + SystemSettings.key == "stripe_webhook_secret" + ).first() + if setting and setting.value: + return setting.value + except Exception: + pass + # Fallback to environment variable + return settings.STRIPE_WEBHOOK_SECRET if settings.STRIPE_WEBHOOK_SECRET else None + + +class StripeService: + """Service for handling Stripe payments""" + + @staticmethod + def create_payment_intent( + amount: float, + currency: str = "usd", + metadata: Optional[Dict[str, Any]] = None, + customer_id: Optional[str] = None, + db: Optional[Session] = None + ) -> Dict[str, Any]: + """ + Create a Stripe Payment Intent + + Args: + amount: Payment amount in smallest currency unit (cents for USD) + currency: Currency code (default: usd) + metadata: Additional metadata to attach to the payment intent + customer_id: Optional Stripe customer ID + db: Optional database session to get keys from database + + Returns: + Payment intent object + """ + # Get secret key from database or environment + secret_key = None + if db: + secret_key = get_stripe_secret_key(db) + if not secret_key: + secret_key = settings.STRIPE_SECRET_KEY + + if not secret_key: + raise ValueError("Stripe secret key is not configured") + + # Set the API key for this request + stripe.api_key = secret_key + + # Validate amount is reasonable (Stripe max is $999,999.99) + if amount <= 0: + raise ValueError("Amount must be greater than 0") + if amount > 999999.99: + raise ValueError(f"Amount ${amount:,.2f} exceeds Stripe's maximum of $999,999.99") + + # Convert amount to cents (smallest currency unit) + # Amount should be in dollars, so multiply by 100 to get cents + amount_in_cents = int(round(amount * 100)) + + # Double-check the cents amount doesn't exceed Stripe's limit + if amount_in_cents > 99999999: # $999,999.99 in cents + raise ValueError(f"Amount ${amount:,.2f} (${amount_in_cents} cents) exceeds Stripe's maximum") + + intent_params = { + "amount": amount_in_cents, + "currency": currency, + "automatic_payment_methods": { + "enabled": True, + }, + "metadata": metadata or {}, + } + + if customer_id: + intent_params["customer"] = customer_id + + try: + intent = stripe.PaymentIntent.create(**intent_params) + return { + "client_secret": intent.client_secret, + "id": intent.id, + "status": intent.status, + "amount": intent.amount, + "currency": intent.currency, + } + except stripe.StripeError as e: + raise ValueError(f"Stripe error: {str(e)}") + + @staticmethod + def retrieve_payment_intent( + payment_intent_id: str, + db: Optional[Session] = None + ) -> Dict[str, Any]: + """ + Retrieve a payment intent by ID + + Args: + payment_intent_id: Stripe payment intent ID + db: Optional database session to get keys from database + + Returns: + Payment intent object + """ + # Get secret key from database or environment + secret_key = None + if db: + secret_key = get_stripe_secret_key(db) + if not secret_key: + secret_key = settings.STRIPE_SECRET_KEY + + if not secret_key: + raise ValueError("Stripe secret key is not configured") + + # Set the API key for this request + stripe.api_key = secret_key + + try: + intent = stripe.PaymentIntent.retrieve(payment_intent_id) + # Safely access charges - they may not exist on all payment intents + charges = [] + if hasattr(intent, 'charges') and intent.charges: + charges_data = getattr(intent.charges, 'data', []) + charges = [ + { + "id": charge.id, + "paid": charge.paid, + "status": charge.status, + } + for charge in charges_data + ] + + return { + "id": intent.id, + "status": intent.status, + "amount": intent.amount / 100, # Convert from cents + "currency": intent.currency, + "metadata": intent.metadata, + "charges": charges, + } + except stripe.StripeError as e: + raise ValueError(f"Stripe error: {str(e)}") + + @staticmethod + def confirm_payment( + payment_intent_id: str, + db: Session, + booking_id: Optional[int] = None + ) -> Dict[str, Any]: + """ + Confirm a payment and update database records + + Args: + payment_intent_id: Stripe payment intent ID + db: Database session + booking_id: Optional booking ID for metadata lookup + + Returns: + Payment record dictionary + """ + try: + intent_data = StripeService.retrieve_payment_intent(payment_intent_id, db) + + # Find or get booking_id from metadata + if not booking_id and intent_data.get("metadata"): + booking_id = intent_data["metadata"].get("booking_id") + if booking_id: + booking_id = int(booking_id) + + if not booking_id: + raise ValueError("Booking ID is required") + + booking = db.query(Booking).filter(Booking.id == booking_id).first() + if not booking: + raise ValueError("Booking not found") + + # Check payment intent status + payment_status = intent_data.get("status") + print(f"Payment intent status: {payment_status}") + + # Accept succeeded or processing status (processing means payment is being processed) + if payment_status not in ["succeeded", "processing"]: + raise ValueError(f"Payment intent not in a valid state. Status: {payment_status}. Payment may still be processing or may have failed.") + + # Find existing payment or create new one + payment = db.query(Payment).filter( + Payment.booking_id == booking_id, + Payment.transaction_id == payment_intent_id, + Payment.payment_method == PaymentMethod.stripe + ).first() + + amount = intent_data["amount"] + + if payment: + # Update existing payment + # Only mark as completed if payment intent succeeded + if payment_status == "succeeded": + payment.payment_status = PaymentStatus.completed + payment.payment_date = datetime.utcnow() + # If processing, keep as pending (will be updated by webhook) + payment.amount = amount + else: + # Create new payment record + payment_type = PaymentType.full + if booking.requires_deposit and not booking.deposit_paid: + payment_type = PaymentType.deposit + + # Only mark as completed if payment intent succeeded + payment_status_enum = PaymentStatus.completed if payment_status == "succeeded" else PaymentStatus.pending + payment_date = datetime.utcnow() if payment_status == "succeeded" else None + + payment = Payment( + booking_id=booking_id, + amount=amount, + payment_method=PaymentMethod.stripe, + payment_type=payment_type, + payment_status=payment_status_enum, + transaction_id=payment_intent_id, + payment_date=payment_date, + notes=f"Stripe payment - Intent: {payment_intent_id} (Status: {payment_status})", + ) + db.add(payment) + + # Commit payment first to ensure it's saved + db.commit() + db.refresh(payment) + + # Update booking status only if payment is completed + if payment.payment_status == PaymentStatus.completed: + # Refresh booking to get updated payments relationship + db.refresh(booking) + + if payment.payment_type == PaymentType.deposit: + # Mark deposit as paid and confirm booking + booking.deposit_paid = True + if booking.status == BookingStatus.pending: + booking.status = BookingStatus.confirmed + elif payment.payment_type == PaymentType.full: + # Calculate total paid from all completed payments (now includes current payment) + total_paid = sum( + float(p.amount) for p in booking.payments + if p.payment_status == PaymentStatus.completed + ) + + # Confirm booking if: + # 1. Total paid (all payments) covers the booking price, OR + # 2. This single payment covers the entire booking amount + if total_paid >= float(booking.total_price) or float(payment.amount) >= float(booking.total_price): + booking.status = BookingStatus.confirmed + + # Commit booking status update + db.commit() + db.refresh(booking) + + # Safely get enum values + def get_enum_value(enum_obj): + """Safely extract value from enum or return as-is""" + if enum_obj is None: + return None + if isinstance(enum_obj, (PaymentMethod, PaymentType, PaymentStatus)): + return enum_obj.value + return enum_obj + + try: + return { + "id": payment.id, + "booking_id": payment.booking_id, + "amount": float(payment.amount) if payment.amount else 0.0, + "payment_method": get_enum_value(payment.payment_method), + "payment_type": get_enum_value(payment.payment_type), + "payment_status": get_enum_value(payment.payment_status), + "transaction_id": payment.transaction_id, + "payment_date": payment.payment_date.isoformat() if payment.payment_date else None, + } + except AttributeError as ae: + print(f"AttributeError accessing payment fields: {ae}") + print(f"Payment object: {payment}") + print(f"Payment payment_method: {payment.payment_method if hasattr(payment, 'payment_method') else 'missing'}") + print(f"Payment payment_type: {payment.payment_type if hasattr(payment, 'payment_type') else 'missing'}") + print(f"Payment payment_status: {payment.payment_status if hasattr(payment, 'payment_status') else 'missing'}") + raise + + except ValueError as e: + # Re-raise ValueError as-is (these are expected errors) + db.rollback() + raise + except Exception as e: + import traceback + error_details = traceback.format_exc() + error_msg = str(e) if str(e) else f"{type(e).__name__}: {repr(e)}" + print(f"Error in confirm_payment: {error_msg}") + print(f"Traceback: {error_details}") + db.rollback() + raise ValueError(f"Error confirming payment: {error_msg}") + + @staticmethod + def handle_webhook( + payload: bytes, + signature: str, + db: Session + ) -> Dict[str, Any]: + """ + Handle Stripe webhook events + + Args: + payload: Raw webhook payload + signature: Stripe signature header + db: Database session + + Returns: + Webhook event data + """ + webhook_secret = get_stripe_webhook_secret(db) + if not webhook_secret: + webhook_secret = settings.STRIPE_WEBHOOK_SECRET + + if not webhook_secret: + raise ValueError("Stripe webhook secret is not configured. Please configure it in Admin Panel (Settings > Stripe Settings) or set STRIPE_WEBHOOK_SECRET environment variable.") + + try: + event = stripe.Webhook.construct_event( + payload, signature, webhook_secret + ) + except ValueError as e: + raise ValueError(f"Invalid payload: {str(e)}") + except stripe.SignatureVerificationError as e: + raise ValueError(f"Invalid signature: {str(e)}") + + # Handle the event + if event["type"] == "payment_intent.succeeded": + payment_intent = event["data"]["object"] + payment_intent_id = payment_intent["id"] + metadata = payment_intent.get("metadata", {}) + booking_id = metadata.get("booking_id") + + if booking_id: + try: + StripeService.confirm_payment( + payment_intent_id=payment_intent_id, + db=db, + booking_id=int(booking_id) + ) + except Exception as e: + print(f"Error processing webhook for booking {booking_id}: {str(e)}") + + elif event["type"] == "payment_intent.payment_failed": + payment_intent = event["data"]["object"] + payment_intent_id = payment_intent["id"] + metadata = payment_intent.get("metadata", {}) + booking_id = metadata.get("booking_id") + + if booking_id: + # Update payment status to failed + payment = db.query(Payment).filter( + Payment.transaction_id == payment_intent_id, + Payment.booking_id == int(booking_id) + ).first() + + if payment: + payment.payment_status = PaymentStatus.failed + db.commit() + + return { + "status": "success", + "event_type": event["type"], + "event_id": event["id"], + } + diff --git a/Backend/venv/bin/normalizer b/Backend/venv/bin/normalizer new file mode 100755 index 00000000..0d8c6ae2 --- /dev/null +++ b/Backend/venv/bin/normalizer @@ -0,0 +1,7 @@ +#!/home/gnx/Desktop/Hotel-Booking/Backend/venv/bin/python3 +import sys +from charset_normalizer.cli import cli_detect +if __name__ == '__main__': + if sys.argv[0].endswith('.exe'): + sys.argv[0] = sys.argv[0][:-4] + sys.exit(cli_detect()) diff --git a/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/INSTALLER b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/METADATA b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/METADATA new file mode 100644 index 00000000..6939bac7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/METADATA @@ -0,0 +1,78 @@ +Metadata-Version: 2.4 +Name: certifi +Version: 2025.11.12 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://github.com/certifi/python-certifi +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Source, https://github.com/certifi/python-certifi +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Requires-Python: >=3.7 +License-File: LICENSE +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: requires-python +Dynamic: summary + +Certifi: Python SSL Certificates +================================ + +Certifi provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. diff --git a/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/RECORD b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/RECORD new file mode 100644 index 00000000..2a3994ca --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/RECORD @@ -0,0 +1,14 @@ +certifi-2025.11.12.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2025.11.12.dist-info/METADATA,sha256=_JprGu_1lWSdHlruRBKcorXnrfvBDhvX_6KRr8HQbLc,2475 +certifi-2025.11.12.dist-info/RECORD,, +certifi-2025.11.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +certifi-2025.11.12.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +certifi-2025.11.12.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=1BRSxNMnZW7CZ2oJtYWLoJgfHfcB9i273exwiPwfjJM,94 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/__pycache__/__init__.cpython-312.pyc,, +certifi/__pycache__/__main__.cpython-312.pyc,, +certifi/__pycache__/core.cpython-312.pyc,, +certifi/cacert.pem,sha256=oa1dZD4hxDtb7XTH4IkdzbWPavUcis4eTwINZUqlKhY,283932 +certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 +certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/WHEEL b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/WHEEL new file mode 100644 index 00000000..e7fa31b6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE new file mode 100644 index 00000000..62b076cd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/licenses/LICENSE @@ -0,0 +1,20 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/top_level.txt b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/top_level.txt new file mode 100644 index 00000000..963eac53 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi-2025.11.12.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/__init__.py b/Backend/venv/lib/python3.12/site-packages/certifi/__init__.py new file mode 100644 index 00000000..f11f5ae4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi/__init__.py @@ -0,0 +1,4 @@ +from .core import contents, where + +__all__ = ["contents", "where"] +__version__ = "2025.11.12" diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/__main__.py b/Backend/venv/lib/python3.12/site-packages/certifi/__main__.py new file mode 100644 index 00000000..8945b5da --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi/__main__.py @@ -0,0 +1,12 @@ +import argparse + +from certifi import contents, where + +parser = argparse.ArgumentParser() +parser.add_argument("-c", "--contents", action="store_true") +args = parser.parse_args() + +if args.contents: + print(contents()) +else: + print(where()) diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..049ef3fd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 00000000..b1959811 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc new file mode 100644 index 00000000..f780325d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/cacert.pem b/Backend/venv/lib/python3.12/site-packages/certifi/cacert.pem new file mode 100644 index 00000000..ebcb66fe --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi/cacert.pem @@ -0,0 +1,4678 @@ + +# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Label: "Entrust Root Certification Authority" +# Serial: 1164660820 +# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4 +# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9 +# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 +Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW +KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw +NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw +NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy +ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV +BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo +Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 +4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 +KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI +rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi +94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB +sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi +gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo +kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE +vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t +O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua +AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP +9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ +eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m +0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2" +# Serial: 1289 +# MD5 Fingerprint: 5e:39:7b:dd:f8:ba:ec:82:e9:ac:62:ba:0c:54:00:2b +# SHA1 Fingerprint: ca:3a:fb:cf:12:40:36:4b:44:b2:16:20:88:80:48:39:19:93:7c:f7 +# SHA256 Fingerprint: 85:a0:dd:7d:d7:20:ad:b7:ff:05:f8:3d:54:2b:20:9d:c7:ff:45:28:f7:d6:77:b1:83:89:fe:a5:e5:c4:9e:86 +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa +GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg +Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J +WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB +rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp ++ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1 +ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i +Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz +PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og +/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH +oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI +yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud +EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2 +A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL +MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f +BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn +g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl +fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K +WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha +B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc +hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR +TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD +mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z +ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y +4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza +8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3" +# Serial: 1478 +# MD5 Fingerprint: 31:85:3c:62:94:97:63:b9:aa:fd:89:4e:af:6f:e0:cf +# SHA1 Fingerprint: 1f:49:14:f7:d8:74:95:1d:dd:ae:02:c0:be:fd:3a:2d:82:75:51:85 +# SHA256 Fingerprint: 18:f1:fc:7f:20:5d:f8:ad:dd:eb:7f:e0:07:dd:57:e3:af:37:5a:9c:4d:8d:73:54:6b:f4:f1:fe:d1:e1:8d:35 +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM +V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB +4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr +H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd +8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv +vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT +mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe +btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc +T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt +WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ +c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A +4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD +VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG +CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 +aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu +dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw +czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G +A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC +TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg +Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0 +7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem +d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd ++LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B +4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN +t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x +DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57 +k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s +zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j +Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT +mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK +4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root CA" +# Serial: 17154717934120587862167794914071425081 +# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 +# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 +# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c +JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP +mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ +wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 +VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ +AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB +AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun +pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC +dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf +fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm +NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx +H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root CA" +# Serial: 10944719598952040374951832963794454346 +# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e +# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 +# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61 +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert High Assurance EV Root CA" +# Serial: 3553400076410547919724730734378100087 +# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a +# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 +# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm ++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW +PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM +xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB +Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 +hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg +EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA +FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec +nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z +eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF +hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 +Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep ++OkuE6N36B9K +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Label: "SwissSign Gold CA - G2" +# Serial: 13492815561806991280 +# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93 +# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61 +# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95 +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln +biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF +MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT +d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8 +76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+ +bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c +6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE +emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd +MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt +MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y +MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y +FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi +aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM +gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB +qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7 +lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn +8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6 +45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO +UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5 +O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC +bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv +GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a +77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC +hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3 +92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp +Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w +ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt +Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +# Issuer: CN=SecureTrust CA O=SecureTrust Corporation +# Subject: CN=SecureTrust CA O=SecureTrust Corporation +# Label: "SecureTrust CA" +# Serial: 17199774589125277788362757014266862032 +# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1 +# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11 +# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73 +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz +MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv +cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz +Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO +0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao +wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj +7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS +8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT +BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg +JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 +6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ +3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm +D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS +CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +# Issuer: CN=Secure Global CA O=SecureTrust Corporation +# Subject: CN=Secure Global CA O=SecureTrust Corporation +# Label: "Secure Global CA" +# Serial: 9751836167731051554232119481456978597 +# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de +# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b +# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69 +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx +MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg +Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ +iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa +/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ +jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI +HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 +sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w +gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw +KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG +AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L +URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO +H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm +I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY +iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO Certification Authority O=COMODO CA Limited +# Label: "COMODO Certification Authority" +# Serial: 104350513648249232941998508985834464573 +# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 +# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b +# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66 +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB +gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV +BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw +MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl +YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P +RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 +UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI +2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 +Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp ++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ +DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O +nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW +/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g +PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u +QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY +SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv +IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 +zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd +BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB +ZQ== +-----END CERTIFICATE----- + +# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Label: "COMODO ECC Certification Authority" +# Serial: 41578283867086692638256921589707938090 +# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 +# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 +# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT +IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw +MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy +ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N +T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR +FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J +cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW +BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm +fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv +GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +# Issuer: CN=Certigna O=Dhimyotis +# Subject: CN=Certigna O=Dhimyotis +# Label: "Certigna" +# Serial: 18364802974209362175 +# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff +# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97 +# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV +BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X +DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ +BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 +QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny +gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw +zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q +130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 +JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw +ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT +AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj +AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG +9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h +bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc +fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu +HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w +t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Label: "ePKI Root Certification Authority" +# Serial: 28956088682735189655030529057352760477 +# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3 +# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0 +# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5 +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw +IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL +SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH +SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh +ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X +DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 +TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ +fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA +sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU +WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS +nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH +dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip +NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC +AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF +MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB +uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl +PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP +JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ +gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 +j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 +5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB +o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS +/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z +Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE +W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D +hNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +# Issuer: O=certSIGN OU=certSIGN ROOT CA +# Subject: O=certSIGN OU=certSIGN ROOT CA +# Label: "certSIGN ROOT CA" +# Serial: 35210227249154 +# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17 +# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b +# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT +AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD +QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP +MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do +0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ +UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d +RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ +OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv +JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C +AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O +BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ +LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY +MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ +44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I +Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw +i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN +9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +# Issuer: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Subject: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Label: "NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny" +# Serial: 80544274841616 +# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88 +# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91 +# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98 +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG +EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 +MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl +cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR +dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB +pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM +b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm +aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz +IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT +lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz +AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 +VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG +ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 +BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG +AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M +U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh +bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C ++C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F +uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 +XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Label: "Microsec e-Szigno Root CA 2009" +# Serial: 14014712776195784473 +# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1 +# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e +# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78 +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD +VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 +ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G +CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y +OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx +FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp +Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP +kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc +cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U +fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 +N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC +xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 ++rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM +Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG +SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h +mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk +ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c +2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t +HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Label: "GlobalSign Root CA - R3" +# Serial: 4835703278459759426209954 +# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 +# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad +# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +# Issuer: CN=Izenpe.com O=IZENPE S.A. +# Subject: CN=Izenpe.com O=IZENPE S.A. +# Label: "Izenpe.com" +# Serial: 917563065490389241595536686991402621 +# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73 +# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19 +# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f +-----BEGIN CERTIFICATE----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4 +MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6 +ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD +VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j +b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq +scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO +xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H +LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX +uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD +yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+ +JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q +rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN +BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L +hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB +QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+ +HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu +Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg +QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB +BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA +A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb +laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56 +awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo +JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw +LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT +VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk +LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb +UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/ +QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+ +naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls +QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Label: "Go Daddy Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 +# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b +# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz +NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE +AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD +E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH +/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy +DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh +GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR +tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA +AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX +WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu +9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr +gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo +2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI +4uJEvlz36hz1 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 +# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e +# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs +ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw +MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj +aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp +Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg +nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 +HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N +Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN +dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 +HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G +CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU +sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 +4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg +8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 +mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Services Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 +# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f +# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs +ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy +ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy +dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p +OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 +8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K +Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe +hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk +6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q +AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI +bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB +ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z +qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn +0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN +sSi6 +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Commercial O=AffirmTrust +# Subject: CN=AffirmTrust Commercial O=AffirmTrust +# Label: "AffirmTrust Commercial" +# Serial: 8608355977964138876 +# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7 +# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7 +# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Networking O=AffirmTrust +# Subject: CN=AffirmTrust Networking O=AffirmTrust +# Label: "AffirmTrust Networking" +# Serial: 8957382827206547757 +# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f +# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f +# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium O=AffirmTrust +# Subject: CN=AffirmTrust Premium O=AffirmTrust +# Label: "AffirmTrust Premium" +# Serial: 7893706540734352110 +# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57 +# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27 +# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust +# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust +# Label: "AffirmTrust Premium ECC" +# Serial: 8401224907861490260 +# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d +# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb +# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23 +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC +VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ +cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ +BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt +VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D +0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 +ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G +A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs +aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I +flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA" +# Serial: 279744 +# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78 +# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e +# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM +MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D +ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU +cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 +WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg +Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw +IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH +UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM +TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU +BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM +kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x +AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y +sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL +I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 +J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY +VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Label: "TWCA Root Certification Authority" +# Serial: 1 +# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79 +# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48 +# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44 +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES +MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU +V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz +WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO +LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE +AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH +K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX +RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z +rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx +3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq +hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC +MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls +XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D +lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn +aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ +YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Label: "Security Communication RootCA2" +# Serial: 0 +# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43 +# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74 +# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl +MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe +U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX +DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy +dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj +YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV +OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr +zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM +VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ +hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO +ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw +awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs +OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 +DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF +coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc +okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 +t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy +1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ +SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Label: "Actalis Authentication Root CA" +# Serial: 6271844772424770508 +# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6 +# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac +# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66 +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE +BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w +MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC +SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 +ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv +UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX +4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 +KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ +gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb +rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ +51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F +be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe +KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F +v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn +fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 +jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz +ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL +e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 +jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz +WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V +SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j +pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX +X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok +fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R +K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU +ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU +LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT +LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 2 Root CA" +# Serial: 2 +# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29 +# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99 +# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48 +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr +6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV +L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 +1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx +MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ +QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB +arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr +Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi +FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS +P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN +9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz +uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h +9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t +OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo ++fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 +KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 +DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us +H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ +I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 +5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h +3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz +Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 3 Root CA" +# Serial: 2 +# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec +# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57 +# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y +ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E +N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 +tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX +0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c +/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X +KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY +zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS +O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D +34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP +K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv +Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj +QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS +IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 +HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa +O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv +033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u +dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE +kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 +3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD +u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq +4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 3" +# Serial: 1 +# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef +# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1 +# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN +8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ +RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 +hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 +ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM +EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 +A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy +WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ +1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 +6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT +91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p +TpPDpFQUWw== +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 2009" +# Serial: 623603 +# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f +# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0 +# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1 +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha +ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM +HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 +UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 +tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R +ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM +lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp +/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G +A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy +MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl +cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js +L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL +BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni +acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K +zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 +PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y +Johw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 EV 2009" +# Serial: 623604 +# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6 +# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83 +# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81 +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw +NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV +BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn +ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 +3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z +qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR +p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 +HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw +ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea +HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw +Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh +c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E +RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt +dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku +Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp +3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF +CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na +xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX +KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +# Issuer: CN=CA Disig Root R2 O=Disig a.s. +# Subject: CN=CA Disig Root R2 O=Disig a.s. +# Label: "CA Disig Root R2" +# Serial: 10572350602393338211 +# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03 +# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71 +# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03 +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV +BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu +MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy +MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx +EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe +NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH +PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I +x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe +QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR +yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO +QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 +H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ +QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD +i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs +nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 +rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI +hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf +GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb +lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka ++elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal +TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i +nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 +gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr +G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os +zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x +L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Label: "ACCVRAIZ1" +# Serial: 6828503384748696800 +# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02 +# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17 +# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13 +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE +AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw +CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ +BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND +VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb +qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY +HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo +G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA +lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr +IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ +0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH +k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 +4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO +m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa +cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl +uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI +KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls +ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG +AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT +VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG +CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA +cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA +QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA +7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA +cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA +QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA +czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu +aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt +aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud +DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF +BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp +D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU +JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m +AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD +vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms +tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH +7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA +h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF +d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H +pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Label: "TWCA Global Root CA" +# Serial: 3262 +# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96 +# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65 +# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx +EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT +VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 +NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT +B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF +10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz +0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh +MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH +zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc +46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 +yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi +laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP +oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA +BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE +qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm +4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL +1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF +H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo +RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ +nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh +15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW +6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW +nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j +wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz +aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy +KwbQBM0= +-----END CERTIFICATE----- + +# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Label: "TeliaSonera Root CA v1" +# Serial: 199041966741090107964904287217786801558 +# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c +# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37 +# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89 +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw +NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv +b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD +VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2 +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F +VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1 +7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X +Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+ +/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs +81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm +dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe +Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu +sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4 +pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs +slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ +arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD +VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG +9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl +dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj +TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed +Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7 +Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI +OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7 +vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW +t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn +HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx +SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 2" +# Serial: 1 +# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a +# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9 +# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52 +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd +AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC +FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi +1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq +jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ +wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ +WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy +NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC +uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw +IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 +g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP +BSeOE6Fuwg== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot 2011 O=Atos +# Subject: CN=Atos TrustedRoot 2011 O=Atos +# Label: "Atos TrustedRoot 2011" +# Serial: 6643877497813316402 +# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56 +# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21 +# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE +AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG +EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM +FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC +REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp +Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM +VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ +SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ +4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L +cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi +eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG +A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 +DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j +vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP +DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc +maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D +lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv +KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 1 G3" +# Serial: 687049649626669250736271037606554624078720034195 +# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab +# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67 +# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 +MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV +wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe +rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 +68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh +4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp +UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o +abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc +3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G +KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt +hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO +Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt +zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD +ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 +cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN +qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 +YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv +b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 +8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k +NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj +ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp +q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt +nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2 G3" +# Serial: 390156079458959257446133169266079962026824725800 +# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06 +# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36 +# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 +MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf +qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW +n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym +c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ +O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 +o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j +IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq +IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz +8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh +vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l +7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG +cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD +ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC +roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga +W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n +lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE ++V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV +csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd +dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg +KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM +HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 +WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3 G3" +# Serial: 268090761170461462463995952157327242137089239581 +# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7 +# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d +# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 +MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR +/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu +FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR +U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c +ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR +FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k +A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw +eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl +sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp +VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q +A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ +ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD +ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI +FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv +oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg +u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP +0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf +3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl +8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ +DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN +PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ +ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G2" +# Serial: 15385348160840213938643033620894905419 +# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d +# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f +# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA +n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc +biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp +EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA +bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu +YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW +BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI +QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I +0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni +lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 +B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv +ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G3" +# Serial: 15459312981008553731928384953135426796 +# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb +# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89 +# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2 +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg +RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf +Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q +RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD +AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY +JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv +6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G2" +# Serial: 4293743540046975378534879503202253541 +# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44 +# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4 +# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI +2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx +1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ +q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz +tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ +vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV +5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY +1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 +NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG +Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 +8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe +pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G3" +# Serial: 7089244469030293291760083333884364146 +# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca +# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e +# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0 +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe +Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw +EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x +IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG +fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO +Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd +BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx +AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ +oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 +sycX +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Trusted Root G4" +# Serial: 7451500558977370777930084869016614236 +# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49 +# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4 +# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88 +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg +RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y +ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If +xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV +ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO +DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ +jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ +CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi +EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM +fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY +uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK +chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t +9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 +SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd ++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc +fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa +sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N +cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N +0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie +4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI +r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 +/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm +gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ +-----END CERTIFICATE----- + +# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Label: "COMODO RSA Certification Authority" +# Serial: 101909084537582093308941363524873193117 +# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18 +# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4 +# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34 +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB +hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV +BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT +EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR +6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X +pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC +9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV +/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf +Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z ++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w +qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah +SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC +u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf +Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq +crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB +/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl +wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM +4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV +2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna +FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ +CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK +boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke +jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL +S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb +QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl +0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB +NVOFBkpdn627G190 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Label: "USERTrust RSA Certification Authority" +# Serial: 2645093764781058787591871645665788717 +# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5 +# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e +# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2 +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw +MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV +BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B +3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY +tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ +Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 +VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT +79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 +c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT +Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l +c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee +UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE +Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF +Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO +VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 +ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs +8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR +iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze +Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ +XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ +qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB +VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB +L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG +jjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Label: "USERTrust ECC Certification Authority" +# Serial: 123013823720199481456569720443997572134 +# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1 +# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0 +# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl +eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT +JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg +VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo +I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng +o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G +A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB +zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW +RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Label: "GlobalSign ECC Root CA - R5" +# Serial: 32785792099990507226680698011560947931244 +# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08 +# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa +# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24 +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc +8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke +hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI +KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg +515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO +xwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Label: "IdenTrust Commercial Root CA 1" +# Serial: 13298821034946342390520003877796839426 +# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7 +# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25 +# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu +VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw +MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw +JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT +3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU ++ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp +S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 +bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi +T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL +vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK +Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK +dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT +c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv +l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N +iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD +ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt +LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 +nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 ++wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK +W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT +AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq +l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG +4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ +mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A +7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Label: "IdenTrust Public Sector Root CA 1" +# Serial: 13298821034946342390521976156843933698 +# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba +# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd +# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu +VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN +MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 +MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 +ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy +RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS +bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF +/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R +3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw +EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy +9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V +GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ +2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV +WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD +W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN +AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV +DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 +TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G +lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW +mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df +WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 ++bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ +tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA +GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv +8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - G2" +# Serial: 1246989352 +# MD5 Fingerprint: 4b:e2:c9:91:96:65:0c:f4:0e:5a:93:92:a0:0a:fe:b2 +# SHA1 Fingerprint: 8c:f4:27:fd:79:0c:3a:d1:66:06:8d:e8:1e:57:ef:bb:93:22:72:d4 +# SHA256 Fingerprint: 43:df:57:74:b0:3e:7f:ef:5f:e4:0d:93:1a:7b:ed:f1:bb:2e:6b:42:73:8c:4e:6d:38:41:10:3d:3a:a7:f3:39 +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50 +cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs +IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz +dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy +NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu +dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt +dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0 +aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T +RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN +cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW +wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1 +U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0 +jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN +BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ +jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v +1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R +nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH +VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - EC1" +# Serial: 51543124481930649114116133369 +# MD5 Fingerprint: b6:7e:1d:f0:58:c5:49:6c:24:3b:3d:ed:98:18:ed:bc +# SHA1 Fingerprint: 20:d8:06:40:df:9b:25:f5:12:25:3a:11:ea:f7:59:8a:eb:14:b5:47 +# SHA256 Fingerprint: 02:ed:0e:b2:8c:14:da:45:16:5c:56:67:91:70:0d:64:51:d7:fb:56:f0:b2:ab:1d:3b:8e:b0:70:e5:6e:df:f5 +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG +A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3 +d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu +dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq +RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy +MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD +VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g +Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi +A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt +ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH +Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC +R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX +hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority +# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority +# Label: "CFCA EV ROOT" +# Serial: 407555286 +# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30 +# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83 +# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD +TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y +aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx +MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j +aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP +T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 +sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL +TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 +/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp +7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz +EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt +hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP +a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot +aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg +TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV +PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv +cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL +tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd +BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT +ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL +jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS +ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy +P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 +xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d +Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN +5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe +/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z +AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ +5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GB CA" +# Serial: 157768595616588414422159278966750757568 +# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d +# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed +# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6 +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt +MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg +Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i +YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x +CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG +b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 +HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx +WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX +1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk +u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P +99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r +M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB +BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh +cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 +gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO +ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf +aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Label: "SZAFIR ROOT CA2" +# Serial: 357043034767186914217277344587386743377558296292 +# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99 +# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de +# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6 +ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw +NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L +cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg +Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN +QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT +3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw +3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 +3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5 +BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN +XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF +AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw +8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG +nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP +oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy +d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg +LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA 2" +# Serial: 44979900017204383099463764357512596969 +# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2 +# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92 +# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04 +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB +gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu +QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG +A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz +OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ +VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3 +b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA +DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn +0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB +OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE +fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E +Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m +o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i +sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW +OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez +Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS +adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n +3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ +F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf +CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29 +XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm +djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/ +WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb +AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq +P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko +b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj +XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P +5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi +DrW5viSP +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce +# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6 +# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36 +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix +DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k +IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT +N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v +dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG +A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh +ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx +QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 +dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA +4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0 +AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10 +4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C +ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV +9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD +gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6 +Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq +NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko +LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd +ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I +XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI +M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot +9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V +Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea +j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh +X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ +l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf +bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4 +pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK +e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 +vm9qp/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions ECC RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef +# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66 +# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33 +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN +BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl +bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv +b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ +BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj +YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5 +MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0 +dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg +QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa +jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi +C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep +lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof +TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +# Issuer: CN=ISRG Root X1 O=Internet Security Research Group +# Subject: CN=ISRG Root X1 O=Internet Security Research Group +# Label: "ISRG Root X1" +# Serial: 172886928669790476064670243504169061120 +# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e +# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8 +# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 +WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu +ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc +h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ +0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U +A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW +T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH +B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC +B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv +KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn +OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn +jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw +qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI +rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq +hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ +3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK +NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 +ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur +TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC +jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc +oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq +4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA +mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d +emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Label: "AC RAIZ FNMT-RCM" +# Serial: 485876308206448804701554682760554759 +# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d +# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20 +# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx +CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ +WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ +BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG +Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ +yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf +BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz +WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF +tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z +374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC +IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL +mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 +wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS +MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 +ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet +UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H +YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 +LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 +RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM +LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf +77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N +JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm +fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp +6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp +1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B +9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok +RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv +uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 1 O=Amazon +# Subject: CN=Amazon Root CA 1 O=Amazon +# Label: "Amazon Root CA 1" +# Serial: 143266978916655856878034712317230054538369994 +# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6 +# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16 +# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj +ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM +9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw +IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 +VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L +93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm +jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA +A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI +U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs +N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv +o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU +5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy +rqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 2 O=Amazon +# Subject: CN=Amazon Root CA 2 O=Amazon +# Label: "Amazon Root CA 2" +# Serial: 143266982885963551818349160658925006970653239 +# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66 +# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a +# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4 +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK +gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ +W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg +1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K +8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r +2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me +z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR +8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj +mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz +7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6 ++XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI +0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm +UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 +LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS +k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl +7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm +btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl +urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+ +fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63 +n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE +76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H +9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT +4PsJYGw= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 3 O=Amazon +# Subject: CN=Amazon Root CA 3 O=Amazon +# Label: "Amazon Root CA 3" +# Serial: 143266986699090766294700635381230934788665930 +# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87 +# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e +# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4 +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl +ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr +ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr +BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM +YyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 4 O=Amazon +# Subject: CN=Amazon Root CA 4 O=Amazon +# Label: "Amazon Root CA 4" +# Serial: 143266989758080763974105200630763877849284878 +# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd +# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be +# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92 +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi +9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk +M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB +MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw +CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW +1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Label: "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +# Serial: 1 +# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49 +# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca +# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16 +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx +GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp +bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w +KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0 +BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy +dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG +EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll +IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU +QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT +TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg +LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7 +a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr +LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr +N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X +YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/ +iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f +AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH +V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf +IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4 +lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c +8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf +lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Label: "GDCA TrustAUTH R5 ROOT" +# Serial: 9009899650740120186 +# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4 +# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4 +# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93 +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE +BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0 +MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV +BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w +HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj +Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj +TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u +KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj +qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm +MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12 +ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP +zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk +L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC +jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA +HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC +AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm +DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5 +COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry +L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf +JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg +IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io +2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV +09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ +XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq +T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe +MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Label: "SSL.com Root Certification Authority RSA" +# Serial: 8875640296558310041 +# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29 +# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb +# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69 +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE +BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK +DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz +OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R +xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX +qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC +C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3 +6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh +/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF +YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E +JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc +US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8 +ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm ++Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi +M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV +cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc +Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs +PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/ +q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0 +cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr +a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I +H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y +K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu +nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf +oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY +Ic2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com Root Certification Authority ECC" +# Serial: 8495723813297216424 +# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e +# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a +# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65 +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz +WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0 +b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS +b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI +7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg +CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD +VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T +kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+ +gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority RSA R2" +# Serial: 6248227494352943350 +# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95 +# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a +# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV +BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE +CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy +MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G +A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD +DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq +M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf +OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa +4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9 +HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR +aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA +b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ +Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV +PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO +pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu +UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY +MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4 +9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW +s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5 +Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg +cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM +79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz +/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt +ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm +Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK +QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ +w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi +S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07 +mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority ECC" +# Serial: 3182246526754555285 +# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90 +# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d +# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8 +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx +NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv +bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA +VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku +WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP +MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX +5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ +ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg +h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 +# Label: "GlobalSign Root CA - R6" +# Serial: 1417766617973444989252670301619537 +# MD5 Fingerprint: 4f:dd:07:e4:d4:22:64:39:1e:0c:37:42:ea:d1:c6:ae +# SHA1 Fingerprint: 80:94:64:0e:b5:a7:a1:ca:11:9c:1f:dd:d5:9f:81:02:63:a7:fb:d1 +# SHA256 Fingerprint: 2c:ab:ea:fe:37:d0:6c:a2:2a:ba:73:91:c0:03:3d:25:98:29:52:c4:53:64:73:49:76:3a:3a:b5:ad:6c:cf:69 +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg +MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx +MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET +MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI +xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k +ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD +aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw +LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw +1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX +k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2 +SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h +bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n +WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY +rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce +MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu +bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt +Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61 +55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj +vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf +cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz +oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp +nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs +pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v +JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R +8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4 +5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GC CA" +# Serial: 44084345621038548146064804565436152554 +# MD5 Fingerprint: a9:d6:b9:2d:2f:93:64:f8:a5:69:ca:91:e9:68:07:23 +# SHA1 Fingerprint: e0:11:84:5e:34:de:be:88:81:b9:9c:f6:16:26:d1:96:1f:c3:b9:31 +# SHA256 Fingerprint: 85:60:f9:1c:36:24:da:ba:95:70:b5:fe:a0:db:e3:6f:f1:1a:83:23:be:94:86:85:4f:b3:f3:4a:55:71:19:8d +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw +CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91 +bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg +Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ +BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu +ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS +b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni +eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W +p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T +rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV +57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg +Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +# Issuer: CN=UCA Global G2 Root O=UniTrust +# Subject: CN=UCA Global G2 Root O=UniTrust +# Label: "UCA Global G2 Root" +# Serial: 124779693093741543919145257850076631279 +# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8 +# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a +# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9 +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH +bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x +CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds +b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr +b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9 +kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm +VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R +VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc +C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj +tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY +D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv +j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl +NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6 +iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP +O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/ +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV +ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj +L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl +1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU +b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV +PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj +y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb +EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg +DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI ++Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy +YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX +UB+K+wb1whnw0A== +-----END CERTIFICATE----- + +# Issuer: CN=UCA Extended Validation Root O=UniTrust +# Subject: CN=UCA Extended Validation Root O=UniTrust +# Label: "UCA Extended Validation Root" +# Serial: 106100277556486529736699587978573607008 +# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2 +# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a +# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF +eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx +MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV +BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog +D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS +sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop +O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk +sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi +c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj +VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz +KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/ +TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G +sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs +1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD +fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN +l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ +VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5 +c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp +4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s +t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj +2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO +vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C +xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx +cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM +fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax +-----END CERTIFICATE----- + +# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 +# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 +# Label: "Certigna Root CA" +# Serial: 269714418870597844693661054334862075617 +# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77 +# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43 +# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68 +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw +WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw +MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x +MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD +VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX +BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO +ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M +CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu +I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm +TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh +C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf +ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz +IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT +Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k +JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5 +hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB +GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov +L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo +dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr +aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq +hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L +6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG +HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6 +0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB +lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi +o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1 +gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v +faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63 +Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh +jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw +3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +# Issuer: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI +# Subject: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI +# Label: "emSign Root CA - G1" +# Serial: 235931866688319308814040 +# MD5 Fingerprint: 9c:42:84:57:dd:cb:0b:a7:2e:95:ad:b6:f3:da:bc:ac +# SHA1 Fingerprint: 8a:c7:ad:8f:73:ac:4e:c1:b5:75:4d:a5:40:f4:fc:cf:7c:b5:8e:8c +# SHA256 Fingerprint: 40:f6:af:03:46:a9:9a:a1:cd:1d:55:5a:4e:9c:ce:62:c7:f9:63:46:03:ee:40:66:15:83:3d:c8:c8:d0:03:67 +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD +VQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU +ZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH +MTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO +MRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv +Z2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz +f2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO +8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq +d7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM +tTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt +Od9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB +o0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD +AgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x +PaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM +wiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d +GNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH +6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby +RQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +# Issuer: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI +# Subject: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI +# Label: "emSign ECC Root CA - G3" +# Serial: 287880440101571086945156 +# MD5 Fingerprint: ce:0b:72:d1:9f:88:8e:d0:50:03:e8:e3:b8:8b:67:40 +# SHA1 Fingerprint: 30:43:fa:4f:f2:57:dc:a0:c3:80:ee:2e:58:ea:78:b2:3f:e6:bb:c1 +# SHA256 Fingerprint: 86:a1:ec:ba:08:9c:4a:8d:3b:be:27:34:c6:12:ba:34:1d:81:3e:04:3c:f9:e8:a8:62:cd:5c:57:a3:6b:be:6b +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG +EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo +bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ +TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s +b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0 +WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS +fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB +zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq +hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB +CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD ++JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +# Issuer: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI +# Subject: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI +# Label: "emSign Root CA - C1" +# Serial: 825510296613316004955058 +# MD5 Fingerprint: d8:e3:5d:01:21:fa:78:5a:b0:df:ba:d2:ee:2a:5f:68 +# SHA1 Fingerprint: e7:2e:f1:df:fc:b2:09:28:cf:5d:d4:d5:67:37:b1:51:cb:86:4f:01 +# SHA256 Fingerprint: 12:56:09:aa:30:1d:a0:a2:49:b9:7a:82:39:cb:6a:34:21:6f:44:dc:ac:9f:39:54:b1:42:92:f2:e8:c8:60:8f +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG +A1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg +SW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw +MFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln +biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v +dCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ +BczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ +HdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH +3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH +GPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c +xSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1 +aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq +TbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87 +/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4 +kqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG +YQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT ++xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo +WXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +# Issuer: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI +# Subject: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI +# Label: "emSign ECC Root CA - C3" +# Serial: 582948710642506000014504 +# MD5 Fingerprint: 3e:53:b3:a3:81:ee:d7:10:f8:d3:b0:1d:17:92:f5:d5 +# SHA1 Fingerprint: b6:af:43:c2:9b:81:53:7d:f6:ef:6b:c3:1f:1f:60:15:0c:ee:48:66 +# SHA256 Fingerprint: bc:4d:80:9b:15:18:9d:78:db:3e:1d:8c:f4:f9:72:6a:79:5d:a1:64:3c:a5:f1:35:8e:1d:db:0e:dc:0d:7e:b3 +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG +EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx +IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw +MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln +biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND +IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci +MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti +sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O +BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB +Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c +3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J +0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +# Issuer: CN=Hongkong Post Root CA 3 O=Hongkong Post +# Subject: CN=Hongkong Post Root CA 3 O=Hongkong Post +# Label: "Hongkong Post Root CA 3" +# Serial: 46170865288971385588281144162979347873371282084 +# MD5 Fingerprint: 11:fc:9f:bd:73:30:02:8a:fd:3f:f3:58:b9:cb:20:f0 +# SHA1 Fingerprint: 58:a2:d0:ec:20:52:81:5b:c1:f3:f8:64:02:24:4e:c2:8e:02:4b:02 +# SHA256 Fingerprint: 5a:2f:c0:3f:0c:83:b0:90:bb:fa:40:60:4b:09:88:44:6c:76:36:18:3d:f9:84:6e:17:10:1a:44:7f:b8:ef:d6 +-----BEGIN CERTIFICATE----- +MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQEL +BQAwbzELMAkGA1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJ +SG9uZyBLb25nMRYwFAYDVQQKEw1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25n +a29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2MDMwMjI5NDZaFw00MjA2MDMwMjI5 +NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtvbmcxEjAQBgNVBAcT +CUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMXSG9u +Z2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCziNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFO +dem1p+/l6TWZ5Mwc50tfjTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mI +VoBc+L0sPOFMV4i707mV78vH9toxdCim5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV +9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOesL4jpNrcyCse2m5FHomY +2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj0mRiikKY +vLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+Tt +bNe/JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZb +x39ri1UbSsUgYT2uy1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+ +l2oBlKN8W4UdKjk60FSh0Tlxnf0h+bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YK +TE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsGxVd7GYYKecsAyVKvQv83j+Gj +Hno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwIDAQABo2MwYTAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e +i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEw +DQYJKoZIhvcNAQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG +7BJ8dNVI0lkUmcDrudHr9EgwW62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCk +MpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWldy8joRTnU+kLBEUx3XZL7av9YROXr +gZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov+BS5gLNdTaqX4fnk +GMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDceqFS +3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJm +Ozj/2ZQw9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+ +l6mc1X5VTMbeRRAc6uk7nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6c +JfTzPV4e0hz5sy229zdcxsshTrD3mUcYhcErulWuBurQB7Lcq9CClnXO0lD+mefP +L5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB60PZ2Pierc+xYw5F9KBa +LJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fqdBb9HxEG +mpv0 +-----END CERTIFICATE----- + +# Issuer: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation +# Subject: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation +# Label: "Microsoft ECC Root Certificate Authority 2017" +# Serial: 136839042543790627607696632466672567020 +# MD5 Fingerprint: dd:a1:03:e6:4a:93:10:d1:bf:f0:19:42:cb:fe:ed:67 +# SHA1 Fingerprint: 99:9a:64:c3:7f:f4:7d:9f:ab:95:f1:47:69:89:14:60:ee:c4:c3:c5 +# SHA256 Fingerprint: 35:8d:f3:9d:76:4a:f9:e1:b7:66:e9:c9:72:df:35:2e:e1:5c:fa:c2:27:af:6a:d1:d7:0e:8e:4a:6e:dc:ba:02 +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD +VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw +MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy +b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR +ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb +hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3 +FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV +L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB +iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +# Issuer: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation +# Subject: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation +# Label: "Microsoft RSA Root Certificate Authority 2017" +# Serial: 40975477897264996090493496164228220339 +# MD5 Fingerprint: 10:ff:00:ff:cf:c9:f8:c7:7a:c0:ee:35:8e:c9:0f:47 +# SHA1 Fingerprint: 73:a5:e6:4a:3b:ff:83:16:ff:0e:dc:cc:61:8a:90:6e:4e:ae:4d:74 +# SHA256 Fingerprint: c7:41:f7:0f:4b:2a:8d:88:bf:2e:71:c1:41:22:ef:53:ef:10:eb:a0:cf:a5:e6:4c:fa:20:f4:18:85:30:73:e0 +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl +MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N +aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ +Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0 +ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1 +HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm +gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ +jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc +aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG +YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6 +W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K +UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH ++FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q +W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC +LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC +gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6 +tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh +SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2 +TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3 +pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR +xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp +GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9 +dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN +AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB +RA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +# Issuer: CN=e-Szigno Root CA 2017 O=Microsec Ltd. +# Subject: CN=e-Szigno Root CA 2017 O=Microsec Ltd. +# Label: "e-Szigno Root CA 2017" +# Serial: 411379200276854331539784714 +# MD5 Fingerprint: de:1f:f6:9e:84:ae:a7:b4:21:ce:1e:58:7d:d1:84:98 +# SHA1 Fingerprint: 89:d4:83:03:4f:9e:9a:48:80:5f:72:37:d4:a9:a6:ef:cb:7c:1f:d1 +# SHA256 Fingerprint: be:b0:0b:30:83:9b:9b:c3:2c:32:e4:44:79:05:95:06:41:f2:64:21:b1:5e:d0:89:19:8b:51:8a:e2:ea:1b:99 +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV +BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk +LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv +b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ +BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg +THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v +IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv +xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H +Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB +eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo +jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ ++efcMQ== +-----END CERTIFICATE----- + +# Issuer: O=CERTSIGN SA OU=certSIGN ROOT CA G2 +# Subject: O=CERTSIGN SA OU=certSIGN ROOT CA G2 +# Label: "certSIGN Root CA G2" +# Serial: 313609486401300475190 +# MD5 Fingerprint: 8c:f1:75:8a:c6:19:cf:94:b7:f7:65:20:87:c3:97:c7 +# SHA1 Fingerprint: 26:f9:93:b4:ed:3d:28:27:b0:b9:4b:a7:e9:15:1d:a3:8d:92:e5:32 +# SHA256 Fingerprint: 65:7c:fe:2f:a7:3f:aa:38:46:25:71:f3:32:a2:36:3a:46:fc:e7:02:09:51:71:07:02:cd:fb:b6:ee:da:33:05 +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV +BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g +Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ +BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ +R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF +dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw +vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ +uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp +n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs +cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW +xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P +rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF +DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx +DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy +LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C +eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ +d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq +kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl +qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0 +OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c +NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk +ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO +pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj +03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk +PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE +1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX +QRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global Certification Authority" +# Serial: 1846098327275375458322922162 +# MD5 Fingerprint: f8:1c:18:2d:2f:ba:5f:6d:a1:6c:bc:c7:ab:91:c7:0e +# SHA1 Fingerprint: 2f:8f:36:4f:e1:58:97:44:21:59:87:a5:2a:9a:d0:69:95:26:7f:b5 +# SHA256 Fingerprint: 97:55:20:15:f5:dd:fc:3c:87:88:c0:06:94:45:55:40:88:94:45:00:84:f1:00:86:70:86:bc:1a:2b:b5:8d:c8 +-----BEGIN CERTIFICATE----- +MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw +CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x +ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1 +c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx +OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI +SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn +swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu +7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8 +1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW +80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP +JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l +RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw +hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10 +coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc +BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n +twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud +DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W +0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe +uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q +lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB +aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE +sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT +MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe +qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh +VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8 +h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9 +EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK +yeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global ECC P256 Certification Authority" +# Serial: 4151900041497450638097112925 +# MD5 Fingerprint: 5b:44:e3:8d:5d:36:86:26:e8:0d:05:d2:59:a7:83:54 +# SHA1 Fingerprint: b4:90:82:dd:45:0c:be:8b:5b:b1:66:d3:e2:a4:08:26:cd:ed:42:cf +# SHA256 Fingerprint: 94:5b:bc:82:5e:a5:54:f4:89:d1:fd:51:a7:3d:df:2e:a6:24:ac:70:19:a0:52:05:22:5c:22:a7:8c:cf:a8:b4 +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf +BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 +YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x +NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G +A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 +d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF +Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN +FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w +DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw +CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh +DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global ECC P384 Certification Authority" +# Serial: 2704997926503831671788816187 +# MD5 Fingerprint: ea:cf:60:c4:3b:b9:15:29:40:a1:97:ed:78:27:93:d6 +# SHA1 Fingerprint: e7:f3:a3:c8:cf:6f:c3:04:2e:6d:0e:67:32:c5:9e:68:95:0d:5e:d2 +# SHA256 Fingerprint: 55:90:38:59:c8:c0:c3:eb:b8:75:9e:ce:4e:25:57:22:5f:f5:75:8b:bd:38:eb:d4:82:76:60:1e:1b:d5:80:97 +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf +BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 +YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x +NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G +A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 +d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF +Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB +BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ +j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF +1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G +A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3 +AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC +MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu +Sw== +-----END CERTIFICATE----- + +# Issuer: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. +# Subject: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. +# Label: "NAVER Global Root Certification Authority" +# Serial: 9013692873798656336226253319739695165984492813 +# MD5 Fingerprint: c8:7e:41:f6:25:3b:f5:09:b3:17:e8:46:3d:bf:d0:9b +# SHA1 Fingerprint: 8f:6b:f2:a9:27:4a:da:14:a0:c4:f4:8e:61:27:f9:c0:1e:78:5d:d1 +# SHA256 Fingerprint: 88:f4:38:dc:f8:ff:d1:fa:8f:42:91:15:ff:e5:f8:2a:e1:e0:6e:0c:70:c3:75:fa:ad:71:7b:34:a4:9e:72:65 +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM +BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG +T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx +CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD +b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA +iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH +38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE +HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz +kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP +szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq +vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf +nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG +YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo +0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a +CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K +AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I +36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN +qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj +cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm ++LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL +hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe +lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7 +p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8 +piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR +LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX +5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO +dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul +9XXeifdy +-----END CERTIFICATE----- + +# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres +# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres +# Label: "AC RAIZ FNMT-RCM SERVIDORES SEGUROS" +# Serial: 131542671362353147877283741781055151509 +# MD5 Fingerprint: 19:36:9c:52:03:2f:d2:d1:bb:23:cc:dd:1e:12:55:bb +# SHA1 Fingerprint: 62:ff:d9:9e:c0:65:0d:03:ce:75:93:d2:ed:3f:2d:32:c9:e3:e5:4a +# SHA256 Fingerprint: 55:41:53:b1:3d:2c:f9:dd:b7:53:bf:be:1a:4e:0a:e0:8d:0a:a4:18:70:58:fe:60:a2:b8:62:b2:e4:b8:7b:cb +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw +CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw +FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S +Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 +MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL +DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS +QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH +sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK +Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu +SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC +MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy +v+c= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign Root R46 O=GlobalSign nv-sa +# Subject: CN=GlobalSign Root R46 O=GlobalSign nv-sa +# Label: "GlobalSign Root R46" +# Serial: 1552617688466950547958867513931858518042577 +# MD5 Fingerprint: c4:14:30:e4:fa:66:43:94:2a:6a:1b:24:5f:19:d0:ef +# SHA1 Fingerprint: 53:a2:b0:4b:ca:6b:d6:45:e6:39:8a:8e:c4:0d:d2:bf:77:c3:a2:90 +# SHA256 Fingerprint: 4f:a3:12:6d:8d:3a:11:d1:c4:85:5a:4f:80:7c:ba:d6:cf:91:9d:3a:5a:88:b0:3b:ea:2c:63:72:d9:3c:40:c9 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA +MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD +VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy +MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt +c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ +OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG +vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud +316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo +0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE +y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF +zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE ++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN +I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs +x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa +ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC +4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 +7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti +2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk +pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF +FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt +rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk +ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 +u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP +4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 +N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 +vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6 +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign Root E46 O=GlobalSign nv-sa +# Subject: CN=GlobalSign Root E46 O=GlobalSign nv-sa +# Label: "GlobalSign Root E46" +# Serial: 1552617690338932563915843282459653771421763 +# MD5 Fingerprint: b5:b8:66:ed:de:08:83:e3:c9:e2:01:34:06:ac:51:6f +# SHA1 Fingerprint: 39:b4:6c:d5:fe:80:06:eb:e2:2f:4a:bb:08:33:a0:af:db:b9:dd:84 +# SHA256 Fingerprint: cb:b9:c4:4d:84:b8:04:3e:10:50:ea:31:a6:9f:51:49:55:d7:bf:d2:e2:c6:b4:93:01:01:9a:d6:1d:9f:50:58 +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx +CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD +ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw +MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex +HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq +R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd +yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ +7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 ++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +# Issuer: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz +# Subject: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz +# Label: "ANF Secure Server Root CA" +# Serial: 996390341000653745 +# MD5 Fingerprint: 26:a6:44:5a:d9:af:4e:2f:b2:1d:b6:65:b0:4e:e8:96 +# SHA1 Fingerprint: 5b:6e:68:d0:cc:15:b6:a0:5f:1e:c1:5f:ae:02:fc:6b:2f:5d:6f:74 +# SHA256 Fingerprint: fb:8f:ec:75:91:69:b9:10:6b:1e:51:16:44:c6:18:c5:13:04:37:3f:6c:06:43:08:8d:8b:ef:fd:1b:99:75:99 +-----BEGIN CERTIFICATE----- +MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNV +BAUTCUc2MzI4NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlk +YWQgZGUgQ2VydGlmaWNhY2lvbjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNV +BAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3QgQ0EwHhcNMTkwOTA0MTAwMDM4WhcN +MzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEwMQswCQYDVQQGEwJF +UzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQwEgYD +VQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9v +dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCj +cqQZAZ2cC4Ffc0m6p6zzBE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9q +yGFOtibBTI3/TO80sh9l2Ll49a2pcbnvT1gdpd50IJeh7WhM3pIXS7yr/2WanvtH +2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcvB2VSAKduyK9o7PQUlrZX +H1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXsezx76W0OL +zc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyR +p1RMVwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQz +W7i1o0TJrH93PB0j7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/ +SiOL9V8BY9KHcyi1Swr1+KuCLH5zJTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJn +LNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe8TZBAQIvfXOn3kLMTOmJDVb3 +n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVOHj1tyRRM4y5B +u8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj +o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC +AgEATh65isagmD9uw2nAalxJUqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L +9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzxj6ptBZNscsdW699QIyjlRRA96Gej +rw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDtdD+4E5UGUcjohybK +pFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM5gf0 +vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjq +OknkJjCb5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ +/zo1PqVUSlJZS2Db7v54EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ9 +2zg/LFis6ELhDtjTO0wugumDLmsx2d1Hhk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI ++PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGyg77FGr8H6lnco4g175x2 +MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3r5+qPeoo +tt7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw= +-----END CERTIFICATE----- + +# Issuer: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Subject: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Label: "Certum EC-384 CA" +# Serial: 160250656287871593594747141429395092468 +# MD5 Fingerprint: b6:65:b3:96:60:97:12:a1:ec:4e:e1:3d:a3:c6:c9:f1 +# SHA1 Fingerprint: f3:3e:78:3c:ac:df:f4:a2:cc:ac:67:55:69:56:d7:e5:16:3c:e1:ed +# SHA256 Fingerprint: 6b:32:80:85:62:53:18:aa:50:d1:73:c9:8d:8b:da:09:d5:7e:27:41:3d:11:4c:f7:87:a0:f5:d0:6c:03:0c:f6 +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw +CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw +JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT +EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 +WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT +LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX +BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE +KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm +Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 +EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J +UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn +nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Root CA" +# Serial: 40870380103424195783807378461123655149 +# MD5 Fingerprint: 51:e1:c2:e7:fe:4c:84:af:59:0e:2f:f4:54:6f:ea:29 +# SHA1 Fingerprint: c8:83:44:c0:18:ae:9f:cc:f1:87:b7:8f:22:d1:c5:d7:45:84:ba:e5 +# SHA256 Fingerprint: fe:76:96:57:38:55:77:3e:37:a9:5e:7a:d4:d9:cc:96:c3:01:57:c1:5d:31:76:5b:a9:b1:57:04:e1:ae:78:fd +-----BEGIN CERTIFICATE----- +MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6 +MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu +MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV +BAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw +MzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg +U3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ +n0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q +p1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq +NwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF +8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3 +HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa +mqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi +7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF +ytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P +qafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ +v3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6 +Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1 +vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD +ggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4 +WxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo +zMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR +5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ +GfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf +5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq +0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D +P78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM +qJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP +0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf +E2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb +-----END CERTIFICATE----- + +# Issuer: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique +# Subject: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique +# Label: "TunTrust Root CA" +# Serial: 108534058042236574382096126452369648152337120275 +# MD5 Fingerprint: 85:13:b9:90:5b:36:5c:b6:5e:b8:5a:f8:e0:31:57:b4 +# SHA1 Fingerprint: cf:e9:70:84:0f:e0:73:0f:9d:f6:0c:7f:2c:4b:ee:20:46:34:9c:bb +# SHA256 Fingerprint: 2e:44:10:2a:b5:8c:b8:54:19:45:1c:8e:19:d9:ac:f3:66:2c:af:bc:61:4b:6a:53:96:0a:30:f7:d0:e2:eb:41 +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL +BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg +Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv +b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG +EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u +IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ +n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd +2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF +VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ +GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF +li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU +r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2 +eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb +MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg +jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB +7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW +5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE +ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z +xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu +QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4 +FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH +22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP +xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn +dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5 +Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b +nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ +CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH +u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj +d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + +# Issuer: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Subject: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Label: "HARICA TLS RSA Root CA 2021" +# Serial: 76817823531813593706434026085292783742 +# MD5 Fingerprint: 65:47:9b:58:86:dd:2c:f0:fc:a2:84:1f:1e:96:c4:91 +# SHA1 Fingerprint: 02:2d:05:82:fa:88:ce:14:0c:06:79:de:7f:14:10:e9:45:d7:a5:6d +# SHA256 Fingerprint: d9:5d:0e:8e:da:79:52:5b:f9:be:b1:1b:14:d2:10:0d:32:94:98:5f:0c:62:d9:fa:bd:9c:d9:99:ec:cb:7b:1d +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs +MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg +Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL +MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l +mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE +4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv +a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M +pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw +Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b +LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY +AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB +AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq +E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr +W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ +CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU +X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3 +f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja +H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP +JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P +zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt +jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0 +/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT +BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79 +aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW +xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU +63ZTGI0RmLo= +-----END CERTIFICATE----- + +# Issuer: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Subject: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Label: "HARICA TLS ECC Root CA 2021" +# Serial: 137515985548005187474074462014555733966 +# MD5 Fingerprint: ae:f7:4c:e5:66:35:d1:b7:9b:8c:22:93:74:d3:4b:b0 +# SHA1 Fingerprint: bc:b0:c1:9d:e9:98:92:70:19:38:57:e9:8d:a7:b4:5d:6e:ee:01:48 +# SHA256 Fingerprint: 3f:99:cc:47:4a:cf:ce:4d:fe:d5:87:94:66:5e:47:8d:15:47:73:9f:2e:78:0f:1b:b4:ca:9b:13:30:97:d4:01 +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw +CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh +cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v +dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG +A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7 +KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y +STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD +AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw +SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN +nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# Serial: 1977337328857672817 +# MD5 Fingerprint: 4e:6e:9b:54:4c:ca:b7:fa:48:e4:90:b1:15:4b:1c:a3 +# SHA1 Fingerprint: 0b:be:c2:27:22:49:cb:39:aa:db:35:5c:53:e3:8c:ae:78:ff:b6:fe +# SHA256 Fingerprint: 57:de:05:83:ef:d2:b2:6e:03:61:da:99:da:9d:f4:64:8d:ef:7e:e8:44:1c:3b:72:8a:fa:9b:cd:e0:f9:b2:6a +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 +MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc +tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd +IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC +AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw +ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m +iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF +Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ +hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P +Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE +EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV +1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t +CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR +5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw +f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 +ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK +GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +# Issuer: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. +# Subject: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. +# Label: "vTrus ECC Root CA" +# Serial: 630369271402956006249506845124680065938238527194 +# MD5 Fingerprint: de:4b:c1:f5:52:8c:9b:43:e1:3e:8f:55:54:17:8d:85 +# SHA1 Fingerprint: f6:9c:db:b0:fc:f6:02:13:b6:52:32:a6:a3:91:3f:16:70:da:c3:e1 +# SHA256 Fingerprint: 30:fb:ba:2c:32:23:8e:2a:98:54:7a:f9:79:31:e5:50:42:8b:9b:3f:1c:8e:eb:66:33:dc:fa:86:c5:b2:7d:d3 +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw +RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY +BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz +MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u +LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0 +v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd +e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw +V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA +AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG +GJTO +-----END CERTIFICATE----- + +# Issuer: CN=vTrus Root CA O=iTrusChina Co.,Ltd. +# Subject: CN=vTrus Root CA O=iTrusChina Co.,Ltd. +# Label: "vTrus Root CA" +# Serial: 387574501246983434957692974888460947164905180485 +# MD5 Fingerprint: b8:c9:37:df:fa:6b:31:84:64:c5:ea:11:6a:1b:75:fc +# SHA1 Fingerprint: 84:1a:69:fb:f5:cd:1a:25:34:13:3d:e3:f8:fc:b8:99:d0:c9:14:b7 +# SHA256 Fingerprint: 8a:71:de:65:59:33:6f:42:6c:26:e5:38:80:d0:0d:88:a1:8d:a4:c6:a9:1f:0d:cb:61:94:e2:06:c5:c9:63:87 +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL +BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x +FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx +MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s +THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc +IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU +AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+ +GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9 +8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH +flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt +J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim +0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN +pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ +UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW +OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB +AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet +8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j +bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM +Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv +TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS +S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr +I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9 +b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB +UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P +Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven +sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s= +-----END CERTIFICATE----- + +# Issuer: CN=ISRG Root X2 O=Internet Security Research Group +# Subject: CN=ISRG Root X2 O=Internet Security Research Group +# Label: "ISRG Root X2" +# Serial: 87493402998870891108772069816698636114 +# MD5 Fingerprint: d3:9e:c4:1e:23:3c:a6:df:cf:a3:7e:6d:e0:14:e6:e5 +# SHA1 Fingerprint: bd:b1:b9:3c:d5:97:8d:45:c6:26:14:55:f8:db:95:c7:5a:d1:53:af +# SHA256 Fingerprint: 69:72:9b:8e:15:a8:6e:fc:17:7a:57:af:b7:17:1d:fc:64:ad:d2:8c:2f:ca:8c:f1:50:7e:34:45:3c:cb:14:70 +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw +CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg +R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 +MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT +ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW ++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 +ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI +zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW +tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 +/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +# Issuer: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. +# Subject: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. +# Label: "HiPKI Root CA - G1" +# Serial: 60966262342023497858655262305426234976 +# MD5 Fingerprint: 69:45:df:16:65:4b:e8:68:9a:8f:76:5f:ff:80:9e:d3 +# SHA1 Fingerprint: 6a:92:e4:a8:ee:1b:ec:96:45:37:e3:29:57:49:cd:96:e3:e5:d2:60 +# SHA256 Fingerprint: f0:15:ce:3c:c2:39:bf:ef:06:4b:e9:f1:d2:c4:17:e1:a0:26:4a:0a:94:be:1f:0c:8d:12:18:64:eb:69:49:cc +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa +Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3 +YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw +qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv +Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6 +lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz +Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ +KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK +FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj +HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr +y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ +/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM +a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6 +fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc +SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza +ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc +XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg +iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho +L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF +Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr +kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+ +vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU +YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Label: "GlobalSign ECC Root CA - R4" +# Serial: 159662223612894884239637590694 +# MD5 Fingerprint: 26:29:f8:6d:e1:88:bf:a2:65:7f:aa:c4:cd:0f:7f:fc +# SHA1 Fingerprint: 6b:a0:b0:98:e1:71:ef:5a:ad:fe:48:15:80:77:10:f4:bd:6f:0b:28 +# SHA256 Fingerprint: b0:85:d7:0b:96:4f:19:1a:73:e4:af:0d:54:ae:7a:0e:07:aa:fd:af:9b:71:dd:08:62:13:8a:b7:32:5a:24:a2 +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD +VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw +MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g +UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx +uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV +HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ ++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 +bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R1 O=Google Trust Services LLC +# Subject: CN=GTS Root R1 O=Google Trust Services LLC +# Label: "GTS Root R1" +# Serial: 159662320309726417404178440727 +# MD5 Fingerprint: 05:fe:d0:bf:71:a8:a3:76:63:da:01:e0:d8:52:dc:40 +# SHA1 Fingerprint: e5:8c:1c:c4:91:3b:38:63:4b:e9:10:6e:e3:ad:8e:6b:9d:d9:81:4a +# SHA256 Fingerprint: d9:47:43:2a:bd:e7:b7:fa:90:fc:2e:6b:59:10:1b:12:80:e0:e1:c7:e4:e4:0f:a3:c6:88:7f:ff:57:a7:f4:cf +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo +27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w +Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw +TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl +qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH +szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 +Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk +MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p +aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN +VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb +C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy +h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 +7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J +ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef +MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ +Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT +6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ +0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm +2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb +bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R2 O=Google Trust Services LLC +# Subject: CN=GTS Root R2 O=Google Trust Services LLC +# Label: "GTS Root R2" +# Serial: 159662449406622349769042896298 +# MD5 Fingerprint: 1e:39:c0:53:e6:1e:29:82:0b:ca:52:55:36:5d:57:dc +# SHA1 Fingerprint: 9a:44:49:76:32:db:de:fa:d0:bc:fb:5a:7b:17:bd:9e:56:09:24:94 +# SHA256 Fingerprint: 8d:25:cd:97:22:9d:bf:70:35:6b:da:4e:b3:cc:73:40:31:e2:4c:f0:0f:af:cf:d3:2d:c7:6e:b5:84:1c:7e:a8 +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt +nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY +6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu +MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k +RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg +f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV ++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo +dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa +G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq +gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H +vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC +B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u +NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg +yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev +HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 +xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR +TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg +JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV +7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl +6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R3 O=Google Trust Services LLC +# Subject: CN=GTS Root R3 O=Google Trust Services LLC +# Label: "GTS Root R3" +# Serial: 159662495401136852707857743206 +# MD5 Fingerprint: 3e:e7:9d:58:02:94:46:51:94:e5:e0:22:4a:8b:e7:73 +# SHA1 Fingerprint: ed:e5:71:80:2b:c8:92:b9:5b:83:3c:d2:32:68:3f:09:cd:a0:1e:46 +# SHA256 Fingerprint: 34:d8:a7:3e:e2:08:d9:bc:db:0d:95:65:20:93:4b:4e:40:e6:94:82:59:6e:8b:6f:73:c8:42:6b:01:0a:6f:48 +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G +jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 +4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 +VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm +ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R4 O=Google Trust Services LLC +# Subject: CN=GTS Root R4 O=Google Trust Services LLC +# Label: "GTS Root R4" +# Serial: 159662532700760215368942768210 +# MD5 Fingerprint: 43:96:83:77:19:4d:76:b3:9d:65:52:e4:1d:22:a5:e8 +# SHA1 Fingerprint: 77:d3:03:67:b5:e0:0c:15:f6:0c:38:61:df:7c:e1:3b:92:46:4d:47 +# SHA256 Fingerprint: 34:9d:fa:40:58:c5:e2:63:12:3b:39:8a:e7:95:57:3c:4e:13:13:c8:3f:e6:8f:93:55:6c:d5:e8:03:1b:3c:7d +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi +QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR +HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D +9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 +p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +# Issuer: CN=Telia Root CA v2 O=Telia Finland Oyj +# Subject: CN=Telia Root CA v2 O=Telia Finland Oyj +# Label: "Telia Root CA v2" +# Serial: 7288924052977061235122729490515358 +# MD5 Fingerprint: 0e:8f:ac:aa:82:df:85:b1:f4:dc:10:1c:fc:99:d9:48 +# SHA1 Fingerprint: b9:99:cd:d1:73:50:8a:c4:47:05:08:9c:8c:88:fb:be:a0:2b:40:cd +# SHA256 Fingerprint: 24:2b:69:74:2f:cb:1e:5b:2a:bf:98:89:8b:94:57:21:87:54:4e:5b:4d:99:11:78:65:73:62:1f:6a:74:b8:2c +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx +CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE +AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 +NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ +MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq +AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 +vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 +lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD +n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT +7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o +6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC +TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 +WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R +DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI +pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj +YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy +rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi +0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM +A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS +SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K +TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF +6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er +3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt +Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT +VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW +ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA +rBPuUBQemMc= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH +# Subject: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH +# Label: "D-TRUST BR Root CA 1 2020" +# Serial: 165870826978392376648679885835942448534 +# MD5 Fingerprint: b5:aa:4b:d5:ed:f7:e3:55:2e:8f:72:0a:f3:75:b8:ed +# SHA1 Fingerprint: 1f:5b:98:f0:e3:b5:f7:74:3c:ed:e6:b0:36:7d:32:cd:f4:09:41:67 +# SHA256 Fingerprint: e5:9a:aa:81:60:09:c2:2b:ff:5b:25:ba:d3:7d:f3:06:f0:49:79:7c:1f:81:d8:5a:b0:89:e6:57:bd:8f:00:44 +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5 +NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS +zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0 +QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/ +VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW +wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV +dWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH +# Subject: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH +# Label: "D-TRUST EV Root CA 1 2020" +# Serial: 126288379621884218666039612629459926992 +# MD5 Fingerprint: 8c:2d:9d:70:9f:48:99:11:06:11:fb:e9:cb:30:c0:6e +# SHA1 Fingerprint: 61:db:8c:21:59:69:03:90:d8:7c:9c:12:86:54:cf:9d:3d:f4:dd:07 +# SHA256 Fingerprint: 08:17:0d:1a:a3:64:53:90:1a:2f:95:92:45:e3:47:db:0c:8d:37:ab:aa:bc:56:b8:1a:a1:00:dc:95:89:70:db +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5 +NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC +/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD +wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3 +OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA +y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb +gfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. +# Subject: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. +# Label: "DigiCert TLS ECC P384 Root G5" +# Serial: 13129116028163249804115411775095713523 +# MD5 Fingerprint: d3:71:04:6a:43:1c:db:a6:59:e1:a8:a3:aa:c5:71:ed +# SHA1 Fingerprint: 17:f3:de:5e:9f:0f:19:e9:8e:f6:1f:32:26:6e:20:c4:07:ae:30:ee +# SHA256 Fingerprint: 01:8e:13:f0:77:25:32:cf:80:9b:d1:b1:72:81:86:72:83:fc:48:c6:e1:3b:e9:c6:98:12:85:4a:49:0c:1b:05 +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp +Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 +MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ +bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS +7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp +0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS +B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ +LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 +DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. +# Subject: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. +# Label: "DigiCert TLS RSA4096 Root G5" +# Serial: 11930366277458970227240571539258396554 +# MD5 Fingerprint: ac:fe:f7:34:96:a9:f2:b3:b4:12:4b:e4:27:41:6f:e1 +# SHA1 Fingerprint: a7:88:49:dc:5d:7c:75:8c:8c:de:39:98:56:b3:aa:d0:b2:a5:71:35 +# SHA256 Fingerprint: 37:1a:00:dc:05:33:b3:72:1a:7e:eb:40:e8:41:9e:70:79:9d:2b:0a:0f:2c:1d:80:69:31:65:f7:ce:c4:ad:75 +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT +HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ +ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 +2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp +wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM +pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD +nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po +sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx +Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd +Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX +KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe +XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL +tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv +TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN +AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H +PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF +O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ +REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik +AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv +/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ +p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw +MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF +qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK +ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +# Issuer: CN=Certainly Root R1 O=Certainly +# Subject: CN=Certainly Root R1 O=Certainly +# Label: "Certainly Root R1" +# Serial: 188833316161142517227353805653483829216 +# MD5 Fingerprint: 07:70:d4:3e:82:87:a0:fa:33:36:13:f4:fa:33:e7:12 +# SHA1 Fingerprint: a0:50:ee:0f:28:71:f4:27:b2:12:6d:6f:50:96:25:ba:cc:86:42:af +# SHA256 Fingerprint: 77:b8:2c:d8:64:4c:43:05:f7:ac:c5:cb:15:6b:45:67:50:04:03:3d:51:c6:0c:62:02:a8:e0:c3:34:67:d3:a0 +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw +PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy +dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 +YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 +1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT +vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed +aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 +1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 +r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 +cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ +wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ +6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA +2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH +Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR +eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u +d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr +PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi +1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd +rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di +taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 +lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj +yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn +Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy +yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n +wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 +OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +# Issuer: CN=Certainly Root E1 O=Certainly +# Subject: CN=Certainly Root E1 O=Certainly +# Label: "Certainly Root E1" +# Serial: 8168531406727139161245376702891150584 +# MD5 Fingerprint: 0a:9e:ca:cd:3e:52:50:c6:36:f3:4b:a3:ed:a7:53:e9 +# SHA1 Fingerprint: f9:e1:6d:dc:01:89:cf:d5:82:45:63:3e:c5:37:7d:c2:eb:93:6f:2b +# SHA256 Fingerprint: b4:58:5f:22:e4:ac:75:6a:4e:86:12:a1:36:1c:5d:9d:03:1a:93:fd:84:fe:bb:77:8f:a3:06:8b:0f:c4:2d:c2 +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu +bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ +BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s +eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK ++IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 +QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 +hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm +ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG +BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +# Issuer: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. +# Subject: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. +# Label: "Security Communication ECC RootCA1" +# Serial: 15446673492073852651 +# MD5 Fingerprint: 7e:43:b0:92:68:ec:05:43:4c:98:ab:5d:35:2e:7e:86 +# SHA1 Fingerprint: b8:0e:26:a9:bf:d2:b2:3b:c0:ef:46:c9:ba:c7:bb:f6:1d:0d:41:41 +# SHA256 Fingerprint: e7:4f:bd:a5:5b:d5:64:c4:73:a3:6b:44:1a:a7:99:c8:a6:8e:07:74:40:e8:28:8b:9f:a1:e5:0e:4b:ba:ca:11 +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT +AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD +VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx +NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT +HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 +IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl +dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK +ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu +9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O +be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= +-----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA1" +# Serial: 113562791157148395269083148143378328608 +# MD5 Fingerprint: 42:32:99:76:43:33:36:24:35:07:82:9b:28:f9:d0:90 +# SHA1 Fingerprint: d5:ec:8d:7b:4c:ba:79:f4:e7:e8:cb:9d:6b:ae:77:83:10:03:21:6a +# SHA256 Fingerprint: f3:89:6f:88:fe:7c:0a:88:27:66:a7:fa:6a:d2:74:9f:b5:7a:7f:3e:98:fb:76:9c:1f:a7:b0:9c:2c:44:d5:ae +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU +MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI +T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz +MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF +SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh +bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z +xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ +spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5 +58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR +at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll +5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq +nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK +V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/ +pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO +z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn +jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+ +WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF +7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli +awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u ++2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88 +X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN +SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo +P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI ++pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz +znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9 +eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2 +YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy +r/6zcCwupvI= +-----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA2" +# Serial: 58605626836079930195615843123109055211 +# MD5 Fingerprint: 5e:0a:f6:47:5f:a6:14:e8:11:01:95:3f:4d:01:eb:3c +# SHA1 Fingerprint: f4:27:86:eb:6e:b8:6d:88:31:67:02:fb:ba:66:a4:53:00:aa:7a:a6 +# SHA256 Fingerprint: 57:4d:f6:93:1e:27:80:39:66:7b:72:0a:fd:c1:60:0f:c2:7e:b6:6d:d3:09:29:79:fb:73:85:64:87:21:28:82 +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw +CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ +VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy +MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ +TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS +b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B +IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+ ++kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK +sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA +94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B +43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root E46" +# Serial: 88989738453351742415770396670917916916 +# MD5 Fingerprint: 28:23:f8:b2:98:5c:37:16:3b:3e:46:13:4e:b0:b3:01 +# SHA1 Fingerprint: ec:8a:39:6c:40:f0:2e:bc:42:75:d4:9f:ab:1c:1a:5b:67:be:d2:9a +# SHA256 Fingerprint: c9:0f:26:f0:fb:1b:40:18:b2:22:27:51:9b:5c:a2:b5:3e:2c:a5:b3:be:5c:f1:8e:fe:1b:ef:47:38:0c:53:83 +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw +CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN +MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG +A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC +WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+ +6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B +Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa +qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q +4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root R46" +# Serial: 156256931880233212765902055439220583700 +# MD5 Fingerprint: 32:10:09:52:00:d5:7e:6c:43:df:15:c0:b1:16:93:e5 +# SHA1 Fingerprint: ad:98:f9:f3:e4:7d:75:3b:65:d4:82:b3:a4:52:17:bb:6e:f5:e4:38 +# SHA256 Fingerprint: 7b:b6:47:a6:2a:ee:ac:88:bf:25:7a:a5:22:d0:1f:fe:a3:95:e0:ab:45:c7:3f:93:f6:56:54:ec:38:f2:5a:06 +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf +MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD +Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw +HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY +MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp +YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa +ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz +SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf +iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X +ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3 +IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS +VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE +SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu ++Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt +8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L +HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt +zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P +AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ +YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52 +gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA +Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB +JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX +DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui +TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5 +dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65 +LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp +0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY +QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS RSA Root CA 2022" +# Serial: 148535279242832292258835760425842727825 +# MD5 Fingerprint: d8:4e:c6:59:30:d8:fe:a0:d6:7a:5a:2c:2c:69:78:da +# SHA1 Fingerprint: ec:2c:83:40:72:af:26:95:10:ff:0e:f2:03:ee:31:70:f6:78:9d:ca +# SHA256 Fingerprint: 8f:af:7d:2e:2c:b4:70:9b:b8:e0:b3:36:66:bf:75:a5:dd:45:b5:de:48:0f:8e:a8:d4:bf:e6:be:bc:17:f2:ed +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO +MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD +DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX +DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw +b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP +L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY +t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins +S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3 +PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO +L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3 +R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w +dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS ++YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS +d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG +AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f +gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z +NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM +QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf +R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ +DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW +P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy +lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq +bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w +AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q +r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji +Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU +98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS ECC Root CA 2022" +# Serial: 26605119622390491762507526719404364228 +# MD5 Fingerprint: 99:d7:5c:f1:51:36:cc:e9:ce:d9:19:2e:77:71:56:c5 +# SHA1 Fingerprint: 9f:5f:d9:1a:54:6d:f5:0c:71:f0:ee:7a:bd:17:49:98:84:73:e2:39 +# SHA256 Fingerprint: c3:2f:fd:9f:46:f9:36:d1:6c:36:73:99:09:59:43:4b:9a:d6:0a:af:bb:9e:7c:f3:36:54:f1:44:cc:1b:a1:43 +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT +U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2 +MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh +dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm +acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN +SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME +GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW +uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp +15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN +b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA ECC TLS 2021" +# Serial: 81873346711060652204712539181482831616 +# MD5 Fingerprint: 16:9f:ad:f1:70:ad:79:d6:ed:29:b4:d1:c5:79:70:a8 +# SHA1 Fingerprint: 9e:bc:75:10:42:b3:02:f3:81:f4:f7:30:62:d4:8f:c3:a7:51:b2:dd +# SHA256 Fingerprint: b2:fa:e5:3e:14:cc:d7:ab:92:12:06:47:01:ae:27:9c:1d:89:88:fa:cb:77:5f:a8:a0:08:91:4e:66:39:88:a8 +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w +LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w +CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0 +MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF +Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI +zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X +tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4 +AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2 +KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD +aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu +CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo +9H1/IISpQuQo +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA RSA TLS 2021" +# Serial: 111436099570196163832749341232207667876 +# MD5 Fingerprint: d4:d3:46:b8:9a:c0:9c:76:5d:9e:3a:c3:b9:99:31:d2 +# SHA1 Fingerprint: 18:52:3b:0d:06:37:e4:d6:3a:df:23:e4:98:fb:5b:16:fb:86:74:48 +# SHA256 Fingerprint: 81:a9:08:8e:a5:9f:b3:64:c5:48:a6:f8:55:59:09:9b:6f:04:05:ef:bf:18:e5:32:4e:c9:f4:57:ba:00:11:2f +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM +MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx +MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00 +MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD +QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z +4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv +Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ +kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs +GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln +nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh +3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD +0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy +geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8 +ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB +c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI +pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU +dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs +o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ +qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw +xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM +rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4 +AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR +0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY +o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5 +dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE +oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. +# Label: "TrustAsia Global Root CA G3" +# Serial: 576386314500428537169965010905813481816650257167 +# MD5 Fingerprint: 30:42:1b:b7:bb:81:75:35:e4:16:4f:53:d2:94:de:04 +# SHA1 Fingerprint: 63:cf:b6:c1:27:2b:56:e4:88:8e:1c:23:9a:b6:2e:81:47:24:c3:c7 +# SHA256 Fingerprint: e0:d3:22:6a:eb:11:63:c2:e4:8f:f9:be:3b:50:b4:c6:43:1b:e7:bb:1e:ac:c5:c3:6b:5d:5e:c5:09:03:9a:08 +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM +BQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp +ZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe +Fw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw +IwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU +cnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS +T1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK +AtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1 +nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep +qq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA +yB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs +hH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX +zhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv +kV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT +f9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA +uPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB +o2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih +MBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4 +wM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2 +XFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1 +JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j +ITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV +VHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx +xHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on +AX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d +7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj +gKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV ++Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo +FGWsJwt0ivKH +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. +# Label: "TrustAsia Global Root CA G4" +# Serial: 451799571007117016466790293371524403291602933463 +# MD5 Fingerprint: 54:dd:b2:d7:5f:d8:3e:ed:7c:e0:0b:2e:cc:ed:eb:eb +# SHA1 Fingerprint: 57:73:a5:61:5d:80:b2:e6:ac:38:82:fc:68:07:31:ac:9f:b5:92:5a +# SHA256 Fingerprint: be:4b:56:cb:50:56:c0:13:6a:52:6d:f4:44:50:8d:aa:36:a0:b5:4f:42:e4:ac:38:f7:2a:f4:70:e4:79:65:4c +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw +WjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs +IEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y +MTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD +VQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz +dEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx +s8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw +LxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij +YzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD +pm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE +AwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR +UKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj +/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +# Issuer: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH +# Subject: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH +# Label: "Telekom Security TLS ECC Root 2020" +# Serial: 72082518505882327255703894282316633856 +# MD5 Fingerprint: c1:ab:fe:6a:10:2c:03:8d:bc:1c:22:32:c0:85:a7:fd +# SHA1 Fingerprint: c0:f8:96:c5:a9:3b:01:06:21:07:da:18:42:48:bc:e9:9d:88:d5:ec +# SHA256 Fingerprint: 57:8a:f4:de:d0:85:3f:4e:59:98:db:4a:ea:f9:cb:ea:8d:94:5f:60:b6:20:a3:8d:1a:3c:13:b2:bc:7b:a8:e1 +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw +CQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH +bWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw +MB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx +JzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE +AwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O +tdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP +f8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA +MGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di +z6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn +27iQ7t0l +-----END CERTIFICATE----- + +# Issuer: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH +# Subject: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH +# Label: "Telekom Security TLS RSA Root 2023" +# Serial: 44676229530606711399881795178081572759 +# MD5 Fingerprint: bf:5b:eb:54:40:cd:48:71:c4:20:8d:7d:de:0a:42:f2 +# SHA1 Fingerprint: 54:d3:ac:b3:bd:57:56:f6:85:9d:ce:e5:c3:21:e2:d4:ad:83:d0:93 +# SHA256 Fingerprint: ef:c6:5c:ad:bb:59:ad:b6:ef:e8:4d:a2:23:11:b3:56:24:b7:1b:3b:1e:a0:da:8b:66:55:17:4e:c8:97:86:46 +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj +MQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0 +eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy +MDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC +REUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG +A1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9 +cUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV +cp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA +U6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6 +Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug +BTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy +8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J +co4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg +8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8 +rFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12 +mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg ++y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX +gj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2 +p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ +pGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm +9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw +M807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd +GGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+ +CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t +xKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+ +w6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK +L4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj +X273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q +ntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm +dTdmQRCsu/WU48IxK63nI1bMNSWSs1A= +-----END CERTIFICATE----- + +# Issuer: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA +# Subject: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA +# Label: "FIRMAPROFESIONAL CA ROOT-A WEB" +# Serial: 65916896770016886708751106294915943533 +# MD5 Fingerprint: 82:b2:ad:45:00:82:b0:66:63:f8:5f:c3:67:4e:ce:a3 +# SHA1 Fingerprint: a8:31:11:74:a6:14:15:0d:ca:77:dd:0e:e4:0c:5d:58:fc:a0:72:a5 +# SHA256 Fingerprint: be:f2:56:da:f2:6e:9c:69:bd:ec:16:02:35:97:98:f3:ca:f7:18:21:a0:3e:01:82:57:c5:3c:65:61:7f:3d:4a +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQsw +CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE +YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB +IFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2WhcNNDcwMzMxMDkwMTM2WjBuMQsw +CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE +YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB +IFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zf +e9MEkVz6iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6C +cyvHZpsKjECcfIr28jlgst7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FDY1w8ndYn81LsF7Kpryz3dvgwHQYDVR0O +BBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO +PQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgLcFBTApFw +hVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dG +XSaQpYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +# Issuer: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA +# Label: "TWCA CYBER Root CA" +# Serial: 85076849864375384482682434040119489222 +# MD5 Fingerprint: 0b:33:a0:97:52:95:d4:a9:fd:bb:db:6e:a3:55:5b:51 +# SHA1 Fingerprint: f6:b1:1c:1a:83:38:e9:7b:db:b3:a8:c8:33:24:e0:2d:9c:7f:26:66 +# SHA256 Fingerprint: 3f:63:bb:28:14:be:17:4e:c8:b6:43:9c:f0:8d:6d:56:f0:b7:c4:05:88:3a:56:48:a3:34:42:4d:6b:3e:c5:58 +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQ +MQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290 +IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5 +WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FO +LUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1sTs6P +40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxF +avcokPFhV8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/ +34bKS1PE2Y2yHer43CdTo0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684i +JkXXYJndzk834H/nY62wuFm40AZoNWDTNq5xQwTxaWV4fPMf88oon1oglWa0zbfu +j3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK/c/WMw+f+5eesRycnupf +Xtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkHIuNZW0CP +2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDA +S9TMfAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDA +oS/xUgXJP+92ZuJF2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzC +kHDXShi8fgGwsOsVHkQGzaRP6AzRwyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW +5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83QOGt4A1WNzAd +BgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0t +tGlTITVX1olNc79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn +68xDiBaiA9a5F/gZbG0jAn/xX9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNn +TKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDRIG4kqIQnoVesqlVYL9zZyvpoBJ7t +RCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq/p1hvIbZv97Tujqx +f36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0RFxbI +Qh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz +8ppy6rBePm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4 +NxKfKjLji7gh7MMrZQzvIt6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzX +xeSDwWrruoBa3lwtcHb4yOWHh8qgnaHlIhInD0Q9HWzq1MKLL295q39QpsQZp6F6 +t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. +# Subject: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. +# Label: "SecureSign Root CA12" +# Serial: 587887345431707215246142177076162061960426065942 +# MD5 Fingerprint: c6:89:ca:64:42:9b:62:08:49:0b:1e:7f:e9:07:3d:e8 +# SHA1 Fingerprint: 7a:22:1e:3d:de:1b:06:ac:9e:c8:47:70:16:8e:3c:e5:f7:6b:06:f4 +# SHA256 Fingerprint: 3f:03:4b:b5:70:4d:44:b2:d0:85:45:a0:20:57:de:93:eb:f3:90:5f:ce:72:1a:cb:c7:30:c0:6d:da:ee:90:4e +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u +LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgw +NTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD +eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS +b290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3emhF +KxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mt +p7JIKwccJ/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zd +J1M3s6oYwlkm7Fsf0uZlfO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gur +FzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBFEaCeVESE99g2zvVQR9wsMJvuwPWW0v4J +hscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1UefNzFJM3IFTQy2VYzxV4+K +h9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsF +AAOCAQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6Ld +mmQOmFxv3Y67ilQiLUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJ +mBClnW8Zt7vPemVV2zfrPIpyMpcemik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA +8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPSvWKErI4cqc1avTc7bgoitPQV +55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhgaaaI5gdka9at/ +yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. +# Subject: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. +# Label: "SecureSign Root CA14" +# Serial: 575790784512929437950770173562378038616896959179 +# MD5 Fingerprint: 71:0d:72:fa:92:19:65:5e:89:04:ac:16:33:f0:bc:d5 +# SHA1 Fingerprint: dd:50:c0:f7:79:b3:64:2e:74:a2:b8:9d:9f:d3:40:dd:bb:f0:f2:4f +# SHA256 Fingerprint: 4b:00:9c:10:34:49:4f:9a:b5:6b:ba:3b:a1:d6:27:31:fc:4d:20:d8:95:5a:dc:ec:10:a9:25:60:72:61:e3:38 +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEM +BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u +LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgw +NzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD +eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS +b290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh1oq/ +FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOg +vlIfX8xnbacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy +6pJxaeQp8E+BgQQ8sqVb1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo +/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9J +kdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOEkJTRX45zGRBdAuVwpcAQ +0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSxjVIHvXib +y8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac +18izju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs +0Wq2XSqypWa9a4X0dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIAB +SMbHdPTGrMNASRZhdCyvjG817XsYAFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVL +ApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeqYR3r6/wtbyPk +86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ib +ed87hwriZLoAymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopT +zfFP7ELyk+OZpDc8h7hi2/DsHzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHS +DCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPGFrojutzdfhrGe0K22VoF3Jpf1d+4 +2kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6qnsb58Nn4DSEC5MUo +FlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/OfVy +K4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6 +dB7h7sxaOgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtl +Lor6CZpO2oYofaphNdgOpygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB +365jJ6UeTo3cKXhZ+PmhIIynJkBugnLNeLLIjzwec+fBH7/PzqUqm9tEZDKgu39c +JRNItX+S +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. +# Subject: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. +# Label: "SecureSign Root CA15" +# Serial: 126083514594751269499665114766174399806381178503 +# MD5 Fingerprint: 13:30:fc:c4:62:a6:a9:de:b5:c1:68:af:b5:d2:31:47 +# SHA1 Fingerprint: cb:ba:83:c8:c1:5a:5d:f1:f9:73:6f:ca:d7:ef:28:13:06:4a:07:7d +# SHA256 Fingerprint: e7:78:f0:f0:95:fe:84:37:29:cd:1a:00:82:17:9e:53:14:a9:c2:91:44:28:05:e1:fb:1d:8f:b6:b8:88:6c:3a +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMw +UTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBM +dGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMy +NTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpDeWJl +cnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBSb290 +IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5GdCx4 +wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSR +ZHX+AezB2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT +9DAKBggqhkjOPQQDAwNoADBlAjEA2S6Jfl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp +4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJSwdLZrWeqrqgHkHZAXQ6 +bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH +# Subject: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH +# Label: "D-TRUST BR Root CA 2 2023" +# Serial: 153168538924886464690566649552453098598 +# MD5 Fingerprint: e1:09:ed:d3:60:d4:56:1b:47:1f:b7:0c:5f:1b:5f:85 +# SHA1 Fingerprint: 2d:b0:70:ee:71:94:af:69:68:17:db:79:ce:58:9f:a0:6b:96:f7:87 +# SHA256 Fingerprint: 05:52:e6:f8:3f:df:65:e8:fa:96:70:e6:66:df:28:a4:e2:13:40:b5:10:cb:e5:25:66:f9:7c:4f:b9:4b:2b:d1 +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBI +MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE +LVRSVVNUIEJSIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUw +OTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi +MCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCTcfKr +i3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNE +gXtRr90zsWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8 +k12b9py0i4a6Ibn08OhZWiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCT +Rphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl +2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LULQyReS2tNZ9/WtT5PeB+U +cSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIvx9gvdhFP +/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bS +uREVMweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+ +0bpwHJwh5Q8xaRfX/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4N +DfTisl01gLmB1IRpkQLLddCNxbU9CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+ +XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ5Dw1t61 +GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG +OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tI +FoE9c+CeJyrrd6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67n +riv6uvw8l5VAk1/DLQOj7aRvU9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTR +VFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4nj8+AybmTNudX0KEPUUDAxxZiMrc +LmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdijYQ6qgYF/6FKC0ULn +4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff/vtD +hQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsG +koHU6XCPpz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46 +ls/pdu4D58JDUjxqgejBWoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aS +Ecr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/5usWDiJFAbzdNpQ0qTUmiteXue4Icr80 +knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jtn/mtd+ArY0+ew+43u3gJ +hJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. +# Label: "TrustAsia TLS ECC Root CA" +# Serial: 310892014698942880364840003424242768478804666567 +# MD5 Fingerprint: 09:48:04:77:d2:fc:65:93:71:66:b1:11:95:4f:06:8c +# SHA1 Fingerprint: b5:ec:39:f3:a1:66:37:ae:c3:05:94:57:e2:be:11:be:b7:a1:7f:36 +# SHA256 Fingerprint: c0:07:6b:9e:f0:53:1f:b1:a6:56:d6:7c:4e:be:97:cd:5d:ba:a4:1e:f4:45:98:ac:c2:48:98:78:c9:2d:87:11 +-----BEGIN CERTIFICATE----- +MIICMTCCAbegAwIBAgIUNnThTXxlE8msg1UloD5Sfi9QaMcwCgYIKoZIzj0EAwMw +WDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs +IEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQw +NTE1MDU0MTU2WhcNNDQwNTE1MDU0MTU1WjBYMQswCQYDVQQGEwJDTjElMCMGA1UE +ChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1c3RB +c2lhIFRMUyBFQ0MgUm9vdCBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLh/pVs/ +AT598IhtrimY4ZtcU5nb9wj/1WrgjstEpvDBjL1P1M7UiFPoXlfXTr4sP/MSpwDp +guMqWzJ8S5sUKZ74LYO1644xST0mYekdcouJtgq7nDM1D9rs3qlKH8kzsaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULIVTu7FDzTLqnqOH/qKYqKaT6RAw +DgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMFRH18MtYYZI9HlaVQ01 +L18N9mdsd0AaRuf4aFtOJx24mH1/k78ITcTaRTChD15KeAIxAKORh/IRM4PDwYqR +OkwrULG9IpRdNYlzg8WbGf60oenUoWa2AaU2+dhoYSi3dOGiMQ== +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. +# Label: "TrustAsia TLS RSA Root CA" +# Serial: 160405846464868906657516898462547310235378010780 +# MD5 Fingerprint: 3b:9e:c3:86:0f:34:3c:6b:c5:46:c4:8e:1d:e7:19:12 +# SHA1 Fingerprint: a5:46:50:c5:62:ea:95:9a:1a:a7:04:6f:17:58:c7:29:53:3d:03:fa +# SHA256 Fingerprint: 06:c0:8d:7d:af:d8:76:97:1e:b1:12:4f:e6:7f:84:7e:c0:c7:a1:58:d3:ea:53:cb:e9:40:e2:ea:97:91:f4:c3 +-----BEGIN CERTIFICATE----- +MIIFgDCCA2igAwIBAgIUHBjYz+VTPyI1RlNUJDxsR9FcSpwwDQYJKoZIhvcNAQEM +BQAwWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dp +ZXMsIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgUlNBIFJvb3QgQ0EwHhcN +MjQwNTE1MDU0MTU3WhcNNDQwNTE1MDU0MTU2WjBYMQswCQYDVQQGEwJDTjElMCMG +A1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1 +c3RBc2lhIFRMUyBSU0EgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC +AgoCggIBAMMWuBtqpERz5dZO9LnPWwvB0ZqB9WOwj0PBuwhaGnrhB3YmH49pVr7+ +NmDQDIPNlOrnxS1cLwUWAp4KqC/lYCZUlviYQB2srp10Zy9U+5RjmOMmSoPGlbYJ +Q1DNDX3eRA5gEk9bNb2/mThtfWza4mhzH/kxpRkQcwUqwzIZheo0qt1CHjCNP561 +HmHVb70AcnKtEj+qpklz8oYVlQwQX1Fkzv93uMltrOXVmPGZLmzjyUT5tUMnCE32 +ft5EebuyjBza00tsLtbDeLdM1aTk2tyKjg7/D8OmYCYozza/+lcK7Fs/6TAWe8Tb +xNRkoDD75f0dcZLdKY9BWN4ArTr9PXwaqLEX8E40eFgl1oUh63kd0Nyrz2I8sMeX +i9bQn9P+PN7F4/w6g3CEIR0JwqH8uyghZVNgepBtljhb//HXeltt08lwSUq6HTrQ +UNoyIBnkiz/r1RYmNzz7dZ6wB3C4FGB33PYPXFIKvF1tjVEK2sUYyJtt3LCDs3+j +TnhMmCWr8n4uIF6CFabW2I+s5c0yhsj55NqJ4js+k8UTav/H9xj8Z7XvGCxUq0DT +bE3txci3OE9kxJRMT6DNrqXGJyV1J23G2pyOsAWZ1SgRxSHUuPzHlqtKZFlhaxP8 +S8ySpg+kUb8OWJDZgoM5pl+z+m6Ss80zDoWo8SnTq1mt1tve1CuBAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLgHkXlcBvRG/XtZylomkadFK/hT +MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQwFAAOCAgEAIZtqBSBdGBanEqT3 +Rz/NyjuujsCCztxIJXgXbODgcMTWltnZ9r96nBO7U5WS/8+S4PPFJzVXqDuiGev4 +iqME3mmL5Dw8veWv0BIb5Ylrc5tvJQJLkIKvQMKtuppgJFqBTQUYo+IzeXoLH5Pt +7DlK9RME7I10nYEKqG/odv6LTytpEoYKNDbdgptvT+Bz3Ul/KD7JO6NXBNiT2Twp +2xIQaOHEibgGIOcberyxk2GaGUARtWqFVwHxtlotJnMnlvm5P1vQiJ3koP26TpUJ +g3933FEFlJ0gcXax7PqJtZwuhfG5WyRasQmr2soaB82G39tp27RIGAAtvKLEiUUj +pQ7hRGU+isFqMB3iYPg6qocJQrmBktwliJiJ8Xw18WLK7nn4GS/+X/jbh87qqA8M +pugLoDzga5SYnH+tBuYc6kIQX+ImFTw3OffXvO645e8D7r0i+yiGNFjEWn9hongP +XvPKnbwbPKfILfanIhHKA9jnZwqKDss1jjQ52MjqjZ9k4DewbNfFj8GQYSbbJIwe +SsCI3zWQzj8C9GRh3sfIB5XeMhg6j6JCQCTl1jNdfK7vsU1P1FeQNWrcrgSXSYk0 +ly4wBOeY99sLAZDBHwo/+ML+TvrbmnNzFrwFuHnYWa8G5z9nODmxfKuU4CkUpijy +323imttUQ/hHWKNddBWcwauwxzQ= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH +# Subject: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH +# Label: "D-TRUST EV Root CA 2 2023" +# Serial: 139766439402180512324132425437959641711 +# MD5 Fingerprint: 96:b4:78:09:f0:09:cb:77:eb:bb:1b:4d:6f:36:bc:b6 +# SHA1 Fingerprint: a5:5b:d8:47:6c:8f:19:f7:4c:f4:6d:6b:b6:c2:79:82:22:df:54:8b +# SHA256 Fingerprint: 8e:82:21:b2:e7:d4:00:78:36:a1:67:2f:0d:cc:29:9c:33:bc:07:d3:16:f1:32:fa:1a:20:6d:58:71:50:f1:ce +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBI +MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE +LVRSVVNUIEVWIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUw +OTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi +MCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1sJkK +F8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE +7CUXFId/MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFe +EMbsh2aJgWi6zCudR3Mfvc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6 +lHPTGGkKSv/BAQP/eX+1SH977ugpbzZMlWGG2Pmic4ruri+W7mjNPU0oQvlFKzIb +RlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3YG14C8qKXO0elg6DpkiV +jTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq9107PncjLgc +jmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZx +TnXonMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ +ARZZaBhDM7DS3LAaQzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nk +hbDhezGdpn9yo7nELC7MmVcOIQxFAZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knF +NXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqvyREBuH +kV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG +OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14 +QvBukEdHjqOSMo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4 +pZt+UPJ26oUFKidBK7GB0aL2QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q +3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xDUmPBEcrCRbH0O1P1aa4846XerOhU +t7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V4U/M5d40VxDJI3IX +cI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuodNv8 +ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT +2vFp4LJiTZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs +7dpn1mKmS00PaaLJvOwiS5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNP +gofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAst +Nl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L+KIkBI3Y4WNeApI02phh +XBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG +# Subject: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG +# Label: "SwissSign RSA TLS Root CA 2022 - 1" +# Serial: 388078645722908516278762308316089881486363258315 +# MD5 Fingerprint: 16:2e:e4:19:76:81:85:ba:8e:91:58:f1:15:ef:72:39 +# SHA1 Fingerprint: 81:34:0a:be:4c:cd:ce:cc:e7:7d:cc:8a:d4:57:e2:45:a0:77:5d:ce +# SHA256 Fingerprint: 19:31:44:f4:31:e0:fd:db:74:07:17:d4:de:92:6a:57:11:33:88:4b:43:60:d3:0e:27:29:13:cb:e6:60:ce:41 +-----BEGIN CERTIFICATE----- +MIIFkzCCA3ugAwIBAgIUQ/oMX04bgBhE79G0TzUfRPSA7cswDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkGA1UE +AxMiU3dpc3NTaWduIFJTQSBUTFMgUm9vdCBDQSAyMDIyIC0gMTAeFw0yMjA2MDgx +MTA4MjJaFw00NzA2MDgxMTA4MjJaMFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxT +d2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0Eg +MjAyMiAtIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLKmjiC8NX +vDVjvHClO/OMPE5Xlm7DTjak9gLKHqquuN6orx122ro10JFwB9+zBvKK8i5VUXu7 +LCTLf5ImgKO0lPaCoaTo+nUdWfMHamFk4saMla+ju45vVs9xzF6BYQ1t8qsCLqSX +5XH8irCRIFucdFJtrhUnWXjyCcplDn/L9Ovn3KlMd/YrFgSVrpxxpT8q2kFC5zyE +EPThPYxr4iuRR1VPuFa+Rd4iUU1OKNlfGUEGjw5NBuBwQCMBauTLE5tzrE0USJIt +/m2n+IdreXXhvhCxqohAWVTXz8TQm0SzOGlkjIHRI36qOTw7D59Ke4LKa2/KIj4x +0LDQKhySio/YGZxH5D4MucLNvkEM+KRHBdvBFzA4OmnczcNpI/2aDwLOEGrOyvi5 +KaM2iYauC8BPY7kGWUleDsFpswrzd34unYyzJ5jSmY0lpx+Gs6ZUcDj8fV3oT4MM +0ZPlEuRU2j7yrTrePjxF8CgPBrnh25d7mUWe3f6VWQQvdT/TromZhqwUtKiE+shd +OxtYk8EXlFXIC+OCeYSf8wCENO7cMdWP8vpPlkwGqnj73mSiI80fPsWMvDdUDrta +clXvyFu1cvh43zcgTFeRc5JzrBh3Q4IgaezprClG5QtO+DdziZaKHG29777YtvTK +wP1H8K4LWCDFyB02rpeNUIMmJCn3nTsPBQIDAQABo2MwYTAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBRvjmKLk0Ow4UD2p8P98Q+4 +DxU4pTAdBgNVHQ4EFgQUb45ii5NDsOFA9qfD/fEPuA8VOKUwDQYJKoZIhvcNAQEL +BQADggIBAKwsKUF9+lz1GpUYvyypiqkkVHX1uECry6gkUSsYP2OprphWKwVDIqO3 +10aewCoSPY6WlkDfDDOLazeROpW7OSltwAJsipQLBwJNGD77+3v1dj2b9l4wBlgz +Hqp41eZUBDqyggmNzhYzWUUo8aWjlw5DI/0LIICQ/+Mmz7hkkeUFjxOgdg3XNwwQ +iJb0Pr6VvfHDffCjw3lHC1ySFWPtUnWK50Zpy1FVCypM9fJkT6lc/2cyjlUtMoIc +gC9qkfjLvH4YoiaoLqNTKIftV+Vlek4ASltOU8liNr3CjlvrzG4ngRhZi0Rjn9UM +ZfQpZX+RLOV/fuiJz48gy20HQhFRJjKKLjpHE7iNvUcNCfAWpO2Whi4Z2L6MOuhF +LhG6rlrnub+xzI/goP+4s9GFe3lmozm1O2bYQL7Pt2eLSMkZJVX8vY3PXtpOpvJp +zv1/THfQwUY1mFwjmwJFQ5Ra3bxHrSL+ul4vkSkphnsh3m5kt8sNjzdbowhq6/Td +Ao9QAwKxuDdollDruF/UKIqlIgyKhPBZLtU30WHlQnNYKoH3dtvi4k0NX/a3vgW0 +rk4N3hY9A4GzJl5LuEsAz/+MF7psYC0nhzck5npgL7XTgwSqT0N1osGDsieYK7EO +gLrAhV5Cud+xYJHT6xh+cHiudoO+cVrQkOPKwRYlZ0rwtnu64ZzZ +-----END CERTIFICATE----- + +# Issuer: CN=OISTE Server Root ECC G1 O=OISTE Foundation +# Subject: CN=OISTE Server Root ECC G1 O=OISTE Foundation +# Label: "OISTE Server Root ECC G1" +# Serial: 47819833811561661340092227008453318557 +# MD5 Fingerprint: 42:a7:d2:35:ae:02:92:db:19:76:08:de:2f:05:b4:d4 +# SHA1 Fingerprint: 3b:f6:8b:09:ae:2a:92:7b:ba:e3:8d:3f:11:95:d9:e6:44:0c:45:e2 +# SHA256 Fingerprint: ee:c9:97:c0:c3:0f:21:6f:7e:3b:8b:30:7d:2b:ae:42:41:2d:75:3f:c8:21:9d:af:d1:52:0b:25:72:85:0f:49 +-----BEGIN CERTIFICATE----- +MIICNTCCAbqgAwIBAgIQI/nD1jWvjyhLH/BU6n6XnTAKBggqhkjOPQQDAzBLMQsw +CQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwY +T0lTVEUgU2VydmVyIFJvb3QgRUNDIEcxMB4XDTIzMDUzMTE0NDIyOFoXDTQ4MDUy +NDE0NDIyN1owSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5kYXRp +b24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IEVDQyBHMTB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABBcv+hK8rBjzCvRE1nZCnrPoH7d5qVi2+GXROiFPqOujvqQy +cvO2Ackr/XeFblPdreqqLiWStukhEaivtUwL85Zgmjvn6hp4LrQ95SjeHIC6XG4N +2xml4z+cKrhAS93mT6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQ3 +TYhlz/w9itWj8UnATgwQb0K0nDAdBgNVHQ4EFgQUN02IZc/8PYrVo/FJwE4MEG9C +tJwwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2kAMGYCMQCpKjAd0MKfkFFR +QD6VVCHNFmb3U2wIFjnQEnx/Yxvf4zgAOdktUyBFCxxgZzFDJe0CMQCSia7pXGKD +YmH5LVerVrkR3SW+ak5KGoJr3M/TvEqzPNcum9v4KGm8ay3sMaE641c= +-----END CERTIFICATE----- + +# Issuer: CN=OISTE Server Root RSA G1 O=OISTE Foundation +# Subject: CN=OISTE Server Root RSA G1 O=OISTE Foundation +# Label: " OISTE Server Root RSA G1" +# Serial: 113845518112613905024960613408179309848 +# MD5 Fingerprint: 23:a7:9e:d4:70:b8:b9:14:57:41:8a:7e:44:59:e2:68 +# SHA1 Fingerprint: f7:00:34:25:94:88:68:31:e4:34:87:3f:70:fe:86:b3:86:9f:f0:6e +# SHA256 Fingerprint: 9a:e3:62:32:a5:18:9f:fd:db:35:3d:fd:26:52:0c:01:53:95:d2:27:77:da:c5:9d:b5:7b:98:c0:89:a6:51:e6 +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIQVaXZZ5Qoxu0M+ifdWwFNGDANBgkqhkiG9w0BAQwFADBL +MQswCQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UE +AwwYT0lTVEUgU2VydmVyIFJvb3QgUlNBIEcxMB4XDTIzMDUzMTE0MzcxNloXDTQ4 +MDUyNDE0MzcxNVowSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5k +YXRpb24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IFJTQSBHMTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKqu9KuCz/vlNwvn1ZatkOhLKdxVYOPM +vLO8LZK55KN68YG0nnJyQ98/qwsmtO57Gmn7KNByXEptaZnwYx4M0rH/1ow00O7b +rEi56rAUjtgHqSSY3ekJvqgiG1k50SeH3BzN+Puz6+mTeO0Pzjd8JnduodgsIUzk +ik/HEzxux9UTl7Ko2yRpg1bTacuCErudG/L4NPKYKyqOBGf244ehHa1uzjZ0Dl4z +O8vbUZeUapU8zhhabkvG/AePLhq5SvdkNCncpo1Q4Y2LS+VIG24ugBA/5J8bZT8R +tOpXaZ+0AOuFJJkk9SGdl6r7NH8CaxWQrbueWhl/pIzY+m0o/DjH40ytas7ZTpOS +jswMZ78LS5bOZmdTaMsXEY5Z96ycG7mOaES3GK/m5Q9l3JUJsJMStR8+lKXHiHUh +sd4JJCpM4rzsTGdHwimIuQq6+cF0zowYJmXa92/GjHtoXAvuY8BeS/FOzJ8vD+Ho +mnqT8eDI278n5mUpezbgMxVz8p1rhAhoKzYHKyfMeNhqhw5HdPSqoBNdZH702xSu ++zrkL8Fl47l6QGzwBrd7KJvX4V84c5Ss2XCTLdyEr0YconosP4EmQufU2MVshGYR +i3drVByjtdgQ8K4p92cIiBdcuJd5z+orKu5YM+Vt6SmqZQENghPsJQtdLEByFSnT +kCz3GkPVavBpAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU +8snBDw1jALvsRQ5KH7WxszbNDo0wHQYDVR0OBBYEFPLJwQ8NYwC77EUOSh+1sbM2 +zQ6NMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQwFAAOCAgEANGd5sjrG5T33 +I3K5Ce+SrScfoE4KsvXaFwyihdJ+klH9FWXXXGtkFu6KRcoMQzZENdl//nk6HOjG +5D1rd9QhEOP28yBOqb6J8xycqd+8MDoX0TJD0KqKchxRKEzdNsjkLWd9kYccnbz8 +qyiWXmFcuCIzGEgWUOrKL+mlSdx/PKQZvDatkuK59EvV6wit53j+F8Bdh3foZ3dP +AGav9LEDOr4SfEE15fSmG0eLy3n31r8Xbk5l8PjaV8GUgeV6Vg27Rn9vkf195hfk +gSe7BYhW3SCl95gtkRlpMV+bMPKZrXJAlszYd2abtNUOshD+FKrDgHGdPY3ofRRs +YWSGRqbXVMW215AWRqWFyp464+YTFrYVI8ypKVL9AMb2kI5Wj4kI3Zaq5tNqqYY1 +9tVFeEJKRvwDyF7YZvZFZSS0vod7VSCd9521Kvy5YhnLbDuv0204bKt7ph6N/Ome +/msVuduCmsuY33OhkKCgxeDoAaijFJzIwZqsFVAzje18KotzlUBDJvyBpCpfOZC3 +J8tRd/iWkx7P8nd9H0aTolkelUTFLXVksNb54Dxp6gS1HAviRkRNQzuXSXERvSS2 +wq1yVAb+axj5d9spLFKebXd7Yv0PTY6YMjAwcRLWJTXjn/hvnLXrahut6hDTlhZy +BiElxky8j3C7DOReIoMt0r7+hVu05L0= +-----END CERTIFICATE----- diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/core.py b/Backend/venv/lib/python3.12/site-packages/certifi/core.py new file mode 100644 index 00000000..1c9661cc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/certifi/core.py @@ -0,0 +1,83 @@ +""" +certifi.py +~~~~~~~~~~ + +This module returns the installation location of cacert.pem or its contents. +""" +import sys +import atexit + +def exit_cacert_ctx() -> None: + _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] + + +if sys.version_info >= (3, 11): + + from importlib.resources import as_file, files + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the file + # in cases where we're inside of a zipimport situation until someone + # actually calls where(), but we don't want to re-extract the file + # on every call of where(), so we'll do it once then store it in a + # global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you to + # manage the cleanup of this file, so it doesn't actually return a + # path, it returns a context manager that will give you the path + # when you enter it and will do any cleanup when you leave it. In + # the common case of not needing a temporary file, it will just + # return the file system location and the __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem")) + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + atexit.register(exit_cacert_ctx) + + return _CACERT_PATH + + def contents() -> str: + return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") + +else: + + from importlib.resources import path as get_path, read_text + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the + # file in cases where we're inside of a zipimport situation until + # someone actually calls where(), but we don't want to re-extract + # the file on every call of where(), so we'll do it once then store + # it in a global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you + # to manage the cleanup of this file, so it doesn't actually + # return a path, it returns a context manager that will give + # you the path when you enter it and will do any cleanup when + # you leave it. In the common case of not needing a temporary + # file, it will just return the file system location and the + # __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = get_path("certifi", "cacert.pem") + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + atexit.register(exit_cacert_ctx) + + return _CACERT_PATH + + def contents() -> str: + return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/Backend/venv/lib/python3.12/site-packages/certifi/py.typed b/Backend/venv/lib/python3.12/site-packages/certifi/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/METADATA b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/METADATA new file mode 100644 index 00000000..8d32edcc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/METADATA @@ -0,0 +1,764 @@ +Metadata-Version: 2.4 +Name: charset-normalizer +Version: 3.4.4 +Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. +Author-email: "Ahmed R. TAHRI" +Maintainer-email: "Ahmed R. TAHRI" +License: MIT +Project-URL: Changelog, https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md +Project-URL: Documentation, https://charset-normalizer.readthedocs.io/ +Project-URL: Code, https://github.com/jawah/charset_normalizer +Project-URL: Issue tracker, https://github.com/jawah/charset_normalizer/issues +Keywords: encoding,charset,charset-detector,detector,normalization,unicode,chardet,detect +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Text Processing :: Linguistic +Classifier: Topic :: Utilities +Classifier: Typing :: Typed +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: unicode-backport +Dynamic: license-file + +

Charset Detection, for Everyone 👋

+ +

+ The Real First Universal Charset Detector
+ + + + + Download Count Total + + + + +

+

+ Featured Packages
+ + Static Badge + + + Static Badge + +

+

+ In other language (unofficial port - by the community)
+ + Static Badge + +

+ +> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, +> I'm trying to resolve the issue by taking a new approach. +> All IANA character set names for which the Python core library provides codecs are supported. + +

+ >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< +

+ +This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. + +| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | +|--------------------------------------------------|:---------------------------------------------:|:--------------------------------------------------------------------------------------------------:|:-----------------------------------------------:| +| `Fast` | ❌ | ✅ | ✅ | +| `Universal**` | ❌ | ✅ | ❌ | +| `Reliable` **without** distinguishable standards | ❌ | ✅ | ✅ | +| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | +| `License` | LGPL-2.1
_restrictive_ | MIT | MPL-1.1
_restrictive_ | +| `Native Python` | ✅ | ✅ | ❌ | +| `Detect spoken language` | ❌ | ✅ | N/A | +| `UnicodeDecodeError Safety` | ❌ | ✅ | ❌ | +| `Whl Size (min)` | 193.6 kB | 42 kB | ~200 kB | +| `Supported Encoding` | 33 | 🎉 [99](https://charset-normalizer.readthedocs.io/en/latest/user/support.html#supported-encodings) | 40 | + +

+Reading Normalized TextCat Reading Text +

+ +*\*\* : They are clearly using specific code for a specific encoding even if covering most of used one*
+ +## ⚡ Performance + +This package offer better performance than its counterpart Chardet. Here are some numbers. + +| Package | Accuracy | Mean per file (ms) | File per sec (est) | +|-----------------------------------------------|:--------:|:------------------:|:------------------:| +| [chardet](https://github.com/chardet/chardet) | 86 % | 63 ms | 16 file/sec | +| charset-normalizer | **98 %** | **10 ms** | 100 file/sec | + +| Package | 99th percentile | 95th percentile | 50th percentile | +|-----------------------------------------------|:---------------:|:---------------:|:---------------:| +| [chardet](https://github.com/chardet/chardet) | 265 ms | 71 ms | 7 ms | +| charset-normalizer | 100 ms | 50 ms | 5 ms | + +_updated as of december 2024 using CPython 3.12_ + +Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload. + +> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. +> And yes, these results might change at any time. The dataset can be updated to include more files. +> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. +> Keep in mind that the stats are generous and that Chardet accuracy vs our is measured using Chardet initial capability +> (e.g. Supported Encoding) Challenge-them if you want. + +## ✨ Installation + +Using pip: + +```sh +pip install charset-normalizer -U +``` + +## 🚀 Basic Usage + +### CLI +This package comes with a CLI. + +``` +usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] + file [file ...] + +The Real First Universal Charset Detector. Discover originating encoding used +on text file. Normalize text to unicode. + +positional arguments: + files File(s) to be analysed + +optional arguments: + -h, --help show this help message and exit + -v, --verbose Display complementary information about file if any. + Stdout will contain logs about the detection process. + -a, --with-alternative + Output complementary possibilities if any. Top-level + JSON WILL be a list. + -n, --normalize Permit to normalize input file. If not set, program + does not write anything. + -m, --minimal Only output the charset detected to STDOUT. Disabling + JSON output. + -r, --replace Replace file when trying to normalize it instead of + creating a new one. + -f, --force Replace file without asking if you are sure, use this + flag with caution. + -t THRESHOLD, --threshold THRESHOLD + Define a custom maximum amount of chaos allowed in + decoded content. 0. <= chaos <= 1. + --version Show version information and exit. +``` + +```bash +normalizer ./data/sample.1.fr.srt +``` + +or + +```bash +python -m charset_normalizer ./data/sample.1.fr.srt +``` + +🎉 Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. + +```json +{ + "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", + "encoding": "cp1252", + "encoding_aliases": [ + "1252", + "windows_1252" + ], + "alternative_encodings": [ + "cp1254", + "cp1256", + "cp1258", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + "mbcs" + ], + "language": "French", + "alphabets": [ + "Basic Latin", + "Latin-1 Supplement" + ], + "has_sig_or_bom": false, + "chaos": 0.149, + "coherence": 97.152, + "unicode_path": null, + "is_preferred": true +} +``` + +### Python +*Just print out normalized text* +```python +from charset_normalizer import from_path + +results = from_path('./my_subtitle.srt') + +print(str(results.best())) +``` + +*Upgrade your code without effort* +```python +from charset_normalizer import detect +``` + +The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. + +See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) + +## 😇 Why + +When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a +reliable alternative using a completely different method. Also! I never back down on a good challenge! + +I **don't care** about the **originating charset** encoding, because **two different tables** can +produce **two identical rendered string.** +What I want is to get readable text, the best I can. + +In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 + +Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair Unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. + +## 🍰 How + + - Discard all charset encoding table that could not fit the binary content. + - Measure noise, or the mess once opened (by chunks) with a corresponding charset encoding. + - Extract matches with the lowest mess detected. + - Additionally, we measure coherence / probe for a language. + +**Wait a minute**, what is noise/mess and coherence according to **YOU ?** + +*Noise :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then +**I established** some ground rules about **what is obvious** when **it seems like** a mess (aka. defining noise in rendered text). + I know that my interpretation of what is noise is probably incomplete, feel free to contribute in order to + improve or rewrite it. + +*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought +that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. + +## ⚡ Known limitations + + - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) + - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. + +## ⚠️ About Python EOLs + +**If you are running:** + +- Python >=2.7,<3.5: Unsupported +- Python 3.5: charset-normalizer < 2.1 +- Python 3.6: charset-normalizer < 3.1 +- Python 3.7: charset-normalizer < 4.0 + +Upgrade your Python interpreter as soon as possible. + +## 👤 Contributing + +Contributions, issues and feature requests are very much welcome.
+Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. + +## 📝 License + +Copyright © [Ahmed TAHRI @Ousret](https://github.com/Ousret).
+This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. + +Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) + +## 💼 For Enterprise + +Professional support for charset-normalizer is available as part of the [Tidelift +Subscription][1]. Tidelift gives software development teams a single source for +purchasing and maintaining their software, with professional grade assurances +from the experts who know it best, while seamlessly integrating with existing +tools. + +[1]: https://tidelift.com/subscription/pkg/pypi-charset-normalizer?utm_source=pypi-charset-normalizer&utm_medium=readme + +[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7297/badge)](https://www.bestpractices.dev/projects/7297) + +# Changelog +All notable changes to charset-normalizer will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [3.4.4](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4) (2025-10-13) + +### Changed +- Bound `setuptools` to a specific constraint `setuptools>=68,<=81`. +- Raised upper bound of mypyc for the optional pre-built extension to v1.18.2 + +### Removed +- `setuptools-scm` as a build dependency. + +### Misc +- Enforced hashes in `dev-requirements.txt` and created `ci-requirements.txt` for security purposes. +- Additional pre-built wheels for riscv64, s390x, and armv7l architectures. +- Restore ` multiple.intoto.jsonl` in GitHub releases in addition to individual attestation file per wheel. + +## [3.4.3](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3) (2025-08-09) + +### Changed +- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. (#595) (#583) +- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. (#391) + +### Added +- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase. +- Support for Python 3.14 + +### Fixed +- sdist archive contained useless directories. +- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#633) + +### Misc +- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. + Each published wheel comes with its SBOM. We choose CycloneDX as the format. +- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel. + +## [3.4.2](https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2) (2025-05-02) + +### Fixed +- Addressed the DeprecationWarning in our CLI regarding `argparse.FileType` by backporting the target class into the package. (#591) +- Improved the overall reliability of the detector with CJK Ideographs. (#605) (#587) + +### Changed +- Optional mypyc compilation upgraded to version 1.15 for Python >= 3.8 + +## [3.4.1](https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1) (2024-12-24) + +### Changed +- Project metadata are now stored using `pyproject.toml` instead of `setup.cfg` using setuptools as the build backend. +- Enforce annotation delayed loading for a simpler and consistent types in the project. +- Optional mypyc compilation upgraded to version 1.14 for Python >= 3.8 + +### Added +- pre-commit configuration. +- noxfile. + +### Removed +- `build-requirements.txt` as per using `pyproject.toml` native build configuration. +- `bin/integration.py` and `bin/serve.py` in favor of downstream integration test (see noxfile). +- `setup.cfg` in favor of `pyproject.toml` metadata configuration. +- Unused `utils.range_scan` function. + +### Fixed +- Converting content to Unicode bytes may insert `utf_8` instead of preferred `utf-8`. (#572) +- Deprecation warning "'count' is passed as positional argument" when converting to Unicode bytes on Python 3.13+ + +## [3.4.0](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0) (2024-10-08) + +### Added +- Argument `--no-preemptive` in the CLI to prevent the detector to search for hints. +- Support for Python 3.13 (#512) + +### Fixed +- Relax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch. +- Improved the general reliability of the detector based on user feedbacks. (#520) (#509) (#498) (#407) (#537) +- Declared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (#381) + +## [3.3.2](https://github.com/Ousret/charset_normalizer/compare/3.3.1...3.3.2) (2023-10-31) + +### Fixed +- Unintentional memory usage regression when using large payload that match several encoding (#376) +- Regression on some detection case showcased in the documentation (#371) + +### Added +- Noise (md) probe that identify malformed arabic representation due to the presence of letters in isolated form (credit to my wife) + +## [3.3.1](https://github.com/Ousret/charset_normalizer/compare/3.3.0...3.3.1) (2023-10-22) + +### Changed +- Optional mypyc compilation upgraded to version 1.6.1 for Python >= 3.8 +- Improved the general detection reliability based on reports from the community + +## [3.3.0](https://github.com/Ousret/charset_normalizer/compare/3.2.0...3.3.0) (2023-09-30) + +### Added +- Allow to execute the CLI (e.g. normalizer) through `python -m charset_normalizer.cli` or `python -m charset_normalizer` +- Support for 9 forgotten encoding that are supported by Python but unlisted in `encoding.aliases` as they have no alias (#323) + +### Removed +- (internal) Redundant utils.is_ascii function and unused function is_private_use_only +- (internal) charset_normalizer.assets is moved inside charset_normalizer.constant + +### Changed +- (internal) Unicode code blocks in constants are updated using the latest v15.0.0 definition to improve detection +- Optional mypyc compilation upgraded to version 1.5.1 for Python >= 3.8 + +### Fixed +- Unable to properly sort CharsetMatch when both chaos/noise and coherence were close due to an unreachable condition in \_\_lt\_\_ (#350) + +## [3.2.0](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.2.0) (2023-06-07) + +### Changed +- Typehint for function `from_path` no longer enforce `PathLike` as its first argument +- Minor improvement over the global detection reliability + +### Added +- Introduce function `is_binary` that relies on main capabilities, and optimized to detect binaries +- Propagate `enable_fallback` argument throughout `from_bytes`, `from_path`, and `from_fp` that allow a deeper control over the detection (default True) +- Explicit support for Python 3.12 + +### Fixed +- Edge case detection failure where a file would contain 'very-long' camel cased word (Issue #289) + +## [3.1.0](https://github.com/Ousret/charset_normalizer/compare/3.0.1...3.1.0) (2023-03-06) + +### Added +- Argument `should_rename_legacy` for legacy function `detect` and disregard any new arguments without errors (PR #262) + +### Removed +- Support for Python 3.6 (PR #260) + +### Changed +- Optional speedup provided by mypy/c 1.0.1 + +## [3.0.1](https://github.com/Ousret/charset_normalizer/compare/3.0.0...3.0.1) (2022-11-18) + +### Fixed +- Multi-bytes cutter/chunk generator did not always cut correctly (PR #233) + +### Changed +- Speedup provided by mypy/c 0.990 on Python >= 3.7 + +## [3.0.0](https://github.com/Ousret/charset_normalizer/compare/2.1.1...3.0.0) (2022-10-20) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it +- Sphinx warnings when generating the documentation + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [3.0.0rc1](https://github.com/Ousret/charset_normalizer/compare/3.0.0b2...3.0.0rc1) (2022-10-18) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' + +## [3.0.0b2](https://github.com/Ousret/charset_normalizer/compare/3.0.0b1...3.0.0b2) (2022-08-21) + +### Added +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Removed +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) + +### Fixed +- Sphinx warnings when generating the documentation + +## [3.0.0b1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...3.0.0b1) (2022-08-15) + +### Changed +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Removed +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [2.1.1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...2.1.1) (2022-08-19) + +### Deprecated +- Function `normalize` scheduled for removal in 3.0 + +### Changed +- Removed useless call to decode in fn is_unprintable (#206) + +### Fixed +- Third-party library (i18n xgettext) crashing not recognizing utf_8 (PEP 263) with underscore from [@aleksandernovikov](https://github.com/aleksandernovikov) (#204) + +## [2.1.0](https://github.com/Ousret/charset_normalizer/compare/2.0.12...2.1.0) (2022-06-19) + +### Added +- Output the Unicode table version when running the CLI with `--version` (PR #194) + +### Changed +- Re-use decoded buffer for single byte character sets from [@nijel](https://github.com/nijel) (PR #175) +- Fixing some performance bottlenecks from [@deedy5](https://github.com/deedy5) (PR #183) + +### Fixed +- Workaround potential bug in cpython with Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space (PR #175) +- CLI default threshold aligned with the API threshold from [@oleksandr-kuzmenko](https://github.com/oleksandr-kuzmenko) (PR #181) + +### Removed +- Support for Python 3.5 (PR #192) + +### Deprecated +- Use of backport unicodedata from `unicodedata2` as Python is quickly catching up, scheduled for removal in 3.0 (PR #194) + +## [2.0.12](https://github.com/Ousret/charset_normalizer/compare/2.0.11...2.0.12) (2022-02-12) + +### Fixed +- ASCII miss-detection on rare cases (PR #170) + +## [2.0.11](https://github.com/Ousret/charset_normalizer/compare/2.0.10...2.0.11) (2022-01-30) + +### Added +- Explicit support for Python 3.11 (PR #164) + +### Changed +- The logging behavior have been completely reviewed, now using only TRACE and DEBUG levels (PR #163 #165) + +## [2.0.10](https://github.com/Ousret/charset_normalizer/compare/2.0.9...2.0.10) (2022-01-04) + +### Fixed +- Fallback match entries might lead to UnicodeDecodeError for large bytes sequence (PR #154) + +### Changed +- Skipping the language-detection (CD) on ASCII (PR #155) + +## [2.0.9](https://github.com/Ousret/charset_normalizer/compare/2.0.8...2.0.9) (2021-12-03) + +### Changed +- Moderating the logging impact (since 2.0.8) for specific environments (PR #147) + +### Fixed +- Wrong logging level applied when setting kwarg `explain` to True (PR #146) + +## [2.0.8](https://github.com/Ousret/charset_normalizer/compare/2.0.7...2.0.8) (2021-11-24) +### Changed +- Improvement over Vietnamese detection (PR #126) +- MD improvement on trailing data and long foreign (non-pure latin) data (PR #124) +- Efficiency improvements in cd/alphabet_languages from [@adbar](https://github.com/adbar) (PR #122) +- call sum() without an intermediary list following PEP 289 recommendations from [@adbar](https://github.com/adbar) (PR #129) +- Code style as refactored by Sourcery-AI (PR #131) +- Minor adjustment on the MD around european words (PR #133) +- Remove and replace SRTs from assets / tests (PR #139) +- Initialize the library logger with a `NullHandler` by default from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Setting kwarg `explain` to True will add provisionally (bounded to function lifespan) a specific stream handler (PR #135) + +### Fixed +- Fix large (misleading) sequence giving UnicodeDecodeError (PR #137) +- Avoid using too insignificant chunk (PR #137) + +### Added +- Add and expose function `set_logging_handler` to configure a specific StreamHandler from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Add `CHANGELOG.md` entries, format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (PR #141) + +## [2.0.7](https://github.com/Ousret/charset_normalizer/compare/2.0.6...2.0.7) (2021-10-11) +### Added +- Add support for Kazakh (Cyrillic) language detection (PR #109) + +### Changed +- Further, improve inferring the language from a given single-byte code page (PR #112) +- Vainly trying to leverage PEP263 when PEP3120 is not supported (PR #116) +- Refactoring for potential performance improvements in loops from [@adbar](https://github.com/adbar) (PR #113) +- Various detection improvement (MD+CD) (PR #117) + +### Removed +- Remove redundant logging entry about detected language(s) (PR #115) + +### Fixed +- Fix a minor inconsistency between Python 3.5 and other versions regarding language detection (PR #117 #102) + +## [2.0.6](https://github.com/Ousret/charset_normalizer/compare/2.0.5...2.0.6) (2021-09-18) +### Fixed +- Unforeseen regression with the loss of the backward-compatibility with some older minor of Python 3.5.x (PR #100) +- Fix CLI crash when using --minimal output in certain cases (PR #103) + +### Changed +- Minor improvement to the detection efficiency (less than 1%) (PR #106 #101) + +## [2.0.5](https://github.com/Ousret/charset_normalizer/compare/2.0.4...2.0.5) (2021-09-14) +### Changed +- The project now comply with: flake8, mypy, isort and black to ensure a better overall quality (PR #81) +- The BC-support with v1.x was improved, the old staticmethods are restored (PR #82) +- The Unicode detection is slightly improved (PR #93) +- Add syntax sugar \_\_bool\_\_ for results CharsetMatches list-container (PR #91) + +### Removed +- The project no longer raise warning on tiny content given for detection, will be simply logged as warning instead (PR #92) + +### Fixed +- In some rare case, the chunks extractor could cut in the middle of a multi-byte character and could mislead the mess detection (PR #95) +- Some rare 'space' characters could trip up the UnprintablePlugin/Mess detection (PR #96) +- The MANIFEST.in was not exhaustive (PR #78) + +## [2.0.4](https://github.com/Ousret/charset_normalizer/compare/2.0.3...2.0.4) (2021-07-30) +### Fixed +- The CLI no longer raise an unexpected exception when no encoding has been found (PR #70) +- Fix accessing the 'alphabets' property when the payload contains surrogate characters (PR #68) +- The logger could mislead (explain=True) on detected languages and the impact of one MBCS match (PR #72) +- Submatch factoring could be wrong in rare edge cases (PR #72) +- Multiple files given to the CLI were ignored when publishing results to STDOUT. (After the first path) (PR #72) +- Fix line endings from CRLF to LF for certain project files (PR #67) + +### Changed +- Adjust the MD to lower the sensitivity, thus improving the global detection reliability (PR #69 #76) +- Allow fallback on specified encoding if any (PR #71) + +## [2.0.3](https://github.com/Ousret/charset_normalizer/compare/2.0.2...2.0.3) (2021-07-16) +### Changed +- Part of the detection mechanism has been improved to be less sensitive, resulting in more accurate detection results. Especially ASCII. (PR #63) +- According to the community wishes, the detection will fall back on ASCII or UTF-8 in a last-resort case. (PR #64) + +## [2.0.2](https://github.com/Ousret/charset_normalizer/compare/2.0.1...2.0.2) (2021-07-15) +### Fixed +- Empty/Too small JSON payload miss-detection fixed. Report from [@tseaver](https://github.com/tseaver) (PR #59) + +### Changed +- Don't inject unicodedata2 into sys.modules from [@akx](https://github.com/akx) (PR #57) + +## [2.0.1](https://github.com/Ousret/charset_normalizer/compare/2.0.0...2.0.1) (2021-07-13) +### Fixed +- Make it work where there isn't a filesystem available, dropping assets frequencies.json. Report from [@sethmlarson](https://github.com/sethmlarson). (PR #55) +- Using explain=False permanently disable the verbose output in the current runtime (PR #47) +- One log entry (language target preemptive) was not show in logs when using explain=True (PR #47) +- Fix undesired exception (ValueError) on getitem of instance CharsetMatches (PR #52) + +### Changed +- Public function normalize default args values were not aligned with from_bytes (PR #53) + +### Added +- You may now use charset aliases in cp_isolation and cp_exclusion arguments (PR #47) + +## [2.0.0](https://github.com/Ousret/charset_normalizer/compare/1.4.1...2.0.0) (2021-07-02) +### Changed +- 4x to 5 times faster than the previous 1.4.0 release. At least 2x faster than Chardet. +- Accent has been made on UTF-8 detection, should perform rather instantaneous. +- The backward compatibility with Chardet has been greatly improved. The legacy detect function returns an identical charset name whenever possible. +- The detection mechanism has been slightly improved, now Turkish content is detected correctly (most of the time) +- The program has been rewritten to ease the readability and maintainability. (+Using static typing)+ +- utf_7 detection has been reinstated. + +### Removed +- This package no longer require anything when used with Python 3.5 (Dropped cached_property) +- Removed support for these languages: Catalan, Esperanto, Kazakh, Baque, Volapük, Azeri, Galician, Nynorsk, Macedonian, and Serbocroatian. +- The exception hook on UnicodeDecodeError has been removed. + +### Deprecated +- Methods coherence_non_latin, w_counter, chaos_secondary_pass of the class CharsetMatch are now deprecated and scheduled for removal in v3.0 + +### Fixed +- The CLI output used the relative path of the file(s). Should be absolute. + +## [1.4.1](https://github.com/Ousret/charset_normalizer/compare/1.4.0...1.4.1) (2021-05-28) +### Fixed +- Logger configuration/usage no longer conflict with others (PR #44) + +## [1.4.0](https://github.com/Ousret/charset_normalizer/compare/1.3.9...1.4.0) (2021-05-21) +### Removed +- Using standard logging instead of using the package loguru. +- Dropping nose test framework in favor of the maintained pytest. +- Choose to not use dragonmapper package to help with gibberish Chinese/CJK text. +- Require cached_property only for Python 3.5 due to constraint. Dropping for every other interpreter version. +- Stop support for UTF-7 that does not contain a SIG. +- Dropping PrettyTable, replaced with pure JSON output in CLI. + +### Fixed +- BOM marker in a CharsetNormalizerMatch instance could be False in rare cases even if obviously present. Due to the sub-match factoring process. +- Not searching properly for the BOM when trying utf32/16 parent codec. + +### Changed +- Improving the package final size by compressing frequencies.json. +- Huge improvement over the larges payload. + +### Added +- CLI now produces JSON consumable output. +- Return ASCII if given sequences fit. Given reasonable confidence. + +## [1.3.9](https://github.com/Ousret/charset_normalizer/compare/1.3.8...1.3.9) (2021-05-13) + +### Fixed +- In some very rare cases, you may end up getting encode/decode errors due to a bad bytes payload (PR #40) + +## [1.3.8](https://github.com/Ousret/charset_normalizer/compare/1.3.7...1.3.8) (2021-05-12) + +### Fixed +- Empty given payload for detection may cause an exception if trying to access the `alphabets` property. (PR #39) + +## [1.3.7](https://github.com/Ousret/charset_normalizer/compare/1.3.6...1.3.7) (2021-05-12) + +### Fixed +- The legacy detect function should return UTF-8-SIG if sig is present in the payload. (PR #38) + +## [1.3.6](https://github.com/Ousret/charset_normalizer/compare/1.3.5...1.3.6) (2021-02-09) + +### Changed +- Amend the previous release to allow prettytable 2.0 (PR #35) + +## [1.3.5](https://github.com/Ousret/charset_normalizer/compare/1.3.4...1.3.5) (2021-02-08) + +### Fixed +- Fix error while using the package with a python pre-release interpreter (PR #33) + +### Changed +- Dependencies refactoring, constraints revised. + +### Added +- Add python 3.9 and 3.10 to the supported interpreters + +MIT License + +Copyright (c) 2025 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/RECORD b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/RECORD new file mode 100644 index 00000000..8f77deda --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/RECORD @@ -0,0 +1,35 @@ +../../../bin/normalizer,sha256=Jbv4iS8Kds1vnENEtxQXFDyfqxed7gWl0INvAYs2yoI,246 +charset_normalizer-3.4.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +charset_normalizer-3.4.4.dist-info/METADATA,sha256=jVuUFBti8dav19YLvWissTihVdF2ozUY4KKMw7jdkBQ,37303 +charset_normalizer-3.4.4.dist-info/RECORD,, +charset_normalizer-3.4.4.dist-info/WHEEL,sha256=DxRnWQz-Kp9-4a4hdDHsSv0KUC3H7sN9Nbef3-8RjXU,190 +charset_normalizer-3.4.4.dist-info/entry_points.txt,sha256=ADSTKrkXZ3hhdOVFi6DcUEHQRS0xfxDIE_pEz4wLIXA,65 +charset_normalizer-3.4.4.dist-info/licenses/LICENSE,sha256=bQ1Bv-FwrGx9wkjJpj4lTQ-0WmDVCoJX0K-SxuJJuIc,1071 +charset_normalizer-3.4.4.dist-info/top_level.txt,sha256=7ASyzePr8_xuZWJsnqJjIBtyV8vhEo0wBCv1MPRRi3Q,19 +charset_normalizer/__init__.py,sha256=OKRxRv2Zhnqk00tqkN0c1BtJjm165fWXLydE52IKuHc,1590 +charset_normalizer/__main__.py,sha256=yzYxMR-IhKRHYwcSlavEv8oGdwxsR89mr2X09qXGdps,109 +charset_normalizer/__pycache__/__init__.cpython-312.pyc,, +charset_normalizer/__pycache__/__main__.cpython-312.pyc,, +charset_normalizer/__pycache__/api.cpython-312.pyc,, +charset_normalizer/__pycache__/cd.cpython-312.pyc,, +charset_normalizer/__pycache__/constant.cpython-312.pyc,, +charset_normalizer/__pycache__/legacy.cpython-312.pyc,, +charset_normalizer/__pycache__/md.cpython-312.pyc,, +charset_normalizer/__pycache__/models.cpython-312.pyc,, +charset_normalizer/__pycache__/utils.cpython-312.pyc,, +charset_normalizer/__pycache__/version.cpython-312.pyc,, +charset_normalizer/api.py,sha256=V07i8aVeCD8T2fSia3C-fn0i9t8qQguEBhsqszg32Ns,22668 +charset_normalizer/cd.py,sha256=WKTo1HDb-H9HfCDc3Bfwq5jzS25Ziy9SE2a74SgTq88,12522 +charset_normalizer/cli/__init__.py,sha256=D8I86lFk2-py45JvqxniTirSj_sFyE6sjaY_0-G1shc,136 +charset_normalizer/cli/__main__.py,sha256=dMaXG6IJXRvqq8z2tig7Qb83-BpWTln55ooiku5_uvg,12646 +charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc,, +charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc,, +charset_normalizer/constant.py,sha256=7UVY4ldYhmQMHUdgQ_sgZmzcQ0xxYxpBunqSZ-XJZ8U,42713 +charset_normalizer/legacy.py,sha256=sYBzSpzsRrg_wF4LP536pG64BItw7Tqtc3SMQAHvFLM,2731 +charset_normalizer/md.cpython-312-x86_64-linux-gnu.so,sha256=sZ7umtJLjKfA83NFJ7npkiDyr06zDT8cWtl6uIx2MsM,15912 +charset_normalizer/md.py,sha256=-_oN3h3_X99nkFfqamD3yu45DC_wfk5odH0Tr_CQiXs,20145 +charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so,sha256=J2WWgLBQiO8sqdFsENp9u5V9uEH0tTwvTLszPdqhsv0,290584 +charset_normalizer/models.py,sha256=lKXhOnIPtiakbK3i__J9wpOfzx3JDTKj7Dn3Rg0VaRI,12394 +charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/utils.py,sha256=sTejPgrdlNsKNucZfJCxJ95lMTLA0ShHLLE3n5wpT9Q,12170 +charset_normalizer/version.py,sha256=nKE4qBNk5WA4LIJ_yIH_aSDfvtsyizkWMg-PUG-UZVk,115 diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL new file mode 100644 index 00000000..f3e8a970 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/WHEEL @@ -0,0 +1,7 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp312-cp312-manylinux_2_17_x86_64 +Tag: cp312-cp312-manylinux2014_x86_64 +Tag: cp312-cp312-manylinux_2_28_x86_64 + diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt new file mode 100644 index 00000000..65619e73 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +normalizer = charset_normalizer.cli:cli_detect diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE new file mode 100644 index 00000000..9725772c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt new file mode 100644 index 00000000..66958f0a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer-3.4.4.dist-info/top_level.txt @@ -0,0 +1 @@ +charset_normalizer diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__init__.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__init__.py new file mode 100644 index 00000000..0d3a3799 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__init__.py @@ -0,0 +1,48 @@ +""" +Charset-Normalizer +~~~~~~~~~~~~~~ +The Real First Universal Charset Detector. +A library that helps you read text from an unknown charset encoding. +Motivated by chardet, This package is trying to resolve the issue by taking a new approach. +All IANA character set names for which the Python core library provides codecs are supported. + +Basic usage: + >>> from charset_normalizer import from_bytes + >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) + >>> best_guess = results.best() + >>> str(best_guess) + 'Bсеки човек има право на образование. Oбразованието!' + +Others methods and usages are available - see the full documentation +at . +:copyright: (c) 2021 by Ahmed TAHRI +:license: MIT, see LICENSE for more details. +""" + +from __future__ import annotations + +import logging + +from .api import from_bytes, from_fp, from_path, is_binary +from .legacy import detect +from .models import CharsetMatch, CharsetMatches +from .utils import set_logging_handler +from .version import VERSION, __version__ + +__all__ = ( + "from_fp", + "from_path", + "from_bytes", + "is_binary", + "detect", + "CharsetMatch", + "CharsetMatches", + "__version__", + "VERSION", + "set_logging_handler", +) + +# Attach a NullHandler to the top level logger by default +# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library + +logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__main__.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__main__.py new file mode 100644 index 00000000..e0e76f7b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__main__.py @@ -0,0 +1,6 @@ +from __future__ import annotations + +from .cli import cli_detect + +if __name__ == "__main__": + cli_detect() diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..5dc81ec5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 00000000..03317433 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc new file mode 100644 index 00000000..385a2f99 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc new file mode 100644 index 00000000..ac1763f7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc new file mode 100644 index 00000000..35a76485 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc new file mode 100644 index 00000000..7a7ec613 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc new file mode 100644 index 00000000..960b3e27 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc new file mode 100644 index 00000000..ab0d76fd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc new file mode 100644 index 00000000..a7e11a34 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc new file mode 100644 index 00000000..65dfe153 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/api.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/api.py new file mode 100644 index 00000000..ebd96390 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/api.py @@ -0,0 +1,669 @@ +from __future__ import annotations + +import logging +from os import PathLike +from typing import BinaryIO + +from .cd import ( + coherence_ratio, + encoding_languages, + mb_encoding_languages, + merge_coherence_ratios, +) +from .constant import IANA_SUPPORTED, TOO_BIG_SEQUENCE, TOO_SMALL_SEQUENCE, TRACE +from .md import mess_ratio +from .models import CharsetMatch, CharsetMatches +from .utils import ( + any_specified_encoding, + cut_sequence_chunks, + iana_name, + identify_sig_or_bom, + is_cp_similar, + is_multi_byte_encoding, + should_strip_sig_or_bom, +) + +logger = logging.getLogger("charset_normalizer") +explain_handler = logging.StreamHandler() +explain_handler.setFormatter( + logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") +) + + +def from_bytes( + sequences: bytes | bytearray, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.2, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Given a raw bytes sequence, return the best possibles charset usable to render str objects. + If there is no results, it is a strong indicator that the source is binary/not text. + By default, the process will extract 5 blocks of 512o each to assess the mess and coherence of a given sequence. + And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. + + The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page + but never take it for granted. Can improve the performance. + + You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that + purpose. + + This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. + By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' + toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. + Custom logging format and handler can be set manually. + """ + + if not isinstance(sequences, (bytearray, bytes)): + raise TypeError( + "Expected object of type bytes or bytearray, got: {}".format( + type(sequences) + ) + ) + + if explain: + previous_logger_level: int = logger.level + logger.addHandler(explain_handler) + logger.setLevel(TRACE) + + length: int = len(sequences) + + if length == 0: + logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level or logging.WARNING) + return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) + + if cp_isolation is not None: + logger.log( + TRACE, + "cp_isolation is set. use this flag for debugging purpose. " + "limited list of encoding allowed : %s.", + ", ".join(cp_isolation), + ) + cp_isolation = [iana_name(cp, False) for cp in cp_isolation] + else: + cp_isolation = [] + + if cp_exclusion is not None: + logger.log( + TRACE, + "cp_exclusion is set. use this flag for debugging purpose. " + "limited list of encoding excluded : %s.", + ", ".join(cp_exclusion), + ) + cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] + else: + cp_exclusion = [] + + if length <= (chunk_size * steps): + logger.log( + TRACE, + "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", + steps, + chunk_size, + length, + ) + steps = 1 + chunk_size = length + + if steps > 1 and length / steps < chunk_size: + chunk_size = int(length / steps) + + is_too_small_sequence: bool = len(sequences) < TOO_SMALL_SEQUENCE + is_too_large_sequence: bool = len(sequences) >= TOO_BIG_SEQUENCE + + if is_too_small_sequence: + logger.log( + TRACE, + "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( + length + ), + ) + elif is_too_large_sequence: + logger.log( + TRACE, + "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( + length + ), + ) + + prioritized_encodings: list[str] = [] + + specified_encoding: str | None = ( + any_specified_encoding(sequences) if preemptive_behaviour else None + ) + + if specified_encoding is not None: + prioritized_encodings.append(specified_encoding) + logger.log( + TRACE, + "Detected declarative mark in sequence. Priority +1 given for %s.", + specified_encoding, + ) + + tested: set[str] = set() + tested_but_hard_failure: list[str] = [] + tested_but_soft_failure: list[str] = [] + + fallback_ascii: CharsetMatch | None = None + fallback_u8: CharsetMatch | None = None + fallback_specified: CharsetMatch | None = None + + results: CharsetMatches = CharsetMatches() + + early_stop_results: CharsetMatches = CharsetMatches() + + sig_encoding, sig_payload = identify_sig_or_bom(sequences) + + if sig_encoding is not None: + prioritized_encodings.append(sig_encoding) + logger.log( + TRACE, + "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", + len(sig_payload), + sig_encoding, + ) + + prioritized_encodings.append("ascii") + + if "utf_8" not in prioritized_encodings: + prioritized_encodings.append("utf_8") + + for encoding_iana in prioritized_encodings + IANA_SUPPORTED: + if cp_isolation and encoding_iana not in cp_isolation: + continue + + if cp_exclusion and encoding_iana in cp_exclusion: + continue + + if encoding_iana in tested: + continue + + tested.add(encoding_iana) + + decoded_payload: str | None = None + bom_or_sig_available: bool = sig_encoding == encoding_iana + strip_sig_or_bom: bool = bom_or_sig_available and should_strip_sig_or_bom( + encoding_iana + ) + + if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", + encoding_iana, + ) + continue + if encoding_iana in {"utf_7"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because detection is unreliable without BOM/SIG.", + encoding_iana, + ) + continue + + try: + is_multi_byte_decoder: bool = is_multi_byte_encoding(encoding_iana) + except (ModuleNotFoundError, ImportError): + logger.log( + TRACE, + "Encoding %s does not provide an IncrementalDecoder", + encoding_iana, + ) + continue + + try: + if is_too_large_sequence and is_multi_byte_decoder is False: + str( + ( + sequences[: int(50e4)] + if strip_sig_or_bom is False + else sequences[len(sig_payload) : int(50e4)] + ), + encoding=encoding_iana, + ) + else: + decoded_payload = str( + ( + sequences + if strip_sig_or_bom is False + else sequences[len(sig_payload) :] + ), + encoding=encoding_iana, + ) + except (UnicodeDecodeError, LookupError) as e: + if not isinstance(e, LookupError): + logger.log( + TRACE, + "Code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + similar_soft_failure_test: bool = False + + for encoding_soft_failed in tested_but_soft_failure: + if is_cp_similar(encoding_iana, encoding_soft_failed): + similar_soft_failure_test = True + break + + if similar_soft_failure_test: + logger.log( + TRACE, + "%s is deemed too similar to code page %s and was consider unsuited already. Continuing!", + encoding_iana, + encoding_soft_failed, + ) + continue + + r_ = range( + 0 if not bom_or_sig_available else len(sig_payload), + length, + int(length / steps), + ) + + multi_byte_bonus: bool = ( + is_multi_byte_decoder + and decoded_payload is not None + and len(decoded_payload) < length + ) + + if multi_byte_bonus: + logger.log( + TRACE, + "Code page %s is a multi byte encoding table and it appear that at least one character " + "was encoded using n-bytes.", + encoding_iana, + ) + + max_chunk_gave_up: int = int(len(r_) / 4) + + max_chunk_gave_up = max(max_chunk_gave_up, 2) + early_stop_count: int = 0 + lazy_str_hard_failure = False + + md_chunks: list[str] = [] + md_ratios = [] + + try: + for chunk in cut_sequence_chunks( + sequences, + encoding_iana, + r_, + chunk_size, + bom_or_sig_available, + strip_sig_or_bom, + sig_payload, + is_multi_byte_decoder, + decoded_payload, + ): + md_chunks.append(chunk) + + md_ratios.append( + mess_ratio( + chunk, + threshold, + explain is True and 1 <= len(cp_isolation) <= 2, + ) + ) + + if md_ratios[-1] >= threshold: + early_stop_count += 1 + + if (early_stop_count >= max_chunk_gave_up) or ( + bom_or_sig_available and strip_sig_or_bom is False + ): + break + except ( + UnicodeDecodeError + ) as e: # Lazy str loading may have missed something there + logger.log( + TRACE, + "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + early_stop_count = max_chunk_gave_up + lazy_str_hard_failure = True + + # We might want to check the sequence again with the whole content + # Only if initial MD tests passes + if ( + not lazy_str_hard_failure + and is_too_large_sequence + and not is_multi_byte_decoder + ): + try: + sequences[int(50e3) :].decode(encoding_iana, errors="strict") + except UnicodeDecodeError as e: + logger.log( + TRACE, + "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + mean_mess_ratio: float = sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 + if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: + tested_but_soft_failure.append(encoding_iana) + logger.log( + TRACE, + "%s was excluded because of initial chaos probing. Gave up %i time(s). " + "Computed mean chaos is %f %%.", + encoding_iana, + early_stop_count, + round(mean_mess_ratio * 100, ndigits=3), + ) + # Preparing those fallbacks in case we got nothing. + if ( + enable_fallback + and encoding_iana + in ["ascii", "utf_8", specified_encoding, "utf_16", "utf_32"] + and not lazy_str_hard_failure + ): + fallback_entry = CharsetMatch( + sequences, + encoding_iana, + threshold, + bom_or_sig_available, + [], + decoded_payload, + preemptive_declaration=specified_encoding, + ) + if encoding_iana == specified_encoding: + fallback_specified = fallback_entry + elif encoding_iana == "ascii": + fallback_ascii = fallback_entry + else: + fallback_u8 = fallback_entry + continue + + logger.log( + TRACE, + "%s passed initial chaos probing. Mean measured chaos is %f %%", + encoding_iana, + round(mean_mess_ratio * 100, ndigits=3), + ) + + if not is_multi_byte_decoder: + target_languages: list[str] = encoding_languages(encoding_iana) + else: + target_languages = mb_encoding_languages(encoding_iana) + + if target_languages: + logger.log( + TRACE, + "{} should target any language(s) of {}".format( + encoding_iana, str(target_languages) + ), + ) + + cd_ratios = [] + + # We shall skip the CD when its about ASCII + # Most of the time its not relevant to run "language-detection" on it. + if encoding_iana != "ascii": + for chunk in md_chunks: + chunk_languages = coherence_ratio( + chunk, + language_threshold, + ",".join(target_languages) if target_languages else None, + ) + + cd_ratios.append(chunk_languages) + + cd_ratios_merged = merge_coherence_ratios(cd_ratios) + + if cd_ratios_merged: + logger.log( + TRACE, + "We detected language {} using {}".format( + cd_ratios_merged, encoding_iana + ), + ) + + current_match = CharsetMatch( + sequences, + encoding_iana, + mean_mess_ratio, + bom_or_sig_available, + cd_ratios_merged, + ( + decoded_payload + if ( + is_too_large_sequence is False + or encoding_iana in [specified_encoding, "ascii", "utf_8"] + ) + else None + ), + preemptive_declaration=specified_encoding, + ) + + results.append(current_match) + + if ( + encoding_iana in [specified_encoding, "ascii", "utf_8"] + and mean_mess_ratio < 0.1 + ): + # If md says nothing to worry about, then... stop immediately! + if mean_mess_ratio == 0.0: + logger.debug( + "Encoding detection: %s is most likely the one.", + current_match.encoding, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([current_match]) + + early_stop_results.append(current_match) + + if ( + len(early_stop_results) + and (specified_encoding is None or specified_encoding in tested) + and "ascii" in tested + and "utf_8" in tested + ): + probable_result: CharsetMatch = early_stop_results.best() # type: ignore[assignment] + logger.debug( + "Encoding detection: %s is most likely the one.", + probable_result.encoding, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return CharsetMatches([probable_result]) + + if encoding_iana == sig_encoding: + logger.debug( + "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " + "the beginning of the sequence.", + encoding_iana, + ) + if explain: # Defensive: ensure exit path clean handler + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([results[encoding_iana]]) + + if len(results) == 0: + if fallback_u8 or fallback_ascii or fallback_specified: + logger.log( + TRACE, + "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", + ) + + if fallback_specified: + logger.debug( + "Encoding detection: %s will be used as a fallback match", + fallback_specified.encoding, + ) + results.append(fallback_specified) + elif ( + (fallback_u8 and fallback_ascii is None) + or ( + fallback_u8 + and fallback_ascii + and fallback_u8.fingerprint != fallback_ascii.fingerprint + ) + or (fallback_u8 is not None) + ): + logger.debug("Encoding detection: utf_8 will be used as a fallback match") + results.append(fallback_u8) + elif fallback_ascii: + logger.debug("Encoding detection: ascii will be used as a fallback match") + results.append(fallback_ascii) + + if results: + logger.debug( + "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", + results.best().encoding, # type: ignore + len(results) - 1, + ) + else: + logger.debug("Encoding detection: Unable to determine any suitable charset.") + + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return results + + +def from_fp( + fp: BinaryIO, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but using a file pointer that is already ready. + Will not close the file pointer. + """ + return from_bytes( + fp.read(), + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def from_path( + path: str | bytes | PathLike, # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. + Can raise IOError. + """ + with open(path, "rb") as fp: + return from_fp( + fp, + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def is_binary( + fp_or_path_or_payload: PathLike | str | BinaryIO | bytes, # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: list[str] | None = None, + cp_exclusion: list[str] | None = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = False, +) -> bool: + """ + Detect if the given input (file, bytes, or path) points to a binary file. aka. not a string. + Based on the same main heuristic algorithms and default kwargs at the sole exception that fallbacks match + are disabled to be stricter around ASCII-compatible but unlikely to be a string. + """ + if isinstance(fp_or_path_or_payload, (str, PathLike)): + guesses = from_path( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + elif isinstance( + fp_or_path_or_payload, + ( + bytes, + bytearray, + ), + ): + guesses = from_bytes( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + else: + guesses = from_fp( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + + return not guesses diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cd.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cd.py new file mode 100644 index 00000000..71a3ed51 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cd.py @@ -0,0 +1,395 @@ +from __future__ import annotations + +import importlib +from codecs import IncrementalDecoder +from collections import Counter +from functools import lru_cache +from typing import Counter as TypeCounter + +from .constant import ( + FREQUENCIES, + KO_NAMES, + LANGUAGE_SUPPORTED_COUNT, + TOO_SMALL_SEQUENCE, + ZH_NAMES, +) +from .md import is_suspiciously_successive_range +from .models import CoherenceMatches +from .utils import ( + is_accentuated, + is_latin, + is_multi_byte_encoding, + is_unicode_range_secondary, + unicode_range, +) + + +def encoding_unicode_range(iana_name: str) -> list[str]: + """ + Return associated unicode ranges in a single byte code page. + """ + if is_multi_byte_encoding(iana_name): + raise OSError("Function not supported on multi-byte code page") + + decoder = importlib.import_module(f"encodings.{iana_name}").IncrementalDecoder + + p: IncrementalDecoder = decoder(errors="ignore") + seen_ranges: dict[str, int] = {} + character_count: int = 0 + + for i in range(0x40, 0xFF): + chunk: str = p.decode(bytes([i])) + + if chunk: + character_range: str | None = unicode_range(chunk) + + if character_range is None: + continue + + if is_unicode_range_secondary(character_range) is False: + if character_range not in seen_ranges: + seen_ranges[character_range] = 0 + seen_ranges[character_range] += 1 + character_count += 1 + + return sorted( + [ + character_range + for character_range in seen_ranges + if seen_ranges[character_range] / character_count >= 0.15 + ] + ) + + +def unicode_range_languages(primary_range: str) -> list[str]: + """ + Return inferred languages used with a unicode range. + """ + languages: list[str] = [] + + for language, characters in FREQUENCIES.items(): + for character in characters: + if unicode_range(character) == primary_range: + languages.append(language) + break + + return languages + + +@lru_cache() +def encoding_languages(iana_name: str) -> list[str]: + """ + Single-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + unicode_ranges: list[str] = encoding_unicode_range(iana_name) + primary_range: str | None = None + + for specified_range in unicode_ranges: + if "Latin" not in specified_range: + primary_range = specified_range + break + + if primary_range is None: + return ["Latin Based"] + + return unicode_range_languages(primary_range) + + +@lru_cache() +def mb_encoding_languages(iana_name: str) -> list[str]: + """ + Multi-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + if ( + iana_name.startswith("shift_") + or iana_name.startswith("iso2022_jp") + or iana_name.startswith("euc_j") + or iana_name == "cp932" + ): + return ["Japanese"] + if iana_name.startswith("gb") or iana_name in ZH_NAMES: + return ["Chinese"] + if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: + return ["Korean"] + + return [] + + +@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) +def get_target_features(language: str) -> tuple[bool, bool]: + """ + Determine main aspects from a supported language if it contains accents and if is pure Latin. + """ + target_have_accents: bool = False + target_pure_latin: bool = True + + for character in FREQUENCIES[language]: + if not target_have_accents and is_accentuated(character): + target_have_accents = True + if target_pure_latin and is_latin(character) is False: + target_pure_latin = False + + return target_have_accents, target_pure_latin + + +def alphabet_languages( + characters: list[str], ignore_non_latin: bool = False +) -> list[str]: + """ + Return associated languages associated to given characters. + """ + languages: list[tuple[str, float]] = [] + + source_have_accents = any(is_accentuated(character) for character in characters) + + for language, language_characters in FREQUENCIES.items(): + target_have_accents, target_pure_latin = get_target_features(language) + + if ignore_non_latin and target_pure_latin is False: + continue + + if target_have_accents is False and source_have_accents: + continue + + character_count: int = len(language_characters) + + character_match_count: int = len( + [c for c in language_characters if c in characters] + ) + + ratio: float = character_match_count / character_count + + if ratio >= 0.2: + languages.append((language, ratio)) + + languages = sorted(languages, key=lambda x: x[1], reverse=True) + + return [compatible_language[0] for compatible_language in languages] + + +def characters_popularity_compare( + language: str, ordered_characters: list[str] +) -> float: + """ + Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. + The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). + Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) + """ + if language not in FREQUENCIES: + raise ValueError(f"{language} not available") + + character_approved_count: int = 0 + FREQUENCIES_language_set = set(FREQUENCIES[language]) + + ordered_characters_count: int = len(ordered_characters) + target_language_characters_count: int = len(FREQUENCIES[language]) + + large_alphabet: bool = target_language_characters_count > 26 + + for character, character_rank in zip( + ordered_characters, range(0, ordered_characters_count) + ): + if character not in FREQUENCIES_language_set: + continue + + character_rank_in_language: int = FREQUENCIES[language].index(character) + expected_projection_ratio: float = ( + target_language_characters_count / ordered_characters_count + ) + character_rank_projection: int = int(character_rank * expected_projection_ratio) + + if ( + large_alphabet is False + and abs(character_rank_projection - character_rank_in_language) > 4 + ): + continue + + if ( + large_alphabet is True + and abs(character_rank_projection - character_rank_in_language) + < target_language_characters_count / 3 + ): + character_approved_count += 1 + continue + + characters_before_source: list[str] = FREQUENCIES[language][ + 0:character_rank_in_language + ] + characters_after_source: list[str] = FREQUENCIES[language][ + character_rank_in_language: + ] + characters_before: list[str] = ordered_characters[0:character_rank] + characters_after: list[str] = ordered_characters[character_rank:] + + before_match_count: int = len( + set(characters_before) & set(characters_before_source) + ) + + after_match_count: int = len( + set(characters_after) & set(characters_after_source) + ) + + if len(characters_before_source) == 0 and before_match_count <= 4: + character_approved_count += 1 + continue + + if len(characters_after_source) == 0 and after_match_count <= 4: + character_approved_count += 1 + continue + + if ( + before_match_count / len(characters_before_source) >= 0.4 + or after_match_count / len(characters_after_source) >= 0.4 + ): + character_approved_count += 1 + continue + + return character_approved_count / len(ordered_characters) + + +def alpha_unicode_split(decoded_sequence: str) -> list[str]: + """ + Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. + Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; + One containing the latin letters and the other hebrew. + """ + layers: dict[str, str] = {} + + for character in decoded_sequence: + if character.isalpha() is False: + continue + + character_range: str | None = unicode_range(character) + + if character_range is None: + continue + + layer_target_range: str | None = None + + for discovered_range in layers: + if ( + is_suspiciously_successive_range(discovered_range, character_range) + is False + ): + layer_target_range = discovered_range + break + + if layer_target_range is None: + layer_target_range = character_range + + if layer_target_range not in layers: + layers[layer_target_range] = character.lower() + continue + + layers[layer_target_range] += character.lower() + + return list(layers.values()) + + +def merge_coherence_ratios(results: list[CoherenceMatches]) -> CoherenceMatches: + """ + This function merge results previously given by the function coherence_ratio. + The return type is the same as coherence_ratio. + """ + per_language_ratios: dict[str, list[float]] = {} + for result in results: + for sub_result in result: + language, ratio = sub_result + if language not in per_language_ratios: + per_language_ratios[language] = [ratio] + continue + per_language_ratios[language].append(ratio) + + merge = [ + ( + language, + round( + sum(per_language_ratios[language]) / len(per_language_ratios[language]), + 4, + ), + ) + for language in per_language_ratios + ] + + return sorted(merge, key=lambda x: x[1], reverse=True) + + +def filter_alt_coherence_matches(results: CoherenceMatches) -> CoherenceMatches: + """ + We shall NOT return "English—" in CoherenceMatches because it is an alternative + of "English". This function only keeps the best match and remove the em-dash in it. + """ + index_results: dict[str, list[float]] = dict() + + for result in results: + language, ratio = result + no_em_name: str = language.replace("—", "") + + if no_em_name not in index_results: + index_results[no_em_name] = [] + + index_results[no_em_name].append(ratio) + + if any(len(index_results[e]) > 1 for e in index_results): + filtered_results: CoherenceMatches = [] + + for language in index_results: + filtered_results.append((language, max(index_results[language]))) + + return filtered_results + + return results + + +@lru_cache(maxsize=2048) +def coherence_ratio( + decoded_sequence: str, threshold: float = 0.1, lg_inclusion: str | None = None +) -> CoherenceMatches: + """ + Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. + A layer = Character extraction by alphabets/ranges. + """ + + results: list[tuple[str, float]] = [] + ignore_non_latin: bool = False + + sufficient_match_count: int = 0 + + lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] + if "Latin Based" in lg_inclusion_list: + ignore_non_latin = True + lg_inclusion_list.remove("Latin Based") + + for layer in alpha_unicode_split(decoded_sequence): + sequence_frequencies: TypeCounter[str] = Counter(layer) + most_common = sequence_frequencies.most_common() + + character_count: int = sum(o for c, o in most_common) + + if character_count <= TOO_SMALL_SEQUENCE: + continue + + popular_character_ordered: list[str] = [c for c, o in most_common] + + for language in lg_inclusion_list or alphabet_languages( + popular_character_ordered, ignore_non_latin + ): + ratio: float = characters_popularity_compare( + language, popular_character_ordered + ) + + if ratio < threshold: + continue + elif ratio >= 0.8: + sufficient_match_count += 1 + + results.append((language, round(ratio, 4))) + + if sufficient_match_count >= 3: + break + + return sorted( + filter_alt_coherence_matches(results), key=lambda x: x[1], reverse=True + ) diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py new file mode 100644 index 00000000..543a5a4d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +from .__main__ import cli_detect, query_yes_no + +__all__ = ( + "cli_detect", + "query_yes_no", +) diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py new file mode 100644 index 00000000..cb64156a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py @@ -0,0 +1,381 @@ +from __future__ import annotations + +import argparse +import sys +import typing +from json import dumps +from os.path import abspath, basename, dirname, join, realpath +from platform import python_version +from unicodedata import unidata_version + +import charset_normalizer.md as md_module +from charset_normalizer import from_fp +from charset_normalizer.models import CliDetectionResult +from charset_normalizer.version import __version__ + + +def query_yes_no(question: str, default: str = "yes") -> bool: + """Ask a yes/no question via input() and return their answer. + + "question" is a string that is presented to the user. + "default" is the presumed answer if the user just hits . + It must be "yes" (the default), "no" or None (meaning + an answer is required of the user). + + The "answer" return value is True for "yes" or False for "no". + + Credit goes to (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input + """ + valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False} + if default is None: + prompt = " [y/n] " + elif default == "yes": + prompt = " [Y/n] " + elif default == "no": + prompt = " [y/N] " + else: + raise ValueError("invalid default answer: '%s'" % default) + + while True: + sys.stdout.write(question + prompt) + choice = input().lower() + if default is not None and choice == "": + return valid[default] + elif choice in valid: + return valid[choice] + else: + sys.stdout.write("Please respond with 'yes' or 'no' (or 'y' or 'n').\n") + + +class FileType: + """Factory for creating file object types + + Instances of FileType are typically passed as type= arguments to the + ArgumentParser add_argument() method. + + Keyword Arguments: + - mode -- A string indicating how the file is to be opened. Accepts the + same values as the builtin open() function. + - bufsize -- The file's desired buffer size. Accepts the same values as + the builtin open() function. + - encoding -- The file's encoding. Accepts the same values as the + builtin open() function. + - errors -- A string indicating how encoding and decoding errors are to + be handled. Accepts the same value as the builtin open() function. + + Backported from CPython 3.12 + """ + + def __init__( + self, + mode: str = "r", + bufsize: int = -1, + encoding: str | None = None, + errors: str | None = None, + ): + self._mode = mode + self._bufsize = bufsize + self._encoding = encoding + self._errors = errors + + def __call__(self, string: str) -> typing.IO: # type: ignore[type-arg] + # the special argument "-" means sys.std{in,out} + if string == "-": + if "r" in self._mode: + return sys.stdin.buffer if "b" in self._mode else sys.stdin + elif any(c in self._mode for c in "wax"): + return sys.stdout.buffer if "b" in self._mode else sys.stdout + else: + msg = f'argument "-" with mode {self._mode}' + raise ValueError(msg) + + # all other arguments are used as file names + try: + return open(string, self._mode, self._bufsize, self._encoding, self._errors) + except OSError as e: + message = f"can't open '{string}': {e}" + raise argparse.ArgumentTypeError(message) + + def __repr__(self) -> str: + args = self._mode, self._bufsize + kwargs = [("encoding", self._encoding), ("errors", self._errors)] + args_str = ", ".join( + [repr(arg) for arg in args if arg != -1] + + [f"{kw}={arg!r}" for kw, arg in kwargs if arg is not None] + ) + return f"{type(self).__name__}({args_str})" + + +def cli_detect(argv: list[str] | None = None) -> int: + """ + CLI assistant using ARGV and ArgumentParser + :param argv: + :return: 0 if everything is fine, anything else equal trouble + """ + parser = argparse.ArgumentParser( + description="The Real First Universal Charset Detector. " + "Discover originating encoding used on text file. " + "Normalize text to unicode." + ) + + parser.add_argument( + "files", type=FileType("rb"), nargs="+", help="File(s) to be analysed" + ) + parser.add_argument( + "-v", + "--verbose", + action="store_true", + default=False, + dest="verbose", + help="Display complementary information about file if any. " + "Stdout will contain logs about the detection process.", + ) + parser.add_argument( + "-a", + "--with-alternative", + action="store_true", + default=False, + dest="alternatives", + help="Output complementary possibilities if any. Top-level JSON WILL be a list.", + ) + parser.add_argument( + "-n", + "--normalize", + action="store_true", + default=False, + dest="normalize", + help="Permit to normalize input file. If not set, program does not write anything.", + ) + parser.add_argument( + "-m", + "--minimal", + action="store_true", + default=False, + dest="minimal", + help="Only output the charset detected to STDOUT. Disabling JSON output.", + ) + parser.add_argument( + "-r", + "--replace", + action="store_true", + default=False, + dest="replace", + help="Replace file when trying to normalize it instead of creating a new one.", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + default=False, + dest="force", + help="Replace file without asking if you are sure, use this flag with caution.", + ) + parser.add_argument( + "-i", + "--no-preemptive", + action="store_true", + default=False, + dest="no_preemptive", + help="Disable looking at a charset declaration to hint the detector.", + ) + parser.add_argument( + "-t", + "--threshold", + action="store", + default=0.2, + type=float, + dest="threshold", + help="Define a custom maximum amount of noise allowed in decoded content. 0. <= noise <= 1.", + ) + parser.add_argument( + "--version", + action="version", + version="Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}".format( + __version__, + python_version(), + unidata_version, + "OFF" if md_module.__file__.lower().endswith(".py") else "ON", + ), + help="Show version information and exit.", + ) + + args = parser.parse_args(argv) + + if args.replace is True and args.normalize is False: + if args.files: + for my_file in args.files: + my_file.close() + print("Use --replace in addition of --normalize only.", file=sys.stderr) + return 1 + + if args.force is True and args.replace is False: + if args.files: + for my_file in args.files: + my_file.close() + print("Use --force in addition of --replace only.", file=sys.stderr) + return 1 + + if args.threshold < 0.0 or args.threshold > 1.0: + if args.files: + for my_file in args.files: + my_file.close() + print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) + return 1 + + x_ = [] + + for my_file in args.files: + matches = from_fp( + my_file, + threshold=args.threshold, + explain=args.verbose, + preemptive_behaviour=args.no_preemptive is False, + ) + + best_guess = matches.best() + + if best_guess is None: + print( + 'Unable to identify originating encoding for "{}". {}'.format( + my_file.name, + ( + "Maybe try increasing maximum amount of chaos." + if args.threshold < 1.0 + else "" + ), + ), + file=sys.stderr, + ) + x_.append( + CliDetectionResult( + abspath(my_file.name), + None, + [], + [], + "Unknown", + [], + False, + 1.0, + 0.0, + None, + True, + ) + ) + else: + x_.append( + CliDetectionResult( + abspath(my_file.name), + best_guess.encoding, + best_guess.encoding_aliases, + [ + cp + for cp in best_guess.could_be_from_charset + if cp != best_guess.encoding + ], + best_guess.language, + best_guess.alphabets, + best_guess.bom, + best_guess.percent_chaos, + best_guess.percent_coherence, + None, + True, + ) + ) + + if len(matches) > 1 and args.alternatives: + for el in matches: + if el != best_guess: + x_.append( + CliDetectionResult( + abspath(my_file.name), + el.encoding, + el.encoding_aliases, + [ + cp + for cp in el.could_be_from_charset + if cp != el.encoding + ], + el.language, + el.alphabets, + el.bom, + el.percent_chaos, + el.percent_coherence, + None, + False, + ) + ) + + if args.normalize is True: + if best_guess.encoding.startswith("utf") is True: + print( + '"{}" file does not need to be normalized, as it already came from unicode.'.format( + my_file.name + ), + file=sys.stderr, + ) + if my_file.closed is False: + my_file.close() + continue + + dir_path = dirname(realpath(my_file.name)) + file_name = basename(realpath(my_file.name)) + + o_: list[str] = file_name.split(".") + + if args.replace is False: + o_.insert(-1, best_guess.encoding) + if my_file.closed is False: + my_file.close() + elif ( + args.force is False + and query_yes_no( + 'Are you sure to normalize "{}" by replacing it ?'.format( + my_file.name + ), + "no", + ) + is False + ): + if my_file.closed is False: + my_file.close() + continue + + try: + x_[0].unicode_path = join(dir_path, ".".join(o_)) + + with open(x_[0].unicode_path, "wb") as fp: + fp.write(best_guess.output()) + except OSError as e: + print(str(e), file=sys.stderr) + if my_file.closed is False: + my_file.close() + return 2 + + if my_file.closed is False: + my_file.close() + + if args.minimal is False: + print( + dumps( + [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, + ensure_ascii=True, + indent=4, + ) + ) + else: + for my_file in args.files: + print( + ", ".join( + [ + el.encoding or "undefined" + for el in x_ + if el.path == abspath(my_file.name) + ] + ) + ) + + return 0 + + +if __name__ == "__main__": + cli_detect() diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..fc11ea95 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 00000000..6207850e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/constant.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/constant.py new file mode 100644 index 00000000..cc71a019 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/constant.py @@ -0,0 +1,2015 @@ +from __future__ import annotations + +from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE +from encodings.aliases import aliases +from re import IGNORECASE +from re import compile as re_compile + +# Contain for each eligible encoding a list of/item bytes SIG/BOM +ENCODING_MARKS: dict[str, bytes | list[bytes]] = { + "utf_8": BOM_UTF8, + "utf_7": [ + b"\x2b\x2f\x76\x38", + b"\x2b\x2f\x76\x39", + b"\x2b\x2f\x76\x2b", + b"\x2b\x2f\x76\x2f", + b"\x2b\x2f\x76\x38\x2d", + ], + "gb18030": b"\x84\x31\x95\x33", + "utf_32": [BOM_UTF32_BE, BOM_UTF32_LE], + "utf_16": [BOM_UTF16_BE, BOM_UTF16_LE], +} + +TOO_SMALL_SEQUENCE: int = 32 +TOO_BIG_SEQUENCE: int = int(10e6) + +UTF8_MAXIMAL_ALLOCATION: int = 1_112_064 + +# Up-to-date Unicode ucd/15.0.0 +UNICODE_RANGES_COMBINED: dict[str, range] = { + "Control character": range(32), + "Basic Latin": range(32, 128), + "Latin-1 Supplement": range(128, 256), + "Latin Extended-A": range(256, 384), + "Latin Extended-B": range(384, 592), + "IPA Extensions": range(592, 688), + "Spacing Modifier Letters": range(688, 768), + "Combining Diacritical Marks": range(768, 880), + "Greek and Coptic": range(880, 1024), + "Cyrillic": range(1024, 1280), + "Cyrillic Supplement": range(1280, 1328), + "Armenian": range(1328, 1424), + "Hebrew": range(1424, 1536), + "Arabic": range(1536, 1792), + "Syriac": range(1792, 1872), + "Arabic Supplement": range(1872, 1920), + "Thaana": range(1920, 1984), + "NKo": range(1984, 2048), + "Samaritan": range(2048, 2112), + "Mandaic": range(2112, 2144), + "Syriac Supplement": range(2144, 2160), + "Arabic Extended-B": range(2160, 2208), + "Arabic Extended-A": range(2208, 2304), + "Devanagari": range(2304, 2432), + "Bengali": range(2432, 2560), + "Gurmukhi": range(2560, 2688), + "Gujarati": range(2688, 2816), + "Oriya": range(2816, 2944), + "Tamil": range(2944, 3072), + "Telugu": range(3072, 3200), + "Kannada": range(3200, 3328), + "Malayalam": range(3328, 3456), + "Sinhala": range(3456, 3584), + "Thai": range(3584, 3712), + "Lao": range(3712, 3840), + "Tibetan": range(3840, 4096), + "Myanmar": range(4096, 4256), + "Georgian": range(4256, 4352), + "Hangul Jamo": range(4352, 4608), + "Ethiopic": range(4608, 4992), + "Ethiopic Supplement": range(4992, 5024), + "Cherokee": range(5024, 5120), + "Unified Canadian Aboriginal Syllabics": range(5120, 5760), + "Ogham": range(5760, 5792), + "Runic": range(5792, 5888), + "Tagalog": range(5888, 5920), + "Hanunoo": range(5920, 5952), + "Buhid": range(5952, 5984), + "Tagbanwa": range(5984, 6016), + "Khmer": range(6016, 6144), + "Mongolian": range(6144, 6320), + "Unified Canadian Aboriginal Syllabics Extended": range(6320, 6400), + "Limbu": range(6400, 6480), + "Tai Le": range(6480, 6528), + "New Tai Lue": range(6528, 6624), + "Khmer Symbols": range(6624, 6656), + "Buginese": range(6656, 6688), + "Tai Tham": range(6688, 6832), + "Combining Diacritical Marks Extended": range(6832, 6912), + "Balinese": range(6912, 7040), + "Sundanese": range(7040, 7104), + "Batak": range(7104, 7168), + "Lepcha": range(7168, 7248), + "Ol Chiki": range(7248, 7296), + "Cyrillic Extended-C": range(7296, 7312), + "Georgian Extended": range(7312, 7360), + "Sundanese Supplement": range(7360, 7376), + "Vedic Extensions": range(7376, 7424), + "Phonetic Extensions": range(7424, 7552), + "Phonetic Extensions Supplement": range(7552, 7616), + "Combining Diacritical Marks Supplement": range(7616, 7680), + "Latin Extended Additional": range(7680, 7936), + "Greek Extended": range(7936, 8192), + "General Punctuation": range(8192, 8304), + "Superscripts and Subscripts": range(8304, 8352), + "Currency Symbols": range(8352, 8400), + "Combining Diacritical Marks for Symbols": range(8400, 8448), + "Letterlike Symbols": range(8448, 8528), + "Number Forms": range(8528, 8592), + "Arrows": range(8592, 8704), + "Mathematical Operators": range(8704, 8960), + "Miscellaneous Technical": range(8960, 9216), + "Control Pictures": range(9216, 9280), + "Optical Character Recognition": range(9280, 9312), + "Enclosed Alphanumerics": range(9312, 9472), + "Box Drawing": range(9472, 9600), + "Block Elements": range(9600, 9632), + "Geometric Shapes": range(9632, 9728), + "Miscellaneous Symbols": range(9728, 9984), + "Dingbats": range(9984, 10176), + "Miscellaneous Mathematical Symbols-A": range(10176, 10224), + "Supplemental Arrows-A": range(10224, 10240), + "Braille Patterns": range(10240, 10496), + "Supplemental Arrows-B": range(10496, 10624), + "Miscellaneous Mathematical Symbols-B": range(10624, 10752), + "Supplemental Mathematical Operators": range(10752, 11008), + "Miscellaneous Symbols and Arrows": range(11008, 11264), + "Glagolitic": range(11264, 11360), + "Latin Extended-C": range(11360, 11392), + "Coptic": range(11392, 11520), + "Georgian Supplement": range(11520, 11568), + "Tifinagh": range(11568, 11648), + "Ethiopic Extended": range(11648, 11744), + "Cyrillic Extended-A": range(11744, 11776), + "Supplemental Punctuation": range(11776, 11904), + "CJK Radicals Supplement": range(11904, 12032), + "Kangxi Radicals": range(12032, 12256), + "Ideographic Description Characters": range(12272, 12288), + "CJK Symbols and Punctuation": range(12288, 12352), + "Hiragana": range(12352, 12448), + "Katakana": range(12448, 12544), + "Bopomofo": range(12544, 12592), + "Hangul Compatibility Jamo": range(12592, 12688), + "Kanbun": range(12688, 12704), + "Bopomofo Extended": range(12704, 12736), + "CJK Strokes": range(12736, 12784), + "Katakana Phonetic Extensions": range(12784, 12800), + "Enclosed CJK Letters and Months": range(12800, 13056), + "CJK Compatibility": range(13056, 13312), + "CJK Unified Ideographs Extension A": range(13312, 19904), + "Yijing Hexagram Symbols": range(19904, 19968), + "CJK Unified Ideographs": range(19968, 40960), + "Yi Syllables": range(40960, 42128), + "Yi Radicals": range(42128, 42192), + "Lisu": range(42192, 42240), + "Vai": range(42240, 42560), + "Cyrillic Extended-B": range(42560, 42656), + "Bamum": range(42656, 42752), + "Modifier Tone Letters": range(42752, 42784), + "Latin Extended-D": range(42784, 43008), + "Syloti Nagri": range(43008, 43056), + "Common Indic Number Forms": range(43056, 43072), + "Phags-pa": range(43072, 43136), + "Saurashtra": range(43136, 43232), + "Devanagari Extended": range(43232, 43264), + "Kayah Li": range(43264, 43312), + "Rejang": range(43312, 43360), + "Hangul Jamo Extended-A": range(43360, 43392), + "Javanese": range(43392, 43488), + "Myanmar Extended-B": range(43488, 43520), + "Cham": range(43520, 43616), + "Myanmar Extended-A": range(43616, 43648), + "Tai Viet": range(43648, 43744), + "Meetei Mayek Extensions": range(43744, 43776), + "Ethiopic Extended-A": range(43776, 43824), + "Latin Extended-E": range(43824, 43888), + "Cherokee Supplement": range(43888, 43968), + "Meetei Mayek": range(43968, 44032), + "Hangul Syllables": range(44032, 55216), + "Hangul Jamo Extended-B": range(55216, 55296), + "High Surrogates": range(55296, 56192), + "High Private Use Surrogates": range(56192, 56320), + "Low Surrogates": range(56320, 57344), + "Private Use Area": range(57344, 63744), + "CJK Compatibility Ideographs": range(63744, 64256), + "Alphabetic Presentation Forms": range(64256, 64336), + "Arabic Presentation Forms-A": range(64336, 65024), + "Variation Selectors": range(65024, 65040), + "Vertical Forms": range(65040, 65056), + "Combining Half Marks": range(65056, 65072), + "CJK Compatibility Forms": range(65072, 65104), + "Small Form Variants": range(65104, 65136), + "Arabic Presentation Forms-B": range(65136, 65280), + "Halfwidth and Fullwidth Forms": range(65280, 65520), + "Specials": range(65520, 65536), + "Linear B Syllabary": range(65536, 65664), + "Linear B Ideograms": range(65664, 65792), + "Aegean Numbers": range(65792, 65856), + "Ancient Greek Numbers": range(65856, 65936), + "Ancient Symbols": range(65936, 66000), + "Phaistos Disc": range(66000, 66048), + "Lycian": range(66176, 66208), + "Carian": range(66208, 66272), + "Coptic Epact Numbers": range(66272, 66304), + "Old Italic": range(66304, 66352), + "Gothic": range(66352, 66384), + "Old Permic": range(66384, 66432), + "Ugaritic": range(66432, 66464), + "Old Persian": range(66464, 66528), + "Deseret": range(66560, 66640), + "Shavian": range(66640, 66688), + "Osmanya": range(66688, 66736), + "Osage": range(66736, 66816), + "Elbasan": range(66816, 66864), + "Caucasian Albanian": range(66864, 66928), + "Vithkuqi": range(66928, 67008), + "Linear A": range(67072, 67456), + "Latin Extended-F": range(67456, 67520), + "Cypriot Syllabary": range(67584, 67648), + "Imperial Aramaic": range(67648, 67680), + "Palmyrene": range(67680, 67712), + "Nabataean": range(67712, 67760), + "Hatran": range(67808, 67840), + "Phoenician": range(67840, 67872), + "Lydian": range(67872, 67904), + "Meroitic Hieroglyphs": range(67968, 68000), + "Meroitic Cursive": range(68000, 68096), + "Kharoshthi": range(68096, 68192), + "Old South Arabian": range(68192, 68224), + "Old North Arabian": range(68224, 68256), + "Manichaean": range(68288, 68352), + "Avestan": range(68352, 68416), + "Inscriptional Parthian": range(68416, 68448), + "Inscriptional Pahlavi": range(68448, 68480), + "Psalter Pahlavi": range(68480, 68528), + "Old Turkic": range(68608, 68688), + "Old Hungarian": range(68736, 68864), + "Hanifi Rohingya": range(68864, 68928), + "Rumi Numeral Symbols": range(69216, 69248), + "Yezidi": range(69248, 69312), + "Arabic Extended-C": range(69312, 69376), + "Old Sogdian": range(69376, 69424), + "Sogdian": range(69424, 69488), + "Old Uyghur": range(69488, 69552), + "Chorasmian": range(69552, 69600), + "Elymaic": range(69600, 69632), + "Brahmi": range(69632, 69760), + "Kaithi": range(69760, 69840), + "Sora Sompeng": range(69840, 69888), + "Chakma": range(69888, 69968), + "Mahajani": range(69968, 70016), + "Sharada": range(70016, 70112), + "Sinhala Archaic Numbers": range(70112, 70144), + "Khojki": range(70144, 70224), + "Multani": range(70272, 70320), + "Khudawadi": range(70320, 70400), + "Grantha": range(70400, 70528), + "Newa": range(70656, 70784), + "Tirhuta": range(70784, 70880), + "Siddham": range(71040, 71168), + "Modi": range(71168, 71264), + "Mongolian Supplement": range(71264, 71296), + "Takri": range(71296, 71376), + "Ahom": range(71424, 71504), + "Dogra": range(71680, 71760), + "Warang Citi": range(71840, 71936), + "Dives Akuru": range(71936, 72032), + "Nandinagari": range(72096, 72192), + "Zanabazar Square": range(72192, 72272), + "Soyombo": range(72272, 72368), + "Unified Canadian Aboriginal Syllabics Extended-A": range(72368, 72384), + "Pau Cin Hau": range(72384, 72448), + "Devanagari Extended-A": range(72448, 72544), + "Bhaiksuki": range(72704, 72816), + "Marchen": range(72816, 72896), + "Masaram Gondi": range(72960, 73056), + "Gunjala Gondi": range(73056, 73136), + "Makasar": range(73440, 73472), + "Kawi": range(73472, 73568), + "Lisu Supplement": range(73648, 73664), + "Tamil Supplement": range(73664, 73728), + "Cuneiform": range(73728, 74752), + "Cuneiform Numbers and Punctuation": range(74752, 74880), + "Early Dynastic Cuneiform": range(74880, 75088), + "Cypro-Minoan": range(77712, 77824), + "Egyptian Hieroglyphs": range(77824, 78896), + "Egyptian Hieroglyph Format Controls": range(78896, 78944), + "Anatolian Hieroglyphs": range(82944, 83584), + "Bamum Supplement": range(92160, 92736), + "Mro": range(92736, 92784), + "Tangsa": range(92784, 92880), + "Bassa Vah": range(92880, 92928), + "Pahawh Hmong": range(92928, 93072), + "Medefaidrin": range(93760, 93856), + "Miao": range(93952, 94112), + "Ideographic Symbols and Punctuation": range(94176, 94208), + "Tangut": range(94208, 100352), + "Tangut Components": range(100352, 101120), + "Khitan Small Script": range(101120, 101632), + "Tangut Supplement": range(101632, 101760), + "Kana Extended-B": range(110576, 110592), + "Kana Supplement": range(110592, 110848), + "Kana Extended-A": range(110848, 110896), + "Small Kana Extension": range(110896, 110960), + "Nushu": range(110960, 111360), + "Duployan": range(113664, 113824), + "Shorthand Format Controls": range(113824, 113840), + "Znamenny Musical Notation": range(118528, 118736), + "Byzantine Musical Symbols": range(118784, 119040), + "Musical Symbols": range(119040, 119296), + "Ancient Greek Musical Notation": range(119296, 119376), + "Kaktovik Numerals": range(119488, 119520), + "Mayan Numerals": range(119520, 119552), + "Tai Xuan Jing Symbols": range(119552, 119648), + "Counting Rod Numerals": range(119648, 119680), + "Mathematical Alphanumeric Symbols": range(119808, 120832), + "Sutton SignWriting": range(120832, 121520), + "Latin Extended-G": range(122624, 122880), + "Glagolitic Supplement": range(122880, 122928), + "Cyrillic Extended-D": range(122928, 123024), + "Nyiakeng Puachue Hmong": range(123136, 123216), + "Toto": range(123536, 123584), + "Wancho": range(123584, 123648), + "Nag Mundari": range(124112, 124160), + "Ethiopic Extended-B": range(124896, 124928), + "Mende Kikakui": range(124928, 125152), + "Adlam": range(125184, 125280), + "Indic Siyaq Numbers": range(126064, 126144), + "Ottoman Siyaq Numbers": range(126208, 126288), + "Arabic Mathematical Alphabetic Symbols": range(126464, 126720), + "Mahjong Tiles": range(126976, 127024), + "Domino Tiles": range(127024, 127136), + "Playing Cards": range(127136, 127232), + "Enclosed Alphanumeric Supplement": range(127232, 127488), + "Enclosed Ideographic Supplement": range(127488, 127744), + "Miscellaneous Symbols and Pictographs": range(127744, 128512), + "Emoticons range(Emoji)": range(128512, 128592), + "Ornamental Dingbats": range(128592, 128640), + "Transport and Map Symbols": range(128640, 128768), + "Alchemical Symbols": range(128768, 128896), + "Geometric Shapes Extended": range(128896, 129024), + "Supplemental Arrows-C": range(129024, 129280), + "Supplemental Symbols and Pictographs": range(129280, 129536), + "Chess Symbols": range(129536, 129648), + "Symbols and Pictographs Extended-A": range(129648, 129792), + "Symbols for Legacy Computing": range(129792, 130048), + "CJK Unified Ideographs Extension B": range(131072, 173792), + "CJK Unified Ideographs Extension C": range(173824, 177984), + "CJK Unified Ideographs Extension D": range(177984, 178208), + "CJK Unified Ideographs Extension E": range(178208, 183984), + "CJK Unified Ideographs Extension F": range(183984, 191472), + "CJK Compatibility Ideographs Supplement": range(194560, 195104), + "CJK Unified Ideographs Extension G": range(196608, 201552), + "CJK Unified Ideographs Extension H": range(201552, 205744), + "Tags": range(917504, 917632), + "Variation Selectors Supplement": range(917760, 918000), + "Supplementary Private Use Area-A": range(983040, 1048576), + "Supplementary Private Use Area-B": range(1048576, 1114112), +} + + +UNICODE_SECONDARY_RANGE_KEYWORD: list[str] = [ + "Supplement", + "Extended", + "Extensions", + "Modifier", + "Marks", + "Punctuation", + "Symbols", + "Forms", + "Operators", + "Miscellaneous", + "Drawing", + "Block", + "Shapes", + "Supplemental", + "Tags", +] + +RE_POSSIBLE_ENCODING_INDICATION = re_compile( + r"(?:(?:encoding)|(?:charset)|(?:coding))(?:[\:= ]{1,10})(?:[\"\']?)([a-zA-Z0-9\-_]+)(?:[\"\']?)", + IGNORECASE, +) + +IANA_NO_ALIASES = [ + "cp720", + "cp737", + "cp856", + "cp874", + "cp875", + "cp1006", + "koi8_r", + "koi8_t", + "koi8_u", +] + +IANA_SUPPORTED: list[str] = sorted( + filter( + lambda x: x.endswith("_codec") is False + and x not in {"rot_13", "tactis", "mbcs"}, + list(set(aliases.values())) + IANA_NO_ALIASES, + ) +) + +IANA_SUPPORTED_COUNT: int = len(IANA_SUPPORTED) + +# pre-computed code page that are similar using the function cp_similarity. +IANA_SUPPORTED_SIMILAR: dict[str, list[str]] = { + "cp037": ["cp1026", "cp1140", "cp273", "cp500"], + "cp1026": ["cp037", "cp1140", "cp273", "cp500"], + "cp1125": ["cp866"], + "cp1140": ["cp037", "cp1026", "cp273", "cp500"], + "cp1250": ["iso8859_2"], + "cp1251": ["kz1048", "ptcp154"], + "cp1252": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1253": ["iso8859_7"], + "cp1254": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1257": ["iso8859_13"], + "cp273": ["cp037", "cp1026", "cp1140", "cp500"], + "cp437": ["cp850", "cp858", "cp860", "cp861", "cp862", "cp863", "cp865"], + "cp500": ["cp037", "cp1026", "cp1140", "cp273"], + "cp850": ["cp437", "cp857", "cp858", "cp865"], + "cp857": ["cp850", "cp858", "cp865"], + "cp858": ["cp437", "cp850", "cp857", "cp865"], + "cp860": ["cp437", "cp861", "cp862", "cp863", "cp865"], + "cp861": ["cp437", "cp860", "cp862", "cp863", "cp865"], + "cp862": ["cp437", "cp860", "cp861", "cp863", "cp865"], + "cp863": ["cp437", "cp860", "cp861", "cp862", "cp865"], + "cp865": ["cp437", "cp850", "cp857", "cp858", "cp860", "cp861", "cp862", "cp863"], + "cp866": ["cp1125"], + "iso8859_10": ["iso8859_14", "iso8859_15", "iso8859_4", "iso8859_9", "latin_1"], + "iso8859_11": ["tis_620"], + "iso8859_13": ["cp1257"], + "iso8859_14": [ + "iso8859_10", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_15": [ + "cp1252", + "cp1254", + "iso8859_10", + "iso8859_14", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_16": [ + "iso8859_14", + "iso8859_15", + "iso8859_2", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_2": ["cp1250", "iso8859_16", "iso8859_4"], + "iso8859_3": ["iso8859_14", "iso8859_15", "iso8859_16", "iso8859_9", "latin_1"], + "iso8859_4": ["iso8859_10", "iso8859_2", "iso8859_9", "latin_1"], + "iso8859_7": ["cp1253"], + "iso8859_9": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "latin_1", + ], + "kz1048": ["cp1251", "ptcp154"], + "latin_1": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "iso8859_9", + ], + "mac_iceland": ["mac_roman", "mac_turkish"], + "mac_roman": ["mac_iceland", "mac_turkish"], + "mac_turkish": ["mac_iceland", "mac_roman"], + "ptcp154": ["cp1251", "kz1048"], + "tis_620": ["iso8859_11"], +} + + +CHARDET_CORRESPONDENCE: dict[str, str] = { + "iso2022_kr": "ISO-2022-KR", + "iso2022_jp": "ISO-2022-JP", + "euc_kr": "EUC-KR", + "tis_620": "TIS-620", + "utf_32": "UTF-32", + "euc_jp": "EUC-JP", + "koi8_r": "KOI8-R", + "iso8859_1": "ISO-8859-1", + "iso8859_2": "ISO-8859-2", + "iso8859_5": "ISO-8859-5", + "iso8859_6": "ISO-8859-6", + "iso8859_7": "ISO-8859-7", + "iso8859_8": "ISO-8859-8", + "utf_16": "UTF-16", + "cp855": "IBM855", + "mac_cyrillic": "MacCyrillic", + "gb2312": "GB2312", + "gb18030": "GB18030", + "cp932": "CP932", + "cp866": "IBM866", + "utf_8": "utf-8", + "utf_8_sig": "UTF-8-SIG", + "shift_jis": "SHIFT_JIS", + "big5": "Big5", + "cp1250": "windows-1250", + "cp1251": "windows-1251", + "cp1252": "Windows-1252", + "cp1253": "windows-1253", + "cp1255": "windows-1255", + "cp1256": "windows-1256", + "cp1254": "Windows-1254", + "cp949": "CP949", +} + + +COMMON_SAFE_ASCII_CHARACTERS: set[str] = { + "<", + ">", + "=", + ":", + "/", + "&", + ";", + "{", + "}", + "[", + "]", + ",", + "|", + '"', + "-", + "(", + ")", +} + +# Sample character sets — replace with full lists if needed +COMMON_CHINESE_CHARACTERS = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞" + +COMMON_JAPANESE_CHARACTERS = "日一国年大十二本中長出三時行見月分後前生五間上東四今金九入学高円子外八六下来気小七山話女北午百書先名川千水半男西電校語土木聞食車何南万毎白天母火右読友左休父雨" + +COMMON_KOREAN_CHARACTERS = "一二三四五六七八九十百千萬上下左右中人女子大小山川日月火水木金土父母天地國名年時文校學生" + +# Combine all into a set +COMMON_CJK_CHARACTERS = set( + "".join( + [ + COMMON_CHINESE_CHARACTERS, + COMMON_JAPANESE_CHARACTERS, + COMMON_KOREAN_CHARACTERS, + ] + ) +) + +KO_NAMES: set[str] = {"johab", "cp949", "euc_kr"} +ZH_NAMES: set[str] = {"big5", "cp950", "big5hkscs", "hz"} + +# Logging LEVEL below DEBUG +TRACE: int = 5 + + +# Language label that contain the em dash "—" +# character are to be considered alternative seq to origin +FREQUENCIES: dict[str, list[str]] = { + "English": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "u", + "m", + "f", + "p", + "g", + "w", + "y", + "b", + "v", + "k", + "x", + "j", + "z", + "q", + ], + "English—": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "m", + "u", + "f", + "p", + "g", + "w", + "b", + "y", + "v", + "k", + "j", + "x", + "z", + "q", + ], + "German": [ + "e", + "n", + "i", + "r", + "s", + "t", + "a", + "d", + "h", + "u", + "l", + "g", + "o", + "c", + "m", + "b", + "f", + "k", + "w", + "z", + "p", + "v", + "ü", + "ä", + "ö", + "j", + ], + "French": [ + "e", + "a", + "s", + "n", + "i", + "t", + "r", + "l", + "u", + "o", + "d", + "c", + "p", + "m", + "é", + "v", + "g", + "f", + "b", + "h", + "q", + "à", + "x", + "è", + "y", + "j", + ], + "Dutch": [ + "e", + "n", + "a", + "i", + "r", + "t", + "o", + "d", + "s", + "l", + "g", + "h", + "v", + "m", + "u", + "k", + "c", + "p", + "b", + "w", + "j", + "z", + "f", + "y", + "x", + "ë", + ], + "Italian": [ + "e", + "i", + "a", + "o", + "n", + "l", + "t", + "r", + "s", + "c", + "d", + "u", + "p", + "m", + "g", + "v", + "f", + "b", + "z", + "h", + "q", + "è", + "à", + "k", + "y", + "ò", + ], + "Polish": [ + "a", + "i", + "o", + "e", + "n", + "r", + "z", + "w", + "s", + "c", + "t", + "k", + "y", + "d", + "p", + "m", + "u", + "l", + "j", + "ł", + "g", + "b", + "h", + "ą", + "ę", + "ó", + ], + "Spanish": [ + "e", + "a", + "o", + "n", + "s", + "r", + "i", + "l", + "d", + "t", + "c", + "u", + "m", + "p", + "b", + "g", + "v", + "f", + "y", + "ó", + "h", + "q", + "í", + "j", + "z", + "á", + ], + "Russian": [ + "о", + "а", + "е", + "и", + "н", + "с", + "т", + "р", + "в", + "л", + "к", + "м", + "д", + "п", + "у", + "г", + "я", + "ы", + "з", + "б", + "й", + "ь", + "ч", + "х", + "ж", + "ц", + ], + # Jap-Kanji + "Japanese": [ + "人", + "一", + "大", + "亅", + "丁", + "丨", + "竹", + "笑", + "口", + "日", + "今", + "二", + "彳", + "行", + "十", + "土", + "丶", + "寸", + "寺", + "時", + "乙", + "丿", + "乂", + "气", + "気", + "冂", + "巾", + "亠", + "市", + "目", + "儿", + "見", + "八", + "小", + "凵", + "県", + "月", + "彐", + "門", + "間", + "木", + "東", + "山", + "出", + "本", + "中", + "刀", + "分", + "耳", + "又", + "取", + "最", + "言", + "田", + "心", + "思", + "刂", + "前", + "京", + "尹", + "事", + "生", + "厶", + "云", + "会", + "未", + "来", + "白", + "冫", + "楽", + "灬", + "馬", + "尸", + "尺", + "駅", + "明", + "耂", + "者", + "了", + "阝", + "都", + "高", + "卜", + "占", + "厂", + "广", + "店", + "子", + "申", + "奄", + "亻", + "俺", + "上", + "方", + "冖", + "学", + "衣", + "艮", + "食", + "自", + ], + # Jap-Katakana + "Japanese—": [ + "ー", + "ン", + "ス", + "・", + "ル", + "ト", + "リ", + "イ", + "ア", + "ラ", + "ッ", + "ク", + "ド", + "シ", + "レ", + "ジ", + "タ", + "フ", + "ロ", + "カ", + "テ", + "マ", + "ィ", + "グ", + "バ", + "ム", + "プ", + "オ", + "コ", + "デ", + "ニ", + "ウ", + "メ", + "サ", + "ビ", + "ナ", + "ブ", + "ャ", + "エ", + "ュ", + "チ", + "キ", + "ズ", + "ダ", + "パ", + "ミ", + "ェ", + "ョ", + "ハ", + "セ", + "ベ", + "ガ", + "モ", + "ツ", + "ネ", + "ボ", + "ソ", + "ノ", + "ァ", + "ヴ", + "ワ", + "ポ", + "ペ", + "ピ", + "ケ", + "ゴ", + "ギ", + "ザ", + "ホ", + "ゲ", + "ォ", + "ヤ", + "ヒ", + "ユ", + "ヨ", + "ヘ", + "ゼ", + "ヌ", + "ゥ", + "ゾ", + "ヶ", + "ヂ", + "ヲ", + "ヅ", + "ヵ", + "ヱ", + "ヰ", + "ヮ", + "ヽ", + "゠", + "ヾ", + "ヷ", + "ヿ", + "ヸ", + "ヹ", + "ヺ", + ], + # Jap-Hiragana + "Japanese——": [ + "の", + "に", + "る", + "た", + "と", + "は", + "し", + "い", + "を", + "で", + "て", + "が", + "な", + "れ", + "か", + "ら", + "さ", + "っ", + "り", + "す", + "あ", + "も", + "こ", + "ま", + "う", + "く", + "よ", + "き", + "ん", + "め", + "お", + "け", + "そ", + "つ", + "だ", + "や", + "え", + "ど", + "わ", + "ち", + "み", + "せ", + "じ", + "ば", + "へ", + "び", + "ず", + "ろ", + "ほ", + "げ", + "む", + "べ", + "ひ", + "ょ", + "ゆ", + "ぶ", + "ご", + "ゃ", + "ね", + "ふ", + "ぐ", + "ぎ", + "ぼ", + "ゅ", + "づ", + "ざ", + "ぞ", + "ぬ", + "ぜ", + "ぱ", + "ぽ", + "ぷ", + "ぴ", + "ぃ", + "ぁ", + "ぇ", + "ぺ", + "ゞ", + "ぢ", + "ぉ", + "ぅ", + "ゐ", + "ゝ", + "ゑ", + "゛", + "゜", + "ゎ", + "ゔ", + "゚", + "ゟ", + "゙", + "ゕ", + "ゖ", + ], + "Portuguese": [ + "a", + "e", + "o", + "s", + "i", + "r", + "d", + "n", + "t", + "m", + "u", + "c", + "l", + "p", + "g", + "v", + "b", + "f", + "h", + "ã", + "q", + "é", + "ç", + "á", + "z", + "í", + ], + "Swedish": [ + "e", + "a", + "n", + "r", + "t", + "s", + "i", + "l", + "d", + "o", + "m", + "k", + "g", + "v", + "h", + "f", + "u", + "p", + "ä", + "c", + "b", + "ö", + "å", + "y", + "j", + "x", + ], + "Chinese": [ + "的", + "一", + "是", + "不", + "了", + "在", + "人", + "有", + "我", + "他", + "这", + "个", + "们", + "中", + "来", + "上", + "大", + "为", + "和", + "国", + "地", + "到", + "以", + "说", + "时", + "要", + "就", + "出", + "会", + "可", + "也", + "你", + "对", + "生", + "能", + "而", + "子", + "那", + "得", + "于", + "着", + "下", + "自", + "之", + "年", + "过", + "发", + "后", + "作", + "里", + "用", + "道", + "行", + "所", + "然", + "家", + "种", + "事", + "成", + "方", + "多", + "经", + "么", + "去", + "法", + "学", + "如", + "都", + "同", + "现", + "当", + "没", + "动", + "面", + "起", + "看", + "定", + "天", + "分", + "还", + "进", + "好", + "小", + "部", + "其", + "些", + "主", + "样", + "理", + "心", + "她", + "本", + "前", + "开", + "但", + "因", + "只", + "从", + "想", + "实", + ], + "Ukrainian": [ + "о", + "а", + "н", + "і", + "и", + "р", + "в", + "т", + "е", + "с", + "к", + "л", + "у", + "д", + "м", + "п", + "з", + "я", + "ь", + "б", + "г", + "й", + "ч", + "х", + "ц", + "ї", + ], + "Norwegian": [ + "e", + "r", + "n", + "t", + "a", + "s", + "i", + "o", + "l", + "d", + "g", + "k", + "m", + "v", + "f", + "p", + "u", + "b", + "h", + "å", + "y", + "j", + "ø", + "c", + "æ", + "w", + ], + "Finnish": [ + "a", + "i", + "n", + "t", + "e", + "s", + "l", + "o", + "u", + "k", + "ä", + "m", + "r", + "v", + "j", + "h", + "p", + "y", + "d", + "ö", + "g", + "c", + "b", + "f", + "w", + "z", + ], + "Vietnamese": [ + "n", + "h", + "t", + "i", + "c", + "g", + "a", + "o", + "u", + "m", + "l", + "r", + "à", + "đ", + "s", + "e", + "v", + "p", + "b", + "y", + "ư", + "d", + "á", + "k", + "ộ", + "ế", + ], + "Czech": [ + "o", + "e", + "a", + "n", + "t", + "s", + "i", + "l", + "v", + "r", + "k", + "d", + "u", + "m", + "p", + "í", + "c", + "h", + "z", + "á", + "y", + "j", + "b", + "ě", + "é", + "ř", + ], + "Hungarian": [ + "e", + "a", + "t", + "l", + "s", + "n", + "k", + "r", + "i", + "o", + "z", + "á", + "é", + "g", + "m", + "b", + "y", + "v", + "d", + "h", + "u", + "p", + "j", + "ö", + "f", + "c", + ], + "Korean": [ + "이", + "다", + "에", + "의", + "는", + "로", + "하", + "을", + "가", + "고", + "지", + "서", + "한", + "은", + "기", + "으", + "년", + "대", + "사", + "시", + "를", + "리", + "도", + "인", + "스", + "일", + ], + "Indonesian": [ + "a", + "n", + "e", + "i", + "r", + "t", + "u", + "s", + "d", + "k", + "m", + "l", + "g", + "p", + "b", + "o", + "h", + "y", + "j", + "c", + "w", + "f", + "v", + "z", + "x", + "q", + ], + "Turkish": [ + "a", + "e", + "i", + "n", + "r", + "l", + "ı", + "k", + "d", + "t", + "s", + "m", + "y", + "u", + "o", + "b", + "ü", + "ş", + "v", + "g", + "z", + "h", + "c", + "p", + "ç", + "ğ", + ], + "Romanian": [ + "e", + "i", + "a", + "r", + "n", + "t", + "u", + "l", + "o", + "c", + "s", + "d", + "p", + "m", + "ă", + "f", + "v", + "î", + "g", + "b", + "ș", + "ț", + "z", + "h", + "â", + "j", + ], + "Farsi": [ + "ا", + "ی", + "ر", + "د", + "ن", + "ه", + "و", + "م", + "ت", + "ب", + "س", + "ل", + "ک", + "ش", + "ز", + "ف", + "گ", + "ع", + "خ", + "ق", + "ج", + "آ", + "پ", + "ح", + "ط", + "ص", + ], + "Arabic": [ + "ا", + "ل", + "ي", + "م", + "و", + "ن", + "ر", + "ت", + "ب", + "ة", + "ع", + "د", + "س", + "ف", + "ه", + "ك", + "ق", + "أ", + "ح", + "ج", + "ش", + "ط", + "ص", + "ى", + "خ", + "إ", + ], + "Danish": [ + "e", + "r", + "n", + "t", + "a", + "i", + "s", + "d", + "l", + "o", + "g", + "m", + "k", + "f", + "v", + "u", + "b", + "h", + "p", + "å", + "y", + "ø", + "æ", + "c", + "j", + "w", + ], + "Serbian": [ + "а", + "и", + "о", + "е", + "н", + "р", + "с", + "у", + "т", + "к", + "ј", + "в", + "д", + "м", + "п", + "л", + "г", + "з", + "б", + "a", + "i", + "e", + "o", + "n", + "ц", + "ш", + ], + "Lithuanian": [ + "i", + "a", + "s", + "o", + "r", + "e", + "t", + "n", + "u", + "k", + "m", + "l", + "p", + "v", + "d", + "j", + "g", + "ė", + "b", + "y", + "ų", + "š", + "ž", + "c", + "ą", + "į", + ], + "Slovene": [ + "e", + "a", + "i", + "o", + "n", + "r", + "s", + "l", + "t", + "j", + "v", + "k", + "d", + "p", + "m", + "u", + "z", + "b", + "g", + "h", + "č", + "c", + "š", + "ž", + "f", + "y", + ], + "Slovak": [ + "o", + "a", + "e", + "n", + "i", + "r", + "v", + "t", + "s", + "l", + "k", + "d", + "m", + "p", + "u", + "c", + "h", + "j", + "b", + "z", + "á", + "y", + "ý", + "í", + "č", + "é", + ], + "Hebrew": [ + "י", + "ו", + "ה", + "ל", + "ר", + "ב", + "ת", + "מ", + "א", + "ש", + "נ", + "ע", + "ם", + "ד", + "ק", + "ח", + "פ", + "ס", + "כ", + "ג", + "ט", + "צ", + "ן", + "ז", + "ך", + ], + "Bulgarian": [ + "а", + "и", + "о", + "е", + "н", + "т", + "р", + "с", + "в", + "л", + "к", + "д", + "п", + "м", + "з", + "г", + "я", + "ъ", + "у", + "б", + "ч", + "ц", + "й", + "ж", + "щ", + "х", + ], + "Croatian": [ + "a", + "i", + "o", + "e", + "n", + "r", + "j", + "s", + "t", + "u", + "k", + "l", + "v", + "d", + "m", + "p", + "g", + "z", + "b", + "c", + "č", + "h", + "š", + "ž", + "ć", + "f", + ], + "Hindi": [ + "क", + "र", + "स", + "न", + "त", + "म", + "ह", + "प", + "य", + "ल", + "व", + "ज", + "द", + "ग", + "ब", + "श", + "ट", + "अ", + "ए", + "थ", + "भ", + "ड", + "च", + "ध", + "ष", + "इ", + ], + "Estonian": [ + "a", + "i", + "e", + "s", + "t", + "l", + "u", + "n", + "o", + "k", + "r", + "d", + "m", + "v", + "g", + "p", + "j", + "h", + "ä", + "b", + "õ", + "ü", + "f", + "c", + "ö", + "y", + ], + "Thai": [ + "า", + "น", + "ร", + "อ", + "ก", + "เ", + "ง", + "ม", + "ย", + "ล", + "ว", + "ด", + "ท", + "ส", + "ต", + "ะ", + "ป", + "บ", + "ค", + "ห", + "แ", + "จ", + "พ", + "ช", + "ข", + "ใ", + ], + "Greek": [ + "α", + "τ", + "ο", + "ι", + "ε", + "ν", + "ρ", + "σ", + "κ", + "η", + "π", + "ς", + "υ", + "μ", + "λ", + "ί", + "ό", + "ά", + "γ", + "έ", + "δ", + "ή", + "ω", + "χ", + "θ", + "ύ", + ], + "Tamil": [ + "க", + "த", + "ப", + "ட", + "ர", + "ம", + "ல", + "ன", + "வ", + "ற", + "ய", + "ள", + "ச", + "ந", + "இ", + "ண", + "அ", + "ஆ", + "ழ", + "ங", + "எ", + "உ", + "ஒ", + "ஸ", + ], + "Kazakh": [ + "а", + "ы", + "е", + "н", + "т", + "р", + "л", + "і", + "д", + "с", + "м", + "қ", + "к", + "о", + "б", + "и", + "у", + "ғ", + "ж", + "ң", + "з", + "ш", + "й", + "п", + "г", + "ө", + ], +} + +LANGUAGE_SUPPORTED_COUNT: int = len(FREQUENCIES) diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/legacy.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/legacy.py new file mode 100644 index 00000000..360a3107 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/legacy.py @@ -0,0 +1,80 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any +from warnings import warn + +from .api import from_bytes +from .constant import CHARDET_CORRESPONDENCE, TOO_SMALL_SEQUENCE + +# TODO: remove this check when dropping Python 3.7 support +if TYPE_CHECKING: + from typing_extensions import TypedDict + + class ResultDict(TypedDict): + encoding: str | None + language: str + confidence: float | None + + +def detect( + byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any +) -> ResultDict: + """ + chardet legacy method + Detect the encoding of the given byte string. It should be mostly backward-compatible. + Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) + This function is deprecated and should be used to migrate your project easily, consult the documentation for + further information. Not planned for removal. + + :param byte_str: The byte sequence to examine. + :param should_rename_legacy: Should we rename legacy encodings + to their more modern equivalents? + """ + if len(kwargs): + warn( + f"charset-normalizer disregard arguments '{','.join(list(kwargs.keys()))}' in legacy function detect()" + ) + + if not isinstance(byte_str, (bytearray, bytes)): + raise TypeError( # pragma: nocover + f"Expected object of type bytes or bytearray, got: {type(byte_str)}" + ) + + if isinstance(byte_str, bytearray): + byte_str = bytes(byte_str) + + r = from_bytes(byte_str).best() + + encoding = r.encoding if r is not None else None + language = r.language if r is not None and r.language != "Unknown" else "" + confidence = 1.0 - r.chaos if r is not None else None + + # automatically lower confidence + # on small bytes samples. + # https://github.com/jawah/charset_normalizer/issues/391 + if ( + confidence is not None + and confidence >= 0.9 + and encoding + not in { + "utf_8", + "ascii", + } + and r.bom is False # type: ignore[union-attr] + and len(byte_str) < TOO_SMALL_SEQUENCE + ): + confidence -= 0.2 + + # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process + # but chardet does return 'utf-8-sig' and it is a valid codec name. + if r is not None and encoding == "utf_8" and r.bom: + encoding += "_sig" + + if should_rename_legacy is False and encoding in CHARDET_CORRESPONDENCE: + encoding = CHARDET_CORRESPONDENCE[encoding] + + return { + "encoding": encoding, + "language": language, + "confidence": confidence, + } diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so new file mode 100755 index 00000000..857d7474 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md.py new file mode 100644 index 00000000..12ce024b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md.py @@ -0,0 +1,635 @@ +from __future__ import annotations + +from functools import lru_cache +from logging import getLogger + +from .constant import ( + COMMON_SAFE_ASCII_CHARACTERS, + TRACE, + UNICODE_SECONDARY_RANGE_KEYWORD, +) +from .utils import ( + is_accentuated, + is_arabic, + is_arabic_isolated_form, + is_case_variable, + is_cjk, + is_emoticon, + is_hangul, + is_hiragana, + is_katakana, + is_latin, + is_punctuation, + is_separator, + is_symbol, + is_thai, + is_unprintable, + remove_accent, + unicode_range, + is_cjk_uncommon, +) + + +class MessDetectorPlugin: + """ + Base abstract class used for mess detection plugins. + All detectors MUST extend and implement given methods. + """ + + def eligible(self, character: str) -> bool: + """ + Determine if given character should be fed in. + """ + raise NotImplementedError # pragma: nocover + + def feed(self, character: str) -> None: + """ + The main routine to be executed upon character. + Insert the logic in witch the text would be considered chaotic. + """ + raise NotImplementedError # pragma: nocover + + def reset(self) -> None: # pragma: no cover + """ + Permit to reset the plugin to the initial state. + """ + raise NotImplementedError + + @property + def ratio(self) -> float: + """ + Compute the chaos ratio based on what your feed() has seen. + Must NOT be lower than 0.; No restriction gt 0. + """ + raise NotImplementedError # pragma: nocover + + +class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._punctuation_count: int = 0 + self._symbol_count: int = 0 + self._character_count: int = 0 + + self._last_printable_char: str | None = None + self._frenzy_symbol_in_word: bool = False + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character != self._last_printable_char + and character not in COMMON_SAFE_ASCII_CHARACTERS + ): + if is_punctuation(character): + self._punctuation_count += 1 + elif ( + character.isdigit() is False + and is_symbol(character) + and is_emoticon(character) is False + ): + self._symbol_count += 2 + + self._last_printable_char = character + + def reset(self) -> None: # Abstract + self._punctuation_count = 0 + self._character_count = 0 + self._symbol_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + ratio_of_punctuation: float = ( + self._punctuation_count + self._symbol_count + ) / self._character_count + + return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 + + +class TooManyAccentuatedPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count: int = 0 + self._accentuated_count: int = 0 + + def eligible(self, character: str) -> bool: + return character.isalpha() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_accentuated(character): + self._accentuated_count += 1 + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._accentuated_count = 0 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + ratio_of_accentuation: float = self._accentuated_count / self._character_count + return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 + + +class UnprintablePlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._unprintable_count: int = 0 + self._character_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if is_unprintable(character): + self._unprintable_count += 1 + self._character_count += 1 + + def reset(self) -> None: # Abstract + self._unprintable_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._unprintable_count * 8) / self._character_count + + +class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._successive_count: int = 0 + self._character_count: int = 0 + + self._last_latin_character: str | None = None + + def eligible(self, character: str) -> bool: + return character.isalpha() and is_latin(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + if ( + self._last_latin_character is not None + and is_accentuated(character) + and is_accentuated(self._last_latin_character) + ): + if character.isupper() and self._last_latin_character.isupper(): + self._successive_count += 1 + # Worse if its the same char duplicated with different accent. + if remove_accent(character) == remove_accent(self._last_latin_character): + self._successive_count += 1 + self._last_latin_character = character + + def reset(self) -> None: # Abstract + self._successive_count = 0 + self._character_count = 0 + self._last_latin_character = None + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._successive_count * 2) / self._character_count + + +class SuspiciousRange(MessDetectorPlugin): + def __init__(self) -> None: + self._suspicious_successive_range_count: int = 0 + self._character_count: int = 0 + self._last_printable_seen: str | None = None + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character.isspace() + or is_punctuation(character) + or character in COMMON_SAFE_ASCII_CHARACTERS + ): + self._last_printable_seen = None + return + + if self._last_printable_seen is None: + self._last_printable_seen = character + return + + unicode_range_a: str | None = unicode_range(self._last_printable_seen) + unicode_range_b: str | None = unicode_range(character) + + if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): + self._suspicious_successive_range_count += 1 + + self._last_printable_seen = character + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._suspicious_successive_range_count = 0 + self._last_printable_seen = None + + @property + def ratio(self) -> float: + if self._character_count <= 13: + return 0.0 + + ratio_of_suspicious_range_usage: float = ( + self._suspicious_successive_range_count * 2 + ) / self._character_count + + return ratio_of_suspicious_range_usage + + +class SuperWeirdWordPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._word_count: int = 0 + self._bad_word_count: int = 0 + self._foreign_long_count: int = 0 + + self._is_current_word_bad: bool = False + self._foreign_long_watch: bool = False + + self._character_count: int = 0 + self._bad_character_count: int = 0 + + self._buffer: str = "" + self._buffer_accent_count: int = 0 + self._buffer_glyph_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if character.isalpha(): + self._buffer += character + if is_accentuated(character): + self._buffer_accent_count += 1 + if ( + self._foreign_long_watch is False + and (is_latin(character) is False or is_accentuated(character)) + and is_cjk(character) is False + and is_hangul(character) is False + and is_katakana(character) is False + and is_hiragana(character) is False + and is_thai(character) is False + ): + self._foreign_long_watch = True + if ( + is_cjk(character) + or is_hangul(character) + or is_katakana(character) + or is_hiragana(character) + or is_thai(character) + ): + self._buffer_glyph_count += 1 + return + if not self._buffer: + return + if ( + character.isspace() or is_punctuation(character) or is_separator(character) + ) and self._buffer: + self._word_count += 1 + buffer_length: int = len(self._buffer) + + self._character_count += buffer_length + + if buffer_length >= 4: + if self._buffer_accent_count / buffer_length >= 0.5: + self._is_current_word_bad = True + # Word/Buffer ending with an upper case accentuated letter are so rare, + # that we will consider them all as suspicious. Same weight as foreign_long suspicious. + elif ( + is_accentuated(self._buffer[-1]) + and self._buffer[-1].isupper() + and all(_.isupper() for _ in self._buffer) is False + ): + self._foreign_long_count += 1 + self._is_current_word_bad = True + elif self._buffer_glyph_count == 1: + self._is_current_word_bad = True + self._foreign_long_count += 1 + if buffer_length >= 24 and self._foreign_long_watch: + camel_case_dst = [ + i + for c, i in zip(self._buffer, range(0, buffer_length)) + if c.isupper() + ] + probable_camel_cased: bool = False + + if camel_case_dst and (len(camel_case_dst) / buffer_length <= 0.3): + probable_camel_cased = True + + if not probable_camel_cased: + self._foreign_long_count += 1 + self._is_current_word_bad = True + + if self._is_current_word_bad: + self._bad_word_count += 1 + self._bad_character_count += len(self._buffer) + self._is_current_word_bad = False + + self._foreign_long_watch = False + self._buffer = "" + self._buffer_accent_count = 0 + self._buffer_glyph_count = 0 + elif ( + character not in {"<", ">", "-", "=", "~", "|", "_"} + and character.isdigit() is False + and is_symbol(character) + ): + self._is_current_word_bad = True + self._buffer += character + + def reset(self) -> None: # Abstract + self._buffer = "" + self._is_current_word_bad = False + self._foreign_long_watch = False + self._bad_word_count = 0 + self._word_count = 0 + self._character_count = 0 + self._bad_character_count = 0 + self._foreign_long_count = 0 + + @property + def ratio(self) -> float: + if self._word_count <= 10 and self._foreign_long_count == 0: + return 0.0 + + return self._bad_character_count / self._character_count + + +class CjkUncommonPlugin(MessDetectorPlugin): + """ + Detect messy CJK text that probably means nothing. + """ + + def __init__(self) -> None: + self._character_count: int = 0 + self._uncommon_count: int = 0 + + def eligible(self, character: str) -> bool: + return is_cjk(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_cjk_uncommon(character): + self._uncommon_count += 1 + return + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._uncommon_count = 0 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + uncommon_form_usage: float = self._uncommon_count / self._character_count + + # we can be pretty sure it's garbage when uncommon characters are widely + # used. otherwise it could just be traditional chinese for example. + return uncommon_form_usage / 10 if uncommon_form_usage > 0.5 else 0.0 + + +class ArchaicUpperLowerPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._buf: bool = False + + self._character_count_since_last_sep: int = 0 + + self._successive_upper_lower_count: int = 0 + self._successive_upper_lower_count_final: int = 0 + + self._character_count: int = 0 + + self._last_alpha_seen: str | None = None + self._current_ascii_only: bool = True + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + is_concerned = character.isalpha() and is_case_variable(character) + chunk_sep = is_concerned is False + + if chunk_sep and self._character_count_since_last_sep > 0: + if ( + self._character_count_since_last_sep <= 64 + and character.isdigit() is False + and self._current_ascii_only is False + ): + self._successive_upper_lower_count_final += ( + self._successive_upper_lower_count + ) + + self._successive_upper_lower_count = 0 + self._character_count_since_last_sep = 0 + self._last_alpha_seen = None + self._buf = False + self._character_count += 1 + self._current_ascii_only = True + + return + + if self._current_ascii_only is True and character.isascii() is False: + self._current_ascii_only = False + + if self._last_alpha_seen is not None: + if (character.isupper() and self._last_alpha_seen.islower()) or ( + character.islower() and self._last_alpha_seen.isupper() + ): + if self._buf is True: + self._successive_upper_lower_count += 2 + self._buf = False + else: + self._buf = True + else: + self._buf = False + + self._character_count += 1 + self._character_count_since_last_sep += 1 + self._last_alpha_seen = character + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._character_count_since_last_sep = 0 + self._successive_upper_lower_count = 0 + self._successive_upper_lower_count_final = 0 + self._last_alpha_seen = None + self._buf = False + self._current_ascii_only = True + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return self._successive_upper_lower_count_final / self._character_count + + +class ArabicIsolatedFormPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count: int = 0 + self._isolated_form_count: int = 0 + + def reset(self) -> None: # Abstract + self._character_count = 0 + self._isolated_form_count = 0 + + def eligible(self, character: str) -> bool: + return is_arabic(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_arabic_isolated_form(character): + self._isolated_form_count += 1 + + @property + def ratio(self) -> float: + if self._character_count < 8: + return 0.0 + + isolated_form_usage: float = self._isolated_form_count / self._character_count + + return isolated_form_usage + + +@lru_cache(maxsize=1024) +def is_suspiciously_successive_range( + unicode_range_a: str | None, unicode_range_b: str | None +) -> bool: + """ + Determine if two Unicode range seen next to each other can be considered as suspicious. + """ + if unicode_range_a is None or unicode_range_b is None: + return True + + if unicode_range_a == unicode_range_b: + return False + + if "Latin" in unicode_range_a and "Latin" in unicode_range_b: + return False + + if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: + return False + + # Latin characters can be accompanied with a combining diacritical mark + # eg. Vietnamese. + if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( + "Combining" in unicode_range_a or "Combining" in unicode_range_b + ): + return False + + keywords_range_a, keywords_range_b = ( + unicode_range_a.split(" "), + unicode_range_b.split(" "), + ) + + for el in keywords_range_a: + if el in UNICODE_SECONDARY_RANGE_KEYWORD: + continue + if el in keywords_range_b: + return False + + # Japanese Exception + range_a_jp_chars, range_b_jp_chars = ( + unicode_range_a + in ( + "Hiragana", + "Katakana", + ), + unicode_range_b in ("Hiragana", "Katakana"), + ) + if (range_a_jp_chars or range_b_jp_chars) and ( + "CJK" in unicode_range_a or "CJK" in unicode_range_b + ): + return False + if range_a_jp_chars and range_b_jp_chars: + return False + + if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: + if "CJK" in unicode_range_a or "CJK" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + # Chinese/Japanese use dedicated range for punctuation and/or separators. + if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( + unicode_range_a in ["Katakana", "Hiragana"] + and unicode_range_b in ["Katakana", "Hiragana"] + ): + if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: + return False + if "Forms" in unicode_range_a or "Forms" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + return True + + +@lru_cache(maxsize=2048) +def mess_ratio( + decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False +) -> float: + """ + Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. + """ + + detectors: list[MessDetectorPlugin] = [ + md_class() for md_class in MessDetectorPlugin.__subclasses__() + ] + + length: int = len(decoded_sequence) + 1 + + mean_mess_ratio: float = 0.0 + + if length < 512: + intermediary_mean_mess_ratio_calc: int = 32 + elif length <= 1024: + intermediary_mean_mess_ratio_calc = 64 + else: + intermediary_mean_mess_ratio_calc = 128 + + for character, index in zip(decoded_sequence + "\n", range(length)): + for detector in detectors: + if detector.eligible(character): + detector.feed(character) + + if ( + index > 0 and index % intermediary_mean_mess_ratio_calc == 0 + ) or index == length - 1: + mean_mess_ratio = sum(dt.ratio for dt in detectors) + + if mean_mess_ratio >= maximum_threshold: + break + + if debug: + logger = getLogger("charset_normalizer") + + logger.log( + TRACE, + "Mess-detector extended-analysis start. " + f"intermediary_mean_mess_ratio_calc={intermediary_mean_mess_ratio_calc} mean_mess_ratio={mean_mess_ratio} " + f"maximum_threshold={maximum_threshold}", + ) + + if len(decoded_sequence) > 16: + logger.log(TRACE, f"Starting with: {decoded_sequence[:16]}") + logger.log(TRACE, f"Ending with: {decoded_sequence[-16::]}") + + for dt in detectors: + logger.log(TRACE, f"{dt.__class__}: {dt.ratio}") + + return round(mean_mess_ratio, 3) diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so new file mode 100755 index 00000000..b21e77b5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-x86_64-linux-gnu.so differ diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/models.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/models.py new file mode 100644 index 00000000..1042758f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/models.py @@ -0,0 +1,360 @@ +from __future__ import annotations + +from encodings.aliases import aliases +from hashlib import sha256 +from json import dumps +from re import sub +from typing import Any, Iterator, List, Tuple + +from .constant import RE_POSSIBLE_ENCODING_INDICATION, TOO_BIG_SEQUENCE +from .utils import iana_name, is_multi_byte_encoding, unicode_range + + +class CharsetMatch: + def __init__( + self, + payload: bytes, + guessed_encoding: str, + mean_mess_ratio: float, + has_sig_or_bom: bool, + languages: CoherenceMatches, + decoded_payload: str | None = None, + preemptive_declaration: str | None = None, + ): + self._payload: bytes = payload + + self._encoding: str = guessed_encoding + self._mean_mess_ratio: float = mean_mess_ratio + self._languages: CoherenceMatches = languages + self._has_sig_or_bom: bool = has_sig_or_bom + self._unicode_ranges: list[str] | None = None + + self._leaves: list[CharsetMatch] = [] + self._mean_coherence_ratio: float = 0.0 + + self._output_payload: bytes | None = None + self._output_encoding: str | None = None + + self._string: str | None = decoded_payload + + self._preemptive_declaration: str | None = preemptive_declaration + + def __eq__(self, other: object) -> bool: + if not isinstance(other, CharsetMatch): + if isinstance(other, str): + return iana_name(other) == self.encoding + return False + return self.encoding == other.encoding and self.fingerprint == other.fingerprint + + def __lt__(self, other: object) -> bool: + """ + Implemented to make sorted available upon CharsetMatches items. + """ + if not isinstance(other, CharsetMatch): + raise ValueError + + chaos_difference: float = abs(self.chaos - other.chaos) + coherence_difference: float = abs(self.coherence - other.coherence) + + # Below 1% difference --> Use Coherence + if chaos_difference < 0.01 and coherence_difference > 0.02: + return self.coherence > other.coherence + elif chaos_difference < 0.01 and coherence_difference <= 0.02: + # When having a difficult decision, use the result that decoded as many multi-byte as possible. + # preserve RAM usage! + if len(self._payload) >= TOO_BIG_SEQUENCE: + return self.chaos < other.chaos + return self.multi_byte_usage > other.multi_byte_usage + + return self.chaos < other.chaos + + @property + def multi_byte_usage(self) -> float: + return 1.0 - (len(str(self)) / len(self.raw)) + + def __str__(self) -> str: + # Lazy Str Loading + if self._string is None: + self._string = str(self._payload, self._encoding, "strict") + return self._string + + def __repr__(self) -> str: + return f"" + + def add_submatch(self, other: CharsetMatch) -> None: + if not isinstance(other, CharsetMatch) or other == self: + raise ValueError( + "Unable to add instance <{}> as a submatch of a CharsetMatch".format( + other.__class__ + ) + ) + + other._string = None # Unload RAM usage; dirty trick. + self._leaves.append(other) + + @property + def encoding(self) -> str: + return self._encoding + + @property + def encoding_aliases(self) -> list[str]: + """ + Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. + """ + also_known_as: list[str] = [] + for u, p in aliases.items(): + if self.encoding == u: + also_known_as.append(p) + elif self.encoding == p: + also_known_as.append(u) + return also_known_as + + @property + def bom(self) -> bool: + return self._has_sig_or_bom + + @property + def byte_order_mark(self) -> bool: + return self._has_sig_or_bom + + @property + def languages(self) -> list[str]: + """ + Return the complete list of possible languages found in decoded sequence. + Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. + """ + return [e[0] for e in self._languages] + + @property + def language(self) -> str: + """ + Most probable language found in decoded sequence. If none were detected or inferred, the property will return + "Unknown". + """ + if not self._languages: + # Trying to infer the language based on the given encoding + # Its either English or we should not pronounce ourselves in certain cases. + if "ascii" in self.could_be_from_charset: + return "English" + + # doing it there to avoid circular import + from charset_normalizer.cd import encoding_languages, mb_encoding_languages + + languages = ( + mb_encoding_languages(self.encoding) + if is_multi_byte_encoding(self.encoding) + else encoding_languages(self.encoding) + ) + + if len(languages) == 0 or "Latin Based" in languages: + return "Unknown" + + return languages[0] + + return self._languages[0][0] + + @property + def chaos(self) -> float: + return self._mean_mess_ratio + + @property + def coherence(self) -> float: + if not self._languages: + return 0.0 + return self._languages[0][1] + + @property + def percent_chaos(self) -> float: + return round(self.chaos * 100, ndigits=3) + + @property + def percent_coherence(self) -> float: + return round(self.coherence * 100, ndigits=3) + + @property + def raw(self) -> bytes: + """ + Original untouched bytes. + """ + return self._payload + + @property + def submatch(self) -> list[CharsetMatch]: + return self._leaves + + @property + def has_submatch(self) -> bool: + return len(self._leaves) > 0 + + @property + def alphabets(self) -> list[str]: + if self._unicode_ranges is not None: + return self._unicode_ranges + # list detected ranges + detected_ranges: list[str | None] = [unicode_range(char) for char in str(self)] + # filter and sort + self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) + return self._unicode_ranges + + @property + def could_be_from_charset(self) -> list[str]: + """ + The complete list of encoding that output the exact SAME str result and therefore could be the originating + encoding. + This list does include the encoding available in property 'encoding'. + """ + return [self._encoding] + [m.encoding for m in self._leaves] + + def output(self, encoding: str = "utf_8") -> bytes: + """ + Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. + Any errors will be simply ignored by the encoder NOT replaced. + """ + if self._output_encoding is None or self._output_encoding != encoding: + self._output_encoding = encoding + decoded_string = str(self) + if ( + self._preemptive_declaration is not None + and self._preemptive_declaration.lower() + not in ["utf-8", "utf8", "utf_8"] + ): + patched_header = sub( + RE_POSSIBLE_ENCODING_INDICATION, + lambda m: m.string[m.span()[0] : m.span()[1]].replace( + m.groups()[0], + iana_name(self._output_encoding).replace("_", "-"), # type: ignore[arg-type] + ), + decoded_string[:8192], + count=1, + ) + + decoded_string = patched_header + decoded_string[8192:] + + self._output_payload = decoded_string.encode(encoding, "replace") + + return self._output_payload # type: ignore + + @property + def fingerprint(self) -> str: + """ + Retrieve the unique SHA256 computed using the transformed (re-encoded) payload. Not the original one. + """ + return sha256(self.output()).hexdigest() + + +class CharsetMatches: + """ + Container with every CharsetMatch items ordered by default from most probable to the less one. + Act like a list(iterable) but does not implements all related methods. + """ + + def __init__(self, results: list[CharsetMatch] | None = None): + self._results: list[CharsetMatch] = sorted(results) if results else [] + + def __iter__(self) -> Iterator[CharsetMatch]: + yield from self._results + + def __getitem__(self, item: int | str) -> CharsetMatch: + """ + Retrieve a single item either by its position or encoding name (alias may be used here). + Raise KeyError upon invalid index or encoding not present in results. + """ + if isinstance(item, int): + return self._results[item] + if isinstance(item, str): + item = iana_name(item, False) + for result in self._results: + if item in result.could_be_from_charset: + return result + raise KeyError + + def __len__(self) -> int: + return len(self._results) + + def __bool__(self) -> bool: + return len(self._results) > 0 + + def append(self, item: CharsetMatch) -> None: + """ + Insert a single match. Will be inserted accordingly to preserve sort. + Can be inserted as a submatch. + """ + if not isinstance(item, CharsetMatch): + raise ValueError( + "Cannot append instance '{}' to CharsetMatches".format( + str(item.__class__) + ) + ) + # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) + if len(item.raw) < TOO_BIG_SEQUENCE: + for match in self._results: + if match.fingerprint == item.fingerprint and match.chaos == item.chaos: + match.add_submatch(item) + return + self._results.append(item) + self._results = sorted(self._results) + + def best(self) -> CharsetMatch | None: + """ + Simply return the first match. Strict equivalent to matches[0]. + """ + if not self._results: + return None + return self._results[0] + + def first(self) -> CharsetMatch | None: + """ + Redundant method, call the method best(). Kept for BC reasons. + """ + return self.best() + + +CoherenceMatch = Tuple[str, float] +CoherenceMatches = List[CoherenceMatch] + + +class CliDetectionResult: + def __init__( + self, + path: str, + encoding: str | None, + encoding_aliases: list[str], + alternative_encodings: list[str], + language: str, + alphabets: list[str], + has_sig_or_bom: bool, + chaos: float, + coherence: float, + unicode_path: str | None, + is_preferred: bool, + ): + self.path: str = path + self.unicode_path: str | None = unicode_path + self.encoding: str | None = encoding + self.encoding_aliases: list[str] = encoding_aliases + self.alternative_encodings: list[str] = alternative_encodings + self.language: str = language + self.alphabets: list[str] = alphabets + self.has_sig_or_bom: bool = has_sig_or_bom + self.chaos: float = chaos + self.coherence: float = coherence + self.is_preferred: bool = is_preferred + + @property + def __dict__(self) -> dict[str, Any]: # type: ignore + return { + "path": self.path, + "encoding": self.encoding, + "encoding_aliases": self.encoding_aliases, + "alternative_encodings": self.alternative_encodings, + "language": self.language, + "alphabets": self.alphabets, + "has_sig_or_bom": self.has_sig_or_bom, + "chaos": self.chaos, + "coherence": self.coherence, + "unicode_path": self.unicode_path, + "is_preferred": self.is_preferred, + } + + def to_json(self) -> str: + return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/py.typed b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/utils.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/utils.py new file mode 100644 index 00000000..6bf0384c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/utils.py @@ -0,0 +1,414 @@ +from __future__ import annotations + +import importlib +import logging +import unicodedata +from codecs import IncrementalDecoder +from encodings.aliases import aliases +from functools import lru_cache +from re import findall +from typing import Generator + +from _multibytecodec import ( # type: ignore[import-not-found,import] + MultibyteIncrementalDecoder, +) + +from .constant import ( + ENCODING_MARKS, + IANA_SUPPORTED_SIMILAR, + RE_POSSIBLE_ENCODING_INDICATION, + UNICODE_RANGES_COMBINED, + UNICODE_SECONDARY_RANGE_KEYWORD, + UTF8_MAXIMAL_ALLOCATION, + COMMON_CJK_CHARACTERS, +) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_accentuated(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + return ( + "WITH GRAVE" in description + or "WITH ACUTE" in description + or "WITH CEDILLA" in description + or "WITH DIAERESIS" in description + or "WITH CIRCUMFLEX" in description + or "WITH TILDE" in description + or "WITH MACRON" in description + or "WITH RING ABOVE" in description + ) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def remove_accent(character: str) -> str: + decomposed: str = unicodedata.decomposition(character) + if not decomposed: + return character + + codes: list[str] = decomposed.split(" ") + + return chr(int(codes[0], 16)) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def unicode_range(character: str) -> str | None: + """ + Retrieve the Unicode range official name from a single character. + """ + character_ord: int = ord(character) + + for range_name, ord_range in UNICODE_RANGES_COMBINED.items(): + if character_ord in ord_range: + return range_name + + return None + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_latin(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + return "LATIN" in description + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_punctuation(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "P" in character_category: + return True + + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Punctuation" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_symbol(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "S" in character_category or "N" in character_category: + return True + + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Forms" in character_range and character_category != "Lo" + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_emoticon(character: str) -> bool: + character_range: str | None = unicode_range(character) + + if character_range is None: + return False + + return "Emoticons" in character_range or "Pictographs" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_separator(character: str) -> bool: + if character.isspace() or character in {"|", "+", "<", ">"}: + return True + + character_category: str = unicodedata.category(character) + + return "Z" in character_category or character_category in {"Po", "Pd", "Pc"} + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_case_variable(character: str) -> bool: + return character.islower() != character.isupper() + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "CJK" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hiragana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "HIRAGANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_katakana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "KATAKANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hangul(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "HANGUL" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_thai(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "THAI" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_arabic(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "ARABIC" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_arabic_isolated_form(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: # Defensive: unicode database outdated? + return False + + return "ARABIC" in character_name and "ISOLATED FORM" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk_uncommon(character: str) -> bool: + return character not in COMMON_CJK_CHARACTERS + + +@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) +def is_unicode_range_secondary(range_name: str) -> bool: + return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_unprintable(character: str) -> bool: + return ( + character.isspace() is False # includes \n \t \r \v + and character.isprintable() is False + and character != "\x1a" # Why? Its the ASCII substitute character. + and character != "\ufeff" # bug discovered in Python, + # Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space. + ) + + +def any_specified_encoding(sequence: bytes, search_zone: int = 8192) -> str | None: + """ + Extract using ASCII-only decoder any specified encoding in the first n-bytes. + """ + if not isinstance(sequence, bytes): + raise TypeError + + seq_len: int = len(sequence) + + results: list[str] = findall( + RE_POSSIBLE_ENCODING_INDICATION, + sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), + ) + + if len(results) == 0: + return None + + for specified_encoding in results: + specified_encoding = specified_encoding.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if encoding_alias == specified_encoding: + return encoding_iana + if encoding_iana == specified_encoding: + return encoding_iana + + return None + + +@lru_cache(maxsize=128) +def is_multi_byte_encoding(name: str) -> bool: + """ + Verify is a specific encoding is a multi byte one based on it IANA name + """ + return name in { + "utf_8", + "utf_8_sig", + "utf_16", + "utf_16_be", + "utf_16_le", + "utf_32", + "utf_32_le", + "utf_32_be", + "utf_7", + } or issubclass( + importlib.import_module(f"encodings.{name}").IncrementalDecoder, + MultibyteIncrementalDecoder, + ) + + +def identify_sig_or_bom(sequence: bytes) -> tuple[str | None, bytes]: + """ + Identify and extract SIG/BOM in given sequence. + """ + + for iana_encoding in ENCODING_MARKS: + marks: bytes | list[bytes] = ENCODING_MARKS[iana_encoding] + + if isinstance(marks, bytes): + marks = [marks] + + for mark in marks: + if sequence.startswith(mark): + return iana_encoding, mark + + return None, b"" + + +def should_strip_sig_or_bom(iana_encoding: str) -> bool: + return iana_encoding not in {"utf_16", "utf_32"} + + +def iana_name(cp_name: str, strict: bool = True) -> str: + """Returns the Python normalized encoding name (Not the IANA official name).""" + cp_name = cp_name.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if cp_name in [encoding_alias, encoding_iana]: + return encoding_iana + + if strict: + raise ValueError(f"Unable to retrieve IANA for '{cp_name}'") + + return cp_name + + +def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: + if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): + return 0.0 + + decoder_a = importlib.import_module(f"encodings.{iana_name_a}").IncrementalDecoder + decoder_b = importlib.import_module(f"encodings.{iana_name_b}").IncrementalDecoder + + id_a: IncrementalDecoder = decoder_a(errors="ignore") + id_b: IncrementalDecoder = decoder_b(errors="ignore") + + character_match_count: int = 0 + + for i in range(255): + to_be_decoded: bytes = bytes([i]) + if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): + character_match_count += 1 + + return character_match_count / 254 + + +def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: + """ + Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using + the function cp_similarity. + """ + return ( + iana_name_a in IANA_SUPPORTED_SIMILAR + and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] + ) + + +def set_logging_handler( + name: str = "charset_normalizer", + level: int = logging.INFO, + format_string: str = "%(asctime)s | %(levelname)s | %(message)s", +) -> None: + logger = logging.getLogger(name) + logger.setLevel(level) + + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter(format_string)) + logger.addHandler(handler) + + +def cut_sequence_chunks( + sequences: bytes, + encoding_iana: str, + offsets: range, + chunk_size: int, + bom_or_sig_available: bool, + strip_sig_or_bom: bool, + sig_payload: bytes, + is_multi_byte_decoder: bool, + decoded_payload: str | None = None, +) -> Generator[str, None, None]: + if decoded_payload and is_multi_byte_decoder is False: + for i in offsets: + chunk = decoded_payload[i : i + chunk_size] + if not chunk: + break + yield chunk + else: + for i in offsets: + chunk_end = i + chunk_size + if chunk_end > len(sequences) + 8: + continue + + cut_sequence = sequences[i : i + chunk_size] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode( + encoding_iana, + errors="ignore" if is_multi_byte_decoder else "strict", + ) + + # multi-byte bad cutting detector and adjustment + # not the cleanest way to perform that fix but clever enough for now. + if is_multi_byte_decoder and i > 0: + chunk_partial_size_chk: int = min(chunk_size, 16) + + if ( + decoded_payload + and chunk[:chunk_partial_size_chk] not in decoded_payload + ): + for j in range(i, i - 4, -1): + cut_sequence = sequences[j:chunk_end] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode(encoding_iana, errors="ignore") + + if chunk[:chunk_partial_size_chk] in decoded_payload: + break + + yield chunk diff --git a/Backend/venv/lib/python3.12/site-packages/charset_normalizer/version.py b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/version.py new file mode 100644 index 00000000..c843e533 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/charset_normalizer/version.py @@ -0,0 +1,8 @@ +""" +Expose version +""" + +from __future__ import annotations + +__version__ = "3.4.4" +VERSION = __version__.split(".") diff --git a/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/INSTALLER b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/METADATA b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/METADATA new file mode 100644 index 00000000..b31773e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/METADATA @@ -0,0 +1,133 @@ +Metadata-Version: 2.4 +Name: requests +Version: 2.32.5 +Summary: Python HTTP for Humans. +Home-page: https://requests.readthedocs.io +Author: Kenneth Reitz +Author-email: me@kennethreitz.org +License: Apache-2.0 +Project-URL: Documentation, https://requests.readthedocs.io +Project-URL: Source, https://github.com/psf/requests +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Software Development :: Libraries +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: charset_normalizer<4,>=2 +Requires-Dist: idna<4,>=2.5 +Requires-Dist: urllib3<3,>=1.21.1 +Requires-Dist: certifi>=2017.4.17 +Provides-Extra: security +Provides-Extra: socks +Requires-Dist: PySocks!=1.5.7,>=1.5.6; extra == "socks" +Provides-Extra: use-chardet-on-py3 +Requires-Dist: chardet<6,>=3.0.2; extra == "use-chardet-on-py3" +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: provides-extra +Dynamic: requires-dist +Dynamic: requires-python +Dynamic: summary + +# Requests + +**Requests** is a simple, yet elegant, HTTP library. + +```python +>>> import requests +>>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass')) +>>> r.status_code +200 +>>> r.headers['content-type'] +'application/json; charset=utf8' +>>> r.encoding +'utf-8' +>>> r.text +'{"authenticated": true, ...' +>>> r.json() +{'authenticated': True, ...} +``` + +Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your `PUT` & `POST` data — but nowadays, just use the `json` method! + +Requests is one of the most downloaded Python packages today, pulling in around `30M downloads / week`— according to GitHub, Requests is currently [depended upon](https://github.com/psf/requests/network/dependents?package_id=UGFja2FnZS01NzA4OTExNg%3D%3D) by `1,000,000+` repositories. You may certainly put your trust in this code. + +[![Downloads](https://static.pepy.tech/badge/requests/month)](https://pepy.tech/project/requests) +[![Supported Versions](https://img.shields.io/pypi/pyversions/requests.svg)](https://pypi.org/project/requests) +[![Contributors](https://img.shields.io/github/contributors/psf/requests.svg)](https://github.com/psf/requests/graphs/contributors) + +## Installing Requests and Supported Versions + +Requests is available on PyPI: + +```console +$ python -m pip install requests +``` + +Requests officially supports Python 3.9+. + +## Supported Features & Best–Practices + +Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today. + +- Keep-Alive & Connection Pooling +- International Domains and URLs +- Sessions with Cookie Persistence +- Browser-style TLS/SSL Verification +- Basic & Digest Authentication +- Familiar `dict`–like Cookies +- Automatic Content Decompression and Decoding +- Multi-part File Uploads +- SOCKS Proxy Support +- Connection Timeouts +- Streaming Downloads +- Automatic honoring of `.netrc` +- Chunked HTTP Requests + +## API Reference and User Guide available on [Read the Docs](https://requests.readthedocs.io) + +[![Read the Docs](https://raw.githubusercontent.com/psf/requests/main/ext/ss.png)](https://requests.readthedocs.io) + +## Cloning the repository + +When cloning the Requests repository, you may need to add the `-c +fetch.fsck.badTimezone=ignore` flag to avoid an error about a bad commit timestamp (see +[this issue](https://github.com/psf/requests/issues/2690) for more background): + +```shell +git clone -c fetch.fsck.badTimezone=ignore https://github.com/psf/requests.git +``` + +You can also apply this setting to your global Git config: + +```shell +git config --global fetch.fsck.badTimezone ignore +``` + +--- + +[![Kenneth Reitz](https://raw.githubusercontent.com/psf/requests/main/ext/kr.png)](https://kennethreitz.org) [![Python Software Foundation](https://raw.githubusercontent.com/psf/requests/main/ext/psf.png)](https://www.python.org/psf) diff --git a/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/RECORD b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/RECORD new file mode 100644 index 00000000..59022919 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/RECORD @@ -0,0 +1,42 @@ +requests-2.32.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +requests-2.32.5.dist-info/METADATA,sha256=ZbWgjagfSRVRPnYJZf8Ut1GPZbe7Pv4NqzZLvMTUDLA,4945 +requests-2.32.5.dist-info/RECORD,, +requests-2.32.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +requests-2.32.5.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142 +requests-2.32.5.dist-info/top_level.txt,sha256=fMSVmHfb5rbGOo6xv-O_tUX6j-WyixssE-SnwcDRxNQ,9 +requests/__init__.py,sha256=4xaAERmPDIBPsa2PsjpU9r06yooK-2mZKHTZAhWRWts,5072 +requests/__pycache__/__init__.cpython-312.pyc,, +requests/__pycache__/__version__.cpython-312.pyc,, +requests/__pycache__/_internal_utils.cpython-312.pyc,, +requests/__pycache__/adapters.cpython-312.pyc,, +requests/__pycache__/api.cpython-312.pyc,, +requests/__pycache__/auth.cpython-312.pyc,, +requests/__pycache__/certs.cpython-312.pyc,, +requests/__pycache__/compat.cpython-312.pyc,, +requests/__pycache__/cookies.cpython-312.pyc,, +requests/__pycache__/exceptions.cpython-312.pyc,, +requests/__pycache__/help.cpython-312.pyc,, +requests/__pycache__/hooks.cpython-312.pyc,, +requests/__pycache__/models.cpython-312.pyc,, +requests/__pycache__/packages.cpython-312.pyc,, +requests/__pycache__/sessions.cpython-312.pyc,, +requests/__pycache__/status_codes.cpython-312.pyc,, +requests/__pycache__/structures.cpython-312.pyc,, +requests/__pycache__/utils.cpython-312.pyc,, +requests/__version__.py,sha256=QKDceK8K_ujqwDDc3oYrR0odOBYgKVOQQ5vFap_G_cg,435 +requests/_internal_utils.py,sha256=nMQymr4hs32TqVo5AbCrmcJEhvPUh7xXlluyqwslLiQ,1495 +requests/adapters.py,sha256=8nX113gbb123aUtx2ETkAN_6IsYX-M2fRoLGluTEcRk,26285 +requests/api.py,sha256=_Zb9Oa7tzVIizTKwFrPjDEY9ejtm_OnSRERnADxGsQs,6449 +requests/auth.py,sha256=kF75tqnLctZ9Mf_hm9TZIj4cQWnN5uxRz8oWsx5wmR0,10186 +requests/certs.py,sha256=Z9Sb410Anv6jUFTyss0jFFhU6xst8ctELqfy8Ev23gw,429 +requests/compat.py,sha256=J7sIjR6XoDGp5JTVzOxkK5fSoUVUa_Pjc7iRZhAWGmI,2142 +requests/cookies.py,sha256=bNi-iqEj4NPZ00-ob-rHvzkvObzN3lEpgw3g6paS3Xw,18590 +requests/exceptions.py,sha256=jJPS1UWATs86ShVUaLorTiJb1SaGuoNEWgICJep-VkY,4260 +requests/help.py,sha256=gPX5d_H7Xd88aDABejhqGgl9B1VFRTt5BmiYvL3PzIQ,3875 +requests/hooks.py,sha256=CiuysiHA39V5UfcCBXFIx83IrDpuwfN9RcTUgv28ftQ,733 +requests/models.py,sha256=MjZdZ4k7tnw-1nz5PKShjmPmqyk0L6DciwnFngb_Vk4,35510 +requests/packages.py,sha256=_g0gZ681UyAlKHRjH6kanbaoxx2eAb6qzcXiODyTIoc,904 +requests/sessions.py,sha256=Cl1dpEnOfwrzzPbku-emepNeN4Rt_0_58Iy2x-JGTm8,30503 +requests/status_codes.py,sha256=iJUAeA25baTdw-6PfD0eF4qhpINDJRJI-yaMqxs4LEI,4322 +requests/structures.py,sha256=-IbmhVz06S-5aPSZuUthZ6-6D9XOjRuTXHOabY041XM,2912 +requests/utils.py,sha256=WqU86rZ3wvhC-tQjWcjtH_HEKZwWB3iWCZV6SW5DEdQ,33213 diff --git a/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/WHEEL b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/WHEEL new file mode 100644 index 00000000..e7fa31b6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/licenses/LICENSE b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/licenses/LICENSE new file mode 100644 index 00000000..67db8588 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/licenses/LICENSE @@ -0,0 +1,175 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/top_level.txt b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/top_level.txt new file mode 100644 index 00000000..f2293605 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests-2.32.5.dist-info/top_level.txt @@ -0,0 +1 @@ +requests diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__init__.py b/Backend/venv/lib/python3.12/site-packages/requests/__init__.py new file mode 100644 index 00000000..051cda13 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/__init__.py @@ -0,0 +1,184 @@ +# __ +# /__) _ _ _ _ _/ _ +# / ( (- (/ (/ (- _) / _) +# / + +""" +Requests HTTP Library +~~~~~~~~~~~~~~~~~~~~~ + +Requests is an HTTP library, written in Python, for human beings. +Basic GET usage: + + >>> import requests + >>> r = requests.get('https://www.python.org') + >>> r.status_code + 200 + >>> b'Python is a programming language' in r.content + True + +... or POST: + + >>> payload = dict(key1='value1', key2='value2') + >>> r = requests.post('https://httpbin.org/post', data=payload) + >>> print(r.text) + { + ... + "form": { + "key1": "value1", + "key2": "value2" + }, + ... + } + +The other HTTP methods are supported - see `requests.api`. Full documentation +is at . + +:copyright: (c) 2017 by Kenneth Reitz. +:license: Apache 2.0, see LICENSE for more details. +""" + +import warnings + +import urllib3 + +from .exceptions import RequestsDependencyWarning + +try: + from charset_normalizer import __version__ as charset_normalizer_version +except ImportError: + charset_normalizer_version = None + +try: + from chardet import __version__ as chardet_version +except ImportError: + chardet_version = None + + +def check_compatibility(urllib3_version, chardet_version, charset_normalizer_version): + urllib3_version = urllib3_version.split(".") + assert urllib3_version != ["dev"] # Verify urllib3 isn't installed from git. + + # Sometimes, urllib3 only reports its version as 16.1. + if len(urllib3_version) == 2: + urllib3_version.append("0") + + # Check urllib3 for compatibility. + major, minor, patch = urllib3_version # noqa: F811 + major, minor, patch = int(major), int(minor), int(patch) + # urllib3 >= 1.21.1 + assert major >= 1 + if major == 1: + assert minor >= 21 + + # Check charset_normalizer for compatibility. + if chardet_version: + major, minor, patch = chardet_version.split(".")[:3] + major, minor, patch = int(major), int(minor), int(patch) + # chardet_version >= 3.0.2, < 6.0.0 + assert (3, 0, 2) <= (major, minor, patch) < (6, 0, 0) + elif charset_normalizer_version: + major, minor, patch = charset_normalizer_version.split(".")[:3] + major, minor, patch = int(major), int(minor), int(patch) + # charset_normalizer >= 2.0.0 < 4.0.0 + assert (2, 0, 0) <= (major, minor, patch) < (4, 0, 0) + else: + warnings.warn( + "Unable to find acceptable character detection dependency " + "(chardet or charset_normalizer).", + RequestsDependencyWarning, + ) + + +def _check_cryptography(cryptography_version): + # cryptography < 1.3.4 + try: + cryptography_version = list(map(int, cryptography_version.split("."))) + except ValueError: + return + + if cryptography_version < [1, 3, 4]: + warning = "Old version of cryptography ({}) may cause slowdown.".format( + cryptography_version + ) + warnings.warn(warning, RequestsDependencyWarning) + + +# Check imported dependencies for compatibility. +try: + check_compatibility( + urllib3.__version__, chardet_version, charset_normalizer_version + ) +except (AssertionError, ValueError): + warnings.warn( + "urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported " + "version!".format( + urllib3.__version__, chardet_version, charset_normalizer_version + ), + RequestsDependencyWarning, + ) + +# Attempt to enable urllib3's fallback for SNI support +# if the standard library doesn't support SNI or the +# 'ssl' library isn't available. +try: + try: + import ssl + except ImportError: + ssl = None + + if not getattr(ssl, "HAS_SNI", False): + from urllib3.contrib import pyopenssl + + pyopenssl.inject_into_urllib3() + + # Check cryptography version + from cryptography import __version__ as cryptography_version + + _check_cryptography(cryptography_version) +except ImportError: + pass + +# urllib3's DependencyWarnings should be silenced. +from urllib3.exceptions import DependencyWarning + +warnings.simplefilter("ignore", DependencyWarning) + +# Set default logging handler to avoid "No handler found" warnings. +import logging +from logging import NullHandler + +from . import packages, utils +from .__version__ import ( + __author__, + __author_email__, + __build__, + __cake__, + __copyright__, + __description__, + __license__, + __title__, + __url__, + __version__, +) +from .api import delete, get, head, options, patch, post, put, request +from .exceptions import ( + ConnectionError, + ConnectTimeout, + FileModeWarning, + HTTPError, + JSONDecodeError, + ReadTimeout, + RequestException, + Timeout, + TooManyRedirects, + URLRequired, +) +from .models import PreparedRequest, Request, Response +from .sessions import Session, session +from .status_codes import codes + +logging.getLogger(__name__).addHandler(NullHandler()) + +# FileModeWarnings go off per the default. +warnings.simplefilter("default", FileModeWarning, append=True) diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..b5873e4f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/__version__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/__version__.cpython-312.pyc new file mode 100644 index 00000000..9e3471af Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/__version__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/_internal_utils.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/_internal_utils.cpython-312.pyc new file mode 100644 index 00000000..19bcb39b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/_internal_utils.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/adapters.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/adapters.cpython-312.pyc new file mode 100644 index 00000000..999a4958 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/adapters.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/api.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/api.cpython-312.pyc new file mode 100644 index 00000000..a07a0b45 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/api.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/auth.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/auth.cpython-312.pyc new file mode 100644 index 00000000..bc7525b7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/auth.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/certs.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/certs.cpython-312.pyc new file mode 100644 index 00000000..affe608a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/certs.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/compat.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/compat.cpython-312.pyc new file mode 100644 index 00000000..7db2e77e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/compat.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/cookies.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/cookies.cpython-312.pyc new file mode 100644 index 00000000..42b4c0eb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/cookies.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/exceptions.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/exceptions.cpython-312.pyc new file mode 100644 index 00000000..31a19b08 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/exceptions.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/help.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/help.cpython-312.pyc new file mode 100644 index 00000000..1a7717c5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/help.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/hooks.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/hooks.cpython-312.pyc new file mode 100644 index 00000000..3f5a1680 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/hooks.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/models.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/models.cpython-312.pyc new file mode 100644 index 00000000..7d364658 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/models.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/packages.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/packages.cpython-312.pyc new file mode 100644 index 00000000..0df0291c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/packages.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/sessions.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/sessions.cpython-312.pyc new file mode 100644 index 00000000..d14aba12 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/sessions.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/status_codes.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/status_codes.cpython-312.pyc new file mode 100644 index 00000000..64a9d48d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/status_codes.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/structures.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/structures.cpython-312.pyc new file mode 100644 index 00000000..b870e984 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/structures.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/utils.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/utils.cpython-312.pyc new file mode 100644 index 00000000..b3842540 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/requests/__pycache__/utils.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/requests/__version__.py b/Backend/venv/lib/python3.12/site-packages/requests/__version__.py new file mode 100644 index 00000000..effdd98c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/__version__.py @@ -0,0 +1,14 @@ +# .-. .-. .-. . . .-. .-. .-. .-. +# |( |- |.| | | |- `-. | `-. +# ' ' `-' `-`.`-' `-' `-' ' `-' + +__title__ = "requests" +__description__ = "Python HTTP for Humans." +__url__ = "https://requests.readthedocs.io" +__version__ = "2.32.5" +__build__ = 0x023205 +__author__ = "Kenneth Reitz" +__author_email__ = "me@kennethreitz.org" +__license__ = "Apache-2.0" +__copyright__ = "Copyright Kenneth Reitz" +__cake__ = "\u2728 \U0001f370 \u2728" diff --git a/Backend/venv/lib/python3.12/site-packages/requests/_internal_utils.py b/Backend/venv/lib/python3.12/site-packages/requests/_internal_utils.py new file mode 100644 index 00000000..f2cf635e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/_internal_utils.py @@ -0,0 +1,50 @@ +""" +requests._internal_utils +~~~~~~~~~~~~~~ + +Provides utility functions that are consumed internally by Requests +which depend on extremely few external helpers (such as compat) +""" +import re + +from .compat import builtin_str + +_VALID_HEADER_NAME_RE_BYTE = re.compile(rb"^[^:\s][^:\r\n]*$") +_VALID_HEADER_NAME_RE_STR = re.compile(r"^[^:\s][^:\r\n]*$") +_VALID_HEADER_VALUE_RE_BYTE = re.compile(rb"^\S[^\r\n]*$|^$") +_VALID_HEADER_VALUE_RE_STR = re.compile(r"^\S[^\r\n]*$|^$") + +_HEADER_VALIDATORS_STR = (_VALID_HEADER_NAME_RE_STR, _VALID_HEADER_VALUE_RE_STR) +_HEADER_VALIDATORS_BYTE = (_VALID_HEADER_NAME_RE_BYTE, _VALID_HEADER_VALUE_RE_BYTE) +HEADER_VALIDATORS = { + bytes: _HEADER_VALIDATORS_BYTE, + str: _HEADER_VALIDATORS_STR, +} + + +def to_native_string(string, encoding="ascii"): + """Given a string object, regardless of type, returns a representation of + that string in the native string type, encoding and decoding where + necessary. This assumes ASCII unless told otherwise. + """ + if isinstance(string, builtin_str): + out = string + else: + out = string.decode(encoding) + + return out + + +def unicode_is_ascii(u_string): + """Determine if unicode string only contains ASCII characters. + + :param str u_string: unicode string to check. Must be unicode + and not Python 2 `str`. + :rtype: bool + """ + assert isinstance(u_string, str) + try: + u_string.encode("ascii") + return True + except UnicodeEncodeError: + return False diff --git a/Backend/venv/lib/python3.12/site-packages/requests/adapters.py b/Backend/venv/lib/python3.12/site-packages/requests/adapters.py new file mode 100644 index 00000000..670c9276 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/adapters.py @@ -0,0 +1,696 @@ +""" +requests.adapters +~~~~~~~~~~~~~~~~~ + +This module contains the transport adapters that Requests uses to define +and maintain connections. +""" + +import os.path +import socket # noqa: F401 +import typing +import warnings + +from urllib3.exceptions import ClosedPoolError, ConnectTimeoutError +from urllib3.exceptions import HTTPError as _HTTPError +from urllib3.exceptions import InvalidHeader as _InvalidHeader +from urllib3.exceptions import ( + LocationValueError, + MaxRetryError, + NewConnectionError, + ProtocolError, +) +from urllib3.exceptions import ProxyError as _ProxyError +from urllib3.exceptions import ReadTimeoutError, ResponseError +from urllib3.exceptions import SSLError as _SSLError +from urllib3.poolmanager import PoolManager, proxy_from_url +from urllib3.util import Timeout as TimeoutSauce +from urllib3.util import parse_url +from urllib3.util.retry import Retry + +from .auth import _basic_auth_str +from .compat import basestring, urlparse +from .cookies import extract_cookies_to_jar +from .exceptions import ( + ConnectionError, + ConnectTimeout, + InvalidHeader, + InvalidProxyURL, + InvalidSchema, + InvalidURL, + ProxyError, + ReadTimeout, + RetryError, + SSLError, +) +from .models import Response +from .structures import CaseInsensitiveDict +from .utils import ( + DEFAULT_CA_BUNDLE_PATH, + extract_zipped_paths, + get_auth_from_url, + get_encoding_from_headers, + prepend_scheme_if_needed, + select_proxy, + urldefragauth, +) + +try: + from urllib3.contrib.socks import SOCKSProxyManager +except ImportError: + + def SOCKSProxyManager(*args, **kwargs): + raise InvalidSchema("Missing dependencies for SOCKS support.") + + +if typing.TYPE_CHECKING: + from .models import PreparedRequest + + +DEFAULT_POOLBLOCK = False +DEFAULT_POOLSIZE = 10 +DEFAULT_RETRIES = 0 +DEFAULT_POOL_TIMEOUT = None + + +def _urllib3_request_context( + request: "PreparedRequest", + verify: "bool | str | None", + client_cert: "typing.Tuple[str, str] | str | None", + poolmanager: "PoolManager", +) -> "(typing.Dict[str, typing.Any], typing.Dict[str, typing.Any])": + host_params = {} + pool_kwargs = {} + parsed_request_url = urlparse(request.url) + scheme = parsed_request_url.scheme.lower() + port = parsed_request_url.port + + cert_reqs = "CERT_REQUIRED" + if verify is False: + cert_reqs = "CERT_NONE" + elif isinstance(verify, str): + if not os.path.isdir(verify): + pool_kwargs["ca_certs"] = verify + else: + pool_kwargs["ca_cert_dir"] = verify + pool_kwargs["cert_reqs"] = cert_reqs + if client_cert is not None: + if isinstance(client_cert, tuple) and len(client_cert) == 2: + pool_kwargs["cert_file"] = client_cert[0] + pool_kwargs["key_file"] = client_cert[1] + else: + # According to our docs, we allow users to specify just the client + # cert path + pool_kwargs["cert_file"] = client_cert + host_params = { + "scheme": scheme, + "host": parsed_request_url.hostname, + "port": port, + } + return host_params, pool_kwargs + + +class BaseAdapter: + """The Base Transport Adapter""" + + def __init__(self): + super().__init__() + + def send( + self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None + ): + """Sends PreparedRequest object. Returns Response object. + + :param request: The :class:`PreparedRequest ` being sent. + :param stream: (optional) Whether to stream the request content. + :param timeout: (optional) How long to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) ` tuple. + :type timeout: float or tuple + :param verify: (optional) Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use + :param cert: (optional) Any user-provided SSL certificate to be trusted. + :param proxies: (optional) The proxies dictionary to apply to the request. + """ + raise NotImplementedError + + def close(self): + """Cleans up adapter specific items.""" + raise NotImplementedError + + +class HTTPAdapter(BaseAdapter): + """The built-in HTTP Adapter for urllib3. + + Provides a general-case interface for Requests sessions to contact HTTP and + HTTPS urls by implementing the Transport Adapter interface. This class will + usually be created by the :class:`Session ` class under the + covers. + + :param pool_connections: The number of urllib3 connection pools to cache. + :param pool_maxsize: The maximum number of connections to save in the pool. + :param max_retries: The maximum number of retries each connection + should attempt. Note, this applies only to failed DNS lookups, socket + connections and connection timeouts, never to requests where data has + made it to the server. By default, Requests does not retry failed + connections. If you need granular control over the conditions under + which we retry a request, import urllib3's ``Retry`` class and pass + that instead. + :param pool_block: Whether the connection pool should block for connections. + + Usage:: + + >>> import requests + >>> s = requests.Session() + >>> a = requests.adapters.HTTPAdapter(max_retries=3) + >>> s.mount('http://', a) + """ + + __attrs__ = [ + "max_retries", + "config", + "_pool_connections", + "_pool_maxsize", + "_pool_block", + ] + + def __init__( + self, + pool_connections=DEFAULT_POOLSIZE, + pool_maxsize=DEFAULT_POOLSIZE, + max_retries=DEFAULT_RETRIES, + pool_block=DEFAULT_POOLBLOCK, + ): + if max_retries == DEFAULT_RETRIES: + self.max_retries = Retry(0, read=False) + else: + self.max_retries = Retry.from_int(max_retries) + self.config = {} + self.proxy_manager = {} + + super().__init__() + + self._pool_connections = pool_connections + self._pool_maxsize = pool_maxsize + self._pool_block = pool_block + + self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block) + + def __getstate__(self): + return {attr: getattr(self, attr, None) for attr in self.__attrs__} + + def __setstate__(self, state): + # Can't handle by adding 'proxy_manager' to self.__attrs__ because + # self.poolmanager uses a lambda function, which isn't pickleable. + self.proxy_manager = {} + self.config = {} + + for attr, value in state.items(): + setattr(self, attr, value) + + self.init_poolmanager( + self._pool_connections, self._pool_maxsize, block=self._pool_block + ) + + def init_poolmanager( + self, connections, maxsize, block=DEFAULT_POOLBLOCK, **pool_kwargs + ): + """Initializes a urllib3 PoolManager. + + This method should not be called from user code, and is only + exposed for use when subclassing the + :class:`HTTPAdapter `. + + :param connections: The number of urllib3 connection pools to cache. + :param maxsize: The maximum number of connections to save in the pool. + :param block: Block when no free connections are available. + :param pool_kwargs: Extra keyword arguments used to initialize the Pool Manager. + """ + # save these values for pickling + self._pool_connections = connections + self._pool_maxsize = maxsize + self._pool_block = block + + self.poolmanager = PoolManager( + num_pools=connections, + maxsize=maxsize, + block=block, + **pool_kwargs, + ) + + def proxy_manager_for(self, proxy, **proxy_kwargs): + """Return urllib3 ProxyManager for the given proxy. + + This method should not be called from user code, and is only + exposed for use when subclassing the + :class:`HTTPAdapter `. + + :param proxy: The proxy to return a urllib3 ProxyManager for. + :param proxy_kwargs: Extra keyword arguments used to configure the Proxy Manager. + :returns: ProxyManager + :rtype: urllib3.ProxyManager + """ + if proxy in self.proxy_manager: + manager = self.proxy_manager[proxy] + elif proxy.lower().startswith("socks"): + username, password = get_auth_from_url(proxy) + manager = self.proxy_manager[proxy] = SOCKSProxyManager( + proxy, + username=username, + password=password, + num_pools=self._pool_connections, + maxsize=self._pool_maxsize, + block=self._pool_block, + **proxy_kwargs, + ) + else: + proxy_headers = self.proxy_headers(proxy) + manager = self.proxy_manager[proxy] = proxy_from_url( + proxy, + proxy_headers=proxy_headers, + num_pools=self._pool_connections, + maxsize=self._pool_maxsize, + block=self._pool_block, + **proxy_kwargs, + ) + + return manager + + def cert_verify(self, conn, url, verify, cert): + """Verify a SSL certificate. This method should not be called from user + code, and is only exposed for use when subclassing the + :class:`HTTPAdapter `. + + :param conn: The urllib3 connection object associated with the cert. + :param url: The requested URL. + :param verify: Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use + :param cert: The SSL certificate to verify. + """ + if url.lower().startswith("https") and verify: + cert_loc = None + + # Allow self-specified cert location. + if verify is not True: + cert_loc = verify + + if not cert_loc: + cert_loc = extract_zipped_paths(DEFAULT_CA_BUNDLE_PATH) + + if not cert_loc or not os.path.exists(cert_loc): + raise OSError( + f"Could not find a suitable TLS CA certificate bundle, " + f"invalid path: {cert_loc}" + ) + + conn.cert_reqs = "CERT_REQUIRED" + + if not os.path.isdir(cert_loc): + conn.ca_certs = cert_loc + else: + conn.ca_cert_dir = cert_loc + else: + conn.cert_reqs = "CERT_NONE" + conn.ca_certs = None + conn.ca_cert_dir = None + + if cert: + if not isinstance(cert, basestring): + conn.cert_file = cert[0] + conn.key_file = cert[1] + else: + conn.cert_file = cert + conn.key_file = None + if conn.cert_file and not os.path.exists(conn.cert_file): + raise OSError( + f"Could not find the TLS certificate file, " + f"invalid path: {conn.cert_file}" + ) + if conn.key_file and not os.path.exists(conn.key_file): + raise OSError( + f"Could not find the TLS key file, invalid path: {conn.key_file}" + ) + + def build_response(self, req, resp): + """Builds a :class:`Response ` object from a urllib3 + response. This should not be called from user code, and is only exposed + for use when subclassing the + :class:`HTTPAdapter ` + + :param req: The :class:`PreparedRequest ` used to generate the response. + :param resp: The urllib3 response object. + :rtype: requests.Response + """ + response = Response() + + # Fallback to None if there's no status_code, for whatever reason. + response.status_code = getattr(resp, "status", None) + + # Make headers case-insensitive. + response.headers = CaseInsensitiveDict(getattr(resp, "headers", {})) + + # Set encoding. + response.encoding = get_encoding_from_headers(response.headers) + response.raw = resp + response.reason = response.raw.reason + + if isinstance(req.url, bytes): + response.url = req.url.decode("utf-8") + else: + response.url = req.url + + # Add new cookies from the server. + extract_cookies_to_jar(response.cookies, req, resp) + + # Give the Response some context. + response.request = req + response.connection = self + + return response + + def build_connection_pool_key_attributes(self, request, verify, cert=None): + """Build the PoolKey attributes used by urllib3 to return a connection. + + This looks at the PreparedRequest, the user-specified verify value, + and the value of the cert parameter to determine what PoolKey values + to use to select a connection from a given urllib3 Connection Pool. + + The SSL related pool key arguments are not consistently set. As of + this writing, use the following to determine what keys may be in that + dictionary: + + * If ``verify`` is ``True``, ``"ssl_context"`` will be set and will be the + default Requests SSL Context + * If ``verify`` is ``False``, ``"ssl_context"`` will not be set but + ``"cert_reqs"`` will be set + * If ``verify`` is a string, (i.e., it is a user-specified trust bundle) + ``"ca_certs"`` will be set if the string is not a directory recognized + by :py:func:`os.path.isdir`, otherwise ``"ca_cert_dir"`` will be + set. + * If ``"cert"`` is specified, ``"cert_file"`` will always be set. If + ``"cert"`` is a tuple with a second item, ``"key_file"`` will also + be present + + To override these settings, one may subclass this class, call this + method and use the above logic to change parameters as desired. For + example, if one wishes to use a custom :py:class:`ssl.SSLContext` one + must both set ``"ssl_context"`` and based on what else they require, + alter the other keys to ensure the desired behaviour. + + :param request: + The PreparedReqest being sent over the connection. + :type request: + :class:`~requests.models.PreparedRequest` + :param verify: + Either a boolean, in which case it controls whether + we verify the server's TLS certificate, or a string, in which case it + must be a path to a CA bundle to use. + :param cert: + (optional) Any user-provided SSL certificate for client + authentication (a.k.a., mTLS). This may be a string (i.e., just + the path to a file which holds both certificate and key) or a + tuple of length 2 with the certificate file path and key file + path. + :returns: + A tuple of two dictionaries. The first is the "host parameters" + portion of the Pool Key including scheme, hostname, and port. The + second is a dictionary of SSLContext related parameters. + """ + return _urllib3_request_context(request, verify, cert, self.poolmanager) + + def get_connection_with_tls_context(self, request, verify, proxies=None, cert=None): + """Returns a urllib3 connection for the given request and TLS settings. + This should not be called from user code, and is only exposed for use + when subclassing the :class:`HTTPAdapter `. + + :param request: + The :class:`PreparedRequest ` object to be sent + over the connection. + :param verify: + Either a boolean, in which case it controls whether we verify the + server's TLS certificate, or a string, in which case it must be a + path to a CA bundle to use. + :param proxies: + (optional) The proxies dictionary to apply to the request. + :param cert: + (optional) Any user-provided SSL certificate to be used for client + authentication (a.k.a., mTLS). + :rtype: + urllib3.ConnectionPool + """ + proxy = select_proxy(request.url, proxies) + try: + host_params, pool_kwargs = self.build_connection_pool_key_attributes( + request, + verify, + cert, + ) + except ValueError as e: + raise InvalidURL(e, request=request) + if proxy: + proxy = prepend_scheme_if_needed(proxy, "http") + proxy_url = parse_url(proxy) + if not proxy_url.host: + raise InvalidProxyURL( + "Please check proxy URL. It is malformed " + "and could be missing the host." + ) + proxy_manager = self.proxy_manager_for(proxy) + conn = proxy_manager.connection_from_host( + **host_params, pool_kwargs=pool_kwargs + ) + else: + # Only scheme should be lower case + conn = self.poolmanager.connection_from_host( + **host_params, pool_kwargs=pool_kwargs + ) + + return conn + + def get_connection(self, url, proxies=None): + """DEPRECATED: Users should move to `get_connection_with_tls_context` + for all subclasses of HTTPAdapter using Requests>=2.32.2. + + Returns a urllib3 connection for the given URL. This should not be + called from user code, and is only exposed for use when subclassing the + :class:`HTTPAdapter `. + + :param url: The URL to connect to. + :param proxies: (optional) A Requests-style dictionary of proxies used on this request. + :rtype: urllib3.ConnectionPool + """ + warnings.warn( + ( + "`get_connection` has been deprecated in favor of " + "`get_connection_with_tls_context`. Custom HTTPAdapter subclasses " + "will need to migrate for Requests>=2.32.2. Please see " + "https://github.com/psf/requests/pull/6710 for more details." + ), + DeprecationWarning, + ) + proxy = select_proxy(url, proxies) + + if proxy: + proxy = prepend_scheme_if_needed(proxy, "http") + proxy_url = parse_url(proxy) + if not proxy_url.host: + raise InvalidProxyURL( + "Please check proxy URL. It is malformed " + "and could be missing the host." + ) + proxy_manager = self.proxy_manager_for(proxy) + conn = proxy_manager.connection_from_url(url) + else: + # Only scheme should be lower case + parsed = urlparse(url) + url = parsed.geturl() + conn = self.poolmanager.connection_from_url(url) + + return conn + + def close(self): + """Disposes of any internal state. + + Currently, this closes the PoolManager and any active ProxyManager, + which closes any pooled connections. + """ + self.poolmanager.clear() + for proxy in self.proxy_manager.values(): + proxy.clear() + + def request_url(self, request, proxies): + """Obtain the url to use when making the final request. + + If the message is being sent through a HTTP proxy, the full URL has to + be used. Otherwise, we should only use the path portion of the URL. + + This should not be called from user code, and is only exposed for use + when subclassing the + :class:`HTTPAdapter `. + + :param request: The :class:`PreparedRequest ` being sent. + :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs. + :rtype: str + """ + proxy = select_proxy(request.url, proxies) + scheme = urlparse(request.url).scheme + + is_proxied_http_request = proxy and scheme != "https" + using_socks_proxy = False + if proxy: + proxy_scheme = urlparse(proxy).scheme.lower() + using_socks_proxy = proxy_scheme.startswith("socks") + + url = request.path_url + if url.startswith("//"): # Don't confuse urllib3 + url = f"/{url.lstrip('/')}" + + if is_proxied_http_request and not using_socks_proxy: + url = urldefragauth(request.url) + + return url + + def add_headers(self, request, **kwargs): + """Add any headers needed by the connection. As of v2.0 this does + nothing by default, but is left for overriding by users that subclass + the :class:`HTTPAdapter `. + + This should not be called from user code, and is only exposed for use + when subclassing the + :class:`HTTPAdapter `. + + :param request: The :class:`PreparedRequest ` to add headers to. + :param kwargs: The keyword arguments from the call to send(). + """ + pass + + def proxy_headers(self, proxy): + """Returns a dictionary of the headers to add to any request sent + through a proxy. This works with urllib3 magic to ensure that they are + correctly sent to the proxy, rather than in a tunnelled request if + CONNECT is being used. + + This should not be called from user code, and is only exposed for use + when subclassing the + :class:`HTTPAdapter `. + + :param proxy: The url of the proxy being used for this request. + :rtype: dict + """ + headers = {} + username, password = get_auth_from_url(proxy) + + if username: + headers["Proxy-Authorization"] = _basic_auth_str(username, password) + + return headers + + def send( + self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None + ): + """Sends PreparedRequest object. Returns Response object. + + :param request: The :class:`PreparedRequest ` being sent. + :param stream: (optional) Whether to stream the request content. + :param timeout: (optional) How long to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) ` tuple. + :type timeout: float or tuple or urllib3 Timeout object + :param verify: (optional) Either a boolean, in which case it controls whether + we verify the server's TLS certificate, or a string, in which case it + must be a path to a CA bundle to use + :param cert: (optional) Any user-provided SSL certificate to be trusted. + :param proxies: (optional) The proxies dictionary to apply to the request. + :rtype: requests.Response + """ + + try: + conn = self.get_connection_with_tls_context( + request, verify, proxies=proxies, cert=cert + ) + except LocationValueError as e: + raise InvalidURL(e, request=request) + + self.cert_verify(conn, request.url, verify, cert) + url = self.request_url(request, proxies) + self.add_headers( + request, + stream=stream, + timeout=timeout, + verify=verify, + cert=cert, + proxies=proxies, + ) + + chunked = not (request.body is None or "Content-Length" in request.headers) + + if isinstance(timeout, tuple): + try: + connect, read = timeout + timeout = TimeoutSauce(connect=connect, read=read) + except ValueError: + raise ValueError( + f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " + f"or a single float to set both timeouts to the same value." + ) + elif isinstance(timeout, TimeoutSauce): + pass + else: + timeout = TimeoutSauce(connect=timeout, read=timeout) + + try: + resp = conn.urlopen( + method=request.method, + url=url, + body=request.body, + headers=request.headers, + redirect=False, + assert_same_host=False, + preload_content=False, + decode_content=False, + retries=self.max_retries, + timeout=timeout, + chunked=chunked, + ) + + except (ProtocolError, OSError) as err: + raise ConnectionError(err, request=request) + + except MaxRetryError as e: + if isinstance(e.reason, ConnectTimeoutError): + # TODO: Remove this in 3.0.0: see #2811 + if not isinstance(e.reason, NewConnectionError): + raise ConnectTimeout(e, request=request) + + if isinstance(e.reason, ResponseError): + raise RetryError(e, request=request) + + if isinstance(e.reason, _ProxyError): + raise ProxyError(e, request=request) + + if isinstance(e.reason, _SSLError): + # This branch is for urllib3 v1.22 and later. + raise SSLError(e, request=request) + + raise ConnectionError(e, request=request) + + except ClosedPoolError as e: + raise ConnectionError(e, request=request) + + except _ProxyError as e: + raise ProxyError(e) + + except (_SSLError, _HTTPError) as e: + if isinstance(e, _SSLError): + # This branch is for urllib3 versions earlier than v1.22 + raise SSLError(e, request=request) + elif isinstance(e, ReadTimeoutError): + raise ReadTimeout(e, request=request) + elif isinstance(e, _InvalidHeader): + raise InvalidHeader(e, request=request) + else: + raise + + return self.build_response(request, resp) diff --git a/Backend/venv/lib/python3.12/site-packages/requests/api.py b/Backend/venv/lib/python3.12/site-packages/requests/api.py new file mode 100644 index 00000000..59607445 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/api.py @@ -0,0 +1,157 @@ +""" +requests.api +~~~~~~~~~~~~ + +This module implements the Requests API. + +:copyright: (c) 2012 by Kenneth Reitz. +:license: Apache2, see LICENSE for more details. +""" + +from . import sessions + + +def request(method, url, **kwargs): + """Constructs and sends a :class:`Request `. + + :param method: method for the new :class:`Request` object: ``GET``, ``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``, or ``DELETE``. + :param url: URL for the new :class:`Request` object. + :param params: (optional) Dictionary, list of tuples or bytes to send + in the query string for the :class:`Request`. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`. + :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`. + :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`. + :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload. + ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')`` + or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content_type'`` is a string + defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers + to add for the file. + :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth. + :param timeout: (optional) How many seconds to wait for the server to send data + before giving up, as a float, or a :ref:`(connect timeout, read + timeout) ` tuple. + :type timeout: float or tuple + :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``. + :type allow_redirects: bool + :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy. + :param verify: (optional) Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use. Defaults to ``True``. + :param stream: (optional) if ``False``, the response content will be immediately downloaded. + :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair. + :return: :class:`Response ` object + :rtype: requests.Response + + Usage:: + + >>> import requests + >>> req = requests.request('GET', 'https://httpbin.org/get') + >>> req + + """ + + # By using the 'with' statement we are sure the session is closed, thus we + # avoid leaving sockets open which can trigger a ResourceWarning in some + # cases, and look like a memory leak in others. + with sessions.Session() as session: + return session.request(method=method, url=url, **kwargs) + + +def get(url, params=None, **kwargs): + r"""Sends a GET request. + + :param url: URL for the new :class:`Request` object. + :param params: (optional) Dictionary, list of tuples or bytes to send + in the query string for the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response ` object + :rtype: requests.Response + """ + + return request("get", url, params=params, **kwargs) + + +def options(url, **kwargs): + r"""Sends an OPTIONS request. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response ` object + :rtype: requests.Response + """ + + return request("options", url, **kwargs) + + +def head(url, **kwargs): + r"""Sends a HEAD request. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. If + `allow_redirects` is not provided, it will be set to `False` (as + opposed to the default :meth:`request` behavior). + :return: :class:`Response ` object + :rtype: requests.Response + """ + + kwargs.setdefault("allow_redirects", False) + return request("head", url, **kwargs) + + +def post(url, data=None, json=None, **kwargs): + r"""Sends a POST request. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response ` object + :rtype: requests.Response + """ + + return request("post", url, data=data, json=json, **kwargs) + + +def put(url, data=None, **kwargs): + r"""Sends a PUT request. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response ` object + :rtype: requests.Response + """ + + return request("put", url, data=data, **kwargs) + + +def patch(url, data=None, **kwargs): + r"""Sends a PATCH request. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response ` object + :rtype: requests.Response + """ + + return request("patch", url, data=data, **kwargs) + + +def delete(url, **kwargs): + r"""Sends a DELETE request. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response ` object + :rtype: requests.Response + """ + + return request("delete", url, **kwargs) diff --git a/Backend/venv/lib/python3.12/site-packages/requests/auth.py b/Backend/venv/lib/python3.12/site-packages/requests/auth.py new file mode 100644 index 00000000..4a7ce6dc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/auth.py @@ -0,0 +1,314 @@ +""" +requests.auth +~~~~~~~~~~~~~ + +This module contains the authentication handlers for Requests. +""" + +import hashlib +import os +import re +import threading +import time +import warnings +from base64 import b64encode + +from ._internal_utils import to_native_string +from .compat import basestring, str, urlparse +from .cookies import extract_cookies_to_jar +from .utils import parse_dict_header + +CONTENT_TYPE_FORM_URLENCODED = "application/x-www-form-urlencoded" +CONTENT_TYPE_MULTI_PART = "multipart/form-data" + + +def _basic_auth_str(username, password): + """Returns a Basic Auth string.""" + + # "I want us to put a big-ol' comment on top of it that + # says that this behaviour is dumb but we need to preserve + # it because people are relying on it." + # - Lukasa + # + # These are here solely to maintain backwards compatibility + # for things like ints. This will be removed in 3.0.0. + if not isinstance(username, basestring): + warnings.warn( + "Non-string usernames will no longer be supported in Requests " + "3.0.0. Please convert the object you've passed in ({!r}) to " + "a string or bytes object in the near future to avoid " + "problems.".format(username), + category=DeprecationWarning, + ) + username = str(username) + + if not isinstance(password, basestring): + warnings.warn( + "Non-string passwords will no longer be supported in Requests " + "3.0.0. Please convert the object you've passed in ({!r}) to " + "a string or bytes object in the near future to avoid " + "problems.".format(type(password)), + category=DeprecationWarning, + ) + password = str(password) + # -- End Removal -- + + if isinstance(username, str): + username = username.encode("latin1") + + if isinstance(password, str): + password = password.encode("latin1") + + authstr = "Basic " + to_native_string( + b64encode(b":".join((username, password))).strip() + ) + + return authstr + + +class AuthBase: + """Base class that all auth implementations derive from""" + + def __call__(self, r): + raise NotImplementedError("Auth hooks must be callable.") + + +class HTTPBasicAuth(AuthBase): + """Attaches HTTP Basic Authentication to the given Request object.""" + + def __init__(self, username, password): + self.username = username + self.password = password + + def __eq__(self, other): + return all( + [ + self.username == getattr(other, "username", None), + self.password == getattr(other, "password", None), + ] + ) + + def __ne__(self, other): + return not self == other + + def __call__(self, r): + r.headers["Authorization"] = _basic_auth_str(self.username, self.password) + return r + + +class HTTPProxyAuth(HTTPBasicAuth): + """Attaches HTTP Proxy Authentication to a given Request object.""" + + def __call__(self, r): + r.headers["Proxy-Authorization"] = _basic_auth_str(self.username, self.password) + return r + + +class HTTPDigestAuth(AuthBase): + """Attaches HTTP Digest Authentication to the given Request object.""" + + def __init__(self, username, password): + self.username = username + self.password = password + # Keep state in per-thread local storage + self._thread_local = threading.local() + + def init_per_thread_state(self): + # Ensure state is initialized just once per-thread + if not hasattr(self._thread_local, "init"): + self._thread_local.init = True + self._thread_local.last_nonce = "" + self._thread_local.nonce_count = 0 + self._thread_local.chal = {} + self._thread_local.pos = None + self._thread_local.num_401_calls = None + + def build_digest_header(self, method, url): + """ + :rtype: str + """ + + realm = self._thread_local.chal["realm"] + nonce = self._thread_local.chal["nonce"] + qop = self._thread_local.chal.get("qop") + algorithm = self._thread_local.chal.get("algorithm") + opaque = self._thread_local.chal.get("opaque") + hash_utf8 = None + + if algorithm is None: + _algorithm = "MD5" + else: + _algorithm = algorithm.upper() + # lambdas assume digest modules are imported at the top level + if _algorithm == "MD5" or _algorithm == "MD5-SESS": + + def md5_utf8(x): + if isinstance(x, str): + x = x.encode("utf-8") + return hashlib.md5(x).hexdigest() + + hash_utf8 = md5_utf8 + elif _algorithm == "SHA": + + def sha_utf8(x): + if isinstance(x, str): + x = x.encode("utf-8") + return hashlib.sha1(x).hexdigest() + + hash_utf8 = sha_utf8 + elif _algorithm == "SHA-256": + + def sha256_utf8(x): + if isinstance(x, str): + x = x.encode("utf-8") + return hashlib.sha256(x).hexdigest() + + hash_utf8 = sha256_utf8 + elif _algorithm == "SHA-512": + + def sha512_utf8(x): + if isinstance(x, str): + x = x.encode("utf-8") + return hashlib.sha512(x).hexdigest() + + hash_utf8 = sha512_utf8 + + KD = lambda s, d: hash_utf8(f"{s}:{d}") # noqa:E731 + + if hash_utf8 is None: + return None + + # XXX not implemented yet + entdig = None + p_parsed = urlparse(url) + #: path is request-uri defined in RFC 2616 which should not be empty + path = p_parsed.path or "/" + if p_parsed.query: + path += f"?{p_parsed.query}" + + A1 = f"{self.username}:{realm}:{self.password}" + A2 = f"{method}:{path}" + + HA1 = hash_utf8(A1) + HA2 = hash_utf8(A2) + + if nonce == self._thread_local.last_nonce: + self._thread_local.nonce_count += 1 + else: + self._thread_local.nonce_count = 1 + ncvalue = f"{self._thread_local.nonce_count:08x}" + s = str(self._thread_local.nonce_count).encode("utf-8") + s += nonce.encode("utf-8") + s += time.ctime().encode("utf-8") + s += os.urandom(8) + + cnonce = hashlib.sha1(s).hexdigest()[:16] + if _algorithm == "MD5-SESS": + HA1 = hash_utf8(f"{HA1}:{nonce}:{cnonce}") + + if not qop: + respdig = KD(HA1, f"{nonce}:{HA2}") + elif qop == "auth" or "auth" in qop.split(","): + noncebit = f"{nonce}:{ncvalue}:{cnonce}:auth:{HA2}" + respdig = KD(HA1, noncebit) + else: + # XXX handle auth-int. + return None + + self._thread_local.last_nonce = nonce + + # XXX should the partial digests be encoded too? + base = ( + f'username="{self.username}", realm="{realm}", nonce="{nonce}", ' + f'uri="{path}", response="{respdig}"' + ) + if opaque: + base += f', opaque="{opaque}"' + if algorithm: + base += f', algorithm="{algorithm}"' + if entdig: + base += f', digest="{entdig}"' + if qop: + base += f', qop="auth", nc={ncvalue}, cnonce="{cnonce}"' + + return f"Digest {base}" + + def handle_redirect(self, r, **kwargs): + """Reset num_401_calls counter on redirects.""" + if r.is_redirect: + self._thread_local.num_401_calls = 1 + + def handle_401(self, r, **kwargs): + """ + Takes the given response and tries digest-auth, if needed. + + :rtype: requests.Response + """ + + # If response is not 4xx, do not auth + # See https://github.com/psf/requests/issues/3772 + if not 400 <= r.status_code < 500: + self._thread_local.num_401_calls = 1 + return r + + if self._thread_local.pos is not None: + # Rewind the file position indicator of the body to where + # it was to resend the request. + r.request.body.seek(self._thread_local.pos) + s_auth = r.headers.get("www-authenticate", "") + + if "digest" in s_auth.lower() and self._thread_local.num_401_calls < 2: + self._thread_local.num_401_calls += 1 + pat = re.compile(r"digest ", flags=re.IGNORECASE) + self._thread_local.chal = parse_dict_header(pat.sub("", s_auth, count=1)) + + # Consume content and release the original connection + # to allow our new request to reuse the same one. + r.content + r.close() + prep = r.request.copy() + extract_cookies_to_jar(prep._cookies, r.request, r.raw) + prep.prepare_cookies(prep._cookies) + + prep.headers["Authorization"] = self.build_digest_header( + prep.method, prep.url + ) + _r = r.connection.send(prep, **kwargs) + _r.history.append(r) + _r.request = prep + + return _r + + self._thread_local.num_401_calls = 1 + return r + + def __call__(self, r): + # Initialize per-thread state, if needed + self.init_per_thread_state() + # If we have a saved nonce, skip the 401 + if self._thread_local.last_nonce: + r.headers["Authorization"] = self.build_digest_header(r.method, r.url) + try: + self._thread_local.pos = r.body.tell() + except AttributeError: + # In the case of HTTPDigestAuth being reused and the body of + # the previous request was a file-like object, pos has the + # file position of the previous body. Ensure it's set to + # None. + self._thread_local.pos = None + r.register_hook("response", self.handle_401) + r.register_hook("response", self.handle_redirect) + self._thread_local.num_401_calls = 1 + + return r + + def __eq__(self, other): + return all( + [ + self.username == getattr(other, "username", None), + self.password == getattr(other, "password", None), + ] + ) + + def __ne__(self, other): + return not self == other diff --git a/Backend/venv/lib/python3.12/site-packages/requests/certs.py b/Backend/venv/lib/python3.12/site-packages/requests/certs.py new file mode 100644 index 00000000..be422c3e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/certs.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + +""" +requests.certs +~~~~~~~~~~~~~~ + +This module returns the preferred default CA certificate bundle. There is +only one — the one from the certifi package. + +If you are packaging Requests, e.g., for a Linux distribution or a managed +environment, you can change the definition of where() to return a separately +packaged CA bundle. +""" +from certifi import where + +if __name__ == "__main__": + print(where()) diff --git a/Backend/venv/lib/python3.12/site-packages/requests/compat.py b/Backend/venv/lib/python3.12/site-packages/requests/compat.py new file mode 100644 index 00000000..7f9d7543 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/compat.py @@ -0,0 +1,106 @@ +""" +requests.compat +~~~~~~~~~~~~~~~ + +This module previously handled import compatibility issues +between Python 2 and Python 3. It remains for backwards +compatibility until the next major version. +""" + +import importlib +import sys + +# ------- +# urllib3 +# ------- +from urllib3 import __version__ as urllib3_version + +# Detect which major version of urllib3 is being used. +try: + is_urllib3_1 = int(urllib3_version.split(".")[0]) == 1 +except (TypeError, AttributeError): + # If we can't discern a version, prefer old functionality. + is_urllib3_1 = True + +# ------------------- +# Character Detection +# ------------------- + + +def _resolve_char_detection(): + """Find supported character detection libraries.""" + chardet = None + for lib in ("chardet", "charset_normalizer"): + if chardet is None: + try: + chardet = importlib.import_module(lib) + except ImportError: + pass + return chardet + + +chardet = _resolve_char_detection() + +# ------- +# Pythons +# ------- + +# Syntax sugar. +_ver = sys.version_info + +#: Python 2.x? +is_py2 = _ver[0] == 2 + +#: Python 3.x? +is_py3 = _ver[0] == 3 + +# json/simplejson module import resolution +has_simplejson = False +try: + import simplejson as json + + has_simplejson = True +except ImportError: + import json + +if has_simplejson: + from simplejson import JSONDecodeError +else: + from json import JSONDecodeError + +# Keep OrderedDict for backwards compatibility. +from collections import OrderedDict +from collections.abc import Callable, Mapping, MutableMapping +from http import cookiejar as cookielib +from http.cookies import Morsel +from io import StringIO + +# -------------- +# Legacy Imports +# -------------- +from urllib.parse import ( + quote, + quote_plus, + unquote, + unquote_plus, + urldefrag, + urlencode, + urljoin, + urlparse, + urlsplit, + urlunparse, +) +from urllib.request import ( + getproxies, + getproxies_environment, + parse_http_list, + proxy_bypass, + proxy_bypass_environment, +) + +builtin_str = str +str = str +bytes = bytes +basestring = (str, bytes) +numeric_types = (int, float) +integer_types = (int,) diff --git a/Backend/venv/lib/python3.12/site-packages/requests/cookies.py b/Backend/venv/lib/python3.12/site-packages/requests/cookies.py new file mode 100644 index 00000000..f69d0cda --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/cookies.py @@ -0,0 +1,561 @@ +""" +requests.cookies +~~~~~~~~~~~~~~~~ + +Compatibility code to be able to use `http.cookiejar.CookieJar` with requests. + +requests.utils imports from here, so be careful with imports. +""" + +import calendar +import copy +import time + +from ._internal_utils import to_native_string +from .compat import Morsel, MutableMapping, cookielib, urlparse, urlunparse + +try: + import threading +except ImportError: + import dummy_threading as threading + + +class MockRequest: + """Wraps a `requests.Request` to mimic a `urllib2.Request`. + + The code in `http.cookiejar.CookieJar` expects this interface in order to correctly + manage cookie policies, i.e., determine whether a cookie can be set, given the + domains of the request and the cookie. + + The original request object is read-only. The client is responsible for collecting + the new headers via `get_new_headers()` and interpreting them appropriately. You + probably want `get_cookie_header`, defined below. + """ + + def __init__(self, request): + self._r = request + self._new_headers = {} + self.type = urlparse(self._r.url).scheme + + def get_type(self): + return self.type + + def get_host(self): + return urlparse(self._r.url).netloc + + def get_origin_req_host(self): + return self.get_host() + + def get_full_url(self): + # Only return the response's URL if the user hadn't set the Host + # header + if not self._r.headers.get("Host"): + return self._r.url + # If they did set it, retrieve it and reconstruct the expected domain + host = to_native_string(self._r.headers["Host"], encoding="utf-8") + parsed = urlparse(self._r.url) + # Reconstruct the URL as we expect it + return urlunparse( + [ + parsed.scheme, + host, + parsed.path, + parsed.params, + parsed.query, + parsed.fragment, + ] + ) + + def is_unverifiable(self): + return True + + def has_header(self, name): + return name in self._r.headers or name in self._new_headers + + def get_header(self, name, default=None): + return self._r.headers.get(name, self._new_headers.get(name, default)) + + def add_header(self, key, val): + """cookiejar has no legitimate use for this method; add it back if you find one.""" + raise NotImplementedError( + "Cookie headers should be added with add_unredirected_header()" + ) + + def add_unredirected_header(self, name, value): + self._new_headers[name] = value + + def get_new_headers(self): + return self._new_headers + + @property + def unverifiable(self): + return self.is_unverifiable() + + @property + def origin_req_host(self): + return self.get_origin_req_host() + + @property + def host(self): + return self.get_host() + + +class MockResponse: + """Wraps a `httplib.HTTPMessage` to mimic a `urllib.addinfourl`. + + ...what? Basically, expose the parsed HTTP headers from the server response + the way `http.cookiejar` expects to see them. + """ + + def __init__(self, headers): + """Make a MockResponse for `cookiejar` to read. + + :param headers: a httplib.HTTPMessage or analogous carrying the headers + """ + self._headers = headers + + def info(self): + return self._headers + + def getheaders(self, name): + self._headers.getheaders(name) + + +def extract_cookies_to_jar(jar, request, response): + """Extract the cookies from the response into a CookieJar. + + :param jar: http.cookiejar.CookieJar (not necessarily a RequestsCookieJar) + :param request: our own requests.Request object + :param response: urllib3.HTTPResponse object + """ + if not (hasattr(response, "_original_response") and response._original_response): + return + # the _original_response field is the wrapped httplib.HTTPResponse object, + req = MockRequest(request) + # pull out the HTTPMessage with the headers and put it in the mock: + res = MockResponse(response._original_response.msg) + jar.extract_cookies(res, req) + + +def get_cookie_header(jar, request): + """ + Produce an appropriate Cookie header string to be sent with `request`, or None. + + :rtype: str + """ + r = MockRequest(request) + jar.add_cookie_header(r) + return r.get_new_headers().get("Cookie") + + +def remove_cookie_by_name(cookiejar, name, domain=None, path=None): + """Unsets a cookie by name, by default over all domains and paths. + + Wraps CookieJar.clear(), is O(n). + """ + clearables = [] + for cookie in cookiejar: + if cookie.name != name: + continue + if domain is not None and domain != cookie.domain: + continue + if path is not None and path != cookie.path: + continue + clearables.append((cookie.domain, cookie.path, cookie.name)) + + for domain, path, name in clearables: + cookiejar.clear(domain, path, name) + + +class CookieConflictError(RuntimeError): + """There are two cookies that meet the criteria specified in the cookie jar. + Use .get and .set and include domain and path args in order to be more specific. + """ + + +class RequestsCookieJar(cookielib.CookieJar, MutableMapping): + """Compatibility class; is a http.cookiejar.CookieJar, but exposes a dict + interface. + + This is the CookieJar we create by default for requests and sessions that + don't specify one, since some clients may expect response.cookies and + session.cookies to support dict operations. + + Requests does not use the dict interface internally; it's just for + compatibility with external client code. All requests code should work + out of the box with externally provided instances of ``CookieJar``, e.g. + ``LWPCookieJar`` and ``FileCookieJar``. + + Unlike a regular CookieJar, this class is pickleable. + + .. warning:: dictionary operations that are normally O(1) may be O(n). + """ + + def get(self, name, default=None, domain=None, path=None): + """Dict-like get() that also supports optional domain and path args in + order to resolve naming collisions from using one cookie jar over + multiple domains. + + .. warning:: operation is O(n), not O(1). + """ + try: + return self._find_no_duplicates(name, domain, path) + except KeyError: + return default + + def set(self, name, value, **kwargs): + """Dict-like set() that also supports optional domain and path args in + order to resolve naming collisions from using one cookie jar over + multiple domains. + """ + # support client code that unsets cookies by assignment of a None value: + if value is None: + remove_cookie_by_name( + self, name, domain=kwargs.get("domain"), path=kwargs.get("path") + ) + return + + if isinstance(value, Morsel): + c = morsel_to_cookie(value) + else: + c = create_cookie(name, value, **kwargs) + self.set_cookie(c) + return c + + def iterkeys(self): + """Dict-like iterkeys() that returns an iterator of names of cookies + from the jar. + + .. seealso:: itervalues() and iteritems(). + """ + for cookie in iter(self): + yield cookie.name + + def keys(self): + """Dict-like keys() that returns a list of names of cookies from the + jar. + + .. seealso:: values() and items(). + """ + return list(self.iterkeys()) + + def itervalues(self): + """Dict-like itervalues() that returns an iterator of values of cookies + from the jar. + + .. seealso:: iterkeys() and iteritems(). + """ + for cookie in iter(self): + yield cookie.value + + def values(self): + """Dict-like values() that returns a list of values of cookies from the + jar. + + .. seealso:: keys() and items(). + """ + return list(self.itervalues()) + + def iteritems(self): + """Dict-like iteritems() that returns an iterator of name-value tuples + from the jar. + + .. seealso:: iterkeys() and itervalues(). + """ + for cookie in iter(self): + yield cookie.name, cookie.value + + def items(self): + """Dict-like items() that returns a list of name-value tuples from the + jar. Allows client-code to call ``dict(RequestsCookieJar)`` and get a + vanilla python dict of key value pairs. + + .. seealso:: keys() and values(). + """ + return list(self.iteritems()) + + def list_domains(self): + """Utility method to list all the domains in the jar.""" + domains = [] + for cookie in iter(self): + if cookie.domain not in domains: + domains.append(cookie.domain) + return domains + + def list_paths(self): + """Utility method to list all the paths in the jar.""" + paths = [] + for cookie in iter(self): + if cookie.path not in paths: + paths.append(cookie.path) + return paths + + def multiple_domains(self): + """Returns True if there are multiple domains in the jar. + Returns False otherwise. + + :rtype: bool + """ + domains = [] + for cookie in iter(self): + if cookie.domain is not None and cookie.domain in domains: + return True + domains.append(cookie.domain) + return False # there is only one domain in jar + + def get_dict(self, domain=None, path=None): + """Takes as an argument an optional domain and path and returns a plain + old Python dict of name-value pairs of cookies that meet the + requirements. + + :rtype: dict + """ + dictionary = {} + for cookie in iter(self): + if (domain is None or cookie.domain == domain) and ( + path is None or cookie.path == path + ): + dictionary[cookie.name] = cookie.value + return dictionary + + def __contains__(self, name): + try: + return super().__contains__(name) + except CookieConflictError: + return True + + def __getitem__(self, name): + """Dict-like __getitem__() for compatibility with client code. Throws + exception if there are more than one cookie with name. In that case, + use the more explicit get() method instead. + + .. warning:: operation is O(n), not O(1). + """ + return self._find_no_duplicates(name) + + def __setitem__(self, name, value): + """Dict-like __setitem__ for compatibility with client code. Throws + exception if there is already a cookie of that name in the jar. In that + case, use the more explicit set() method instead. + """ + self.set(name, value) + + def __delitem__(self, name): + """Deletes a cookie given a name. Wraps ``http.cookiejar.CookieJar``'s + ``remove_cookie_by_name()``. + """ + remove_cookie_by_name(self, name) + + def set_cookie(self, cookie, *args, **kwargs): + if ( + hasattr(cookie.value, "startswith") + and cookie.value.startswith('"') + and cookie.value.endswith('"') + ): + cookie.value = cookie.value.replace('\\"', "") + return super().set_cookie(cookie, *args, **kwargs) + + def update(self, other): + """Updates this jar with cookies from another CookieJar or dict-like""" + if isinstance(other, cookielib.CookieJar): + for cookie in other: + self.set_cookie(copy.copy(cookie)) + else: + super().update(other) + + def _find(self, name, domain=None, path=None): + """Requests uses this method internally to get cookie values. + + If there are conflicting cookies, _find arbitrarily chooses one. + See _find_no_duplicates if you want an exception thrown if there are + conflicting cookies. + + :param name: a string containing name of cookie + :param domain: (optional) string containing domain of cookie + :param path: (optional) string containing path of cookie + :return: cookie.value + """ + for cookie in iter(self): + if cookie.name == name: + if domain is None or cookie.domain == domain: + if path is None or cookie.path == path: + return cookie.value + + raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}") + + def _find_no_duplicates(self, name, domain=None, path=None): + """Both ``__get_item__`` and ``get`` call this function: it's never + used elsewhere in Requests. + + :param name: a string containing name of cookie + :param domain: (optional) string containing domain of cookie + :param path: (optional) string containing path of cookie + :raises KeyError: if cookie is not found + :raises CookieConflictError: if there are multiple cookies + that match name and optionally domain and path + :return: cookie.value + """ + toReturn = None + for cookie in iter(self): + if cookie.name == name: + if domain is None or cookie.domain == domain: + if path is None or cookie.path == path: + if toReturn is not None: + # if there are multiple cookies that meet passed in criteria + raise CookieConflictError( + f"There are multiple cookies with name, {name!r}" + ) + # we will eventually return this as long as no cookie conflict + toReturn = cookie.value + + if toReturn: + return toReturn + raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}") + + def __getstate__(self): + """Unlike a normal CookieJar, this class is pickleable.""" + state = self.__dict__.copy() + # remove the unpickleable RLock object + state.pop("_cookies_lock") + return state + + def __setstate__(self, state): + """Unlike a normal CookieJar, this class is pickleable.""" + self.__dict__.update(state) + if "_cookies_lock" not in self.__dict__: + self._cookies_lock = threading.RLock() + + def copy(self): + """Return a copy of this RequestsCookieJar.""" + new_cj = RequestsCookieJar() + new_cj.set_policy(self.get_policy()) + new_cj.update(self) + return new_cj + + def get_policy(self): + """Return the CookiePolicy instance used.""" + return self._policy + + +def _copy_cookie_jar(jar): + if jar is None: + return None + + if hasattr(jar, "copy"): + # We're dealing with an instance of RequestsCookieJar + return jar.copy() + # We're dealing with a generic CookieJar instance + new_jar = copy.copy(jar) + new_jar.clear() + for cookie in jar: + new_jar.set_cookie(copy.copy(cookie)) + return new_jar + + +def create_cookie(name, value, **kwargs): + """Make a cookie from underspecified parameters. + + By default, the pair of `name` and `value` will be set for the domain '' + and sent on every request (this is sometimes called a "supercookie"). + """ + result = { + "version": 0, + "name": name, + "value": value, + "port": None, + "domain": "", + "path": "/", + "secure": False, + "expires": None, + "discard": True, + "comment": None, + "comment_url": None, + "rest": {"HttpOnly": None}, + "rfc2109": False, + } + + badargs = set(kwargs) - set(result) + if badargs: + raise TypeError( + f"create_cookie() got unexpected keyword arguments: {list(badargs)}" + ) + + result.update(kwargs) + result["port_specified"] = bool(result["port"]) + result["domain_specified"] = bool(result["domain"]) + result["domain_initial_dot"] = result["domain"].startswith(".") + result["path_specified"] = bool(result["path"]) + + return cookielib.Cookie(**result) + + +def morsel_to_cookie(morsel): + """Convert a Morsel object into a Cookie containing the one k/v pair.""" + + expires = None + if morsel["max-age"]: + try: + expires = int(time.time() + int(morsel["max-age"])) + except ValueError: + raise TypeError(f"max-age: {morsel['max-age']} must be integer") + elif morsel["expires"]: + time_template = "%a, %d-%b-%Y %H:%M:%S GMT" + expires = calendar.timegm(time.strptime(morsel["expires"], time_template)) + return create_cookie( + comment=morsel["comment"], + comment_url=bool(morsel["comment"]), + discard=False, + domain=morsel["domain"], + expires=expires, + name=morsel.key, + path=morsel["path"], + port=None, + rest={"HttpOnly": morsel["httponly"]}, + rfc2109=False, + secure=bool(morsel["secure"]), + value=morsel.value, + version=morsel["version"] or 0, + ) + + +def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True): + """Returns a CookieJar from a key/value dictionary. + + :param cookie_dict: Dict of key/values to insert into CookieJar. + :param cookiejar: (optional) A cookiejar to add the cookies to. + :param overwrite: (optional) If False, will not replace cookies + already in the jar with new ones. + :rtype: CookieJar + """ + if cookiejar is None: + cookiejar = RequestsCookieJar() + + if cookie_dict is not None: + names_from_jar = [cookie.name for cookie in cookiejar] + for name in cookie_dict: + if overwrite or (name not in names_from_jar): + cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) + + return cookiejar + + +def merge_cookies(cookiejar, cookies): + """Add cookies to cookiejar and returns a merged CookieJar. + + :param cookiejar: CookieJar object to add the cookies to. + :param cookies: Dictionary or CookieJar object to be added. + :rtype: CookieJar + """ + if not isinstance(cookiejar, cookielib.CookieJar): + raise ValueError("You can only merge into CookieJar") + + if isinstance(cookies, dict): + cookiejar = cookiejar_from_dict(cookies, cookiejar=cookiejar, overwrite=False) + elif isinstance(cookies, cookielib.CookieJar): + try: + cookiejar.update(cookies) + except AttributeError: + for cookie_in_jar in cookies: + cookiejar.set_cookie(cookie_in_jar) + + return cookiejar diff --git a/Backend/venv/lib/python3.12/site-packages/requests/exceptions.py b/Backend/venv/lib/python3.12/site-packages/requests/exceptions.py new file mode 100644 index 00000000..83986b48 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/exceptions.py @@ -0,0 +1,151 @@ +""" +requests.exceptions +~~~~~~~~~~~~~~~~~~~ + +This module contains the set of Requests' exceptions. +""" +from urllib3.exceptions import HTTPError as BaseHTTPError + +from .compat import JSONDecodeError as CompatJSONDecodeError + + +class RequestException(IOError): + """There was an ambiguous exception that occurred while handling your + request. + """ + + def __init__(self, *args, **kwargs): + """Initialize RequestException with `request` and `response` objects.""" + response = kwargs.pop("response", None) + self.response = response + self.request = kwargs.pop("request", None) + if response is not None and not self.request and hasattr(response, "request"): + self.request = self.response.request + super().__init__(*args, **kwargs) + + +class InvalidJSONError(RequestException): + """A JSON error occurred.""" + + +class JSONDecodeError(InvalidJSONError, CompatJSONDecodeError): + """Couldn't decode the text into json""" + + def __init__(self, *args, **kwargs): + """ + Construct the JSONDecodeError instance first with all + args. Then use it's args to construct the IOError so that + the json specific args aren't used as IOError specific args + and the error message from JSONDecodeError is preserved. + """ + CompatJSONDecodeError.__init__(self, *args) + InvalidJSONError.__init__(self, *self.args, **kwargs) + + def __reduce__(self): + """ + The __reduce__ method called when pickling the object must + be the one from the JSONDecodeError (be it json/simplejson) + as it expects all the arguments for instantiation, not just + one like the IOError, and the MRO would by default call the + __reduce__ method from the IOError due to the inheritance order. + """ + return CompatJSONDecodeError.__reduce__(self) + + +class HTTPError(RequestException): + """An HTTP error occurred.""" + + +class ConnectionError(RequestException): + """A Connection error occurred.""" + + +class ProxyError(ConnectionError): + """A proxy error occurred.""" + + +class SSLError(ConnectionError): + """An SSL error occurred.""" + + +class Timeout(RequestException): + """The request timed out. + + Catching this error will catch both + :exc:`~requests.exceptions.ConnectTimeout` and + :exc:`~requests.exceptions.ReadTimeout` errors. + """ + + +class ConnectTimeout(ConnectionError, Timeout): + """The request timed out while trying to connect to the remote server. + + Requests that produced this error are safe to retry. + """ + + +class ReadTimeout(Timeout): + """The server did not send any data in the allotted amount of time.""" + + +class URLRequired(RequestException): + """A valid URL is required to make a request.""" + + +class TooManyRedirects(RequestException): + """Too many redirects.""" + + +class MissingSchema(RequestException, ValueError): + """The URL scheme (e.g. http or https) is missing.""" + + +class InvalidSchema(RequestException, ValueError): + """The URL scheme provided is either invalid or unsupported.""" + + +class InvalidURL(RequestException, ValueError): + """The URL provided was somehow invalid.""" + + +class InvalidHeader(RequestException, ValueError): + """The header value provided was somehow invalid.""" + + +class InvalidProxyURL(InvalidURL): + """The proxy URL provided is invalid.""" + + +class ChunkedEncodingError(RequestException): + """The server declared chunked encoding but sent an invalid chunk.""" + + +class ContentDecodingError(RequestException, BaseHTTPError): + """Failed to decode response content.""" + + +class StreamConsumedError(RequestException, TypeError): + """The content for this response was already consumed.""" + + +class RetryError(RequestException): + """Custom retries logic failed""" + + +class UnrewindableBodyError(RequestException): + """Requests encountered an error when trying to rewind a body.""" + + +# Warnings + + +class RequestsWarning(Warning): + """Base warning for Requests.""" + + +class FileModeWarning(RequestsWarning, DeprecationWarning): + """A file was opened in text mode, but Requests determined its binary length.""" + + +class RequestsDependencyWarning(RequestsWarning): + """An imported dependency doesn't match the expected version range.""" diff --git a/Backend/venv/lib/python3.12/site-packages/requests/help.py b/Backend/venv/lib/python3.12/site-packages/requests/help.py new file mode 100644 index 00000000..8fbcd656 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/help.py @@ -0,0 +1,134 @@ +"""Module containing bug report helper(s).""" + +import json +import platform +import ssl +import sys + +import idna +import urllib3 + +from . import __version__ as requests_version + +try: + import charset_normalizer +except ImportError: + charset_normalizer = None + +try: + import chardet +except ImportError: + chardet = None + +try: + from urllib3.contrib import pyopenssl +except ImportError: + pyopenssl = None + OpenSSL = None + cryptography = None +else: + import cryptography + import OpenSSL + + +def _implementation(): + """Return a dict with the Python implementation and version. + + Provide both the name and the version of the Python implementation + currently running. For example, on CPython 3.10.3 it will return + {'name': 'CPython', 'version': '3.10.3'}. + + This function works best on CPython and PyPy: in particular, it probably + doesn't work for Jython or IronPython. Future investigation should be done + to work out the correct shape of the code for those platforms. + """ + implementation = platform.python_implementation() + + if implementation == "CPython": + implementation_version = platform.python_version() + elif implementation == "PyPy": + implementation_version = "{}.{}.{}".format( + sys.pypy_version_info.major, + sys.pypy_version_info.minor, + sys.pypy_version_info.micro, + ) + if sys.pypy_version_info.releaselevel != "final": + implementation_version = "".join( + [implementation_version, sys.pypy_version_info.releaselevel] + ) + elif implementation == "Jython": + implementation_version = platform.python_version() # Complete Guess + elif implementation == "IronPython": + implementation_version = platform.python_version() # Complete Guess + else: + implementation_version = "Unknown" + + return {"name": implementation, "version": implementation_version} + + +def info(): + """Generate information for a bug report.""" + try: + platform_info = { + "system": platform.system(), + "release": platform.release(), + } + except OSError: + platform_info = { + "system": "Unknown", + "release": "Unknown", + } + + implementation_info = _implementation() + urllib3_info = {"version": urllib3.__version__} + charset_normalizer_info = {"version": None} + chardet_info = {"version": None} + if charset_normalizer: + charset_normalizer_info = {"version": charset_normalizer.__version__} + if chardet: + chardet_info = {"version": chardet.__version__} + + pyopenssl_info = { + "version": None, + "openssl_version": "", + } + if OpenSSL: + pyopenssl_info = { + "version": OpenSSL.__version__, + "openssl_version": f"{OpenSSL.SSL.OPENSSL_VERSION_NUMBER:x}", + } + cryptography_info = { + "version": getattr(cryptography, "__version__", ""), + } + idna_info = { + "version": getattr(idna, "__version__", ""), + } + + system_ssl = ssl.OPENSSL_VERSION_NUMBER + system_ssl_info = {"version": f"{system_ssl:x}" if system_ssl is not None else ""} + + return { + "platform": platform_info, + "implementation": implementation_info, + "system_ssl": system_ssl_info, + "using_pyopenssl": pyopenssl is not None, + "using_charset_normalizer": chardet is None, + "pyOpenSSL": pyopenssl_info, + "urllib3": urllib3_info, + "chardet": chardet_info, + "charset_normalizer": charset_normalizer_info, + "cryptography": cryptography_info, + "idna": idna_info, + "requests": { + "version": requests_version, + }, + } + + +def main(): + """Pretty-print the bug information as JSON.""" + print(json.dumps(info(), sort_keys=True, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/Backend/venv/lib/python3.12/site-packages/requests/hooks.py b/Backend/venv/lib/python3.12/site-packages/requests/hooks.py new file mode 100644 index 00000000..d181ba2e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/hooks.py @@ -0,0 +1,33 @@ +""" +requests.hooks +~~~~~~~~~~~~~~ + +This module provides the capabilities for the Requests hooks system. + +Available hooks: + +``response``: + The response generated from a Request. +""" +HOOKS = ["response"] + + +def default_hooks(): + return {event: [] for event in HOOKS} + + +# TODO: response is the only one + + +def dispatch_hook(key, hooks, hook_data, **kwargs): + """Dispatches a hook dictionary on a given piece of data.""" + hooks = hooks or {} + hooks = hooks.get(key) + if hooks: + if hasattr(hooks, "__call__"): + hooks = [hooks] + for hook in hooks: + _hook_data = hook(hook_data, **kwargs) + if _hook_data is not None: + hook_data = _hook_data + return hook_data diff --git a/Backend/venv/lib/python3.12/site-packages/requests/models.py b/Backend/venv/lib/python3.12/site-packages/requests/models.py new file mode 100644 index 00000000..c4b25fa0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/models.py @@ -0,0 +1,1039 @@ +""" +requests.models +~~~~~~~~~~~~~~~ + +This module contains the primary objects that power Requests. +""" + +import datetime + +# Import encoding now, to avoid implicit import later. +# Implicit import within threads may cause LookupError when standard library is in a ZIP, +# such as in Embedded Python. See https://github.com/psf/requests/issues/3578. +import encodings.idna # noqa: F401 +from io import UnsupportedOperation + +from urllib3.exceptions import ( + DecodeError, + LocationParseError, + ProtocolError, + ReadTimeoutError, + SSLError, +) +from urllib3.fields import RequestField +from urllib3.filepost import encode_multipart_formdata +from urllib3.util import parse_url + +from ._internal_utils import to_native_string, unicode_is_ascii +from .auth import HTTPBasicAuth +from .compat import ( + Callable, + JSONDecodeError, + Mapping, + basestring, + builtin_str, + chardet, + cookielib, +) +from .compat import json as complexjson +from .compat import urlencode, urlsplit, urlunparse +from .cookies import _copy_cookie_jar, cookiejar_from_dict, get_cookie_header +from .exceptions import ( + ChunkedEncodingError, + ConnectionError, + ContentDecodingError, + HTTPError, + InvalidJSONError, + InvalidURL, +) +from .exceptions import JSONDecodeError as RequestsJSONDecodeError +from .exceptions import MissingSchema +from .exceptions import SSLError as RequestsSSLError +from .exceptions import StreamConsumedError +from .hooks import default_hooks +from .status_codes import codes +from .structures import CaseInsensitiveDict +from .utils import ( + check_header_validity, + get_auth_from_url, + guess_filename, + guess_json_utf, + iter_slices, + parse_header_links, + requote_uri, + stream_decode_response_unicode, + super_len, + to_key_val_list, +) + +#: The set of HTTP status codes that indicate an automatically +#: processable redirect. +REDIRECT_STATI = ( + codes.moved, # 301 + codes.found, # 302 + codes.other, # 303 + codes.temporary_redirect, # 307 + codes.permanent_redirect, # 308 +) + +DEFAULT_REDIRECT_LIMIT = 30 +CONTENT_CHUNK_SIZE = 10 * 1024 +ITER_CHUNK_SIZE = 512 + + +class RequestEncodingMixin: + @property + def path_url(self): + """Build the path URL to use.""" + + url = [] + + p = urlsplit(self.url) + + path = p.path + if not path: + path = "/" + + url.append(path) + + query = p.query + if query: + url.append("?") + url.append(query) + + return "".join(url) + + @staticmethod + def _encode_params(data): + """Encode parameters in a piece of data. + + Will successfully encode parameters when passed as a dict or a list of + 2-tuples. Order is retained if data is a list of 2-tuples but arbitrary + if parameters are supplied as a dict. + """ + + if isinstance(data, (str, bytes)): + return data + elif hasattr(data, "read"): + return data + elif hasattr(data, "__iter__"): + result = [] + for k, vs in to_key_val_list(data): + if isinstance(vs, basestring) or not hasattr(vs, "__iter__"): + vs = [vs] + for v in vs: + if v is not None: + result.append( + ( + k.encode("utf-8") if isinstance(k, str) else k, + v.encode("utf-8") if isinstance(v, str) else v, + ) + ) + return urlencode(result, doseq=True) + else: + return data + + @staticmethod + def _encode_files(files, data): + """Build the body for a multipart/form-data request. + + Will successfully encode files when passed as a dict or a list of + tuples. Order is retained if data is a list of tuples but arbitrary + if parameters are supplied as a dict. + The tuples may be 2-tuples (filename, fileobj), 3-tuples (filename, fileobj, contentype) + or 4-tuples (filename, fileobj, contentype, custom_headers). + """ + if not files: + raise ValueError("Files must be provided.") + elif isinstance(data, basestring): + raise ValueError("Data must not be a string.") + + new_fields = [] + fields = to_key_val_list(data or {}) + files = to_key_val_list(files or {}) + + for field, val in fields: + if isinstance(val, basestring) or not hasattr(val, "__iter__"): + val = [val] + for v in val: + if v is not None: + # Don't call str() on bytestrings: in Py3 it all goes wrong. + if not isinstance(v, bytes): + v = str(v) + + new_fields.append( + ( + field.decode("utf-8") + if isinstance(field, bytes) + else field, + v.encode("utf-8") if isinstance(v, str) else v, + ) + ) + + for k, v in files: + # support for explicit filename + ft = None + fh = None + if isinstance(v, (tuple, list)): + if len(v) == 2: + fn, fp = v + elif len(v) == 3: + fn, fp, ft = v + else: + fn, fp, ft, fh = v + else: + fn = guess_filename(v) or k + fp = v + + if isinstance(fp, (str, bytes, bytearray)): + fdata = fp + elif hasattr(fp, "read"): + fdata = fp.read() + elif fp is None: + continue + else: + fdata = fp + + rf = RequestField(name=k, data=fdata, filename=fn, headers=fh) + rf.make_multipart(content_type=ft) + new_fields.append(rf) + + body, content_type = encode_multipart_formdata(new_fields) + + return body, content_type + + +class RequestHooksMixin: + def register_hook(self, event, hook): + """Properly register a hook.""" + + if event not in self.hooks: + raise ValueError(f'Unsupported event specified, with event name "{event}"') + + if isinstance(hook, Callable): + self.hooks[event].append(hook) + elif hasattr(hook, "__iter__"): + self.hooks[event].extend(h for h in hook if isinstance(h, Callable)) + + def deregister_hook(self, event, hook): + """Deregister a previously registered hook. + Returns True if the hook existed, False if not. + """ + + try: + self.hooks[event].remove(hook) + return True + except ValueError: + return False + + +class Request(RequestHooksMixin): + """A user-created :class:`Request ` object. + + Used to prepare a :class:`PreparedRequest `, which is sent to the server. + + :param method: HTTP method to use. + :param url: URL to send. + :param headers: dictionary of headers to send. + :param files: dictionary of {filename: fileobject} files to multipart upload. + :param data: the body to attach to the request. If a dictionary or + list of tuples ``[(key, value)]`` is provided, form-encoding will + take place. + :param json: json for the body to attach to the request (if files or data is not specified). + :param params: URL parameters to append to the URL. If a dictionary or + list of tuples ``[(key, value)]`` is provided, form-encoding will + take place. + :param auth: Auth handler or (user, pass) tuple. + :param cookies: dictionary or CookieJar of cookies to attach to this request. + :param hooks: dictionary of callback hooks, for internal usage. + + Usage:: + + >>> import requests + >>> req = requests.Request('GET', 'https://httpbin.org/get') + >>> req.prepare() + + """ + + def __init__( + self, + method=None, + url=None, + headers=None, + files=None, + data=None, + params=None, + auth=None, + cookies=None, + hooks=None, + json=None, + ): + # Default empty dicts for dict params. + data = [] if data is None else data + files = [] if files is None else files + headers = {} if headers is None else headers + params = {} if params is None else params + hooks = {} if hooks is None else hooks + + self.hooks = default_hooks() + for k, v in list(hooks.items()): + self.register_hook(event=k, hook=v) + + self.method = method + self.url = url + self.headers = headers + self.files = files + self.data = data + self.json = json + self.params = params + self.auth = auth + self.cookies = cookies + + def __repr__(self): + return f"" + + def prepare(self): + """Constructs a :class:`PreparedRequest ` for transmission and returns it.""" + p = PreparedRequest() + p.prepare( + method=self.method, + url=self.url, + headers=self.headers, + files=self.files, + data=self.data, + json=self.json, + params=self.params, + auth=self.auth, + cookies=self.cookies, + hooks=self.hooks, + ) + return p + + +class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): + """The fully mutable :class:`PreparedRequest ` object, + containing the exact bytes that will be sent to the server. + + Instances are generated from a :class:`Request ` object, and + should not be instantiated manually; doing so may produce undesirable + effects. + + Usage:: + + >>> import requests + >>> req = requests.Request('GET', 'https://httpbin.org/get') + >>> r = req.prepare() + >>> r + + + >>> s = requests.Session() + >>> s.send(r) + + """ + + def __init__(self): + #: HTTP verb to send to the server. + self.method = None + #: HTTP URL to send the request to. + self.url = None + #: dictionary of HTTP headers. + self.headers = None + # The `CookieJar` used to create the Cookie header will be stored here + # after prepare_cookies is called + self._cookies = None + #: request body to send to the server. + self.body = None + #: dictionary of callback hooks, for internal usage. + self.hooks = default_hooks() + #: integer denoting starting position of a readable file-like body. + self._body_position = None + + def prepare( + self, + method=None, + url=None, + headers=None, + files=None, + data=None, + params=None, + auth=None, + cookies=None, + hooks=None, + json=None, + ): + """Prepares the entire request with the given parameters.""" + + self.prepare_method(method) + self.prepare_url(url, params) + self.prepare_headers(headers) + self.prepare_cookies(cookies) + self.prepare_body(data, files, json) + self.prepare_auth(auth, url) + + # Note that prepare_auth must be last to enable authentication schemes + # such as OAuth to work on a fully prepared request. + + # This MUST go after prepare_auth. Authenticators could add a hook + self.prepare_hooks(hooks) + + def __repr__(self): + return f"" + + def copy(self): + p = PreparedRequest() + p.method = self.method + p.url = self.url + p.headers = self.headers.copy() if self.headers is not None else None + p._cookies = _copy_cookie_jar(self._cookies) + p.body = self.body + p.hooks = self.hooks + p._body_position = self._body_position + return p + + def prepare_method(self, method): + """Prepares the given HTTP method.""" + self.method = method + if self.method is not None: + self.method = to_native_string(self.method.upper()) + + @staticmethod + def _get_idna_encoded_host(host): + import idna + + try: + host = idna.encode(host, uts46=True).decode("utf-8") + except idna.IDNAError: + raise UnicodeError + return host + + def prepare_url(self, url, params): + """Prepares the given HTTP URL.""" + #: Accept objects that have string representations. + #: We're unable to blindly call unicode/str functions + #: as this will include the bytestring indicator (b'') + #: on python 3.x. + #: https://github.com/psf/requests/pull/2238 + if isinstance(url, bytes): + url = url.decode("utf8") + else: + url = str(url) + + # Remove leading whitespaces from url + url = url.lstrip() + + # Don't do any URL preparation for non-HTTP schemes like `mailto`, + # `data` etc to work around exceptions from `url_parse`, which + # handles RFC 3986 only. + if ":" in url and not url.lower().startswith("http"): + self.url = url + return + + # Support for unicode domain names and paths. + try: + scheme, auth, host, port, path, query, fragment = parse_url(url) + except LocationParseError as e: + raise InvalidURL(*e.args) + + if not scheme: + raise MissingSchema( + f"Invalid URL {url!r}: No scheme supplied. " + f"Perhaps you meant https://{url}?" + ) + + if not host: + raise InvalidURL(f"Invalid URL {url!r}: No host supplied") + + # In general, we want to try IDNA encoding the hostname if the string contains + # non-ASCII characters. This allows users to automatically get the correct IDNA + # behaviour. For strings containing only ASCII characters, we need to also verify + # it doesn't start with a wildcard (*), before allowing the unencoded hostname. + if not unicode_is_ascii(host): + try: + host = self._get_idna_encoded_host(host) + except UnicodeError: + raise InvalidURL("URL has an invalid label.") + elif host.startswith(("*", ".")): + raise InvalidURL("URL has an invalid label.") + + # Carefully reconstruct the network location + netloc = auth or "" + if netloc: + netloc += "@" + netloc += host + if port: + netloc += f":{port}" + + # Bare domains aren't valid URLs. + if not path: + path = "/" + + if isinstance(params, (str, bytes)): + params = to_native_string(params) + + enc_params = self._encode_params(params) + if enc_params: + if query: + query = f"{query}&{enc_params}" + else: + query = enc_params + + url = requote_uri(urlunparse([scheme, netloc, path, None, query, fragment])) + self.url = url + + def prepare_headers(self, headers): + """Prepares the given HTTP headers.""" + + self.headers = CaseInsensitiveDict() + if headers: + for header in headers.items(): + # Raise exception on invalid header value. + check_header_validity(header) + name, value = header + self.headers[to_native_string(name)] = value + + def prepare_body(self, data, files, json=None): + """Prepares the given HTTP body data.""" + + # Check if file, fo, generator, iterator. + # If not, run through normal process. + + # Nottin' on you. + body = None + content_type = None + + if not data and json is not None: + # urllib3 requires a bytes-like body. Python 2's json.dumps + # provides this natively, but Python 3 gives a Unicode string. + content_type = "application/json" + + try: + body = complexjson.dumps(json, allow_nan=False) + except ValueError as ve: + raise InvalidJSONError(ve, request=self) + + if not isinstance(body, bytes): + body = body.encode("utf-8") + + is_stream = all( + [ + hasattr(data, "__iter__"), + not isinstance(data, (basestring, list, tuple, Mapping)), + ] + ) + + if is_stream: + try: + length = super_len(data) + except (TypeError, AttributeError, UnsupportedOperation): + length = None + + body = data + + if getattr(body, "tell", None) is not None: + # Record the current file position before reading. + # This will allow us to rewind a file in the event + # of a redirect. + try: + self._body_position = body.tell() + except OSError: + # This differentiates from None, allowing us to catch + # a failed `tell()` later when trying to rewind the body + self._body_position = object() + + if files: + raise NotImplementedError( + "Streamed bodies and files are mutually exclusive." + ) + + if length: + self.headers["Content-Length"] = builtin_str(length) + else: + self.headers["Transfer-Encoding"] = "chunked" + else: + # Multi-part file uploads. + if files: + (body, content_type) = self._encode_files(files, data) + else: + if data: + body = self._encode_params(data) + if isinstance(data, basestring) or hasattr(data, "read"): + content_type = None + else: + content_type = "application/x-www-form-urlencoded" + + self.prepare_content_length(body) + + # Add content-type if it wasn't explicitly provided. + if content_type and ("content-type" not in self.headers): + self.headers["Content-Type"] = content_type + + self.body = body + + def prepare_content_length(self, body): + """Prepare Content-Length header based on request method and body""" + if body is not None: + length = super_len(body) + if length: + # If length exists, set it. Otherwise, we fallback + # to Transfer-Encoding: chunked. + self.headers["Content-Length"] = builtin_str(length) + elif ( + self.method not in ("GET", "HEAD") + and self.headers.get("Content-Length") is None + ): + # Set Content-Length to 0 for methods that can have a body + # but don't provide one. (i.e. not GET or HEAD) + self.headers["Content-Length"] = "0" + + def prepare_auth(self, auth, url=""): + """Prepares the given HTTP auth data.""" + + # If no Auth is explicitly provided, extract it from the URL first. + if auth is None: + url_auth = get_auth_from_url(self.url) + auth = url_auth if any(url_auth) else None + + if auth: + if isinstance(auth, tuple) and len(auth) == 2: + # special-case basic HTTP auth + auth = HTTPBasicAuth(*auth) + + # Allow auth to make its changes. + r = auth(self) + + # Update self to reflect the auth changes. + self.__dict__.update(r.__dict__) + + # Recompute Content-Length + self.prepare_content_length(self.body) + + def prepare_cookies(self, cookies): + """Prepares the given HTTP cookie data. + + This function eventually generates a ``Cookie`` header from the + given cookies using cookielib. Due to cookielib's design, the header + will not be regenerated if it already exists, meaning this function + can only be called once for the life of the + :class:`PreparedRequest ` object. Any subsequent calls + to ``prepare_cookies`` will have no actual effect, unless the "Cookie" + header is removed beforehand. + """ + if isinstance(cookies, cookielib.CookieJar): + self._cookies = cookies + else: + self._cookies = cookiejar_from_dict(cookies) + + cookie_header = get_cookie_header(self._cookies, self) + if cookie_header is not None: + self.headers["Cookie"] = cookie_header + + def prepare_hooks(self, hooks): + """Prepares the given hooks.""" + # hooks can be passed as None to the prepare method and to this + # method. To prevent iterating over None, simply use an empty list + # if hooks is False-y + hooks = hooks or [] + for event in hooks: + self.register_hook(event, hooks[event]) + + +class Response: + """The :class:`Response ` object, which contains a + server's response to an HTTP request. + """ + + __attrs__ = [ + "_content", + "status_code", + "headers", + "url", + "history", + "encoding", + "reason", + "cookies", + "elapsed", + "request", + ] + + def __init__(self): + self._content = False + self._content_consumed = False + self._next = None + + #: Integer Code of responded HTTP Status, e.g. 404 or 200. + self.status_code = None + + #: Case-insensitive Dictionary of Response Headers. + #: For example, ``headers['content-encoding']`` will return the + #: value of a ``'Content-Encoding'`` response header. + self.headers = CaseInsensitiveDict() + + #: File-like object representation of response (for advanced usage). + #: Use of ``raw`` requires that ``stream=True`` be set on the request. + #: This requirement does not apply for use internally to Requests. + self.raw = None + + #: Final URL location of Response. + self.url = None + + #: Encoding to decode with when accessing r.text. + self.encoding = None + + #: A list of :class:`Response ` objects from + #: the history of the Request. Any redirect responses will end + #: up here. The list is sorted from the oldest to the most recent request. + self.history = [] + + #: Textual reason of responded HTTP Status, e.g. "Not Found" or "OK". + self.reason = None + + #: A CookieJar of Cookies the server sent back. + self.cookies = cookiejar_from_dict({}) + + #: The amount of time elapsed between sending the request + #: and the arrival of the response (as a timedelta). + #: This property specifically measures the time taken between sending + #: the first byte of the request and finishing parsing the headers. It + #: is therefore unaffected by consuming the response content or the + #: value of the ``stream`` keyword argument. + self.elapsed = datetime.timedelta(0) + + #: The :class:`PreparedRequest ` object to which this + #: is a response. + self.request = None + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def __getstate__(self): + # Consume everything; accessing the content attribute makes + # sure the content has been fully read. + if not self._content_consumed: + self.content + + return {attr: getattr(self, attr, None) for attr in self.__attrs__} + + def __setstate__(self, state): + for name, value in state.items(): + setattr(self, name, value) + + # pickled objects do not have .raw + setattr(self, "_content_consumed", True) + setattr(self, "raw", None) + + def __repr__(self): + return f"" + + def __bool__(self): + """Returns True if :attr:`status_code` is less than 400. + + This attribute checks if the status code of the response is between + 400 and 600 to see if there was a client error or a server error. If + the status code, is between 200 and 400, this will return True. This + is **not** a check to see if the response code is ``200 OK``. + """ + return self.ok + + def __nonzero__(self): + """Returns True if :attr:`status_code` is less than 400. + + This attribute checks if the status code of the response is between + 400 and 600 to see if there was a client error or a server error. If + the status code, is between 200 and 400, this will return True. This + is **not** a check to see if the response code is ``200 OK``. + """ + return self.ok + + def __iter__(self): + """Allows you to use a response as an iterator.""" + return self.iter_content(128) + + @property + def ok(self): + """Returns True if :attr:`status_code` is less than 400, False if not. + + This attribute checks if the status code of the response is between + 400 and 600 to see if there was a client error or a server error. If + the status code is between 200 and 400, this will return True. This + is **not** a check to see if the response code is ``200 OK``. + """ + try: + self.raise_for_status() + except HTTPError: + return False + return True + + @property + def is_redirect(self): + """True if this Response is a well-formed HTTP redirect that could have + been processed automatically (by :meth:`Session.resolve_redirects`). + """ + return "location" in self.headers and self.status_code in REDIRECT_STATI + + @property + def is_permanent_redirect(self): + """True if this Response one of the permanent versions of redirect.""" + return "location" in self.headers and self.status_code in ( + codes.moved_permanently, + codes.permanent_redirect, + ) + + @property + def next(self): + """Returns a PreparedRequest for the next request in a redirect chain, if there is one.""" + return self._next + + @property + def apparent_encoding(self): + """The apparent encoding, provided by the charset_normalizer or chardet libraries.""" + if chardet is not None: + return chardet.detect(self.content)["encoding"] + else: + # If no character detection library is available, we'll fall back + # to a standard Python utf-8 str. + return "utf-8" + + def iter_content(self, chunk_size=1, decode_unicode=False): + """Iterates over the response data. When stream=True is set on the + request, this avoids reading the content at once into memory for + large responses. The chunk size is the number of bytes it should + read into memory. This is not necessarily the length of each item + returned as decoding can take place. + + chunk_size must be of type int or None. A value of None will + function differently depending on the value of `stream`. + stream=True will read data as it arrives in whatever size the + chunks are received. If stream=False, data is returned as + a single chunk. + + If decode_unicode is True, content will be decoded using the best + available encoding based on the response. + """ + + def generate(): + # Special case for urllib3. + if hasattr(self.raw, "stream"): + try: + yield from self.raw.stream(chunk_size, decode_content=True) + except ProtocolError as e: + raise ChunkedEncodingError(e) + except DecodeError as e: + raise ContentDecodingError(e) + except ReadTimeoutError as e: + raise ConnectionError(e) + except SSLError as e: + raise RequestsSSLError(e) + else: + # Standard file-like object. + while True: + chunk = self.raw.read(chunk_size) + if not chunk: + break + yield chunk + + self._content_consumed = True + + if self._content_consumed and isinstance(self._content, bool): + raise StreamConsumedError() + elif chunk_size is not None and not isinstance(chunk_size, int): + raise TypeError( + f"chunk_size must be an int, it is instead a {type(chunk_size)}." + ) + # simulate reading small chunks of the content + reused_chunks = iter_slices(self._content, chunk_size) + + stream_chunks = generate() + + chunks = reused_chunks if self._content_consumed else stream_chunks + + if decode_unicode: + chunks = stream_decode_response_unicode(chunks, self) + + return chunks + + def iter_lines( + self, chunk_size=ITER_CHUNK_SIZE, decode_unicode=False, delimiter=None + ): + """Iterates over the response data, one line at a time. When + stream=True is set on the request, this avoids reading the + content at once into memory for large responses. + + .. note:: This method is not reentrant safe. + """ + + pending = None + + for chunk in self.iter_content( + chunk_size=chunk_size, decode_unicode=decode_unicode + ): + if pending is not None: + chunk = pending + chunk + + if delimiter: + lines = chunk.split(delimiter) + else: + lines = chunk.splitlines() + + if lines and lines[-1] and chunk and lines[-1][-1] == chunk[-1]: + pending = lines.pop() + else: + pending = None + + yield from lines + + if pending is not None: + yield pending + + @property + def content(self): + """Content of the response, in bytes.""" + + if self._content is False: + # Read the contents. + if self._content_consumed: + raise RuntimeError("The content for this response was already consumed") + + if self.status_code == 0 or self.raw is None: + self._content = None + else: + self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b"" + + self._content_consumed = True + # don't need to release the connection; that's been handled by urllib3 + # since we exhausted the data. + return self._content + + @property + def text(self): + """Content of the response, in unicode. + + If Response.encoding is None, encoding will be guessed using + ``charset_normalizer`` or ``chardet``. + + The encoding of the response content is determined based solely on HTTP + headers, following RFC 2616 to the letter. If you can take advantage of + non-HTTP knowledge to make a better guess at the encoding, you should + set ``r.encoding`` appropriately before accessing this property. + """ + + # Try charset from content-type + content = None + encoding = self.encoding + + if not self.content: + return "" + + # Fallback to auto-detected encoding. + if self.encoding is None: + encoding = self.apparent_encoding + + # Decode unicode from given encoding. + try: + content = str(self.content, encoding, errors="replace") + except (LookupError, TypeError): + # A LookupError is raised if the encoding was not found which could + # indicate a misspelling or similar mistake. + # + # A TypeError can be raised if encoding is None + # + # So we try blindly encoding. + content = str(self.content, errors="replace") + + return content + + def json(self, **kwargs): + r"""Decodes the JSON response body (if any) as a Python object. + + This may return a dictionary, list, etc. depending on what is in the response. + + :param \*\*kwargs: Optional arguments that ``json.loads`` takes. + :raises requests.exceptions.JSONDecodeError: If the response body does not + contain valid json. + """ + + if not self.encoding and self.content and len(self.content) > 3: + # No encoding set. JSON RFC 4627 section 3 states we should expect + # UTF-8, -16 or -32. Detect which one to use; If the detection or + # decoding fails, fall back to `self.text` (using charset_normalizer to make + # a best guess). + encoding = guess_json_utf(self.content) + if encoding is not None: + try: + return complexjson.loads(self.content.decode(encoding), **kwargs) + except UnicodeDecodeError: + # Wrong UTF codec detected; usually because it's not UTF-8 + # but some other 8-bit codec. This is an RFC violation, + # and the server didn't bother to tell us what codec *was* + # used. + pass + except JSONDecodeError as e: + raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) + + try: + return complexjson.loads(self.text, **kwargs) + except JSONDecodeError as e: + # Catch JSON-related errors and raise as requests.JSONDecodeError + # This aliases json.JSONDecodeError and simplejson.JSONDecodeError + raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) + + @property + def links(self): + """Returns the parsed header links of the response, if any.""" + + header = self.headers.get("link") + + resolved_links = {} + + if header: + links = parse_header_links(header) + + for link in links: + key = link.get("rel") or link.get("url") + resolved_links[key] = link + + return resolved_links + + def raise_for_status(self): + """Raises :class:`HTTPError`, if one occurred.""" + + http_error_msg = "" + if isinstance(self.reason, bytes): + # We attempt to decode utf-8 first because some servers + # choose to localize their reason strings. If the string + # isn't utf-8, we fall back to iso-8859-1 for all other + # encodings. (See PR #3538) + try: + reason = self.reason.decode("utf-8") + except UnicodeDecodeError: + reason = self.reason.decode("iso-8859-1") + else: + reason = self.reason + + if 400 <= self.status_code < 500: + http_error_msg = ( + f"{self.status_code} Client Error: {reason} for url: {self.url}" + ) + + elif 500 <= self.status_code < 600: + http_error_msg = ( + f"{self.status_code} Server Error: {reason} for url: {self.url}" + ) + + if http_error_msg: + raise HTTPError(http_error_msg, response=self) + + def close(self): + """Releases the connection back to the pool. Once this method has been + called the underlying ``raw`` object must not be accessed again. + + *Note: Should not normally need to be called explicitly.* + """ + if not self._content_consumed: + self.raw.close() + + release_conn = getattr(self.raw, "release_conn", None) + if release_conn is not None: + release_conn() diff --git a/Backend/venv/lib/python3.12/site-packages/requests/packages.py b/Backend/venv/lib/python3.12/site-packages/requests/packages.py new file mode 100644 index 00000000..5ab3d8e2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/packages.py @@ -0,0 +1,23 @@ +import sys + +from .compat import chardet + +# This code exists for backwards compatibility reasons. +# I don't like it either. Just look the other way. :) + +for package in ("urllib3", "idna"): + locals()[package] = __import__(package) + # This traversal is apparently necessary such that the identities are + # preserved (requests.packages.urllib3.* is urllib3.*) + for mod in list(sys.modules): + if mod == package or mod.startswith(f"{package}."): + sys.modules[f"requests.packages.{mod}"] = sys.modules[mod] + +if chardet is not None: + target = chardet.__name__ + for mod in list(sys.modules): + if mod == target or mod.startswith(f"{target}."): + imported_mod = sys.modules[mod] + sys.modules[f"requests.packages.{mod}"] = imported_mod + mod = mod.replace(target, "chardet") + sys.modules[f"requests.packages.{mod}"] = imported_mod diff --git a/Backend/venv/lib/python3.12/site-packages/requests/sessions.py b/Backend/venv/lib/python3.12/site-packages/requests/sessions.py new file mode 100644 index 00000000..731550de --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/sessions.py @@ -0,0 +1,831 @@ +""" +requests.sessions +~~~~~~~~~~~~~~~~~ + +This module provides a Session object to manage and persist settings across +requests (cookies, auth, proxies). +""" +import os +import sys +import time +from collections import OrderedDict +from datetime import timedelta + +from ._internal_utils import to_native_string +from .adapters import HTTPAdapter +from .auth import _basic_auth_str +from .compat import Mapping, cookielib, urljoin, urlparse +from .cookies import ( + RequestsCookieJar, + cookiejar_from_dict, + extract_cookies_to_jar, + merge_cookies, +) +from .exceptions import ( + ChunkedEncodingError, + ContentDecodingError, + InvalidSchema, + TooManyRedirects, +) +from .hooks import default_hooks, dispatch_hook + +# formerly defined here, reexposed here for backward compatibility +from .models import ( # noqa: F401 + DEFAULT_REDIRECT_LIMIT, + REDIRECT_STATI, + PreparedRequest, + Request, +) +from .status_codes import codes +from .structures import CaseInsensitiveDict +from .utils import ( # noqa: F401 + DEFAULT_PORTS, + default_headers, + get_auth_from_url, + get_environ_proxies, + get_netrc_auth, + requote_uri, + resolve_proxies, + rewind_body, + should_bypass_proxies, + to_key_val_list, +) + +# Preferred clock, based on which one is more accurate on a given system. +if sys.platform == "win32": + preferred_clock = time.perf_counter +else: + preferred_clock = time.time + + +def merge_setting(request_setting, session_setting, dict_class=OrderedDict): + """Determines appropriate setting for a given request, taking into account + the explicit setting on that request, and the setting in the session. If a + setting is a dictionary, they will be merged together using `dict_class` + """ + + if session_setting is None: + return request_setting + + if request_setting is None: + return session_setting + + # Bypass if not a dictionary (e.g. verify) + if not ( + isinstance(session_setting, Mapping) and isinstance(request_setting, Mapping) + ): + return request_setting + + merged_setting = dict_class(to_key_val_list(session_setting)) + merged_setting.update(to_key_val_list(request_setting)) + + # Remove keys that are set to None. Extract keys first to avoid altering + # the dictionary during iteration. + none_keys = [k for (k, v) in merged_setting.items() if v is None] + for key in none_keys: + del merged_setting[key] + + return merged_setting + + +def merge_hooks(request_hooks, session_hooks, dict_class=OrderedDict): + """Properly merges both requests and session hooks. + + This is necessary because when request_hooks == {'response': []}, the + merge breaks Session hooks entirely. + """ + if session_hooks is None or session_hooks.get("response") == []: + return request_hooks + + if request_hooks is None or request_hooks.get("response") == []: + return session_hooks + + return merge_setting(request_hooks, session_hooks, dict_class) + + +class SessionRedirectMixin: + def get_redirect_target(self, resp): + """Receives a Response. Returns a redirect URI or ``None``""" + # Due to the nature of how requests processes redirects this method will + # be called at least once upon the original response and at least twice + # on each subsequent redirect response (if any). + # If a custom mixin is used to handle this logic, it may be advantageous + # to cache the redirect location onto the response object as a private + # attribute. + if resp.is_redirect: + location = resp.headers["location"] + # Currently the underlying http module on py3 decode headers + # in latin1, but empirical evidence suggests that latin1 is very + # rarely used with non-ASCII characters in HTTP headers. + # It is more likely to get UTF8 header rather than latin1. + # This causes incorrect handling of UTF8 encoded location headers. + # To solve this, we re-encode the location in latin1. + location = location.encode("latin1") + return to_native_string(location, "utf8") + return None + + def should_strip_auth(self, old_url, new_url): + """Decide whether Authorization header should be removed when redirecting""" + old_parsed = urlparse(old_url) + new_parsed = urlparse(new_url) + if old_parsed.hostname != new_parsed.hostname: + return True + # Special case: allow http -> https redirect when using the standard + # ports. This isn't specified by RFC 7235, but is kept to avoid + # breaking backwards compatibility with older versions of requests + # that allowed any redirects on the same host. + if ( + old_parsed.scheme == "http" + and old_parsed.port in (80, None) + and new_parsed.scheme == "https" + and new_parsed.port in (443, None) + ): + return False + + # Handle default port usage corresponding to scheme. + changed_port = old_parsed.port != new_parsed.port + changed_scheme = old_parsed.scheme != new_parsed.scheme + default_port = (DEFAULT_PORTS.get(old_parsed.scheme, None), None) + if ( + not changed_scheme + and old_parsed.port in default_port + and new_parsed.port in default_port + ): + return False + + # Standard case: root URI must match + return changed_port or changed_scheme + + def resolve_redirects( + self, + resp, + req, + stream=False, + timeout=None, + verify=True, + cert=None, + proxies=None, + yield_requests=False, + **adapter_kwargs, + ): + """Receives a Response. Returns a generator of Responses or Requests.""" + + hist = [] # keep track of history + + url = self.get_redirect_target(resp) + previous_fragment = urlparse(req.url).fragment + while url: + prepared_request = req.copy() + + # Update history and keep track of redirects. + # resp.history must ignore the original request in this loop + hist.append(resp) + resp.history = hist[1:] + + try: + resp.content # Consume socket so it can be released + except (ChunkedEncodingError, ContentDecodingError, RuntimeError): + resp.raw.read(decode_content=False) + + if len(resp.history) >= self.max_redirects: + raise TooManyRedirects( + f"Exceeded {self.max_redirects} redirects.", response=resp + ) + + # Release the connection back into the pool. + resp.close() + + # Handle redirection without scheme (see: RFC 1808 Section 4) + if url.startswith("//"): + parsed_rurl = urlparse(resp.url) + url = ":".join([to_native_string(parsed_rurl.scheme), url]) + + # Normalize url case and attach previous fragment if needed (RFC 7231 7.1.2) + parsed = urlparse(url) + if parsed.fragment == "" and previous_fragment: + parsed = parsed._replace(fragment=previous_fragment) + elif parsed.fragment: + previous_fragment = parsed.fragment + url = parsed.geturl() + + # Facilitate relative 'location' headers, as allowed by RFC 7231. + # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource') + # Compliant with RFC3986, we percent encode the url. + if not parsed.netloc: + url = urljoin(resp.url, requote_uri(url)) + else: + url = requote_uri(url) + + prepared_request.url = to_native_string(url) + + self.rebuild_method(prepared_request, resp) + + # https://github.com/psf/requests/issues/1084 + if resp.status_code not in ( + codes.temporary_redirect, + codes.permanent_redirect, + ): + # https://github.com/psf/requests/issues/3490 + purged_headers = ("Content-Length", "Content-Type", "Transfer-Encoding") + for header in purged_headers: + prepared_request.headers.pop(header, None) + prepared_request.body = None + + headers = prepared_request.headers + headers.pop("Cookie", None) + + # Extract any cookies sent on the response to the cookiejar + # in the new request. Because we've mutated our copied prepared + # request, use the old one that we haven't yet touched. + extract_cookies_to_jar(prepared_request._cookies, req, resp.raw) + merge_cookies(prepared_request._cookies, self.cookies) + prepared_request.prepare_cookies(prepared_request._cookies) + + # Rebuild auth and proxy information. + proxies = self.rebuild_proxies(prepared_request, proxies) + self.rebuild_auth(prepared_request, resp) + + # A failed tell() sets `_body_position` to `object()`. This non-None + # value ensures `rewindable` will be True, allowing us to raise an + # UnrewindableBodyError, instead of hanging the connection. + rewindable = prepared_request._body_position is not None and ( + "Content-Length" in headers or "Transfer-Encoding" in headers + ) + + # Attempt to rewind consumed file-like object. + if rewindable: + rewind_body(prepared_request) + + # Override the original request. + req = prepared_request + + if yield_requests: + yield req + else: + resp = self.send( + req, + stream=stream, + timeout=timeout, + verify=verify, + cert=cert, + proxies=proxies, + allow_redirects=False, + **adapter_kwargs, + ) + + extract_cookies_to_jar(self.cookies, prepared_request, resp.raw) + + # extract redirect url, if any, for the next loop + url = self.get_redirect_target(resp) + yield resp + + def rebuild_auth(self, prepared_request, response): + """When being redirected we may want to strip authentication from the + request to avoid leaking credentials. This method intelligently removes + and reapplies authentication where possible to avoid credential loss. + """ + headers = prepared_request.headers + url = prepared_request.url + + if "Authorization" in headers and self.should_strip_auth( + response.request.url, url + ): + # If we get redirected to a new host, we should strip out any + # authentication headers. + del headers["Authorization"] + + # .netrc might have more auth for us on our new host. + new_auth = get_netrc_auth(url) if self.trust_env else None + if new_auth is not None: + prepared_request.prepare_auth(new_auth) + + def rebuild_proxies(self, prepared_request, proxies): + """This method re-evaluates the proxy configuration by considering the + environment variables. If we are redirected to a URL covered by + NO_PROXY, we strip the proxy configuration. Otherwise, we set missing + proxy keys for this URL (in case they were stripped by a previous + redirect). + + This method also replaces the Proxy-Authorization header where + necessary. + + :rtype: dict + """ + headers = prepared_request.headers + scheme = urlparse(prepared_request.url).scheme + new_proxies = resolve_proxies(prepared_request, proxies, self.trust_env) + + if "Proxy-Authorization" in headers: + del headers["Proxy-Authorization"] + + try: + username, password = get_auth_from_url(new_proxies[scheme]) + except KeyError: + username, password = None, None + + # urllib3 handles proxy authorization for us in the standard adapter. + # Avoid appending this to TLS tunneled requests where it may be leaked. + if not scheme.startswith("https") and username and password: + headers["Proxy-Authorization"] = _basic_auth_str(username, password) + + return new_proxies + + def rebuild_method(self, prepared_request, response): + """When being redirected we may want to change the method of the request + based on certain specs or browser behavior. + """ + method = prepared_request.method + + # https://tools.ietf.org/html/rfc7231#section-6.4.4 + if response.status_code == codes.see_other and method != "HEAD": + method = "GET" + + # Do what the browsers do, despite standards... + # First, turn 302s into GETs. + if response.status_code == codes.found and method != "HEAD": + method = "GET" + + # Second, if a POST is responded to with a 301, turn it into a GET. + # This bizarre behaviour is explained in Issue 1704. + if response.status_code == codes.moved and method == "POST": + method = "GET" + + prepared_request.method = method + + +class Session(SessionRedirectMixin): + """A Requests session. + + Provides cookie persistence, connection-pooling, and configuration. + + Basic Usage:: + + >>> import requests + >>> s = requests.Session() + >>> s.get('https://httpbin.org/get') + + + Or as a context manager:: + + >>> with requests.Session() as s: + ... s.get('https://httpbin.org/get') + + """ + + __attrs__ = [ + "headers", + "cookies", + "auth", + "proxies", + "hooks", + "params", + "verify", + "cert", + "adapters", + "stream", + "trust_env", + "max_redirects", + ] + + def __init__(self): + #: A case-insensitive dictionary of headers to be sent on each + #: :class:`Request ` sent from this + #: :class:`Session `. + self.headers = default_headers() + + #: Default Authentication tuple or object to attach to + #: :class:`Request `. + self.auth = None + + #: Dictionary mapping protocol or protocol and host to the URL of the proxy + #: (e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'}) to + #: be used on each :class:`Request `. + self.proxies = {} + + #: Event-handling hooks. + self.hooks = default_hooks() + + #: Dictionary of querystring data to attach to each + #: :class:`Request `. The dictionary values may be lists for + #: representing multivalued query parameters. + self.params = {} + + #: Stream response content default. + self.stream = False + + #: SSL Verification default. + #: Defaults to `True`, requiring requests to verify the TLS certificate at the + #: remote end. + #: If verify is set to `False`, requests will accept any TLS certificate + #: presented by the server, and will ignore hostname mismatches and/or + #: expired certificates, which will make your application vulnerable to + #: man-in-the-middle (MitM) attacks. + #: Only set this to `False` for testing. + self.verify = True + + #: SSL client certificate default, if String, path to ssl client + #: cert file (.pem). If Tuple, ('cert', 'key') pair. + self.cert = None + + #: Maximum number of redirects allowed. If the request exceeds this + #: limit, a :class:`TooManyRedirects` exception is raised. + #: This defaults to requests.models.DEFAULT_REDIRECT_LIMIT, which is + #: 30. + self.max_redirects = DEFAULT_REDIRECT_LIMIT + + #: Trust environment settings for proxy configuration, default + #: authentication and similar. + self.trust_env = True + + #: A CookieJar containing all currently outstanding cookies set on this + #: session. By default it is a + #: :class:`RequestsCookieJar `, but + #: may be any other ``cookielib.CookieJar`` compatible object. + self.cookies = cookiejar_from_dict({}) + + # Default connection adapters. + self.adapters = OrderedDict() + self.mount("https://", HTTPAdapter()) + self.mount("http://", HTTPAdapter()) + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def prepare_request(self, request): + """Constructs a :class:`PreparedRequest ` for + transmission and returns it. The :class:`PreparedRequest` has settings + merged from the :class:`Request ` instance and those of the + :class:`Session`. + + :param request: :class:`Request` instance to prepare with this + session's settings. + :rtype: requests.PreparedRequest + """ + cookies = request.cookies or {} + + # Bootstrap CookieJar. + if not isinstance(cookies, cookielib.CookieJar): + cookies = cookiejar_from_dict(cookies) + + # Merge with session cookies + merged_cookies = merge_cookies( + merge_cookies(RequestsCookieJar(), self.cookies), cookies + ) + + # Set environment's basic authentication if not explicitly set. + auth = request.auth + if self.trust_env and not auth and not self.auth: + auth = get_netrc_auth(request.url) + + p = PreparedRequest() + p.prepare( + method=request.method.upper(), + url=request.url, + files=request.files, + data=request.data, + json=request.json, + headers=merge_setting( + request.headers, self.headers, dict_class=CaseInsensitiveDict + ), + params=merge_setting(request.params, self.params), + auth=merge_setting(auth, self.auth), + cookies=merged_cookies, + hooks=merge_hooks(request.hooks, self.hooks), + ) + return p + + def request( + self, + method, + url, + params=None, + data=None, + headers=None, + cookies=None, + files=None, + auth=None, + timeout=None, + allow_redirects=True, + proxies=None, + hooks=None, + stream=None, + verify=None, + cert=None, + json=None, + ): + """Constructs a :class:`Request `, prepares it and sends it. + Returns :class:`Response ` object. + + :param method: method for the new :class:`Request` object. + :param url: URL for the new :class:`Request` object. + :param params: (optional) Dictionary or bytes to be sent in the query + string for the :class:`Request`. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param json: (optional) json to send in the body of the + :class:`Request`. + :param headers: (optional) Dictionary of HTTP Headers to send with the + :class:`Request`. + :param cookies: (optional) Dict or CookieJar object to send with the + :class:`Request`. + :param files: (optional) Dictionary of ``'filename': file-like-objects`` + for multipart encoding upload. + :param auth: (optional) Auth tuple or callable to enable + Basic/Digest/Custom HTTP Auth. + :param timeout: (optional) How many seconds to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) ` tuple. + :type timeout: float or tuple + :param allow_redirects: (optional) Set to True by default. + :type allow_redirects: bool + :param proxies: (optional) Dictionary mapping protocol or protocol and + hostname to the URL of the proxy. + :param hooks: (optional) Dictionary mapping hook name to one event or + list of events, event must be callable. + :param stream: (optional) whether to immediately download the response + content. Defaults to ``False``. + :param verify: (optional) Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use. Defaults to ``True``. When set to + ``False``, requests will accept any TLS certificate presented by + the server, and will ignore hostname mismatches and/or expired + certificates, which will make your application vulnerable to + man-in-the-middle (MitM) attacks. Setting verify to ``False`` + may be useful during local development or testing. + :param cert: (optional) if String, path to ssl client cert file (.pem). + If Tuple, ('cert', 'key') pair. + :rtype: requests.Response + """ + # Create the Request. + req = Request( + method=method.upper(), + url=url, + headers=headers, + files=files, + data=data or {}, + json=json, + params=params or {}, + auth=auth, + cookies=cookies, + hooks=hooks, + ) + prep = self.prepare_request(req) + + proxies = proxies or {} + + settings = self.merge_environment_settings( + prep.url, proxies, stream, verify, cert + ) + + # Send the request. + send_kwargs = { + "timeout": timeout, + "allow_redirects": allow_redirects, + } + send_kwargs.update(settings) + resp = self.send(prep, **send_kwargs) + + return resp + + def get(self, url, **kwargs): + r"""Sends a GET request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + kwargs.setdefault("allow_redirects", True) + return self.request("GET", url, **kwargs) + + def options(self, url, **kwargs): + r"""Sends a OPTIONS request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + kwargs.setdefault("allow_redirects", True) + return self.request("OPTIONS", url, **kwargs) + + def head(self, url, **kwargs): + r"""Sends a HEAD request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + kwargs.setdefault("allow_redirects", False) + return self.request("HEAD", url, **kwargs) + + def post(self, url, data=None, json=None, **kwargs): + r"""Sends a POST request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param json: (optional) json to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request("POST", url, data=data, json=json, **kwargs) + + def put(self, url, data=None, **kwargs): + r"""Sends a PUT request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request("PUT", url, data=data, **kwargs) + + def patch(self, url, data=None, **kwargs): + r"""Sends a PATCH request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, list of tuples, bytes, or file-like + object to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request("PATCH", url, data=data, **kwargs) + + def delete(self, url, **kwargs): + r"""Sends a DELETE request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request("DELETE", url, **kwargs) + + def send(self, request, **kwargs): + """Send a given PreparedRequest. + + :rtype: requests.Response + """ + # Set defaults that the hooks can utilize to ensure they always have + # the correct parameters to reproduce the previous request. + kwargs.setdefault("stream", self.stream) + kwargs.setdefault("verify", self.verify) + kwargs.setdefault("cert", self.cert) + if "proxies" not in kwargs: + kwargs["proxies"] = resolve_proxies(request, self.proxies, self.trust_env) + + # It's possible that users might accidentally send a Request object. + # Guard against that specific failure case. + if isinstance(request, Request): + raise ValueError("You can only send PreparedRequests.") + + # Set up variables needed for resolve_redirects and dispatching of hooks + allow_redirects = kwargs.pop("allow_redirects", True) + stream = kwargs.get("stream") + hooks = request.hooks + + # Get the appropriate adapter to use + adapter = self.get_adapter(url=request.url) + + # Start time (approximately) of the request + start = preferred_clock() + + # Send the request + r = adapter.send(request, **kwargs) + + # Total elapsed time of the request (approximately) + elapsed = preferred_clock() - start + r.elapsed = timedelta(seconds=elapsed) + + # Response manipulation hooks + r = dispatch_hook("response", hooks, r, **kwargs) + + # Persist cookies + if r.history: + # If the hooks create history then we want those cookies too + for resp in r.history: + extract_cookies_to_jar(self.cookies, resp.request, resp.raw) + + extract_cookies_to_jar(self.cookies, request, r.raw) + + # Resolve redirects if allowed. + if allow_redirects: + # Redirect resolving generator. + gen = self.resolve_redirects(r, request, **kwargs) + history = [resp for resp in gen] + else: + history = [] + + # Shuffle things around if there's history. + if history: + # Insert the first (original) request at the start + history.insert(0, r) + # Get the last request made + r = history.pop() + r.history = history + + # If redirects aren't being followed, store the response on the Request for Response.next(). + if not allow_redirects: + try: + r._next = next( + self.resolve_redirects(r, request, yield_requests=True, **kwargs) + ) + except StopIteration: + pass + + if not stream: + r.content + + return r + + def merge_environment_settings(self, url, proxies, stream, verify, cert): + """ + Check the environment and merge it with some settings. + + :rtype: dict + """ + # Gather clues from the surrounding environment. + if self.trust_env: + # Set environment's proxies. + no_proxy = proxies.get("no_proxy") if proxies is not None else None + env_proxies = get_environ_proxies(url, no_proxy=no_proxy) + for k, v in env_proxies.items(): + proxies.setdefault(k, v) + + # Look for requests environment configuration + # and be compatible with cURL. + if verify is True or verify is None: + verify = ( + os.environ.get("REQUESTS_CA_BUNDLE") + or os.environ.get("CURL_CA_BUNDLE") + or verify + ) + + # Merge all the kwargs. + proxies = merge_setting(proxies, self.proxies) + stream = merge_setting(stream, self.stream) + verify = merge_setting(verify, self.verify) + cert = merge_setting(cert, self.cert) + + return {"proxies": proxies, "stream": stream, "verify": verify, "cert": cert} + + def get_adapter(self, url): + """ + Returns the appropriate connection adapter for the given URL. + + :rtype: requests.adapters.BaseAdapter + """ + for prefix, adapter in self.adapters.items(): + if url.lower().startswith(prefix.lower()): + return adapter + + # Nothing matches :-/ + raise InvalidSchema(f"No connection adapters were found for {url!r}") + + def close(self): + """Closes all adapters and as such the session""" + for v in self.adapters.values(): + v.close() + + def mount(self, prefix, adapter): + """Registers a connection adapter to a prefix. + + Adapters are sorted in descending order by prefix length. + """ + self.adapters[prefix] = adapter + keys_to_move = [k for k in self.adapters if len(k) < len(prefix)] + + for key in keys_to_move: + self.adapters[key] = self.adapters.pop(key) + + def __getstate__(self): + state = {attr: getattr(self, attr, None) for attr in self.__attrs__} + return state + + def __setstate__(self, state): + for attr, value in state.items(): + setattr(self, attr, value) + + +def session(): + """ + Returns a :class:`Session` for context-management. + + .. deprecated:: 1.0.0 + + This method has been deprecated since version 1.0.0 and is only kept for + backwards compatibility. New code should use :class:`~requests.sessions.Session` + to create a session. This may be removed at a future date. + + :rtype: Session + """ + return Session() diff --git a/Backend/venv/lib/python3.12/site-packages/requests/status_codes.py b/Backend/venv/lib/python3.12/site-packages/requests/status_codes.py new file mode 100644 index 00000000..c7945a2f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/status_codes.py @@ -0,0 +1,128 @@ +r""" +The ``codes`` object defines a mapping from common names for HTTP statuses +to their numerical codes, accessible either as attributes or as dictionary +items. + +Example:: + + >>> import requests + >>> requests.codes['temporary_redirect'] + 307 + >>> requests.codes.teapot + 418 + >>> requests.codes['\o/'] + 200 + +Some codes have multiple names, and both upper- and lower-case versions of +the names are allowed. For example, ``codes.ok``, ``codes.OK``, and +``codes.okay`` all correspond to the HTTP status code 200. +""" + +from .structures import LookupDict + +_codes = { + # Informational. + 100: ("continue",), + 101: ("switching_protocols",), + 102: ("processing", "early-hints"), + 103: ("checkpoint",), + 122: ("uri_too_long", "request_uri_too_long"), + 200: ("ok", "okay", "all_ok", "all_okay", "all_good", "\\o/", "✓"), + 201: ("created",), + 202: ("accepted",), + 203: ("non_authoritative_info", "non_authoritative_information"), + 204: ("no_content",), + 205: ("reset_content", "reset"), + 206: ("partial_content", "partial"), + 207: ("multi_status", "multiple_status", "multi_stati", "multiple_stati"), + 208: ("already_reported",), + 226: ("im_used",), + # Redirection. + 300: ("multiple_choices",), + 301: ("moved_permanently", "moved", "\\o-"), + 302: ("found",), + 303: ("see_other", "other"), + 304: ("not_modified",), + 305: ("use_proxy",), + 306: ("switch_proxy",), + 307: ("temporary_redirect", "temporary_moved", "temporary"), + 308: ( + "permanent_redirect", + "resume_incomplete", + "resume", + ), # "resume" and "resume_incomplete" to be removed in 3.0 + # Client Error. + 400: ("bad_request", "bad"), + 401: ("unauthorized",), + 402: ("payment_required", "payment"), + 403: ("forbidden",), + 404: ("not_found", "-o-"), + 405: ("method_not_allowed", "not_allowed"), + 406: ("not_acceptable",), + 407: ("proxy_authentication_required", "proxy_auth", "proxy_authentication"), + 408: ("request_timeout", "timeout"), + 409: ("conflict",), + 410: ("gone",), + 411: ("length_required",), + 412: ("precondition_failed", "precondition"), + 413: ("request_entity_too_large", "content_too_large"), + 414: ("request_uri_too_large", "uri_too_long"), + 415: ("unsupported_media_type", "unsupported_media", "media_type"), + 416: ( + "requested_range_not_satisfiable", + "requested_range", + "range_not_satisfiable", + ), + 417: ("expectation_failed",), + 418: ("im_a_teapot", "teapot", "i_am_a_teapot"), + 421: ("misdirected_request",), + 422: ("unprocessable_entity", "unprocessable", "unprocessable_content"), + 423: ("locked",), + 424: ("failed_dependency", "dependency"), + 425: ("unordered_collection", "unordered", "too_early"), + 426: ("upgrade_required", "upgrade"), + 428: ("precondition_required", "precondition"), + 429: ("too_many_requests", "too_many"), + 431: ("header_fields_too_large", "fields_too_large"), + 444: ("no_response", "none"), + 449: ("retry_with", "retry"), + 450: ("blocked_by_windows_parental_controls", "parental_controls"), + 451: ("unavailable_for_legal_reasons", "legal_reasons"), + 499: ("client_closed_request",), + # Server Error. + 500: ("internal_server_error", "server_error", "/o\\", "✗"), + 501: ("not_implemented",), + 502: ("bad_gateway",), + 503: ("service_unavailable", "unavailable"), + 504: ("gateway_timeout",), + 505: ("http_version_not_supported", "http_version"), + 506: ("variant_also_negotiates",), + 507: ("insufficient_storage",), + 509: ("bandwidth_limit_exceeded", "bandwidth"), + 510: ("not_extended",), + 511: ("network_authentication_required", "network_auth", "network_authentication"), +} + +codes = LookupDict(name="status_codes") + + +def _init(): + for code, titles in _codes.items(): + for title in titles: + setattr(codes, title, code) + if not title.startswith(("\\", "/")): + setattr(codes, title.upper(), code) + + def doc(code): + names = ", ".join(f"``{n}``" for n in _codes[code]) + return "* %d: %s" % (code, names) + + global __doc__ + __doc__ = ( + __doc__ + "\n" + "\n".join(doc(code) for code in sorted(_codes)) + if __doc__ is not None + else None + ) + + +_init() diff --git a/Backend/venv/lib/python3.12/site-packages/requests/structures.py b/Backend/venv/lib/python3.12/site-packages/requests/structures.py new file mode 100644 index 00000000..188e13e4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/structures.py @@ -0,0 +1,99 @@ +""" +requests.structures +~~~~~~~~~~~~~~~~~~~ + +Data structures that power Requests. +""" + +from collections import OrderedDict + +from .compat import Mapping, MutableMapping + + +class CaseInsensitiveDict(MutableMapping): + """A case-insensitive ``dict``-like object. + + Implements all methods and operations of + ``MutableMapping`` as well as dict's ``copy``. Also + provides ``lower_items``. + + All keys are expected to be strings. The structure remembers the + case of the last key to be set, and ``iter(instance)``, + ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()`` + will contain case-sensitive keys. However, querying and contains + testing is case insensitive:: + + cid = CaseInsensitiveDict() + cid['Accept'] = 'application/json' + cid['aCCEPT'] == 'application/json' # True + list(cid) == ['Accept'] # True + + For example, ``headers['content-encoding']`` will return the + value of a ``'Content-Encoding'`` response header, regardless + of how the header name was originally stored. + + If the constructor, ``.update``, or equality comparison + operations are given keys that have equal ``.lower()``s, the + behavior is undefined. + """ + + def __init__(self, data=None, **kwargs): + self._store = OrderedDict() + if data is None: + data = {} + self.update(data, **kwargs) + + def __setitem__(self, key, value): + # Use the lowercased key for lookups, but store the actual + # key alongside the value. + self._store[key.lower()] = (key, value) + + def __getitem__(self, key): + return self._store[key.lower()][1] + + def __delitem__(self, key): + del self._store[key.lower()] + + def __iter__(self): + return (casedkey for casedkey, mappedvalue in self._store.values()) + + def __len__(self): + return len(self._store) + + def lower_items(self): + """Like iteritems(), but with all lowercase keys.""" + return ((lowerkey, keyval[1]) for (lowerkey, keyval) in self._store.items()) + + def __eq__(self, other): + if isinstance(other, Mapping): + other = CaseInsensitiveDict(other) + else: + return NotImplemented + # Compare insensitively + return dict(self.lower_items()) == dict(other.lower_items()) + + # Copy is required + def copy(self): + return CaseInsensitiveDict(self._store.values()) + + def __repr__(self): + return str(dict(self.items())) + + +class LookupDict(dict): + """Dictionary lookup object.""" + + def __init__(self, name=None): + self.name = name + super().__init__() + + def __repr__(self): + return f"" + + def __getitem__(self, key): + # We allow fall-through here, so values default to None + + return self.__dict__.get(key, None) + + def get(self, key, default=None): + return self.__dict__.get(key, default) diff --git a/Backend/venv/lib/python3.12/site-packages/requests/utils.py b/Backend/venv/lib/python3.12/site-packages/requests/utils.py new file mode 100644 index 00000000..8ab55852 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/requests/utils.py @@ -0,0 +1,1086 @@ +""" +requests.utils +~~~~~~~~~~~~~~ + +This module provides utility functions that are used within Requests +that are also useful for external consumption. +""" + +import codecs +import contextlib +import io +import os +import re +import socket +import struct +import sys +import tempfile +import warnings +import zipfile +from collections import OrderedDict + +from urllib3.util import make_headers, parse_url + +from . import certs +from .__version__ import __version__ + +# to_native_string is unused here, but imported here for backwards compatibility +from ._internal_utils import ( # noqa: F401 + _HEADER_VALIDATORS_BYTE, + _HEADER_VALIDATORS_STR, + HEADER_VALIDATORS, + to_native_string, +) +from .compat import ( + Mapping, + basestring, + bytes, + getproxies, + getproxies_environment, + integer_types, + is_urllib3_1, +) +from .compat import parse_http_list as _parse_list_header +from .compat import ( + proxy_bypass, + proxy_bypass_environment, + quote, + str, + unquote, + urlparse, + urlunparse, +) +from .cookies import cookiejar_from_dict +from .exceptions import ( + FileModeWarning, + InvalidHeader, + InvalidURL, + UnrewindableBodyError, +) +from .structures import CaseInsensitiveDict + +NETRC_FILES = (".netrc", "_netrc") + +DEFAULT_CA_BUNDLE_PATH = certs.where() + +DEFAULT_PORTS = {"http": 80, "https": 443} + +# Ensure that ', ' is used to preserve previous delimiter behavior. +DEFAULT_ACCEPT_ENCODING = ", ".join( + re.split(r",\s*", make_headers(accept_encoding=True)["accept-encoding"]) +) + + +if sys.platform == "win32": + # provide a proxy_bypass version on Windows without DNS lookups + + def proxy_bypass_registry(host): + try: + import winreg + except ImportError: + return False + + try: + internetSettings = winreg.OpenKey( + winreg.HKEY_CURRENT_USER, + r"Software\Microsoft\Windows\CurrentVersion\Internet Settings", + ) + # ProxyEnable could be REG_SZ or REG_DWORD, normalizing it + proxyEnable = int(winreg.QueryValueEx(internetSettings, "ProxyEnable")[0]) + # ProxyOverride is almost always a string + proxyOverride = winreg.QueryValueEx(internetSettings, "ProxyOverride")[0] + except (OSError, ValueError): + return False + if not proxyEnable or not proxyOverride: + return False + + # make a check value list from the registry entry: replace the + # '' string by the localhost entry and the corresponding + # canonical entry. + proxyOverride = proxyOverride.split(";") + # filter out empty strings to avoid re.match return true in the following code. + proxyOverride = filter(None, proxyOverride) + # now check if we match one of the registry values. + for test in proxyOverride: + if test == "": + if "." not in host: + return True + test = test.replace(".", r"\.") # mask dots + test = test.replace("*", r".*") # change glob sequence + test = test.replace("?", r".") # change glob char + if re.match(test, host, re.I): + return True + return False + + def proxy_bypass(host): # noqa + """Return True, if the host should be bypassed. + + Checks proxy settings gathered from the environment, if specified, + or the registry. + """ + if getproxies_environment(): + return proxy_bypass_environment(host) + else: + return proxy_bypass_registry(host) + + +def dict_to_sequence(d): + """Returns an internal sequence dictionary update.""" + + if hasattr(d, "items"): + d = d.items() + + return d + + +def super_len(o): + total_length = None + current_position = 0 + + if not is_urllib3_1 and isinstance(o, str): + # urllib3 2.x+ treats all strings as utf-8 instead + # of latin-1 (iso-8859-1) like http.client. + o = o.encode("utf-8") + + if hasattr(o, "__len__"): + total_length = len(o) + + elif hasattr(o, "len"): + total_length = o.len + + elif hasattr(o, "fileno"): + try: + fileno = o.fileno() + except (io.UnsupportedOperation, AttributeError): + # AttributeError is a surprising exception, seeing as how we've just checked + # that `hasattr(o, 'fileno')`. It happens for objects obtained via + # `Tarfile.extractfile()`, per issue 5229. + pass + else: + total_length = os.fstat(fileno).st_size + + # Having used fstat to determine the file length, we need to + # confirm that this file was opened up in binary mode. + if "b" not in o.mode: + warnings.warn( + ( + "Requests has determined the content-length for this " + "request using the binary size of the file: however, the " + "file has been opened in text mode (i.e. without the 'b' " + "flag in the mode). This may lead to an incorrect " + "content-length. In Requests 3.0, support will be removed " + "for files in text mode." + ), + FileModeWarning, + ) + + if hasattr(o, "tell"): + try: + current_position = o.tell() + except OSError: + # This can happen in some weird situations, such as when the file + # is actually a special file descriptor like stdin. In this + # instance, we don't know what the length is, so set it to zero and + # let requests chunk it instead. + if total_length is not None: + current_position = total_length + else: + if hasattr(o, "seek") and total_length is None: + # StringIO and BytesIO have seek but no usable fileno + try: + # seek to end of file + o.seek(0, 2) + total_length = o.tell() + + # seek back to current position to support + # partially read file-like objects + o.seek(current_position or 0) + except OSError: + total_length = 0 + + if total_length is None: + total_length = 0 + + return max(0, total_length - current_position) + + +def get_netrc_auth(url, raise_errors=False): + """Returns the Requests tuple auth for a given url from netrc.""" + + netrc_file = os.environ.get("NETRC") + if netrc_file is not None: + netrc_locations = (netrc_file,) + else: + netrc_locations = (f"~/{f}" for f in NETRC_FILES) + + try: + from netrc import NetrcParseError, netrc + + netrc_path = None + + for f in netrc_locations: + loc = os.path.expanduser(f) + if os.path.exists(loc): + netrc_path = loc + break + + # Abort early if there isn't one. + if netrc_path is None: + return + + ri = urlparse(url) + host = ri.hostname + + try: + _netrc = netrc(netrc_path).authenticators(host) + if _netrc: + # Return with login / password + login_i = 0 if _netrc[0] else 1 + return (_netrc[login_i], _netrc[2]) + except (NetrcParseError, OSError): + # If there was a parsing error or a permissions issue reading the file, + # we'll just skip netrc auth unless explicitly asked to raise errors. + if raise_errors: + raise + + # App Engine hackiness. + except (ImportError, AttributeError): + pass + + +def guess_filename(obj): + """Tries to guess the filename of the given object.""" + name = getattr(obj, "name", None) + if name and isinstance(name, basestring) and name[0] != "<" and name[-1] != ">": + return os.path.basename(name) + + +def extract_zipped_paths(path): + """Replace nonexistent paths that look like they refer to a member of a zip + archive with the location of an extracted copy of the target, or else + just return the provided path unchanged. + """ + if os.path.exists(path): + # this is already a valid path, no need to do anything further + return path + + # find the first valid part of the provided path and treat that as a zip archive + # assume the rest of the path is the name of a member in the archive + archive, member = os.path.split(path) + while archive and not os.path.exists(archive): + archive, prefix = os.path.split(archive) + if not prefix: + # If we don't check for an empty prefix after the split (in other words, archive remains unchanged after the split), + # we _can_ end up in an infinite loop on a rare corner case affecting a small number of users + break + member = "/".join([prefix, member]) + + if not zipfile.is_zipfile(archive): + return path + + zip_file = zipfile.ZipFile(archive) + if member not in zip_file.namelist(): + return path + + # we have a valid zip archive and a valid member of that archive + tmp = tempfile.gettempdir() + extracted_path = os.path.join(tmp, member.split("/")[-1]) + if not os.path.exists(extracted_path): + # use read + write to avoid the creating nested folders, we only want the file, avoids mkdir racing condition + with atomic_open(extracted_path) as file_handler: + file_handler.write(zip_file.read(member)) + return extracted_path + + +@contextlib.contextmanager +def atomic_open(filename): + """Write a file to the disk in an atomic fashion""" + tmp_descriptor, tmp_name = tempfile.mkstemp(dir=os.path.dirname(filename)) + try: + with os.fdopen(tmp_descriptor, "wb") as tmp_handler: + yield tmp_handler + os.replace(tmp_name, filename) + except BaseException: + os.remove(tmp_name) + raise + + +def from_key_val_list(value): + """Take an object and test to see if it can be represented as a + dictionary. Unless it can not be represented as such, return an + OrderedDict, e.g., + + :: + + >>> from_key_val_list([('key', 'val')]) + OrderedDict([('key', 'val')]) + >>> from_key_val_list('string') + Traceback (most recent call last): + ... + ValueError: cannot encode objects that are not 2-tuples + >>> from_key_val_list({'key': 'val'}) + OrderedDict([('key', 'val')]) + + :rtype: OrderedDict + """ + if value is None: + return None + + if isinstance(value, (str, bytes, bool, int)): + raise ValueError("cannot encode objects that are not 2-tuples") + + return OrderedDict(value) + + +def to_key_val_list(value): + """Take an object and test to see if it can be represented as a + dictionary. If it can be, return a list of tuples, e.g., + + :: + + >>> to_key_val_list([('key', 'val')]) + [('key', 'val')] + >>> to_key_val_list({'key': 'val'}) + [('key', 'val')] + >>> to_key_val_list('string') + Traceback (most recent call last): + ... + ValueError: cannot encode objects that are not 2-tuples + + :rtype: list + """ + if value is None: + return None + + if isinstance(value, (str, bytes, bool, int)): + raise ValueError("cannot encode objects that are not 2-tuples") + + if isinstance(value, Mapping): + value = value.items() + + return list(value) + + +# From mitsuhiko/werkzeug (used with permission). +def parse_list_header(value): + """Parse lists as described by RFC 2068 Section 2. + + In particular, parse comma-separated lists where the elements of + the list may include quoted-strings. A quoted-string could + contain a comma. A non-quoted string could have quotes in the + middle. Quotes are removed automatically after parsing. + + It basically works like :func:`parse_set_header` just that items + may appear multiple times and case sensitivity is preserved. + + The return value is a standard :class:`list`: + + >>> parse_list_header('token, "quoted value"') + ['token', 'quoted value'] + + To create a header from the :class:`list` again, use the + :func:`dump_header` function. + + :param value: a string with a list header. + :return: :class:`list` + :rtype: list + """ + result = [] + for item in _parse_list_header(value): + if item[:1] == item[-1:] == '"': + item = unquote_header_value(item[1:-1]) + result.append(item) + return result + + +# From mitsuhiko/werkzeug (used with permission). +def parse_dict_header(value): + """Parse lists of key, value pairs as described by RFC 2068 Section 2 and + convert them into a python dict: + + >>> d = parse_dict_header('foo="is a fish", bar="as well"') + >>> type(d) is dict + True + >>> sorted(d.items()) + [('bar', 'as well'), ('foo', 'is a fish')] + + If there is no value for a key it will be `None`: + + >>> parse_dict_header('key_without_value') + {'key_without_value': None} + + To create a header from the :class:`dict` again, use the + :func:`dump_header` function. + + :param value: a string with a dict header. + :return: :class:`dict` + :rtype: dict + """ + result = {} + for item in _parse_list_header(value): + if "=" not in item: + result[item] = None + continue + name, value = item.split("=", 1) + if value[:1] == value[-1:] == '"': + value = unquote_header_value(value[1:-1]) + result[name] = value + return result + + +# From mitsuhiko/werkzeug (used with permission). +def unquote_header_value(value, is_filename=False): + r"""Unquotes a header value. (Reversal of :func:`quote_header_value`). + This does not use the real unquoting but what browsers are actually + using for quoting. + + :param value: the header value to unquote. + :rtype: str + """ + if value and value[0] == value[-1] == '"': + # this is not the real unquoting, but fixing this so that the + # RFC is met will result in bugs with internet explorer and + # probably some other browsers as well. IE for example is + # uploading files with "C:\foo\bar.txt" as filename + value = value[1:-1] + + # if this is a filename and the starting characters look like + # a UNC path, then just return the value without quotes. Using the + # replace sequence below on a UNC path has the effect of turning + # the leading double slash into a single slash and then + # _fix_ie_filename() doesn't work correctly. See #458. + if not is_filename or value[:2] != "\\\\": + return value.replace("\\\\", "\\").replace('\\"', '"') + return value + + +def dict_from_cookiejar(cj): + """Returns a key/value dictionary from a CookieJar. + + :param cj: CookieJar object to extract cookies from. + :rtype: dict + """ + + cookie_dict = {cookie.name: cookie.value for cookie in cj} + return cookie_dict + + +def add_dict_to_cookiejar(cj, cookie_dict): + """Returns a CookieJar from a key/value dictionary. + + :param cj: CookieJar to insert cookies into. + :param cookie_dict: Dict of key/values to insert into CookieJar. + :rtype: CookieJar + """ + + return cookiejar_from_dict(cookie_dict, cj) + + +def get_encodings_from_content(content): + """Returns encodings from given content string. + + :param content: bytestring to extract encodings from. + """ + warnings.warn( + ( + "In requests 3.0, get_encodings_from_content will be removed. For " + "more information, please see the discussion on issue #2266. (This" + " warning should only appear once.)" + ), + DeprecationWarning, + ) + + charset_re = re.compile(r']', flags=re.I) + pragma_re = re.compile(r']', flags=re.I) + xml_re = re.compile(r'^<\?xml.*?encoding=["\']*(.+?)["\'>]') + + return ( + charset_re.findall(content) + + pragma_re.findall(content) + + xml_re.findall(content) + ) + + +def _parse_content_type_header(header): + """Returns content type and parameters from given header + + :param header: string + :return: tuple containing content type and dictionary of + parameters + """ + + tokens = header.split(";") + content_type, params = tokens[0].strip(), tokens[1:] + params_dict = {} + items_to_strip = "\"' " + + for param in params: + param = param.strip() + if param: + key, value = param, True + index_of_equals = param.find("=") + if index_of_equals != -1: + key = param[:index_of_equals].strip(items_to_strip) + value = param[index_of_equals + 1 :].strip(items_to_strip) + params_dict[key.lower()] = value + return content_type, params_dict + + +def get_encoding_from_headers(headers): + """Returns encodings from given HTTP Header Dict. + + :param headers: dictionary to extract encoding from. + :rtype: str + """ + + content_type = headers.get("content-type") + + if not content_type: + return None + + content_type, params = _parse_content_type_header(content_type) + + if "charset" in params: + return params["charset"].strip("'\"") + + if "text" in content_type: + return "ISO-8859-1" + + if "application/json" in content_type: + # Assume UTF-8 based on RFC 4627: https://www.ietf.org/rfc/rfc4627.txt since the charset was unset + return "utf-8" + + +def stream_decode_response_unicode(iterator, r): + """Stream decodes an iterator.""" + + if r.encoding is None: + yield from iterator + return + + decoder = codecs.getincrementaldecoder(r.encoding)(errors="replace") + for chunk in iterator: + rv = decoder.decode(chunk) + if rv: + yield rv + rv = decoder.decode(b"", final=True) + if rv: + yield rv + + +def iter_slices(string, slice_length): + """Iterate over slices of a string.""" + pos = 0 + if slice_length is None or slice_length <= 0: + slice_length = len(string) + while pos < len(string): + yield string[pos : pos + slice_length] + pos += slice_length + + +def get_unicode_from_response(r): + """Returns the requested content back in unicode. + + :param r: Response object to get unicode content from. + + Tried: + + 1. charset from content-type + 2. fall back and replace all unicode characters + + :rtype: str + """ + warnings.warn( + ( + "In requests 3.0, get_unicode_from_response will be removed. For " + "more information, please see the discussion on issue #2266. (This" + " warning should only appear once.)" + ), + DeprecationWarning, + ) + + tried_encodings = [] + + # Try charset from content-type + encoding = get_encoding_from_headers(r.headers) + + if encoding: + try: + return str(r.content, encoding) + except UnicodeError: + tried_encodings.append(encoding) + + # Fall back: + try: + return str(r.content, encoding, errors="replace") + except TypeError: + return r.content + + +# The unreserved URI characters (RFC 3986) +UNRESERVED_SET = frozenset( + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789-._~" +) + + +def unquote_unreserved(uri): + """Un-escape any percent-escape sequences in a URI that are unreserved + characters. This leaves all reserved, illegal and non-ASCII bytes encoded. + + :rtype: str + """ + parts = uri.split("%") + for i in range(1, len(parts)): + h = parts[i][0:2] + if len(h) == 2 and h.isalnum(): + try: + c = chr(int(h, 16)) + except ValueError: + raise InvalidURL(f"Invalid percent-escape sequence: '{h}'") + + if c in UNRESERVED_SET: + parts[i] = c + parts[i][2:] + else: + parts[i] = f"%{parts[i]}" + else: + parts[i] = f"%{parts[i]}" + return "".join(parts) + + +def requote_uri(uri): + """Re-quote the given URI. + + This function passes the given URI through an unquote/quote cycle to + ensure that it is fully and consistently quoted. + + :rtype: str + """ + safe_with_percent = "!#$%&'()*+,/:;=?@[]~" + safe_without_percent = "!#$&'()*+,/:;=?@[]~" + try: + # Unquote only the unreserved characters + # Then quote only illegal characters (do not quote reserved, + # unreserved, or '%') + return quote(unquote_unreserved(uri), safe=safe_with_percent) + except InvalidURL: + # We couldn't unquote the given URI, so let's try quoting it, but + # there may be unquoted '%'s in the URI. We need to make sure they're + # properly quoted so they do not cause issues elsewhere. + return quote(uri, safe=safe_without_percent) + + +def address_in_network(ip, net): + """This function allows you to check if an IP belongs to a network subnet + + Example: returns True if ip = 192.168.1.1 and net = 192.168.1.0/24 + returns False if ip = 192.168.1.1 and net = 192.168.100.0/24 + + :rtype: bool + """ + ipaddr = struct.unpack("=L", socket.inet_aton(ip))[0] + netaddr, bits = net.split("/") + netmask = struct.unpack("=L", socket.inet_aton(dotted_netmask(int(bits))))[0] + network = struct.unpack("=L", socket.inet_aton(netaddr))[0] & netmask + return (ipaddr & netmask) == (network & netmask) + + +def dotted_netmask(mask): + """Converts mask from /xx format to xxx.xxx.xxx.xxx + + Example: if mask is 24 function returns 255.255.255.0 + + :rtype: str + """ + bits = 0xFFFFFFFF ^ (1 << 32 - mask) - 1 + return socket.inet_ntoa(struct.pack(">I", bits)) + + +def is_ipv4_address(string_ip): + """ + :rtype: bool + """ + try: + socket.inet_aton(string_ip) + except OSError: + return False + return True + + +def is_valid_cidr(string_network): + """ + Very simple check of the cidr format in no_proxy variable. + + :rtype: bool + """ + if string_network.count("/") == 1: + try: + mask = int(string_network.split("/")[1]) + except ValueError: + return False + + if mask < 1 or mask > 32: + return False + + try: + socket.inet_aton(string_network.split("/")[0]) + except OSError: + return False + else: + return False + return True + + +@contextlib.contextmanager +def set_environ(env_name, value): + """Set the environment variable 'env_name' to 'value' + + Save previous value, yield, and then restore the previous value stored in + the environment variable 'env_name'. + + If 'value' is None, do nothing""" + value_changed = value is not None + if value_changed: + old_value = os.environ.get(env_name) + os.environ[env_name] = value + try: + yield + finally: + if value_changed: + if old_value is None: + del os.environ[env_name] + else: + os.environ[env_name] = old_value + + +def should_bypass_proxies(url, no_proxy): + """ + Returns whether we should bypass proxies or not. + + :rtype: bool + """ + + # Prioritize lowercase environment variables over uppercase + # to keep a consistent behaviour with other http projects (curl, wget). + def get_proxy(key): + return os.environ.get(key) or os.environ.get(key.upper()) + + # First check whether no_proxy is defined. If it is, check that the URL + # we're getting isn't in the no_proxy list. + no_proxy_arg = no_proxy + if no_proxy is None: + no_proxy = get_proxy("no_proxy") + parsed = urlparse(url) + + if parsed.hostname is None: + # URLs don't always have hostnames, e.g. file:/// urls. + return True + + if no_proxy: + # We need to check whether we match here. We need to see if we match + # the end of the hostname, both with and without the port. + no_proxy = (host for host in no_proxy.replace(" ", "").split(",") if host) + + if is_ipv4_address(parsed.hostname): + for proxy_ip in no_proxy: + if is_valid_cidr(proxy_ip): + if address_in_network(parsed.hostname, proxy_ip): + return True + elif parsed.hostname == proxy_ip: + # If no_proxy ip was defined in plain IP notation instead of cidr notation & + # matches the IP of the index + return True + else: + host_with_port = parsed.hostname + if parsed.port: + host_with_port += f":{parsed.port}" + + for host in no_proxy: + if parsed.hostname.endswith(host) or host_with_port.endswith(host): + # The URL does match something in no_proxy, so we don't want + # to apply the proxies on this URL. + return True + + with set_environ("no_proxy", no_proxy_arg): + # parsed.hostname can be `None` in cases such as a file URI. + try: + bypass = proxy_bypass(parsed.hostname) + except (TypeError, socket.gaierror): + bypass = False + + if bypass: + return True + + return False + + +def get_environ_proxies(url, no_proxy=None): + """ + Return a dict of environment proxies. + + :rtype: dict + """ + if should_bypass_proxies(url, no_proxy=no_proxy): + return {} + else: + return getproxies() + + +def select_proxy(url, proxies): + """Select a proxy for the url, if applicable. + + :param url: The url being for the request + :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs + """ + proxies = proxies or {} + urlparts = urlparse(url) + if urlparts.hostname is None: + return proxies.get(urlparts.scheme, proxies.get("all")) + + proxy_keys = [ + urlparts.scheme + "://" + urlparts.hostname, + urlparts.scheme, + "all://" + urlparts.hostname, + "all", + ] + proxy = None + for proxy_key in proxy_keys: + if proxy_key in proxies: + proxy = proxies[proxy_key] + break + + return proxy + + +def resolve_proxies(request, proxies, trust_env=True): + """This method takes proxy information from a request and configuration + input to resolve a mapping of target proxies. This will consider settings + such as NO_PROXY to strip proxy configurations. + + :param request: Request or PreparedRequest + :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs + :param trust_env: Boolean declaring whether to trust environment configs + + :rtype: dict + """ + proxies = proxies if proxies is not None else {} + url = request.url + scheme = urlparse(url).scheme + no_proxy = proxies.get("no_proxy") + new_proxies = proxies.copy() + + if trust_env and not should_bypass_proxies(url, no_proxy=no_proxy): + environ_proxies = get_environ_proxies(url, no_proxy=no_proxy) + + proxy = environ_proxies.get(scheme, environ_proxies.get("all")) + + if proxy: + new_proxies.setdefault(scheme, proxy) + return new_proxies + + +def default_user_agent(name="python-requests"): + """ + Return a string representing the default user agent. + + :rtype: str + """ + return f"{name}/{__version__}" + + +def default_headers(): + """ + :rtype: requests.structures.CaseInsensitiveDict + """ + return CaseInsensitiveDict( + { + "User-Agent": default_user_agent(), + "Accept-Encoding": DEFAULT_ACCEPT_ENCODING, + "Accept": "*/*", + "Connection": "keep-alive", + } + ) + + +def parse_header_links(value): + """Return a list of parsed link headers proxies. + + i.e. Link: ; rel=front; type="image/jpeg",; rel=back;type="image/jpeg" + + :rtype: list + """ + + links = [] + + replace_chars = " '\"" + + value = value.strip(replace_chars) + if not value: + return links + + for val in re.split(", *<", value): + try: + url, params = val.split(";", 1) + except ValueError: + url, params = val, "" + + link = {"url": url.strip("<> '\"")} + + for param in params.split(";"): + try: + key, value = param.split("=") + except ValueError: + break + + link[key.strip(replace_chars)] = value.strip(replace_chars) + + links.append(link) + + return links + + +# Null bytes; no need to recreate these on each call to guess_json_utf +_null = "\x00".encode("ascii") # encoding to ASCII for Python 3 +_null2 = _null * 2 +_null3 = _null * 3 + + +def guess_json_utf(data): + """ + :rtype: str + """ + # JSON always starts with two ASCII characters, so detection is as + # easy as counting the nulls and from their location and count + # determine the encoding. Also detect a BOM, if present. + sample = data[:4] + if sample in (codecs.BOM_UTF32_LE, codecs.BOM_UTF32_BE): + return "utf-32" # BOM included + if sample[:3] == codecs.BOM_UTF8: + return "utf-8-sig" # BOM included, MS style (discouraged) + if sample[:2] in (codecs.BOM_UTF16_LE, codecs.BOM_UTF16_BE): + return "utf-16" # BOM included + nullcount = sample.count(_null) + if nullcount == 0: + return "utf-8" + if nullcount == 2: + if sample[::2] == _null2: # 1st and 3rd are null + return "utf-16-be" + if sample[1::2] == _null2: # 2nd and 4th are null + return "utf-16-le" + # Did not detect 2 valid UTF-16 ascii-range characters + if nullcount == 3: + if sample[:3] == _null3: + return "utf-32-be" + if sample[1:] == _null3: + return "utf-32-le" + # Did not detect a valid UTF-32 ascii-range character + return None + + +def prepend_scheme_if_needed(url, new_scheme): + """Given a URL that may or may not have a scheme, prepend the given scheme. + Does not replace a present scheme with the one provided as an argument. + + :rtype: str + """ + parsed = parse_url(url) + scheme, auth, host, port, path, query, fragment = parsed + + # A defect in urlparse determines that there isn't a netloc present in some + # urls. We previously assumed parsing was overly cautious, and swapped the + # netloc and path. Due to a lack of tests on the original defect, this is + # maintained with parse_url for backwards compatibility. + netloc = parsed.netloc + if not netloc: + netloc, path = path, netloc + + if auth: + # parse_url doesn't provide the netloc with auth + # so we'll add it ourselves. + netloc = "@".join([auth, netloc]) + if scheme is None: + scheme = new_scheme + if path is None: + path = "" + + return urlunparse((scheme, netloc, path, "", query, fragment)) + + +def get_auth_from_url(url): + """Given a url with authentication components, extract them into a tuple of + username,password. + + :rtype: (str,str) + """ + parsed = urlparse(url) + + try: + auth = (unquote(parsed.username), unquote(parsed.password)) + except (AttributeError, TypeError): + auth = ("", "") + + return auth + + +def check_header_validity(header): + """Verifies that header parts don't contain leading whitespace + reserved characters, or return characters. + + :param header: tuple, in the format (name, value). + """ + name, value = header + _validate_header_part(header, name, 0) + _validate_header_part(header, value, 1) + + +def _validate_header_part(header, header_part, header_validator_index): + if isinstance(header_part, str): + validator = _HEADER_VALIDATORS_STR[header_validator_index] + elif isinstance(header_part, bytes): + validator = _HEADER_VALIDATORS_BYTE[header_validator_index] + else: + raise InvalidHeader( + f"Header part ({header_part!r}) from {header} " + f"must be of type str or bytes, not {type(header_part)}" + ) + + if not validator.match(header_part): + header_kind = "name" if header_validator_index == 0 else "value" + raise InvalidHeader( + f"Invalid leading whitespace, reserved character(s), or return " + f"character(s) in header {header_kind}: {header_part!r}" + ) + + +def urldefragauth(url): + """ + Given a url remove the fragment and the authentication part. + + :rtype: str + """ + scheme, netloc, path, params, query, fragment = urlparse(url) + + # see func:`prepend_scheme_if_needed` + if not netloc: + netloc, path = path, netloc + + netloc = netloc.rsplit("@", 1)[-1] + + return urlunparse((scheme, netloc, path, params, query, "")) + + +def rewind_body(prepared_request): + """Move file pointer back to its recorded starting position + so it can be read again on redirect. + """ + body_seek = getattr(prepared_request.body, "seek", None) + if body_seek is not None and isinstance( + prepared_request._body_position, integer_types + ): + try: + body_seek(prepared_request._body_position) + except OSError: + raise UnrewindableBodyError( + "An error occurred when rewinding request body for redirect." + ) + else: + raise UnrewindableBodyError("Unable to rewind request body for redirect.") diff --git a/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/INSTALLER b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/METADATA b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/METADATA new file mode 100644 index 00000000..beaaa4e7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/METADATA @@ -0,0 +1,456 @@ +Metadata-Version: 2.4 +Name: stripe +Version: 13.2.0 +Summary: Python bindings for the Stripe API +Keywords: stripe,api,payments +Author-email: Stripe +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +License-File: LICENSE +Requires-Dist: typing_extensions <= 4.2.0, > 3.7.2; python_version < '3.7' +Requires-Dist: typing_extensions >= 4.5.0; python_version >= '3.7' +Requires-Dist: requests >= 2.20; python_version >= '3.0' +Requires-Dist: httpx ; extra == "async" +Project-URL: changelog, https://github.com/stripe/stripe-python/blob/master/CHANGELOG.md +Project-URL: documentation, https://stripe.com/docs/api/?lang=python +Project-URL: homepage, https://stripe.com/ +Project-URL: issues, https://github.com/stripe/stripe-python/issues +Project-URL: source, https://github.com/stripe/stripe-python +Provides-Extra: async + +# Stripe Python Library + +[![pypi](https://img.shields.io/pypi/v/stripe.svg)](https://pypi.python.org/pypi/stripe) +[![Build Status](https://github.com/stripe/stripe-python/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/stripe/stripe-python/actions?query=branch%3Amaster) + +The Stripe Python library provides convenient access to the Stripe API from +applications written in the Python language. It includes a pre-defined set of +classes for API resources that initialize themselves dynamically from API +responses which makes it compatible with a wide range of versions of the Stripe +API. + +## API Documentation + +See the [Python API docs](https://stripe.com/docs/api?lang=python). + +## Installation + +This package is available on PyPI: + +```sh +pip install --upgrade stripe +``` + +Alternatively, install from source with: + +```sh +python -m pip install . +``` + +### Requirements + +Per our [Language Version Support Policy](https://docs.stripe.com/sdks/versioning?lang=python#stripe-sdk-language-version-support-policy), we currently support **Python 3.7+**. + +Support for Python 3.7 and 3.8 is deprecated and will be removed in an upcoming major version. Read more and see the full schedule in the docs: https://docs.stripe.com/sdks/versioning?lang=python#stripe-sdk-language-version-support-policy + +#### Extended Support + +#### Python 2.7 deprecation + +[The Python Software Foundation (PSF)](https://www.python.org/psf-landing/) community [announced the end of support of Python 2](https://www.python.org/doc/sunset-python-2/) on 01 January 2020. +Starting with version 6.0.0 Stripe SDK Python packages will no longer support Python 2.7. To continue to get new features and security updates, please make sure to update your Python runtime to Python 3.6+. + +The last version of the Stripe SDK that supported Python 2.7 was **5.5.0**. + +## Usage + +The library needs to be configured with your account's secret key which is +available in your [Stripe Dashboard][api-keys]. Set `stripe.api_key` to its +value: + +```python +from stripe import StripeClient + +client = StripeClient("sk_test_...") + +# list customers +customers = client.v1.customers.list() + +# print the first customer's email +print(customers.data[0].email) + +# retrieve specific Customer +customer = client.v1.customers.retrieve("cus_123456789") + +# print that customer's email +print(customer.email) +``` + +### StripeClient vs legacy pattern + +We introduced the `StripeClient` class in v8 of the Python SDK. The legacy pattern used prior to that version is still available to use but will be marked as deprecated soon. Review the [migration guide to use StripeClient]() to move from the legacy pattern. + +Once the legacy pattern is deprecated, new API endpoints will only be accessible in the StripeClient. While there are no current plans to remove the legacy pattern for existing API endpoints, this may change in the future. + +### Handling exceptions + +Unsuccessful requests raise exceptions. The class of the exception will reflect +the sort of error that occurred. Please see the [Api +Reference](https://stripe.com/docs/api/errors/handling) for a description of +the error classes you should handle, and for information on how to inspect +these errors. + +### Per-request Configuration + +Configure individual requests with the `options` argument. For example, you can make +requests with a specific [Stripe Version](https://stripe.com/docs/api#versioning) +or as a [connected account](https://stripe.com/docs/connect/authentication#authentication-via-the-stripe-account-header): + +```python +from stripe import StripeClient + +client = StripeClient("sk_test_...") + +# list customers +client.v1.customers.list( + options={ + "api_key": "sk_test_...", + "stripe_account": "acct_...", + "stripe_version": "2019-02-19", + } +) + +# retrieve single customer +client.v1.customers.retrieve( + "cus_123456789", + options={ + "api_key": "sk_test_...", + "stripe_account": "acct_...", + "stripe_version": "2019-02-19", + } +) +``` + +### Configuring an HTTP Client + +You can configure your `StripeClient` to use `urlfetch`, `requests`, `pycurl`, or +`urllib` with the `http_client` option: + +```python +client = StripeClient("sk_test_...", http_client=stripe.UrlFetchClient()) +client = StripeClient("sk_test_...", http_client=stripe.RequestsClient()) +client = StripeClient("sk_test_...", http_client=stripe.PycurlClient()) +client = StripeClient("sk_test_...", http_client=stripe.UrllibClient()) +``` + +Without a configured client, by default the library will attempt to load +libraries in the order above (i.e. `urlfetch` is preferred with `urllib2` used +as a last resort). We usually recommend that people use `requests`. + +### Configuring a Proxy + +A proxy can be configured with the `proxy` client option: + +```python +client = StripeClient("sk_test_...", proxy="https://user:pass@example.com:1234") +``` + +### Configuring Automatic Retries + +You can enable automatic retries on requests that fail due to a transient +problem by configuring the maximum number of retries: + +```python +client = StripeClient("sk_test_...", max_network_retries=2) +``` + +Various errors can trigger a retry, like a connection error or a timeout, and +also certain API responses like HTTP status `409 Conflict`. + +[Idempotency keys][idempotency-keys] are automatically generated and added to +requests, when not given, to guarantee that retries are safe. + +### Logging + +The library can be configured to emit logging that will give you better insight +into what it's doing. The `info` logging level is usually most appropriate for +production use, but `debug` is also available for more verbosity. + +There are a few options for enabling it: + +1. Set the environment variable `STRIPE_LOG` to the value `debug` or `info` + + ```sh + $ export STRIPE_LOG=debug + ``` + +2. Set `stripe.log`: + + ```python + import stripe + stripe.log = 'debug' + ``` + +3. Enable it through Python's logging module: + + ```python + import logging + logging.basicConfig() + logging.getLogger('stripe').setLevel(logging.DEBUG) + ``` + +### Accessing response code and headers + +You can access the HTTP response code and headers using the `last_response` property of the returned resource. + +```python +customer = client.v1.customers.retrieve( + "cus_123456789" +) + +print(customer.last_response.code) +print(customer.last_response.headers) +``` + +### Writing a Plugin + +If you're writing a plugin that uses the library, we'd appreciate it if you +identified using `stripe.set_app_info()`: + +```py +stripe.set_app_info("MyAwesomePlugin", version="1.2.34", url="https://myawesomeplugin.info") +``` + +This information is passed along when the library makes calls to the Stripe +API. + +### Telemetry + +By default, the library sends telemetry to Stripe regarding request latency and feature usage. These +numbers help Stripe improve the overall latency of its API for all users, and +improve popular features. + +You can disable this behavior if you prefer: + +```python +stripe.enable_telemetry = False +``` + +## Types + +In [v7.1.0](https://github.com/stripe/stripe-python/releases/tag/v7.1.0) and +newer, the +library includes type annotations. See [the wiki](https://github.com/stripe/stripe-python/wiki/Inline-type-annotations) +for a detailed guide. + +Please note that some annotations use features that were only fairly recently accepted, +such as [`Unpack[TypedDict]`](https://peps.python.org/pep-0692/#specification) that was +[accepted](https://discuss.python.org/t/pep-692-using-typeddict-for-more-precise-kwargs-typing/17314/81) +in January 2023. We have tested that these types are recognized properly by [Pyright](https://github.com/microsoft/pyright). +Support for `Unpack` in MyPy is still experimental, but appears to degrade gracefully. +Please [report an issue](https://github.com/stripe/stripe-python/issues/new/choose) if there +is anything we can do to improve the types for your type checker of choice. + +### Types and the Versioning Policy + +We release type changes in minor releases. While stripe-python follows semantic +versioning, our semantic versions describe the _runtime behavior_ of the +library alone. Our _type annotations are not reflected in the semantic +version_. That is, upgrading to a new minor version of stripe-python might +result in your type checker producing a type error that it didn't before. You +can use a `~=x.x` or `x.x.*` [version specifier](https://peps.python.org/pep-0440/#examples) +in your `requirements.txt` to constrain `pip` to a certain minor range of `stripe-python`. + +### Types and API Versions + +The types describe the [Stripe API version](https://stripe.com/docs/api/versioning) +that was the latest at the time of release. This is the version that your library +sends by default. If you are overriding `stripe.api_version` / `stripe_version` on the `StripeClient`, or using a +[webhook endpoint](https://stripe.com/docs/webhooks#api-versions) tied to an older version, +be aware that the data you see at runtime may not match the types. + +### Public Preview SDKs + +Stripe has features in the [public preview phase](https://docs.stripe.com/release-phases) that can be accessed via versions of this package that have the `bX` suffix like `12.2.0b2`. +We would love for you to try these as we incrementally release new features and improve them based on your feedback. + +To install, pick the latest version with the `bX` suffix by reviewing the [releases page](https://github.com/stripe/stripe-python/releases/) and then use it in the `pip install` command: + +``` +pip install stripe== +``` + +> **Note** +> There can be breaking changes between two versions of the public preview SDKs without a bump in the major version. Therefore we recommend pinning the package version to a specific version in your [pyproject.toml](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#dependencies-and-requirements) or [requirements file](https://pip.pypa.io/en/stable/user_guide/#requirements-files). This way you can install the same version each time without breaking changes unless you are intentionally looking for the latest public preview SDK. + +Some preview features require a name and version to be set in the `Stripe-Version` header like `feature_beta=v3`. If your preview feature has this requirement, use the `stripe.add_beta_version` function (available only in the public preview SDKs): + +```python +stripe.add_beta_version("feature_beta", "v3") +``` + +### Private Preview SDKs + +Stripe has features in the [private preview phase](https://docs.stripe.com/release-phases) that can be accessed via versions of this package that have the `aX` suffix like `12.2.0a2`. These are invite-only features. Once invited, you can install the private preview SDKs by following the same instructions as for the [public preview SDKs](https://github.com/stripe/stripe-python?tab=readme-ov-file#public-preview-sdks) above and replacing the suffix `b` with `a` in package versions. + +### Custom requests + +If you would like to send a request to an undocumented API (for example you are in a private beta), or if you prefer to bypass the method definitions in the library and specify your request details directly, you can use the `raw_request` method on `StripeClient`. + +```python +client = StripeClient("sk_test_...") +response = client.raw_request( + "post", "/v1/beta_endpoint", param=123, stripe_version="2022-11-15; feature_beta=v3" +) + +# (Optional) response is a StripeResponse. You can use `client.deserialize` to get a StripeObject. +deserialized_resp = client.deserialize(response, api_mode='V1') +``` + +### Async + +Asynchronous versions of request-making methods are available by suffixing the method name +with `_async`. + +```python +# With StripeClient +client = StripeClient("sk_test_...") +customer = await client.v1.customers.retrieve_async("cus_xyz") + +# With global client +stripe.api_key = "sk_test_..." +customer = await stripe.Customer.retrieve_async("cus_xyz") + +# .auto_paging_iter() implements both AsyncIterable and Iterable +async for c in await stripe.Customer.list_async().auto_paging_iter(): + ... +``` + +There is no `.save_async` as `.save` is [deprecated since stripe-python v5](https://github.com/stripe/stripe-python/wiki/Migration-guide-for-v5#deprecated). Please migrate to `.modify_async`. + +The default HTTP client uses `requests` for making synchronous requests but +`httpx` for making async requests. If you're migrating to async, we recommend +you to explicitly initialize your own http client and pass it to StripeClient +or set it as the global default. + +If you don't already have a dependency on an async-compatible HTTP library, `pip install stripe[async]` will install one for you (new in `v13.0.1`). + +```python +# By default, an explicitly initialized HTTPXClient will raise an exception if you +# attempt to call a sync method. If you intend to only use async, this is useful to +# make sure you don't unintentionally make a synchronous request. +my_http_client = stripe.HTTPXClient() + +# If you want to use httpx to make sync requests, you can disable this +# behavior. +my_http_client = stripe.HTTPXClient(allow_sync_methods=True) + +# aiohttp is also available (does not support sync requests) +my_http_client = stripe.AIOHTTPClient() + +# With StripeClient +client = StripeClient("sk_test_...", http_client=my_http_client) + +# With the global client +stripe.default_http_client = my_http_client +``` + +You can also subclass `stripe.HTTPClient` and provide your own instance. + +## Support + +New features and bug fixes are released on the latest major version of the Stripe Python library. If you are on an older major version, we recommend that you upgrade to the latest in order to use the new features and bug fixes including those for security vulnerabilities. Older major versions of the package will continue to be available for use, but will not be receiving any updates. + +## Development + +[Contribution guidelines for this project](CONTRIBUTING.md) + +The test suite depends on [stripe-mock], so make sure to fetch and run it from a +background terminal ([stripe-mock's README][stripe-mock] also contains +instructions for installing via Homebrew and other methods): + +```sh +go install github.com/stripe/stripe-mock@latest +stripe-mock +``` + +We use [just](https://github.com/casey/just) for conveniently running development tasks. You can use them directly, or copy the commands out of the `justfile`. To our help docs, run `just`. By default, all commands will use an virtualenv created by your default python version (whatever comes out of `python --version`). We recommend using [mise](https://mise.jdx.dev/lang/python.html) or [pyenv](https://github.com/pyenv/pyenv) to control that version. + +Run the following command to set up the development virtualenv: + +```sh +just venv +# or: python -m venv venv && venv/bin/python -I -m pip install -e . +``` + +Run all tests: + +```sh +just test +# or: venv/bin/pytest +``` + +Run all tests in a single file: + +```sh +just test tests/api_resources/abstract/test_updateable_api_resource.py +# or: venv/bin/pytest tests/api_resources/abstract/test_updateable_api_resource.py +``` + +Run a single test suite: + +```sh +just test tests/api_resources/abstract/test_updateable_api_resource.py::TestUpdateableAPIResource +# or: venv/bin/pytest tests/api_resources/abstract/test_updateable_api_resource.py::TestUpdateableAPIResource +``` + +Run a single test: + +```sh +just test tests/api_resources/abstract/test_updateable_api_resource.py::TestUpdateableAPIResource::test_save +# or: venv/bin/pytest tests/api_resources/abstract/test_updateable_api_resource.py::TestUpdateableAPIResource::test_save +``` + +Run the linter with: + +```sh +just lint +# or: venv/bin/python -m flake8 --show-source stripe tests +``` + +The library uses [Ruff][ruff] for code formatting. Code must be formatted +with Black before PRs are submitted, otherwise CI will fail. Run the formatter +with: + +```sh +just format +# or: venv/bin/ruff format . --quiet +``` + +[api-keys]: https://dashboard.stripe.com/account/apikeys +[ruff]: https://github.com/astral-sh/ruff +[connect]: https://stripe.com/connect +[poetry]: https://github.com/sdispater/poetry +[stripe-mock]: https://github.com/stripe/stripe-mock +[idempotency-keys]: https://stripe.com/docs/api/idempotent_requests?lang=python + + + diff --git a/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/RECORD b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/RECORD new file mode 100644 index 00000000..e17d3cd5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/RECORD @@ -0,0 +1,2258 @@ +stripe-13.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +stripe-13.2.0.dist-info/METADATA,sha256=MPeUMlPWVKiHrcfd5_530308Etc7Ka14UAbTBkgygTY,18025 +stripe-13.2.0.dist-info/RECORD,, +stripe-13.2.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +stripe-13.2.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 +stripe-13.2.0.dist-info/licenses/LICENSE,sha256=iyi8_6voinKMxI032Qe9df69Ducl_XdJRpEtyjG8YCc,1092 +stripe/__init__.py,sha256=2Z0uIdS09EJvcHsRpnsE-e80xfjMHRTxbcgmD_3OQII,38114 +stripe/__pycache__/__init__.cpython-312.pyc,, +stripe/__pycache__/_account.cpython-312.pyc,, +stripe/__pycache__/_account_capability_service.cpython-312.pyc,, +stripe/__pycache__/_account_external_account_service.cpython-312.pyc,, +stripe/__pycache__/_account_link.cpython-312.pyc,, +stripe/__pycache__/_account_link_service.cpython-312.pyc,, +stripe/__pycache__/_account_login_link_service.cpython-312.pyc,, +stripe/__pycache__/_account_person_service.cpython-312.pyc,, +stripe/__pycache__/_account_service.cpython-312.pyc,, +stripe/__pycache__/_account_session.cpython-312.pyc,, +stripe/__pycache__/_account_session_service.cpython-312.pyc,, +stripe/__pycache__/_any_iterator.cpython-312.pyc,, +stripe/__pycache__/_api_mode.cpython-312.pyc,, +stripe/__pycache__/_api_requestor.cpython-312.pyc,, +stripe/__pycache__/_api_resource.cpython-312.pyc,, +stripe/__pycache__/_api_version.cpython-312.pyc,, +stripe/__pycache__/_app_info.cpython-312.pyc,, +stripe/__pycache__/_apple_pay_domain.cpython-312.pyc,, +stripe/__pycache__/_apple_pay_domain_service.cpython-312.pyc,, +stripe/__pycache__/_application.cpython-312.pyc,, +stripe/__pycache__/_application_fee.cpython-312.pyc,, +stripe/__pycache__/_application_fee_refund.cpython-312.pyc,, +stripe/__pycache__/_application_fee_refund_service.cpython-312.pyc,, +stripe/__pycache__/_application_fee_service.cpython-312.pyc,, +stripe/__pycache__/_apps_service.cpython-312.pyc,, +stripe/__pycache__/_balance.cpython-312.pyc,, +stripe/__pycache__/_balance_service.cpython-312.pyc,, +stripe/__pycache__/_balance_settings.cpython-312.pyc,, +stripe/__pycache__/_balance_settings_service.cpython-312.pyc,, +stripe/__pycache__/_balance_transaction.cpython-312.pyc,, +stripe/__pycache__/_balance_transaction_service.cpython-312.pyc,, +stripe/__pycache__/_bank_account.cpython-312.pyc,, +stripe/__pycache__/_base_address.cpython-312.pyc,, +stripe/__pycache__/_billing_portal_service.cpython-312.pyc,, +stripe/__pycache__/_billing_service.cpython-312.pyc,, +stripe/__pycache__/_capability.cpython-312.pyc,, +stripe/__pycache__/_card.cpython-312.pyc,, +stripe/__pycache__/_cash_balance.cpython-312.pyc,, +stripe/__pycache__/_charge.cpython-312.pyc,, +stripe/__pycache__/_charge_service.cpython-312.pyc,, +stripe/__pycache__/_checkout_service.cpython-312.pyc,, +stripe/__pycache__/_client_options.cpython-312.pyc,, +stripe/__pycache__/_climate_service.cpython-312.pyc,, +stripe/__pycache__/_confirmation_token.cpython-312.pyc,, +stripe/__pycache__/_confirmation_token_service.cpython-312.pyc,, +stripe/__pycache__/_connect_collection_transfer.cpython-312.pyc,, +stripe/__pycache__/_country_spec.cpython-312.pyc,, +stripe/__pycache__/_country_spec_service.cpython-312.pyc,, +stripe/__pycache__/_coupon.cpython-312.pyc,, +stripe/__pycache__/_coupon_service.cpython-312.pyc,, +stripe/__pycache__/_createable_api_resource.cpython-312.pyc,, +stripe/__pycache__/_credit_note.cpython-312.pyc,, +stripe/__pycache__/_credit_note_line_item.cpython-312.pyc,, +stripe/__pycache__/_credit_note_line_item_service.cpython-312.pyc,, +stripe/__pycache__/_credit_note_preview_lines_service.cpython-312.pyc,, +stripe/__pycache__/_credit_note_service.cpython-312.pyc,, +stripe/__pycache__/_custom_method.cpython-312.pyc,, +stripe/__pycache__/_customer.cpython-312.pyc,, +stripe/__pycache__/_customer_balance_transaction.cpython-312.pyc,, +stripe/__pycache__/_customer_balance_transaction_service.cpython-312.pyc,, +stripe/__pycache__/_customer_cash_balance_service.cpython-312.pyc,, +stripe/__pycache__/_customer_cash_balance_transaction.cpython-312.pyc,, +stripe/__pycache__/_customer_cash_balance_transaction_service.cpython-312.pyc,, +stripe/__pycache__/_customer_funding_instructions_service.cpython-312.pyc,, +stripe/__pycache__/_customer_payment_method_service.cpython-312.pyc,, +stripe/__pycache__/_customer_payment_source_service.cpython-312.pyc,, +stripe/__pycache__/_customer_service.cpython-312.pyc,, +stripe/__pycache__/_customer_session.cpython-312.pyc,, +stripe/__pycache__/_customer_session_service.cpython-312.pyc,, +stripe/__pycache__/_customer_tax_id_service.cpython-312.pyc,, +stripe/__pycache__/_deletable_api_resource.cpython-312.pyc,, +stripe/__pycache__/_discount.cpython-312.pyc,, +stripe/__pycache__/_dispute.cpython-312.pyc,, +stripe/__pycache__/_dispute_service.cpython-312.pyc,, +stripe/__pycache__/_encode.cpython-312.pyc,, +stripe/__pycache__/_entitlements_service.cpython-312.pyc,, +stripe/__pycache__/_ephemeral_key.cpython-312.pyc,, +stripe/__pycache__/_ephemeral_key_service.cpython-312.pyc,, +stripe/__pycache__/_error.cpython-312.pyc,, +stripe/__pycache__/_error_object.cpython-312.pyc,, +stripe/__pycache__/_event.cpython-312.pyc,, +stripe/__pycache__/_event_service.cpython-312.pyc,, +stripe/__pycache__/_exchange_rate.cpython-312.pyc,, +stripe/__pycache__/_exchange_rate_service.cpython-312.pyc,, +stripe/__pycache__/_expandable_field.cpython-312.pyc,, +stripe/__pycache__/_file.cpython-312.pyc,, +stripe/__pycache__/_file_link.cpython-312.pyc,, +stripe/__pycache__/_file_link_service.cpython-312.pyc,, +stripe/__pycache__/_file_service.cpython-312.pyc,, +stripe/__pycache__/_financial_connections_service.cpython-312.pyc,, +stripe/__pycache__/_forwarding_service.cpython-312.pyc,, +stripe/__pycache__/_funding_instructions.cpython-312.pyc,, +stripe/__pycache__/_http_client.cpython-312.pyc,, +stripe/__pycache__/_identity_service.cpython-312.pyc,, +stripe/__pycache__/_invoice.cpython-312.pyc,, +stripe/__pycache__/_invoice_item.cpython-312.pyc,, +stripe/__pycache__/_invoice_item_service.cpython-312.pyc,, +stripe/__pycache__/_invoice_line_item.cpython-312.pyc,, +stripe/__pycache__/_invoice_line_item_service.cpython-312.pyc,, +stripe/__pycache__/_invoice_payment.cpython-312.pyc,, +stripe/__pycache__/_invoice_payment_service.cpython-312.pyc,, +stripe/__pycache__/_invoice_rendering_template.cpython-312.pyc,, +stripe/__pycache__/_invoice_rendering_template_service.cpython-312.pyc,, +stripe/__pycache__/_invoice_service.cpython-312.pyc,, +stripe/__pycache__/_issuing_service.cpython-312.pyc,, +stripe/__pycache__/_line_item.cpython-312.pyc,, +stripe/__pycache__/_list_object.cpython-312.pyc,, +stripe/__pycache__/_listable_api_resource.cpython-312.pyc,, +stripe/__pycache__/_login_link.cpython-312.pyc,, +stripe/__pycache__/_mandate.cpython-312.pyc,, +stripe/__pycache__/_mandate_service.cpython-312.pyc,, +stripe/__pycache__/_multipart_data_generator.cpython-312.pyc,, +stripe/__pycache__/_nested_resource_class_methods.cpython-312.pyc,, +stripe/__pycache__/_oauth.cpython-312.pyc,, +stripe/__pycache__/_oauth_service.cpython-312.pyc,, +stripe/__pycache__/_object_classes.cpython-312.pyc,, +stripe/__pycache__/_payment_attempt_record.cpython-312.pyc,, +stripe/__pycache__/_payment_attempt_record_service.cpython-312.pyc,, +stripe/__pycache__/_payment_intent.cpython-312.pyc,, +stripe/__pycache__/_payment_intent_amount_details_line_item.cpython-312.pyc,, +stripe/__pycache__/_payment_intent_amount_details_line_item_service.cpython-312.pyc,, +stripe/__pycache__/_payment_intent_service.cpython-312.pyc,, +stripe/__pycache__/_payment_link.cpython-312.pyc,, +stripe/__pycache__/_payment_link_line_item_service.cpython-312.pyc,, +stripe/__pycache__/_payment_link_service.cpython-312.pyc,, +stripe/__pycache__/_payment_method.cpython-312.pyc,, +stripe/__pycache__/_payment_method_configuration.cpython-312.pyc,, +stripe/__pycache__/_payment_method_configuration_service.cpython-312.pyc,, +stripe/__pycache__/_payment_method_domain.cpython-312.pyc,, +stripe/__pycache__/_payment_method_domain_service.cpython-312.pyc,, +stripe/__pycache__/_payment_method_service.cpython-312.pyc,, +stripe/__pycache__/_payment_record.cpython-312.pyc,, +stripe/__pycache__/_payment_record_service.cpython-312.pyc,, +stripe/__pycache__/_payout.cpython-312.pyc,, +stripe/__pycache__/_payout_service.cpython-312.pyc,, +stripe/__pycache__/_person.cpython-312.pyc,, +stripe/__pycache__/_plan.cpython-312.pyc,, +stripe/__pycache__/_plan_service.cpython-312.pyc,, +stripe/__pycache__/_price.cpython-312.pyc,, +stripe/__pycache__/_price_service.cpython-312.pyc,, +stripe/__pycache__/_product.cpython-312.pyc,, +stripe/__pycache__/_product_feature.cpython-312.pyc,, +stripe/__pycache__/_product_feature_service.cpython-312.pyc,, +stripe/__pycache__/_product_service.cpython-312.pyc,, +stripe/__pycache__/_promotion_code.cpython-312.pyc,, +stripe/__pycache__/_promotion_code_service.cpython-312.pyc,, +stripe/__pycache__/_quote.cpython-312.pyc,, +stripe/__pycache__/_quote_computed_upfront_line_items_service.cpython-312.pyc,, +stripe/__pycache__/_quote_line_item_service.cpython-312.pyc,, +stripe/__pycache__/_quote_service.cpython-312.pyc,, +stripe/__pycache__/_radar_service.cpython-312.pyc,, +stripe/__pycache__/_refund.cpython-312.pyc,, +stripe/__pycache__/_refund_service.cpython-312.pyc,, +stripe/__pycache__/_reporting_service.cpython-312.pyc,, +stripe/__pycache__/_request_metrics.cpython-312.pyc,, +stripe/__pycache__/_request_options.cpython-312.pyc,, +stripe/__pycache__/_requestor_options.cpython-312.pyc,, +stripe/__pycache__/_reserve_transaction.cpython-312.pyc,, +stripe/__pycache__/_reversal.cpython-312.pyc,, +stripe/__pycache__/_review.cpython-312.pyc,, +stripe/__pycache__/_review_service.cpython-312.pyc,, +stripe/__pycache__/_search_result_object.cpython-312.pyc,, +stripe/__pycache__/_searchable_api_resource.cpython-312.pyc,, +stripe/__pycache__/_setup_attempt.cpython-312.pyc,, +stripe/__pycache__/_setup_attempt_service.cpython-312.pyc,, +stripe/__pycache__/_setup_intent.cpython-312.pyc,, +stripe/__pycache__/_setup_intent_service.cpython-312.pyc,, +stripe/__pycache__/_shipping_rate.cpython-312.pyc,, +stripe/__pycache__/_shipping_rate_service.cpython-312.pyc,, +stripe/__pycache__/_sigma_service.cpython-312.pyc,, +stripe/__pycache__/_singleton_api_resource.cpython-312.pyc,, +stripe/__pycache__/_source.cpython-312.pyc,, +stripe/__pycache__/_source_mandate_notification.cpython-312.pyc,, +stripe/__pycache__/_source_service.cpython-312.pyc,, +stripe/__pycache__/_source_transaction.cpython-312.pyc,, +stripe/__pycache__/_source_transaction_service.cpython-312.pyc,, +stripe/__pycache__/_stripe_client.cpython-312.pyc,, +stripe/__pycache__/_stripe_context.cpython-312.pyc,, +stripe/__pycache__/_stripe_object.cpython-312.pyc,, +stripe/__pycache__/_stripe_response.cpython-312.pyc,, +stripe/__pycache__/_stripe_service.cpython-312.pyc,, +stripe/__pycache__/_subscription.cpython-312.pyc,, +stripe/__pycache__/_subscription_item.cpython-312.pyc,, +stripe/__pycache__/_subscription_item_service.cpython-312.pyc,, +stripe/__pycache__/_subscription_schedule.cpython-312.pyc,, +stripe/__pycache__/_subscription_schedule_service.cpython-312.pyc,, +stripe/__pycache__/_subscription_service.cpython-312.pyc,, +stripe/__pycache__/_tax_code.cpython-312.pyc,, +stripe/__pycache__/_tax_code_service.cpython-312.pyc,, +stripe/__pycache__/_tax_deducted_at_source.cpython-312.pyc,, +stripe/__pycache__/_tax_id.cpython-312.pyc,, +stripe/__pycache__/_tax_id_service.cpython-312.pyc,, +stripe/__pycache__/_tax_rate.cpython-312.pyc,, +stripe/__pycache__/_tax_rate_service.cpython-312.pyc,, +stripe/__pycache__/_tax_service.cpython-312.pyc,, +stripe/__pycache__/_terminal_service.cpython-312.pyc,, +stripe/__pycache__/_test_helpers.cpython-312.pyc,, +stripe/__pycache__/_test_helpers_service.cpython-312.pyc,, +stripe/__pycache__/_token.cpython-312.pyc,, +stripe/__pycache__/_token_service.cpython-312.pyc,, +stripe/__pycache__/_topup.cpython-312.pyc,, +stripe/__pycache__/_topup_service.cpython-312.pyc,, +stripe/__pycache__/_transfer.cpython-312.pyc,, +stripe/__pycache__/_transfer_reversal_service.cpython-312.pyc,, +stripe/__pycache__/_transfer_service.cpython-312.pyc,, +stripe/__pycache__/_treasury_service.cpython-312.pyc,, +stripe/__pycache__/_updateable_api_resource.cpython-312.pyc,, +stripe/__pycache__/_util.cpython-312.pyc,, +stripe/__pycache__/_v1_services.cpython-312.pyc,, +stripe/__pycache__/_v2_services.cpython-312.pyc,, +stripe/__pycache__/_verify_mixin.cpython-312.pyc,, +stripe/__pycache__/_version.cpython-312.pyc,, +stripe/__pycache__/_webhook.cpython-312.pyc,, +stripe/__pycache__/_webhook_endpoint.cpython-312.pyc,, +stripe/__pycache__/_webhook_endpoint_service.cpython-312.pyc,, +stripe/__pycache__/oauth_error.cpython-312.pyc,, +stripe/_account.py,sha256=nla4VHlFg1XY4rrJupxVHU1YN9kiKyNntNUEQDZ4muw,113607 +stripe/_account_capability_service.py,sha256=qnaGHyU8Mlow55-aScbz9zVABh4_4cMzBAjhbiRMKHw,5415 +stripe/_account_external_account_service.py,sha256=nFX6B74G3TLmyce5VncKMf_W_K02y9O2hsrGQCt8kzg,9499 +stripe/_account_link.py,sha256=Gd5uXo8L3SViPPrhr2JxIUcijmyU87BrP5k3Ts72OWw,2219 +stripe/_account_link_service.py,sha256=hspdpVVNZPApG0JblqBXrxFhAUHnVXVMBI_s6PBClYs,1708 +stripe/_account_login_link_service.py,sha256=GD8Q6nmgJInQ83pSb-x-4s6ezHCbEnRMbwOP_uvz4NI,2183 +stripe/_account_person_service.py,sha256=7UBTIH78hSR1X0h2nntjiu94ROwPsoI0CozNgOlrM_0,8305 +stripe/_account_service.py,sha256=kb49nHjDt_rIN9V9AVD25Y5oFzZtXFCkEcwhO3R1jUQ,15447 +stripe/_account_session.py,sha256=S8F0UieX66NRrYAGQzmAiYCkDmpZ7OtfWiBxWykC6no,23533 +stripe/_account_session_service.py,sha256=Qx0xqV_gycDFkAZPyvJDt31KGU3WCFqk6ORz_KqX4GM,1689 +stripe/_any_iterator.py,sha256=9rjcsNzvh1lX0-8ydg1NWiLwOwVr9PLmk6d16vsrg_c,1053 +stripe/_api_mode.py,sha256=vXkxG7h6tulh96szEjG_v6o2RuJkANZRkWmMI3CIWvI,70 +stripe/_api_requestor.py,sha256=B8mS8QIeWD4ewelgoDrkCBz1cP0F4E7gtkOiYppwA4c,30718 +stripe/_api_resource.py,sha256=fszRXLbc0wN0qcHT_9WvLbQQkstft06RErBy_2YO8rQ,6560 +stripe/_api_version.py,sha256=PAwqvzIL7vyI-l8I5Mao33D_UwGAsf4bQbptyKutARs,145 +stripe/_app_info.py,sha256=VG82bkGhz3A1m90U4yrnynSYngfl0B7cNflre98O1TE,190 +stripe/_apple_pay_domain.py,sha256=48BqPGzDfqmv24Bd4g8wYmikxTb7iaYIG9PNl9j4UTk,6795 +stripe/_apple_pay_domain_service.py,sha256=oinuhr87KaZQBMVjsHBP8mtJsB7ADwmxaKYMU-XUsfY,5403 +stripe/_application.py,sha256=4Sx0RcHKO6FV1S_5F_k6sf-WctoZ4j-9GtYA5QSCsOo,657 +stripe/_application_fee.py,sha256=r973UgxGOY0J4_qck9jiAW6ooz22_tmbGyrYko3M3WE,20375 +stripe/_application_fee_refund.py,sha256=aFFyV-FM0aBm7mH8AS9XNFIIsOIsI01e8gq7oqSD12w,2939 +stripe/_application_fee_refund_service.py,sha256=ilUjbhZB8mm2zEDbK3YyzWWChpcXlI-yh0s2iN6IBOQ,8443 +stripe/_application_fee_service.py,sha256=qyoVa3UWniTEeFADKrhPEWEfmzmS9XPqjvwWpYGzQWg,4176 +stripe/_apps_service.py,sha256=YPr4e0ScJ8DhNlXOxM_D6wFFKrEGCeDQvsVBsikFtKA,931 +stripe/_balance.py,sha256=CLkpuyN5Mtgz9OIChI8NDT96KOkFhC6mMuhZ6qURZHk,12968 +stripe/_balance_service.py,sha256=72AuQ-KnwQDeEn3ZgmYC0funNDKlTcwVdYuGe3R4LZ0,1855 +stripe/_balance_settings.py,sha256=8_-BOj7m_D9hNkGNE0cIkr16ZEiyAUIt6qQ1N6JDiUI,6801 +stripe/_balance_settings_service.py,sha256=7eecKZUURWWfUvilTkvtyRSqQulm5MczT8BHuHhDRPM,3223 +stripe/_balance_transaction.py,sha256=MWQn299slv6NUgxZq1eGdOIElqcepr-PgC62imcUZaA,11227 +stripe/_balance_transaction_service.py,sha256=-yh6Dv_uv2-Ytve4ZZdXB3mPnw0cBZ6BWPYFIAw5AdU,3778 +stripe/_bank_account.py,sha256=icnuaYkvbPvDIC5hAsKXf-VEXR-xGQ11kh1oGnsI5js,25084 +stripe/_base_address.py,sha256=KOisRNdWeEiguGw-WB1L85QqMg6cEmCjQr8VcLRTWSQ,350 +stripe/_billing_portal_service.py,sha256=sRCpVq-xqtIE2eVKWPmEvL2yqfI7IXfNsapeXD1aGFc,1235 +stripe/_billing_service.py,sha256=7NwEFDpzo-MoFE5qdd2ZdUT51f0sw4DC2iPmnp9T7e8,2462 +stripe/_capability.py,sha256=7JKsHwBDQts7eNyfsaPaYXRaTwjw2aJp4jp6Rv-N1jc,20293 +stripe/_card.py,sha256=ixKg6gB3ebF00z_CQxDWgsNGCxvZn45fOVPla0OzxRQ,12771 +stripe/_cash_balance.py,sha256=6TQchw6gkq8PtLAiqDcNI7ynRh5gGU9RGnJAn1eQPzs,2209 +stripe/_charge.py,sha256=3jJkDroPoTK7Xpqw0QkcsWasjnilci0_sww5tjbtIwo,116520 +stripe/_charge_service.py,sha256=LTtAsFpfvDmK6R7JHCFqGDUVm_FPtY4fdnNJS1Xvt14,10473 +stripe/_checkout_service.py,sha256=pStfjLMuxHj3-yAtEfR7F-k0bhbzBMhaf3BDHOSTxSU,957 +stripe/_client_options.py,sha256=DWy2zY7kLr9I-ymDCWbGZi3KJzY2tbEQJ7VsDbbDQH0,429 +stripe/_climate_service.py,sha256=9OsFgAZbpjP4SY_HoDbOJyRWCI4WbxUQdCLQj_pT8IY,1277 +stripe/_confirmation_token.py,sha256=r9ZQlseB-6MARSQFOaR1FUH6Gg1qBmF-7dwNlrSbLIQ,72511 +stripe/_confirmation_token_service.py,sha256=Es6ykkClpVCZadxntzvQG_p2_YVjpo9yp9ehFU-cgUw,1921 +stripe/_connect_collection_transfer.py,sha256=_-0dfUKmQX7AjanRYMh4jByz_qjgCaoG8qbxlFX0ZJo,1249 +stripe/_country_spec.py,sha256=uopLwolK2TT7ard9afhacmRyO_DdVewRiZDTkeMy2FI,4863 +stripe/_country_spec_service.py,sha256=fCm1EV-xMFJy0RJmvAsApNFCuG43RwRYLgT6hfBdLMM,2972 +stripe/_coupon.py,sha256=CDNJjGrbKN_Z1ucFV36EO-AoVx8-sPG_MS79okZiUVo,14174 +stripe/_coupon_service.py,sha256=MS5d1EiaPj8BMHVUtbYwiA7p9K0txJXOR1XVcsxDZ2M,7982 +stripe/_createable_api_resource.py,sha256=xc_pgMSZb61BigIgnFRMsYXoeSVu3m5yZavYirMxjlo,382 +stripe/_credit_note.py,sha256=xA___k-svZv2aCBXWsC5mPqcKvV6iGfuvp1irHUCwlo,26293 +stripe/_credit_note_line_item.py,sha256=ZxmBBgkwLmxPkQsGyVbVCfvEQMIR6AATzL63hU086z8,5425 +stripe/_credit_note_line_item_service.py,sha256=CViO927qWHToB6qHu2_DVt2yYnkgZE6HeZOnfxfc_6I,2231 +stripe/_credit_note_preview_lines_service.py,sha256=aSxlh7Z6cAPz0qT0wBOUuhAlAAIUmmprhxo2TIlul24,1930 +stripe/_credit_note_service.py,sha256=hqfl1U8O_4FwQBdYMHiRMNslGhLaXrIGtFDt5qU9Pho,10932 +stripe/_custom_method.py,sha256=uCDld6gRHyEs7mheY4wSEDNW1MPuEqnEQ2cuTF8dl1U,2537 +stripe/_customer.py,sha256=F9Y9MpOpCvdniLLIuSKCY058qiX9u4pf6C6vZ1nN5H0,71041 +stripe/_customer_balance_transaction.py,sha256=4JKRqvGUcTT2OGOBUVixmfygD2lobJdfXXgf1wwCqBs,4799 +stripe/_customer_balance_transaction_service.py,sha256=CqvjAI3BC5l85Ed8T15PmyN40EtAy3qwM39ZBH9XDvI,7591 +stripe/_customer_cash_balance_service.py,sha256=FuNZE6vo2ro7C32SDVlKgN6sN2BB8hXGFqQ_Ts2GbRg,3222 +stripe/_customer_cash_balance_transaction.py,sha256=34v4ria7ZbLT_lr7ilEGTMbF871Hpk-3MIgKvTKSKR8,8338 +stripe/_customer_cash_balance_transaction_service.py,sha256=4Ke_2grZh5cP5BgwbNDgopQFV91ZsuSkSBDZyVSh6p0,4289 +stripe/_customer_funding_instructions_service.py,sha256=h5AbcavW_QX7O-J7dp9IEFiIqy8rFsVVlbd0571Y3eI,2526 +stripe/_customer_payment_method_service.py,sha256=ZsjJKhPsmy3Jv9rkJftiOK_oawD5sDHrLydVdOtc8bc,3615 +stripe/_customer_payment_source_service.py,sha256=5UCmtWddC30EIAUSU6kCq9WlEfri6dWby8zNBzAvdWs,10916 +stripe/_customer_service.py,sha256=uTVD6VxwZ-NAATORO3EmSXYyo1pZtelF23O_rp3yCTE,14565 +stripe/_customer_session.py,sha256=vAQs4Te-BnsXHglczdQXW6uvd8ftAt9eG2cSdzVapFo,13073 +stripe/_customer_session_service.py,sha256=GD1BzbxB-PYAziDGa8Ech98bq5sSwupOGwhtd_jR-3M,1764 +stripe/_customer_tax_id_service.py,sha256=Zyj6kuwdZwQf1TfV_uOQY2XikbJDkMSIRrVzy7wct7I,6083 +stripe/_deletable_api_resource.py,sha256=u_IfqH5XOtnpYazHcrniM4tvQKIOZHDlVcZMrIP1JYw,712 +stripe/_discount.py,sha256=TRfwEAVG4qtL88a8_HvYacv-m5qvVS2CzhN162rel08,3114 +stripe/_dispute.py,sha256=jZy3SyCpjGBFhrLWtzJkHq0t0rfKflJ2CN2WiaQSy2Q,31191 +stripe/_dispute_service.py,sha256=bmEjwlqeC8q0VkwcM3dT6zayGEHWnMlwQYf0ARpemPc,6740 +stripe/_encode.py,sha256=1b8ucxSKbjiMJt2otFdHQfO9p7oBbhn__t3HX-Blx7Q,1880 +stripe/_entitlements_service.py,sha256=6vCdJbE8B5_E5BJFjF495N5FYyWxoMgzxrjxrirTHxE,1258 +stripe/_ephemeral_key.py,sha256=h6yx9vD-j8U2ziYNEgeFxmLKnx3Z6fW6qV0ecRIe23Y,4512 +stripe/_ephemeral_key_service.py,sha256=X5DWfLGUrHL4lLf4_IMq4YBvLFSSOQ9uFsk2wJsx3Bg,2827 +stripe/_error.py,sha256=4eKtrUu2mYVvda38Fc31RRr8EFv9OQ7rIREPTSxI3ec,5561 +stripe/_error_object.py,sha256=OId4O0WV_IartL4jpcmEwdchVgj2g_q633w4CXRrtrk,3973 +stripe/_event.py,sha256=H9Lzwgeq7Eob_U1r_1352Tx-qpGHYmf5ZVmn2jIqV_8,16493 +stripe/_event_service.py,sha256=iWuWkDDGef264ct7wdPk5ntmo_JXGXNBaK60u_iM5AY,3390 +stripe/_exchange_rate.py,sha256=hnumqLfE9AdIQNsQyYoQ7HRVBha5KPgAG7FJ17PRS48,6008 +stripe/_exchange_rate_service.py,sha256=xQSG9jN6WrJsLSLA8nfY5-EjnjTUfuT7V0KOAdk4saM,3975 +stripe/_expandable_field.py,sha256=Ci6cUuB4PeMFOc2I9NTdK3Xfm_L4vh_1HCfBX-1bC2g,84 +stripe/_file.py,sha256=WAlKH5t3srIleAgIv1S0gtFbQngFCGZQNdM2NkzPFpA,7125 +stripe/_file_link.py,sha256=yJ0UG78-ZN67pQK0e1EjYDYNmxExqyJOPmCgGo3CvUE,5673 +stripe/_file_link_service.py,sha256=tSEBEcEPQqAXFFvohya_v-rp3qpJr57i2KCrNdKEDTw,5018 +stripe/_file_service.py,sha256=UbXy2764SbxlMV2R7e_nPvDtI-e3pIz26vyBYbcmtdc,4986 +stripe/_financial_connections_service.py,sha256=ZOaLICnlkBTTjMxoNwCIdjOYbwRrxGeoxrloe8W8anc,1495 +stripe/_forwarding_service.py,sha256=JpcI4saR5CemspZccL9hfyKcHUqizrFvlH8AYYkic2Y,963 +stripe/_funding_instructions.py,sha256=MjNz35PLFjFPi3hTd1Oz9WDNfg8d5AbVYBnyLMS3Iv0,21685 +stripe/_http_client.py,sha256=5sONUpG9WV23GBCxBqr0fFtM4Dj8EpYzPvq8Eu2rYlQ,50233 +stripe/_identity_service.py,sha256=EstRVD5SiF3pB7ZRZa0rp7EHsyr0_S1Nps7U7kMSZx0,1373 +stripe/_invoice.py,sha256=yhtCZIBuYAPqv8x1p1mA1TbEKOXIombpAfJv-rzusdc,128077 +stripe/_invoice_item.py,sha256=P9bCR64VqxdCS9KBMFhNLMQuvD5r1Hq1_OdLf7CGIE8,15952 +stripe/_invoice_item_service.py,sha256=fBcBKlR4CCql33slQHCskcFtRUPCRoH047uscdBTvPw,7817 +stripe/_invoice_line_item.py,sha256=70zZ4U_c3y1ivk7bbbv9E5ebtbxt-OusO_CyTdLjADY,12585 +stripe/_invoice_line_item_service.py,sha256=Kcc5lp0Z_hC2CHV8nVhioJ6ypaHIx7LeqrQgJIwhDvE,4552 +stripe/_invoice_payment.py,sha256=oS0JSaM29Tx_kVV5zpotU3f_UyOarV6LS3XMxmkTjQY,6580 +stripe/_invoice_payment_service.py,sha256=CDJWJhbw1pObyHtn1cxsw-NjQPvSbNMhTGnfHAp-AFk,3408 +stripe/_invoice_rendering_template.py,sha256=DsGYiB1ZoDRt-WafyEf4_u2RQTdRl-Ww5yE9yMBUi0A,14024 +stripe/_invoice_rendering_template_service.py,sha256=JgOMjEpbPFcooH12XgRIN8rT6v85zHGk2u1Bcv3BCVE,7291 +stripe/_invoice_service.py,sha256=sdXys5Rkym8h4xO9oo2FIkbq4qb83e7tNJOpTSwk6sw,31869 +stripe/_issuing_service.py,sha256=q9L4XSEfv4cj31XYf_33OCo-41GqZ0ny2wJYsTEK8E4,2429 +stripe/_line_item.py,sha256=pWkhmeHg6XrSrdHtvlL4r5-6ahVboIhf-vhx_Pyqaw0,3925 +stripe/_list_object.py,sha256=pN41ViNNbG8qAVwqRZ9tYeSQn6pf3GMaoQfXi44Eb-w,8052 +stripe/_listable_api_resource.py,sha256=sPGGUcszeAuA5JcS601AgW5HXR4ARH970wf4GOX_DqU,957 +stripe/_login_link.py,sha256=Pb2d7VynazOexx8drGN_huH4TPWByeyYxYOcQvvRUlA,980 +stripe/_mandate.py,sha256=hPxK8SFiT-XrKTaFOoovsgo9saR_iXfDwZv6P3nv2so,8626 +stripe/_mandate_service.py,sha256=JG4k5moXwdAY_aNyXnZ_TB66QB5PtU0DU6-wsWSHorI,1566 +stripe/_multipart_data_generator.py,sha256=hNUqK0yj-c7ReQZOjQAtowmUzwlkQd2w4-46cD_bzsM,2710 +stripe/_nested_resource_class_methods.py,sha256=lpuf5o2q5RPLaRuT-Kp5hhPnHxs1PHOHe76JEbpfKmw,4092 +stripe/_oauth.py,sha256=8vmv63YExeMDBHUTTJ2SALIZ1iU0CvjU-quUI1uXu3M,15290 +stripe/_oauth_service.py,sha256=s6Lh_EtpUvlK0ffzXA5eAm9MsWEitRmyPCDCOCnFqf8,3682 +stripe/_object_classes.py,sha256=2qUcYpZKakPgluLdZaXHWJu9NbFOwldIEd8Ol3Whc7M,13298 +stripe/_payment_attempt_record.py,sha256=KjQdYr6xiijjAQdwOkvg9FNknAY1LtssZen_9qP2_4Q,80661 +stripe/_payment_attempt_record_service.py,sha256=adfRmWxcGBscaq279XxBy4uFYWQ1-AYb5CUuG_d_NI4,3111 +stripe/_payment_intent.py,sha256=_xI65HwN8qcQrDOyqOn9d2iYP2Qpw2haBo9cZxWLYYM,222661 +stripe/_payment_intent_amount_details_line_item.py,sha256=uzc0CoTKZsBmhjDIr_fJJT--ikOrlpUoWbhxnJdmCGU,3957 +stripe/_payment_intent_amount_details_line_item_service.py,sha256=tuqnBDtIPo3u7Uekk-sX6j18BzSgSoJIC9yEIDtCAGM,2194 +stripe/_payment_intent_service.py,sha256=NeNP7P664GhgbDMNqjUxfXN0jOWirvgXfKCttqMMpMw,28338 +stripe/_payment_link.py,sha256=GVyxYH32lS3J5TpRUGTcSOzPhBnHDcqxIaKUs0d3bUY,40022 +stripe/_payment_link_line_item_service.py,sha256=MfZbox2Adnf_sdBps5piFTuxqc9VAp3gg9r4U-J27os,2226 +stripe/_payment_link_service.py,sha256=T2itBF0tCnTYJkuqTroZv4twXiC79UELJulyK7I1pK0,6173 +stripe/_payment_method.py,sha256=4E0oGVMcBm8CJSUj_l0BRy3Tv3-v-tegpHKh59Nvv34,82986 +stripe/_payment_method_configuration.py,sha256=f3P7Vx5mcMvDk6AYg4suucDKXZVd5pwasKBI8UhLtZ8,56758 +stripe/_payment_method_configuration_service.py,sha256=VtCeIgGIbSWN7DQCn3kU26ORe4Mkis25tYaI13sLOmc,6137 +stripe/_payment_method_domain.py,sha256=ZZm1f0yqJsvE3yWiSvy-UXvl1J3dA8HN_d3Cqv83bIQ,18960 +stripe/_payment_method_domain_service.py,sha256=QKQtLK518dYxCHwoF8CPYSqsSFqhFx8rNWCF0d9cAME,8776 +stripe/_payment_method_service.py,sha256=KYljpSojBfH7e5PnrNR4ptWCg31nw3AdoZsusEsIR8Q,12839 +stripe/_payment_record.py,sha256=n4XerHS3YmUSF9NfqPgEL8QwAA7wqdRM4B82qkA-Vmk,105745 +stripe/_payment_record_service.py,sha256=VAdeh7ND47-X7718_OTTJu5jr0YJuu-Dh1K18POW5Go,12878 +stripe/_payout.py,sha256=Sne0xvnNM5SVTKN9T-BmRdxrwWO7OIONfvjXRZ9DkYk,23275 +stripe/_payout_service.py,sha256=MfR-0-xWsKEuir6iUgf4RIefolZkRtzkHSdhA_7Hklw,10665 +stripe/_person.py,sha256=LegHYriEJETevMlEcWWmYn0NuZQVE-mcVxQBntQO9Rk,36048 +stripe/_plan.py,sha256=l0n894sGA1BB_7VwNxjtv2cfA-VXSU34cwOV-V7JDmc,13832 +stripe/_plan_service.py,sha256=WH1C7bXLHwe1zTM5sC3VkxkLsf8qgGEtsinsI4967GY,6634 +stripe/_price.py,sha256=_hzochPl8CnSx_9QP1N5YgXCNNe09Hh5CJ-a8IAlIjk,18215 +stripe/_price_service.py,sha256=Pzare6dDaP6lKpv0MqVqgoGdWc59UAwjV3mZ8MA7XGA,7627 +stripe/_product.py,sha256=gschUY4lh-Ph8OCuVIR4oDhiai7t5eSeHzyStReUoZE,20922 +stripe/_product_feature.py,sha256=FdUDATTxLA0PWlT9979vHopKXcHvNW6MJKG2OqbH6qI,1362 +stripe/_product_feature_service.py,sha256=adhYjUTLAlV7xB6kLdMfszagMybuo8kIbbwPn9M0kuI,6362 +stripe/_product_service.py,sha256=lG-HgwnU92Aq8dE0SVbOZ5WkPZIM9qipOXkVzwia_t8,9868 +stripe/_promotion_code.py,sha256=vsJGdpWvICK2mtMvhjgyvD82TWRcMnO2WWMioIpWYvc,9174 +stripe/_promotion_code_service.py,sha256=H5tjCJ10ExsQLEcqZFmFycsAxlAqIu1uiPH6KHj2jcA,6295 +stripe/_quote.py,sha256=G9tSNBf5vu7hh3Vw2mKoJynf8cQoWR-m64TTro6KCYc,51147 +stripe/_quote_computed_upfront_line_items_service.py,sha256=OhHGUyryTqb2iio0RqjDcEpuGraPKq6W3st-2TH4yQ4,2449 +stripe/_quote_line_item_service.py,sha256=IfuiEhdylKLUrgxA-Y46uzOZXVjdwNRb5__CcEKmGmo,2111 +stripe/_quote_service.py,sha256=TLtT3BalPySwooxMCMPFAqj1JO9dAjCX1eyEH1a9Rvo,11253 +stripe/_radar_service.py,sha256=vNZKU-0MXTBJerlctK7SbG7jWbTUbhcKhR40-ZvP08w,1479 +stripe/_refund.py,sha256=syexqMpVsqW97vzW4ss-wxRB8SEHMeegkAN79KAHnZc,28866 +stripe/_refund_service.py,sha256=qlyLUWYcbP8llB_TzxaQ0HniobpfcVgcs2HoTy6WjT8,8442 +stripe/_reporting_service.py,sha256=c1y4pn3kKTraKywCELieMHSshL19XXsn0ZsFeFZ0y_0,1218 +stripe/_request_metrics.py,sha256=1y4C-YwU3gZbTQUBACHVgbSA6mWJjUr4oW9F2WkmrjE,551 +stripe/_request_options.py,sha256=HUS3sUePCj5-cTeefsidpBHvFEVAuPIclXOu4DKbQEI,2889 +stripe/_requestor_options.py,sha256=jccX9q_zCfVsH38TcFJAmMTgz8RDKex7Vn8HfzNP6ZE,3016 +stripe/_reserve_transaction.py,sha256=9Z_NQ9xpRnaIMIx9JxQ-YIWTdwEN1ENNdQ6noqFq6l8,894 +stripe/_reversal.py,sha256=mGX4xr0mXZMHtUDTUzVrPwbRyErmQrsI-z8SGHzRz3k,3851 +stripe/_review.py,sha256=0cvHkLhC-66hgwFAbQzG5GkqN1_SilEhd4TJM1BhDos,9777 +stripe/_review_service.py,sha256=svDvFMP61ZzaR0TzN-kRtdTNQ6VeGYMr_5bYboJTOeY,4312 +stripe/_search_result_object.py,sha256=lGppUgzbaWIUm58d9nYtGwYQU-YA9Bq1XVx7jPJ3apU,5602 +stripe/_searchable_api_resource.py,sha256=IlIfO7eCxgTcsDf0i1XEsGa5gfpETI3w6CFgrwS9wVo,1333 +stripe/_setup_attempt.py,sha256=GQZ-P-fX4-xdswFKMBB0yZQe2OffGTAE1XVZ092z49k,35933 +stripe/_setup_attempt_service.py,sha256=SzkWA98JpQ_gLkUzY90q_yE_77yZr6kF1zlinRhDSP8,1593 +stripe/_setup_intent.py,sha256=CGRjFJuEGI9KZn9PYITok-qnoWzllLwNNQATnCeRK-E,62617 +stripe/_setup_intent_service.py,sha256=jOkzrp4IEjxHC8E_KyU9Than1ONj5h-kwVby0VpYke4,12732 +stripe/_shipping_rate.py,sha256=5sRpFLXSNJihYvQrO4fv_XtTp9-ClkcCnl5a37s6IaI,8912 +stripe/_shipping_rate_service.py,sha256=vt44VCbzine03BoY7UbO_G8iI4myaWtqfsjfcJDk20g,5609 +stripe/_sigma_service.py,sha256=att1t3sHLsiEGLDWX1SECWoG3CAaU-Ch38R1DDV9W9o,1066 +stripe/_singleton_api_resource.py,sha256=FO1wyWT0rTMQZddpkhsvK1y_VVoeoOPGH5aHMgEf3JQ,991 +stripe/_source.py,sha256=zRgt6JQWGWO0GTsjtVLI-Po27Icr3FsO23yNoXdyuS0,34482 +stripe/_source_mandate_notification.py,sha256=LJVWG0O3HcKFo8bGg9dutVpmp5JZMC265UVpHYZHBSg,3608 +stripe/_source_service.py,sha256=hF3vERTzN-e6vYIViso9hn7boKwXNgrJ6W73yg-N5V8,8483 +stripe/_source_transaction.py,sha256=J_E05echUlVn7-fm37ZJLm6jfUGFhNjr7YvIo6Tnscc,5425 +stripe/_source_transaction_service.py,sha256=1bZ9wnppnUR3vi4vjVXuN8Qmddfcj1Tylm3hXWJfzxc,1908 +stripe/_stripe_client.py,sha256=Ov5h4hmZC0pI_F418llehI9i_UR8bb5TXNQVq9b3HzM,49239 +stripe/_stripe_context.py,sha256=t4iOuJY5sEvnNxLTHxj2XqyqotyNZKJWxrZCTCzO5dQ,1368 +stripe/_stripe_object.py,sha256=pTMC3KoR1FvpKSarBKr6cF3u888FMlwo2-aR_tvCblw,20102 +stripe/_stripe_response.py,sha256=KvmZgTlmr_Gc5m_fe_RY85LuBfWfa92BRsCtYf3Tj5s,1693 +stripe/_stripe_service.py,sha256=2hQYjj4k99BTxbjcw4lkvLFGAkYN5H1xN8F9iOIfF2I,2358 +stripe/_subscription.py,sha256=4L9cGgxp_CtMfqHE-FTnQ6wNzvRlW37HqBQ0jhvHNgk,70969 +stripe/_subscription_item.py,sha256=X4w2Mv0K7huvKjCqM0TDqoQyAmOuKjnexAit9xmOQGM,12805 +stripe/_subscription_item_service.py,sha256=LZ2KEmaQGPdldt_ewkl8ZaMywqwSUgL3GaL9JPQI1-k,7041 +stripe/_subscription_schedule.py,sha256=1XuwYPtuVC6tQlRg61CyYT85BX3x1edESWfQ5FWugc0,42317 +stripe/_subscription_schedule_service.py,sha256=YfWAA7x6xCwxAh-gNb3u_BMRIM18C8C-Wa9kz542K_Y,10262 +stripe/_subscription_service.py,sha256=Ig-iGEk9UDu-4ili2eCDUkxw79tQ84I-XY6Rq6xVr0Y,23779 +stripe/_tax_code.py,sha256=vg-GL0RFri0426Deza1koYyeTxJaFtVSb4q1oBexan4,3099 +stripe/_tax_code_service.py,sha256=Q6oDoMLrwOxu5zx6c-WzUn40uKaoHkKSY2nrBJd5t7I,3109 +stripe/_tax_deducted_at_source.py,sha256=PPpyhaj7ifnPMgMfMJuA0BQaTZKmYBaLpzQxLCooY9k,951 +stripe/_tax_id.py,sha256=B53gDb94QCk2iH9hPT8Fpa4f2de4Y6M95omcCJAtpvo,11854 +stripe/_tax_id_service.py,sha256=b70LsP9s2iGoUkRUXLXsY4LQbWVDtWfqX20qDBrK7ZM,4853 +stripe/_tax_rate.py,sha256=-AfuSdSQpupYejB_6dqjXXjcvMZ8nO4jEjkBraJVZjc,9100 +stripe/_tax_rate_service.py,sha256=CmY-xF5YNbnWhDHpxTp0slcs_1LmsOzks4WUpz7a74A,5295 +stripe/_tax_service.py,sha256=Pr2mCnEokB_P0aEvtv0B_6DZTGAa1i57d5ZCLZO3vew,1532 +stripe/_terminal_service.py,sha256=Fs0b95mZL_6IXHPlbt1qdvmrNa7HSH6h4QxMXruZ9Mg,1623 +stripe/_test_helpers.py,sha256=UPtP_snexB_iUnH1JaJRgXnr0zzs5ZgH2jLP5VG9TdM,2205 +stripe/_test_helpers_service.py,sha256=PFqqMMFnSanfwm07dBueNeky7vvVFOLgENE4FH7udaM,2181 +stripe/_token.py,sha256=q8hr_xues0v7-ZYW-zB_6qB11mtGaGIifLFmKR0GxZA,5753 +stripe/_token_service.py,sha256=eEy8gFmqey67eyj9vzcpNzBx2e9vQ7_a-YTmXCz5l80,3435 +stripe/_topup.py,sha256=LdlqK9rd-aecR0fSEY26tMqeUCBoYHyDzPlrGWRD14Y,10439 +stripe/_topup_service.py,sha256=pIodj0oOXyG3zOi65TiGYhzp92XqSrZZwnECNsmNk64,6429 +stripe/_transfer.py,sha256=_WN5kZ4ouDiq3E25j7f17nePlvBJNXqubPB1cxpYm7Y,15787 +stripe/_transfer_reversal_service.py,sha256=r0dS9B1890DRuk6wOX9RU1w1Ur2x4dfpPqmljmOZ9oA,7919 +stripe/_transfer_service.py,sha256=CnYPSx9DU0X1JwalebRUklWtxd7oSwhFqoPVddalvcc,7280 +stripe/_treasury_service.py,sha256=MHGqcsuB3U3y1SaMc4pV47k4OYmxSZps96PYeCY5RJs,3324 +stripe/_updateable_api_resource.py,sha256=8beWYGODTUZAE88s30j6dgGcPky7HvhhhVqpzWHgagw,1126 +stripe/_util.py,sha256=up3j7vrqMklyFUWx_LqGO1c00argtkw_jsIiChFEqAw,13792 +stripe/_v1_services.py,sha256=9YpgDvNmUVhSBXgX82lh6tuSHJiKszd3uXfBpQCRCMU,13855 +stripe/_v2_services.py,sha256=V4eyIITjW6PS5Iw5ZTHuk5JH1Yab30AN-NEWtGAzbms,1070 +stripe/_verify_mixin.py,sha256=3nYNIb7QeFnzpcdc-QfDbbLxpCd0jBS70Oldq-hNdjE,494 +stripe/_version.py,sha256=Wwd4Pr0lz1KDrH8VzoxO5-GewMb509kchWw3HdODSi4,19 +stripe/_webhook.py,sha256=J9wc4Rj7vmqzYuUtCrPXdIueK3AUU4uQrl2-7lBm-SM,2958 +stripe/_webhook_endpoint.py,sha256=NlmsCsmVme1siDylmrIvtrRJA_HV87F98XOow7MYjXQ,11640 +stripe/_webhook_endpoint_service.py,sha256=jsLUHRIMe6WO9AACPpwZACOWLpHivAX50gKKtkSaEdg,8484 +stripe/apps/__init__.py,sha256=VYWscDLP3di4F1I922q598RKQbGcTJhFqhGlp7lkVe0,823 +stripe/apps/__pycache__/__init__.cpython-312.pyc,, +stripe/apps/__pycache__/_secret.cpython-312.pyc,, +stripe/apps/__pycache__/_secret_service.cpython-312.pyc,, +stripe/apps/_secret.py,sha256=x7lywDp3qZP_0nPJK26Z2pNTe-cARWJ8CUYO9HQH4z4,6326 +stripe/apps/_secret_service.py,sha256=h5UHgiUF_xWkiEnVa-JB_x0EBj1aNZFy3DskUF3lbgQ,4709 +stripe/billing/__init__.py,sha256=gvPziCn2f4_8rrQX1j2hQUZ4Cin3XXgOkzQUxe4cgms,3693 +stripe/billing/__pycache__/__init__.cpython-312.pyc,, +stripe/billing/__pycache__/_alert.cpython-312.pyc,, +stripe/billing/__pycache__/_alert_service.cpython-312.pyc,, +stripe/billing/__pycache__/_alert_triggered.cpython-312.pyc,, +stripe/billing/__pycache__/_credit_balance_summary.cpython-312.pyc,, +stripe/billing/__pycache__/_credit_balance_summary_service.cpython-312.pyc,, +stripe/billing/__pycache__/_credit_balance_transaction.cpython-312.pyc,, +stripe/billing/__pycache__/_credit_balance_transaction_service.cpython-312.pyc,, +stripe/billing/__pycache__/_credit_grant.cpython-312.pyc,, +stripe/billing/__pycache__/_credit_grant_service.cpython-312.pyc,, +stripe/billing/__pycache__/_meter.cpython-312.pyc,, +stripe/billing/__pycache__/_meter_event.cpython-312.pyc,, +stripe/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc,, +stripe/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc,, +stripe/billing/__pycache__/_meter_event_service.cpython-312.pyc,, +stripe/billing/__pycache__/_meter_event_summary.cpython-312.pyc,, +stripe/billing/__pycache__/_meter_event_summary_service.cpython-312.pyc,, +stripe/billing/__pycache__/_meter_service.cpython-312.pyc,, +stripe/billing/_alert.py,sha256=BpzYsVdMkpznjBR9Z8kp3demfz2BFzo5qViXE41jxbw,14606 +stripe/billing/_alert_service.py,sha256=viwoEyO2cfQEYc7lIPWjvC-Gq4y38FDqhOmP8Jwe_dY,7573 +stripe/billing/_alert_triggered.py,sha256=xzxaHDgliVBNdvQWGg8soF-vvpVefp0gSjkiTPj829c,1211 +stripe/billing/_credit_balance_summary.py,sha256=l31pVBL87A50CxYZreBsS4otE8VIrdNxZLeblViY0Oc,4067 +stripe/billing/_credit_balance_summary_service.py,sha256=V3tH3ltOOrPFaV5fiau9-b-fziQ_8X2RvOhq6iHSRUE,1631 +stripe/billing/_credit_balance_transaction.py,sha256=wN41pISDnVk8-EEy3JOfjsgITNS_QGbrMTWt3DJAwrI,7776 +stripe/billing/_credit_balance_transaction_service.py,sha256=fzjIF9kCap0PzXTbn6ZW0ra-wK0qDl4s7hTC86FPbj8,3266 +stripe/billing/_credit_grant.py,sha256=gG2SMK_vH5K7pN54BuSdWmR9rnzX56daGRxI5Nn0XfM,14651 +stripe/billing/_credit_grant_service.py,sha256=uGldXJqTkAKWkwcyF5hsfbIWyT60zMbroKdXLpGSdfI,7760 +stripe/billing/_meter.py,sha256=EjJhicN0COowBAJPmVkH1wfeCKxXfK6qHGOUc0zGYag,15456 +stripe/billing/_meter_event.py,sha256=6Rw71P6spQtHfDg-cQXLoWoZTIXtdwVjzerjGQEdsTc,2691 +stripe/billing/_meter_event_adjustment.py,sha256=xqbzVUkzVLMEtebf3b6Ci5Y-SF5r8UiuBvW-SgKLwDk,2693 +stripe/billing/_meter_event_adjustment_service.py,sha256=B_fyE0riP0ASX9YBzsZmtn-7kKqq2PTunBMlv96xFSs,1601 +stripe/billing/_meter_event_service.py,sha256=ktU39_ovZ0hyWnPkfUWEpEiPzLtEUjobcBfS-JKX8eg,1445 +stripe/billing/_meter_event_summary.py,sha256=lL3fnslJfuXYid9kBz04bdjqBHjnvlgAelrG0VpgqKY,1628 +stripe/billing/_meter_event_summary_service.py,sha256=fMkarK6BJI20VgMo8BegvLpxkDrlwDz51JXz_DEbrOU,1876 +stripe/billing/_meter_service.py,sha256=pDfKcr18ZVDCeYKb9WuHoyb4Sr3TMsWnZiijr9AtGRM,8624 +stripe/billing_portal/__init__.py,sha256=2SHtYItaLnTnj1pK-FEgiDPBDlBwvJFkZ6w9f_mZryE,1292 +stripe/billing_portal/__pycache__/__init__.cpython-312.pyc,, +stripe/billing_portal/__pycache__/_configuration.cpython-312.pyc,, +stripe/billing_portal/__pycache__/_configuration_service.cpython-312.pyc,, +stripe/billing_portal/__pycache__/_session.cpython-312.pyc,, +stripe/billing_portal/__pycache__/_session_service.cpython-312.pyc,, +stripe/billing_portal/_configuration.py,sha256=Vo-HzHcCWrgcW1Lf90SBwfb2CTiTIUcE8wxuW-cVCgg,14216 +stripe/billing_portal/_configuration_service.py,sha256=nVkJLYnAzLDRmzNtFud6GnU1D0gixGRRxQFPWb51v9g,6101 +stripe/billing_portal/_session.py,sha256=mDmY-i1C8SaOgrSEni1oxYV_mxo94IXkXZFK4-ftLTY,10331 +stripe/billing_portal/_session_service.py,sha256=Ipxb918gnB-9uUUSDs7tpqMOqvOiZo-PE05RX-NCwHA,1452 +stripe/checkout/__init__.py,sha256=8FnAQs-PjyJeq0wIJvVv6Pa2tXeIiDSIJKy0N6YxP4g,1099 +stripe/checkout/__pycache__/__init__.cpython-312.pyc,, +stripe/checkout/__pycache__/_session.cpython-312.pyc,, +stripe/checkout/__pycache__/_session_line_item_service.cpython-312.pyc,, +stripe/checkout/__pycache__/_session_service.cpython-312.pyc,, +stripe/checkout/_session.py,sha256=WBgklGLuwe_Byg8N59BuWyE6aN1w1YQBBqSkmDx2dPA,131172 +stripe/checkout/_session_line_item_service.py,sha256=NuNKzDabKFTQTMdoxMfXLT365CLu_kwWyvOmzgnWKqs,2190 +stripe/checkout/_session_service.py,sha256=T74ZSFCpox69UUuihdFe5u6LiIL92dITRTgi9hz7Nuo,8094 +stripe/climate/__init__.py,sha256=aoA3-H5CdcZFklC9ueJOf6ZiH6JXuwqWsGlobjJPXYQ,1383 +stripe/climate/__pycache__/__init__.cpython-312.pyc,, +stripe/climate/__pycache__/_order.cpython-312.pyc,, +stripe/climate/__pycache__/_order_service.cpython-312.pyc,, +stripe/climate/__pycache__/_product.cpython-312.pyc,, +stripe/climate/__pycache__/_product_service.cpython-312.pyc,, +stripe/climate/__pycache__/_supplier.cpython-312.pyc,, +stripe/climate/__pycache__/_supplier_service.cpython-312.pyc,, +stripe/climate/_order.py,sha256=Hucm-A_uIz_xiLNPr6yNcN--b6fjBm_DJ2lXu98u_IU,15425 +stripe/climate/_order_service.py,sha256=1INf6t6r9GzbR1ahoqJyUuDZqxVIkbqDEXLMbm5aPBc,7528 +stripe/climate/_product.py,sha256=ETmGeN_6-wvBYaKFO-hEUWWw3CKcezzYTlTMbwQjjxk,4480 +stripe/climate/_product_service.py,sha256=5x4mWnR-N3ogMLSXXLa-qGkF6_q6q2Qb6Y2fcq33aQk,2939 +stripe/climate/_supplier.py,sha256=0n37C90FqWx1x5DhekT1APdkocOeTtyPsV0r6nUuQ3E,3881 +stripe/climate/_supplier_service.py,sha256=r8iyjnlM1JtwEJ9Qfy2sGPN4xCCjve7OqzetBBIafFk,2922 +stripe/data/ca-certificates.crt,sha256=CN9A6PUo7Sg7DkgLpLzb_dL9z2laetoWaCQwctgPi28,215352 +stripe/entitlements/__init__.py,sha256=k_dBw9p0Ha-E1xMFLFdHvqELgDKo1DSrV8q4c1s-2xs,1569 +stripe/entitlements/__pycache__/__init__.cpython-312.pyc,, +stripe/entitlements/__pycache__/_active_entitlement.cpython-312.pyc,, +stripe/entitlements/__pycache__/_active_entitlement_service.cpython-312.pyc,, +stripe/entitlements/__pycache__/_active_entitlement_summary.cpython-312.pyc,, +stripe/entitlements/__pycache__/_feature.cpython-312.pyc,, +stripe/entitlements/__pycache__/_feature_service.cpython-312.pyc,, +stripe/entitlements/_active_entitlement.py,sha256=dLZh9Jxcw7-4Y0C1rseAbWez9eFr2oYm8uPfRRp5NZ0,3314 +stripe/entitlements/_active_entitlement_service.py,sha256=13CNe2BtpLdxtwofSDUMba9RYoBrsGWjj7a1TFE9lYo,3110 +stripe/entitlements/_active_entitlement_summary.py,sha256=9kKulgGwUi0g4YIU1Y67mgMITPR2OYhp-RIL1Eg-4zk,1097 +stripe/entitlements/_feature.py,sha256=gD3zqDA-EVN7Rz374-cpQW2Roz-Nub8_NbXv3iNBMnM,5522 +stripe/entitlements/_feature_service.py,sha256=o5tD0TvkGU_7VyXrfFpD47-GrH8mkQDxCPveso8HFtg,5049 +stripe/events/__init__.py,sha256=Yos6FUpe3HamopdiGc6vYRFSDLeJDKXWWf0rpJdwOig,2580 +stripe/events/__pycache__/__init__.cpython-312.pyc,, +stripe/events/__pycache__/_event_classes.cpython-312.pyc,, +stripe/events/__pycache__/_v1_billing_meter_error_report_triggered_event.cpython-312.pyc,, +stripe/events/__pycache__/_v1_billing_meter_no_meter_found_event.cpython-312.pyc,, +stripe/events/__pycache__/_v2_core_event_destination_ping_event.cpython-312.pyc,, +stripe/events/_event_classes.py,sha256=nQh1yN-83f35MF4AVRQInatTM-uo77LtOYrQ1ueILY8,2538 +stripe/events/_v1_billing_meter_error_report_triggered_event.py,sha256=V-PFiB03e9zsY4r4SFQxvP4V1MQ3HwNSqY_-FaIUiXw,6836 +stripe/events/_v1_billing_meter_no_meter_found_event.py,sha256=diM_lkfw8O3VtoMvhty5xHa8zhO9N_JGePPtRKCyp8w,4492 +stripe/events/_v2_core_event_destination_ping_event.py,sha256=DD4BG87DNQnRD8P-t2OGodiQar_tY69J-LV3dj3rs_I,3310 +stripe/financial_connections/__init__.py,sha256=w5aNNzepPwzMcYWSOHbWnMKTpuCBuf2Z8jJaUjP3epo,2307 +stripe/financial_connections/__pycache__/__init__.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_account.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_account_owner.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_account_owner_service.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_account_ownership.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_account_service.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_session.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_session_service.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_transaction.cpython-312.pyc,, +stripe/financial_connections/__pycache__/_transaction_service.cpython-312.pyc,, +stripe/financial_connections/_account.py,sha256=QIV9W2wdGx0luk_E7IjDffv13gph7GC1dTbECR6eGh8,29539 +stripe/financial_connections/_account_owner.py,sha256=sMmmNskomFbCDWF8jCARREK_IDVcBd1dZvWfx0upsOc,1141 +stripe/financial_connections/_account_owner_service.py,sha256=NBWc3Bgk5FDYQdsjKTyGfX5imhRtc2byXDddGkEQ8fc,1875 +stripe/financial_connections/_account_ownership.py,sha256=0OqmZ6KnZ3BkYrVszXm4_SHy_4e2aYuvoxcaKKcxK_8,1059 +stripe/financial_connections/_account_service.py,sha256=H-Vk6DikzsqHc9gbF2xwxeo813DM1HhfQQrPXfv2N7c,10060 +stripe/financial_connections/_session.py,sha256=ZLMl1rT_AXO1hOeXMUiFARoPsKokspJgmVIHnDKCd1o,5427 +stripe/financial_connections/_session_service.py,sha256=DAcHRgqVr0l4OciOmuAED7NcD3F8JvXR012c_yySdJ8,3139 +stripe/financial_connections/_transaction.py,sha256=nQGpMQNKZFTRNlpqQ1UROTdiOEdBvmxkr1j032ZT3hY,4447 +stripe/financial_connections/_transaction_service.py,sha256=q-fuJH4CjMmOWfgzM8bA7NJD6WS08pXwhszK7iC8azc,3174 +stripe/forwarding/__init__.py,sha256=cRyBzy4yf6KsnOxninCfcxDxMIXtBu5OtNrPivOdXm8,874 +stripe/forwarding/__pycache__/__init__.cpython-312.pyc,, +stripe/forwarding/__pycache__/_request.cpython-312.pyc,, +stripe/forwarding/__pycache__/_request_service.cpython-312.pyc,, +stripe/forwarding/_request.py,sha256=FIHi3ZDqWxko1394d0tS3_567m_O1wvHLsAekCYMu_M,7915 +stripe/forwarding/_request_service.py,sha256=iugHHOPxHKVbB9YddDNuvJZkZ5ymxO8qjlxL5XiFPpU,3849 +stripe/identity/__init__.py,sha256=eJiV1XmlVtF0YfKH1SGDKTTpJKZEU1RDpoDkInqFEDQ,1462 +stripe/identity/__pycache__/__init__.cpython-312.pyc,, +stripe/identity/__pycache__/_verification_report.cpython-312.pyc,, +stripe/identity/__pycache__/_verification_report_service.cpython-312.pyc,, +stripe/identity/__pycache__/_verification_session.cpython-312.pyc,, +stripe/identity/__pycache__/_verification_session_service.cpython-312.pyc,, +stripe/identity/_verification_report.py,sha256=unsJ1vMsZuvEXataRb_-G_AiR1YofMZtP-02v16XPNc,15740 +stripe/identity/_verification_report_service.py,sha256=A3W8Zm8FENXCkGyiAdhVEWLAsUqMO78NlkGuV_yB9T8,3145 +stripe/identity/_verification_session.py,sha256=vMpBNQjWGHm4Xo6m9gyEQPkBpK9eHWwfCz_hx64Rnrg,36293 +stripe/identity/_verification_session_service.py,sha256=fs4EOox6hEK4mo_JSBLALb6OR-L8JD4aGVkxJEShpMg,13188 +stripe/issuing/__init__.py,sha256=XsdJWCA07oBu_SJkF5s6V6FaMJRxFrdB6msHoSSnE2I,3124 +stripe/issuing/__pycache__/__init__.cpython-312.pyc,, +stripe/issuing/__pycache__/_authorization.cpython-312.pyc,, +stripe/issuing/__pycache__/_authorization_service.cpython-312.pyc,, +stripe/issuing/__pycache__/_card.cpython-312.pyc,, +stripe/issuing/__pycache__/_card_service.cpython-312.pyc,, +stripe/issuing/__pycache__/_cardholder.cpython-312.pyc,, +stripe/issuing/__pycache__/_cardholder_service.cpython-312.pyc,, +stripe/issuing/__pycache__/_dispute.cpython-312.pyc,, +stripe/issuing/__pycache__/_dispute_service.cpython-312.pyc,, +stripe/issuing/__pycache__/_personalization_design.cpython-312.pyc,, +stripe/issuing/__pycache__/_personalization_design_service.cpython-312.pyc,, +stripe/issuing/__pycache__/_physical_bundle.cpython-312.pyc,, +stripe/issuing/__pycache__/_physical_bundle_service.cpython-312.pyc,, +stripe/issuing/__pycache__/_token.cpython-312.pyc,, +stripe/issuing/__pycache__/_token_service.cpython-312.pyc,, +stripe/issuing/__pycache__/_transaction.cpython-312.pyc,, +stripe/issuing/__pycache__/_transaction_service.cpython-312.pyc,, +stripe/issuing/_authorization.py,sha256=3D5IjLIIShlHqdz61zZq56iJhXap8GCVNGBfEDiLLSk,66603 +stripe/issuing/_authorization_service.py,sha256=nkuanfvwEzFeF-Kzwg4_fqXTJk6IYrwZQSrMuydrPuU,9482 +stripe/issuing/_card.py,sha256=TRPheD2zkIncOhp_yo-snOrGFtY25sZomymUOwyLYBY,83699 +stripe/issuing/_card_service.py,sha256=Mqk-sP9YEzwqP9QVVw0cuDaKsO9uaPdFMFX6ZU4MOA8,5299 +stripe/issuing/_cardholder.py,sha256=mr15ZpwdpLQR6lKBB_bfkYzGbTm7zYGTN2TnoTldkFo,61393 +stripe/issuing/_cardholder_service.py,sha256=YEj_vdr0OKxQOic5PC3zzb6oUVPGiPg6N1N9B06CIn4,5981 +stripe/issuing/_dispute.py,sha256=BajqfsxV21cz7nmCmtMrU7bi0HuzUv5f78JLo5vxf60,22939 +stripe/issuing/_dispute_service.py,sha256=ZF2rshZP10sKLV5JMdQeUhF4reDJeD5CVE3wOiq2M-c,8369 +stripe/issuing/_personalization_design.py,sha256=kSrJk-iT5HcFZvgX3yNP25n_uDFIbDwaEEENo8Va9iI,24156 +stripe/issuing/_personalization_design_service.py,sha256=jdFFyPNi0qukB-3gJ9AAXAl28DUc0bUxUrXL7_dTFSU,6405 +stripe/issuing/_physical_bundle.py,sha256=5DQjW6katqCVpux2C1dDoINGbH1cAALXX2DQLatryHI,4203 +stripe/issuing/_physical_bundle_service.py,sha256=PaGSUriWFvqGTGhrdykexAKJ2YFZh5Bf0K6wizgMCe4,3364 +stripe/issuing/_token.py,sha256=6QvF36k1O-pW9pPgNA9LP0QLxamtdfZGJyYAazBUm94,11797 +stripe/issuing/_token_service.py,sha256=htaeUgqzVmYZO2aQfIaDfF01B7LLSOX8Mu_OzMlgXMw,3954 +stripe/issuing/_transaction.py,sha256=3xphljtafzx0bVXacFhEDgSSZuQf9au1wOr3V36W174,26004 +stripe/issuing/_transaction_service.py,sha256=Z0loILaxeOedZedlh9wWYauCj_zZu7zGAb4zFpQRC9M,4884 +stripe/oauth_error.py,sha256=hcZ9kqP5BN8kfwJmpnETZm9WBw7P8j0Kn4awwu8oq6o,1077 +stripe/params/__init__.py,sha256=lOu5Hn2tQ83R805JWVQv2zmL3ANBLZpLexdZhTMvLcg,737655 +stripe/params/__pycache__/__init__.cpython-312.pyc,, +stripe/params/__pycache__/_account_capability_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_capability_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_capability_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_create_external_account_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_create_login_link_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_create_person_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_delete_external_account_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_delete_person_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_external_account_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_external_account_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_external_account_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_external_account_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_external_account_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_link_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_list_capabilities_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_list_external_accounts_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_list_persons_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_login_link_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_modify_capability_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_modify_external_account_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_modify_person_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_person_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_person_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_person_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_person_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_person_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_persons_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_reject_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_retrieve_capability_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_retrieve_current_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_retrieve_external_account_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_retrieve_person_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_session_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_account_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_apple_pay_domain_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_apple_pay_domain_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_apple_pay_domain_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_apple_pay_domain_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_create_refund_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_list_refunds_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_modify_refund_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_refund_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_refund_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_refund_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_refund_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_refund_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_application_fee_retrieve_refund_params.cpython-312.pyc,, +stripe/params/__pycache__/_balance_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_balance_settings_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_balance_settings_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_balance_settings_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_balance_transaction_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_balance_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_bank_account_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_card_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_capture_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_list_refunds_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_retrieve_refund_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_search_params.cpython-312.pyc,, +stripe/params/__pycache__/_charge_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_confirmation_token_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_confirmation_token_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_country_spec_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_country_spec_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_coupon_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_coupon_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_coupon_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_coupon_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_coupon_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_coupon_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_line_item_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_list_lines_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_preview_lines_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_preview_lines_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_preview_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_credit_note_void_credit_note_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_balance_transaction_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_balance_transaction_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_balance_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_balance_transaction_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_cash_balance_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_cash_balance_transaction_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_cash_balance_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_cash_balance_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_create_balance_transaction_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_create_funding_instructions_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_create_source_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_create_tax_id_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_delete_discount_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_delete_source_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_delete_tax_id_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_funding_instructions_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_list_balance_transactions_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_list_cash_balance_transactions_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_list_payment_methods_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_list_sources_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_list_tax_ids_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_modify_balance_transaction_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_modify_cash_balance_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_modify_source_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_method_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_method_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_source_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_source_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_source_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_source_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_source_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_payment_source_verify_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_retrieve_balance_transaction_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_retrieve_cash_balance_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_retrieve_cash_balance_transaction_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_retrieve_payment_method_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_retrieve_source_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_retrieve_tax_id_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_search_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_session_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_tax_id_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_tax_id_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_tax_id_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_tax_id_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_customer_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_dispute_close_params.cpython-312.pyc,, +stripe/params/__pycache__/_dispute_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_dispute_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_dispute_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_dispute_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_ephemeral_key_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_ephemeral_key_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_event_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_event_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_exchange_rate_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_exchange_rate_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_link_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_link_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_link_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_link_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_link_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_file_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_add_lines_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_attach_payment_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_create_preview_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_finalize_invoice_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_item_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_item_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_item_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_item_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_item_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_item_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_line_item_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_line_item_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_list_lines_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_mark_uncollectible_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_pay_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_payment_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_payment_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_remove_lines_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_rendering_template_archive_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_rendering_template_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_rendering_template_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_rendering_template_unarchive_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_search_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_send_invoice_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_update_lines_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_invoice_void_invoice_params.cpython-312.pyc,, +stripe/params/__pycache__/_mandate_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_attempt_record_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_attempt_record_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_amount_details_line_item_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_apply_customer_balance_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_capture_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_confirm_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_increment_authorization_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_list_amount_details_line_items_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_search_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_intent_verify_microdeposits_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_link_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_link_line_item_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_link_list_line_items_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_link_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_link_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_link_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_link_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_attach_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_configuration_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_configuration_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_configuration_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_configuration_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_configuration_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_detach_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_domain_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_domain_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_domain_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_domain_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_domain_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_domain_validate_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_method_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_report_payment_attempt_canceled_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_report_payment_attempt_failed_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_report_payment_attempt_guaranteed_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_report_payment_attempt_informational_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_report_payment_attempt_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_report_payment_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_report_refund_params.cpython-312.pyc,, +stripe/params/__pycache__/_payment_record_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payout_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_payout_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_payout_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_payout_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_payout_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_payout_reverse_params.cpython-312.pyc,, +stripe/params/__pycache__/_payout_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_plan_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_plan_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_plan_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_plan_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_plan_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_plan_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_price_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_price_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_price_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_price_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_price_search_params.cpython-312.pyc,, +stripe/params/__pycache__/_price_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_create_feature_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_delete_feature_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_feature_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_feature_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_feature_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_feature_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_list_features_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_retrieve_feature_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_search_params.cpython-312.pyc,, +stripe/params/__pycache__/_product_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_promotion_code_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_promotion_code_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_promotion_code_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_promotion_code_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_promotion_code_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_accept_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_computed_upfront_line_items_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_finalize_quote_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_line_item_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_list_computed_upfront_line_items_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_list_line_items_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_pdf_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_quote_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_refund_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_refund_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_refund_expire_params.cpython-312.pyc,, +stripe/params/__pycache__/_refund_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_refund_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_refund_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_refund_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_review_approve_params.cpython-312.pyc,, +stripe/params/__pycache__/_review_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_review_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_attempt_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_confirm_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_setup_intent_verify_microdeposits_params.cpython-312.pyc,, +stripe/params/__pycache__/_shipping_rate_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_shipping_rate_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_shipping_rate_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_shipping_rate_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_shipping_rate_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_detach_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_list_source_transactions_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_transaction_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_source_verify_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_delete_discount_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_item_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_item_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_item_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_item_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_item_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_item_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_migrate_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_resume_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_schedule_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_schedule_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_schedule_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_schedule_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_schedule_release_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_schedule_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_schedule_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_search_params.cpython-312.pyc,, +stripe/params/__pycache__/_subscription_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_code_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_code_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_id_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_id_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_id_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_id_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_rate_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_rate_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_rate_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_rate_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_tax_rate_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_token_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_token_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_topup_cancel_params.cpython-312.pyc,, +stripe/params/__pycache__/_topup_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_topup_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_topup_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_topup_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_topup_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_create_reversal_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_list_reversals_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_modify_reversal_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_retrieve_reversal_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_reversal_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_reversal_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_reversal_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_reversal_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_transfer_update_params.cpython-312.pyc,, +stripe/params/__pycache__/_webhook_endpoint_create_params.cpython-312.pyc,, +stripe/params/__pycache__/_webhook_endpoint_delete_params.cpython-312.pyc,, +stripe/params/__pycache__/_webhook_endpoint_list_params.cpython-312.pyc,, +stripe/params/__pycache__/_webhook_endpoint_modify_params.cpython-312.pyc,, +stripe/params/__pycache__/_webhook_endpoint_retrieve_params.cpython-312.pyc,, +stripe/params/__pycache__/_webhook_endpoint_update_params.cpython-312.pyc,, +stripe/params/_account_capability_list_params.py,sha256=26MO1fdIZOFXAo6QPhTWE3erJYU7ZtrttQKJ_1U6nsQ,302 +stripe/params/_account_capability_retrieve_params.py,sha256=KbuscA2sAWKUPInuEviZV9lU0slR_SfzJrocCpo9sak,306 +stripe/params/_account_capability_update_params.py,sha256=_WRKhDUeGbp5qEOcCJgGzsX-8A2iusuNMwl3G4ONDhQ,804 +stripe/params/_account_create_external_account_params.py,sha256=rNQvdgX3pOuD49UzHXin2Axq9pLEgLx0SLbaIkk9mWc,3585 +stripe/params/_account_create_login_link_params.py,sha256=CKeLn8RDVyV-EsIcNt_17FrYmK2nP2EfOkFoyEG9oVM,348 +stripe/params/_account_create_params.py,sha256=b8dYR9IGcPaZfZ2ApWL1YYoLigUMmh5Qn9UhxohiVZE,81200 +stripe/params/_account_create_person_params.py,sha256=83tJnZfERSUI40_-gy1vB1yM59HgM6UXvLXIn3xgL3w,15431 +stripe/params/_account_delete_external_account_params.py,sha256=nEnP7kIqO7EQBGPgVDV6PQPjiTHc9JRSdRV5icryXUY,183 +stripe/params/_account_delete_params.py,sha256=Z2XVIZRuFF94O3EsTvv1eUj_bQqFvIcUJrkg_sihR-Q,168 +stripe/params/_account_delete_person_params.py,sha256=k7gM7nyFDd1_mPuVy2nlzFp7E9d_xy5XykWp7_4EdKc,174 +stripe/params/_account_external_account_create_params.py,sha256=uWh7Kd2Bd3KbDHQR5Bob-7W3GO_Wq-2SsJrK7qGtXSQ,3529 +stripe/params/_account_external_account_delete_params.py,sha256=fiNHKybrg9hdxK5PwuWPksqUkuMKV-f1miGVqg_NfIs,167 +stripe/params/_account_external_account_list_params.py,sha256=mQWs8alFaBaaaKjvRTNq1zhD4nFFkqt64p-sgkMpVuU,1317 +stripe/params/_account_external_account_retrieve_params.py,sha256=l53wFaiHhB7GWZizyH-R8Y0g-qoPInhIJ9hVKqwy5dY,311 +stripe/params/_account_external_account_update_params.py,sha256=HN1szJUc_5rc1noC0JQa3cjM3dR4gNo_Solj2V_MddQ,3286 +stripe/params/_account_link_create_params.py,sha256=6SNaNfySCBclgdwQDO245opukQJtSdQi3Bq3KnMQ5eE,2838 +stripe/params/_account_list_capabilities_params.py,sha256=0FnybXdyWlyAhMs-xYZAo38QhIEeYrQFpmFyBOHCVXY,349 +stripe/params/_account_list_external_accounts_params.py,sha256=Ql8pGtzE1GLRMDqKUaWTiBRhc1u90_nQR5u8Z_csz48,1363 +stripe/params/_account_list_params.py,sha256=7OSdrGCB2z_mekTc6d2iZ71OziKHF-66ATeNyuu9tIY,1749 +stripe/params/_account_list_persons_params.py,sha256=2IzLbcSoQOdsJ_b3Xtd4anxHGHGJC3IPfmIJWwxKIP0,2475 +stripe/params/_account_login_link_create_params.py,sha256=D4-ndHptYo7K-8Phb_mD0xB6fmj7hne6Qr4rxteNPp0,303 +stripe/params/_account_modify_capability_params.py,sha256=MWchqjoeqyhaf5LQaik93xW8IH-2DKqUmf8qS3SaPwM,849 +stripe/params/_account_modify_external_account_params.py,sha256=ZSgX8isHthMDCZEPl2PID_O1mShsAXdqvOhyDuzSAAM,3342 +stripe/params/_account_modify_person_params.py,sha256=J3GBB7BjKWC-HazbDmLa-4bvY5sYl8Sl8tRMM7UVGHI,15431 +stripe/params/_account_person_create_params.py,sha256=4Nln1Gi7cHUCEbJ1tRnm1TAfRyuhefsn1d33XCDuyNw,15375 +stripe/params/_account_person_delete_params.py,sha256=oXvQRGufzrZWe09aYK_DvCMHYHWl3fvViG8kOqltplo,158 +stripe/params/_account_person_list_params.py,sha256=Uiu4Nn6UA4X1-EKlpbpoCkGR-uNu-z9xoNU3jDIl_Tg,2416 +stripe/params/_account_person_retrieve_params.py,sha256=LZ2njeSU6EpT_wany6g4vtbs9AN-eXZz3vGAgGpgDyU,302 +stripe/params/_account_person_update_params.py,sha256=GQkFrigL5CYDbOQBGtnE1gEqv9cNiKo2FCuHWkljLU8,15375 +stripe/params/_account_persons_params.py,sha256=C-mbmCZxpYC5jhvw1QLPVBCpGiacX9GSgt3GiGhP34c,2463 +stripe/params/_account_reject_params.py,sha256=Y1TKSPPNvNhYpmIXWycdN6TqY5mMNOlzSt-KkORZyIg,461 +stripe/params/_account_retrieve_capability_params.py,sha256=eKm010OseB0S4UD_2QzboP_yCBprZCqQ4Rfp2VPKhLo,351 +stripe/params/_account_retrieve_current_params.py,sha256=ak3HpvCxDrIj7JL1TI_1TTW93mNrzME3dmaob4IPb-o,303 +stripe/params/_account_retrieve_external_account_params.py,sha256=06Vq7z06aA2j3PmA19H_P3Ldk0R3xMeL6qJMgRrO5Ms,356 +stripe/params/_account_retrieve_params.py,sha256=rJD1Mcoum3DQOzWlUaoM_QvZNAjheahJZkXyJwfJUNo,296 +stripe/params/_account_retrieve_person_params.py,sha256=7WHpFXhqRg7_sf5vlxqp9cucrnaRjygziHlrsEbXO10,347 +stripe/params/_account_session_create_params.py,sha256=mGf7nLBV7kKWPI-DRjhaJhqLrupK2Bn7KskQvJI4s0M,24879 +stripe/params/_account_update_params.py,sha256=NcDH4HBQRn8QRHty8xe_fePinaawq56A3uDZlDqpHyA,78603 +stripe/params/_apple_pay_domain_create_params.py,sha256=9lxZnsV-V9Qy7w4A3wvq1i9Zc3XZc1v6PjV9-P3lukk,367 +stripe/params/_apple_pay_domain_delete_params.py,sha256=OHjUYWUjr8Z1NwhxklZW7BEFg63UfWd8lhNsOm687YA,175 +stripe/params/_apple_pay_domain_list_params.py,sha256=RNsAherStqHCB7tRkfNIsDzwDXHss2SPNdZNx0HgtZE,1238 +stripe/params/_apple_pay_domain_retrieve_params.py,sha256=T5dKQ8iWjaudN1cZmJ3DkeFMSVrhzio0j8phudrnOew,348 +stripe/params/_application_fee_create_refund_params.py,sha256=tluXd55ZY3HSXaL1tNfnqF8COz30ruQmc0KXtG1eIH0,953 +stripe/params/_application_fee_list_params.py,sha256=v1liC9P6YPoAkmuH0MUCcORldCHTcDrMR_ujs7z8-1U,1891 +stripe/params/_application_fee_list_refunds_params.py,sha256=onSqnZBYjI4A6lP0cLURI5HgcULpRzttstEBXdCyyf0,1211 +stripe/params/_application_fee_modify_refund_params.py,sha256=Tacx4JsVYXkEQFmlZZncT8FemfJI3Gfto4n89NOYZwo,762 +stripe/params/_application_fee_refund_create_params.py,sha256=U_xi8-o07x15swKJBVd6eDTs70ZAX00UwG2lcx-7XpU,908 +stripe/params/_application_fee_refund_list_params.py,sha256=_iTWRMK_hVya_wbqOuMXhofDpxdURBEx3KWDKhc341U,1165 +stripe/params/_application_fee_refund_params.py,sha256=yB1Xpf1Gs_FRYX4TsAhcZCp31Uxic_ZU6OKGRBdDMck,947 +stripe/params/_application_fee_refund_retrieve_params.py,sha256=qBRMifwO24CIQEpGMQO8UN6pUGfwxlnZ113UX-tAgfg,309 +stripe/params/_application_fee_refund_update_params.py,sha256=W4hfYVWLCS5Yj1S1Em_G7Er4KNVXkOY07g73FHHImvo,717 +stripe/params/_application_fee_retrieve_params.py,sha256=gtSsR50-36PmlEAdbeCXHQs82jr7P9ThcFj_4GE6ckw,348 +stripe/params/_application_fee_retrieve_refund_params.py,sha256=esDUad0t8PduPiZIzBK2RDH3GDkC5A1s6jdIGxLF1LQ,354 +stripe/params/_balance_retrieve_params.py,sha256=HyawTGUHT30w6zgCpQLrTnn66-KXCIXaUyifcQSY5Eo,341 +stripe/params/_balance_settings_modify_params.py,sha256=CAWJgbNeLgq4KVamYpon37SYil_Y2k0Hm0CE-d1weyo,3691 +stripe/params/_balance_settings_retrieve_params.py,sha256=GBQkq7nTv56USKC_zLal30Ye2SGLMPWssxz9icKs_q8,349 +stripe/params/_balance_settings_update_params.py,sha256=ekVgP2wF_l2w6TgjtZY0smzwOSUTLMhUd2FdXxgecb4,3635 +stripe/params/_balance_transaction_list_params.py,sha256=O2_iHnzmgkH7z2QAyxCSnrCe_qaX6X5zpi3zr5q4XPI,3327 +stripe/params/_balance_transaction_retrieve_params.py,sha256=F8jYtzPxhe0uJdzoRry90KiwIdc4yFAmUnCIAX5IEAs,352 +stripe/params/_bank_account_delete_params.py,sha256=EC8FJU-Nl8wXmHAyE4KNz3fo78NQ_9pK8_ZUcGtZM2s,172 +stripe/params/_card_delete_params.py,sha256=-EZkCCfS_fq5glqeGGqv0qqTWuNqai9xb89-15PROWc,165 +stripe/params/_charge_capture_params.py,sha256=hTazBMVpMlsv4bis5Yn4GvcJ2yJMrquIdvqeIEbMzL4,2823 +stripe/params/_charge_create_params.py,sha256=UpKlrgIJvkUaTZJaDcl5gWUYIQAE9mffN6cNgsXxFww,8801 +stripe/params/_charge_list_params.py,sha256=mjTpUgN-ShIwPlct5by39ePq2swGsWhInUy0JZiFv7w,2124 +stripe/params/_charge_list_refunds_params.py,sha256=30hjoxDN5M-lEDo84wBj3kF35tFoR0Y0ApHsrtfHG8c,1203 +stripe/params/_charge_modify_params.py,sha256=Lsw72l8AUmtt18-de-GVQHYLiXksElYs2_DotIe01UU,3952 +stripe/params/_charge_retrieve_params.py,sha256=hNVrQ6fnF3kJdvK2JSy6Oi66lKLUsqSKKxVcJHXI8Lc,340 +stripe/params/_charge_retrieve_refund_params.py,sha256=ek065fLGQFPb2dXKo4zAQbXmSuzUnu8TmNWKsvv1MIg,346 +stripe/params/_charge_search_params.py,sha256=EABxO_V1YaCwRm02MhI_eE5ir-IfuZld6rO30j0q_as,986 +stripe/params/_charge_update_params.py,sha256=ETFtK0p1pS7BbEWypxGXKf_ocQfh5JwsfHbbxBLNGjU,3896 +stripe/params/_confirmation_token_create_params.py,sha256=-V3tS8g4IscYi6D40WCmzG7K3H8qUXJtc6aW4xGWvrk,28561 +stripe/params/_confirmation_token_retrieve_params.py,sha256=UvAmb6mp8Dn-ZPhOVBCSKGCvG73_HH2koOeXxi8bD7g,351 +stripe/params/_country_spec_list_params.py,sha256=XunDIo4a8O4aT_ch192ZzJrIQX07XM5LeuldGpZkxWM,1201 +stripe/params/_country_spec_retrieve_params.py,sha256=h3LDqPWlJ0Hm0CAIM3wpcC2eXegWHS4w-r1TU7-T3Cg,345 +stripe/params/_coupon_create_params.py,sha256=vohk0oex2fN6JnUYVNJHtUGKqnZh_PNhtrag3QjAjLs,3513 +stripe/params/_coupon_delete_params.py,sha256=mQFtp2POFfRujXiDPKgUS_2HBc_TH6m5DDvVLtm_5Q4,167 +stripe/params/_coupon_list_params.py,sha256=JOwxXUiMLRnu8io1gis_2Fpk2MAsFoiuEj613dS2tJI,1850 +stripe/params/_coupon_modify_params.py,sha256=fz7_DTGW1ktuhVxrGLR4YFAQMtmcNecNcdOwZ9PVIfc,1491 +stripe/params/_coupon_retrieve_params.py,sha256=D5Cf5Tx9eZ--2DSrIFHuTc8ynzyhuTpU4kvVmMpq4Zo,340 +stripe/params/_coupon_update_params.py,sha256=EklGeRpsm1Ak2Cn8bfr64fB-iWeIhrd5x01N2deENn4,1435 +stripe/params/_credit_note_create_params.py,sha256=_ee2GPFVwkBGR0lIvXzSMqhVbMYQkvAkxSeQfMFS-BA,6566 +stripe/params/_credit_note_line_item_list_params.py,sha256=VxS_pkEZOCMvboknOFkO3u-y-xNPMov2hkWC9vr5Qug,1163 +stripe/params/_credit_note_list_lines_params.py,sha256=gIR-UpZKIj7yvzJmswAKqNXr0vN6oNByhMO7FlMZFqI,1205 +stripe/params/_credit_note_list_params.py,sha256=EGIcTYjgrV3p-XrVoR4n-8f4EIVCtgRegkORJIq2rIY,1997 +stripe/params/_credit_note_modify_params.py,sha256=Wxa0m3NXP5hhw7pBQ2VCPAlCT8EWVFW7a50L7tK1o-8,794 +stripe/params/_credit_note_preview_lines_list_params.py,sha256=N4wwhjt1Dx9W7ABlrHfmd5S47FVJr0WsCp-yBiHXdaU,7480 +stripe/params/_credit_note_preview_lines_params.py,sha256=nzivDzvhNoOWznMhRLyw7ktZz9CMRjxJb-hN_YTRBPE,7492 +stripe/params/_credit_note_preview_params.py,sha256=Hpw5wut9o7xYZLdBRzb6KI-qwp46VbWX-VPjoRq5Y2o,6577 +stripe/params/_credit_note_retrieve_params.py,sha256=9vPAb-9Rg6aepMcR8KwNcdTDGk4Ohd7EYY0pRJtIaX0,344 +stripe/params/_credit_note_update_params.py,sha256=OI6EQwTAyCsl2ruz-RaWDU_f3h5KgIXWS5j9c8H0Tms,749 +stripe/params/_credit_note_void_credit_note_params.py,sha256=Gmcy2k8TOU4WT_szHF4rUqzpD0iBSE5_1A3o8dyixH0,350 +stripe/params/_customer_balance_transaction_create_params.py,sha256=-sRvZTkK5Ko5oDBgLw7w1LYBAaRfVQ42TlvMlWWwY7Q,1434 +stripe/params/_customer_balance_transaction_list_params.py,sha256=ELolxU1pqKdg5UJ1DdLhegwH-BiAsc1JBOHYJIM2quU,1171 +stripe/params/_customer_balance_transaction_retrieve_params.py,sha256=R1AqHvP4FPJcO3qoCdNF1gdSuvtD3-kyqb-Xcb3anhg,315 +stripe/params/_customer_balance_transaction_update_params.py,sha256=BqHDS3V2JCOpWn1cA1QKydBYjY9XEEy7KQe2XR9CQIo,859 +stripe/params/_customer_cash_balance_retrieve_params.py,sha256=6VbfCXywzweb8HpjJkIXnaAWXOWieADZvLzPhIDPkWc,308 +stripe/params/_customer_cash_balance_transaction_list_params.py,sha256=CDDJzbNX_0SBypKFFVtFz535tvjyWw-o4NNMAhlcgAQ,1175 +stripe/params/_customer_cash_balance_transaction_retrieve_params.py,sha256=lV_uZKSKwQ-1kRcixJ_gOeY8Z4GtkTsSJgielbKeR5g,319 +stripe/params/_customer_cash_balance_update_params.py,sha256=9IHPNQ56_IIuqa0AZGr0--pNAcL1CY5oDbzneqNgBbA,928 +stripe/params/_customer_create_balance_transaction_params.py,sha256=ns6fGAebSYjkndCn0OUxmJorsWOBu_Oc4ctJ-fDlNZU,1479 +stripe/params/_customer_create_funding_instructions_params.py,sha256=Ovm80HeuO6Q6eHR5q3zf6WKUBI6rI4WPUAL5_LMD6R0,1908 +stripe/params/_customer_create_params.py,sha256=WV1OioaiZDTlcViDYvOggBUxp9qzeA3DJMNzgTwutqE,11801 +stripe/params/_customer_create_source_params.py,sha256=_5xVu45OSVqEA1zKxwT4dmUd64akocT6OLUviA0yShI,876 +stripe/params/_customer_create_tax_id_params.py,sha256=VJdPwsJ50p3BTMr74FUG4x2gVZ7iDhOIm_xC1G2-m40,3602 +stripe/params/_customer_delete_discount_params.py,sha256=Gt8DpErjlsP3JE2EJ8nDwcD7p1QUC7M-GMzJIDPW90U,177 +stripe/params/_customer_delete_params.py,sha256=6C8c3AwxTpy8-_V2cbgBJDoBlmgUWnhPIkf3a3DtsXY,169 +stripe/params/_customer_delete_source_params.py,sha256=HFRp6MOxKCGPceavLDAaUem_vjH6Zv9WWXrDzi_oOL4,346 +stripe/params/_customer_delete_tax_id_params.py,sha256=FIXYdJtx5a-UAKUueie8-VwECqY61ZpngY519UCVhtY,174 +stripe/params/_customer_fund_cash_balance_params.py,sha256=roGa3DDnT2It_LlvfblvHhAKdoP89VVUnP_ncS6dous,1216 +stripe/params/_customer_funding_instructions_create_params.py,sha256=AlVf7AO4lhXRcv3IvRN-nBD6-iUEDBTXfnZn6tLWgRs,1852 +stripe/params/_customer_list_balance_transactions_params.py,sha256=94O880sUcXNZxL4xhRZ5IOTtAHanKpenDS0pmUdUzsU,1217 +stripe/params/_customer_list_cash_balance_transactions_params.py,sha256=DRG20aDrioaGqVflFqzocrbY7XVxT_zUOxekLTgxWHE,1221 +stripe/params/_customer_list_params.py,sha256=4j5LXCOvSIOgTK4lmJgbkrAgm4Cp-seKmqoEHBK-T48,2114 +stripe/params/_customer_list_payment_methods_params.py,sha256=KFrnP90SmPiixOQTZfi7oBLfpBMdRTm9s70ZZAF6qYk,3112 +stripe/params/_customer_list_sources_params.py,sha256=9RCB8paHzEiH3pb9sIqdDmTvMuuu9ERTDlVjR6OK8oI,1308 +stripe/params/_customer_list_tax_ids_params.py,sha256=tWpXkIX6tICqMFf8U5s4qHe58Ac2vq_ANTmNwMiGOVg,1204 +stripe/params/_customer_modify_balance_transaction_params.py,sha256=WE40AAx6u8Dz_ms0VwpKqlQbjSL-I4qs5NgY0i98cAg,904 +stripe/params/_customer_modify_cash_balance_params.py,sha256=NPIIvY8fvGd96M17p7sz2i2q7cWN_RpYgr8XfWa0kDM,984 +stripe/params/_customer_modify_params.py,sha256=eIPzGDZGrkLHiJQZwbY5qpOGl7TEYQ6j0DNWQSiyZqg,8835 +stripe/params/_customer_modify_source_params.py,sha256=1aqjpNQJUl44N5JRp8SmKQ0vuPW_tJu1oRW6KMIXCQA,3032 +stripe/params/_customer_payment_method_list_params.py,sha256=L6OR5dQflO5pUHRVWMAjzHAOWX5v7q_CE50EM94ovbU,3066 +stripe/params/_customer_payment_method_retrieve_params.py,sha256=Rk_ndWNZ00Alq0xd7cjkbOUb-VE_4m7r50T1t-c3MtM,310 +stripe/params/_customer_payment_source_create_params.py,sha256=qN5Kxbm0KNXmex6n2pWWIaaTrkSUzI9ygKLRieMHJDQ,838 +stripe/params/_customer_payment_source_delete_params.py,sha256=pEh0tjtSqWroeH_ImMvn_RQ8UgRJqiBVEvrJE-esQjU,308 +stripe/params/_customer_payment_source_list_params.py,sha256=XurZhoo3WaD3-y6MAE2OtGSfAntvTPmPQ35cUV1cDvA,1269 +stripe/params/_customer_payment_source_retrieve_params.py,sha256=k6RNVsIXWZ98kScQj1H6fmLzAO6QDX7UoTQbUXhmehU,310 +stripe/params/_customer_payment_source_update_params.py,sha256=3u1dB24jeiUBH-r0zTpgHQz_5KQZs7XgUZXlqPYY7IM,3011 +stripe/params/_customer_payment_source_verify_params.py,sha256=41YyNk9rhB3iA-mPRqjaftPAdogJ34TdDxRK2PMUJp4,466 +stripe/params/_customer_retrieve_balance_transaction_params.py,sha256=9I1qOVsuVqHT-PlTi9lpqBsTEWjzo6TjvNXV53PZfR0,360 +stripe/params/_customer_retrieve_cash_balance_params.py,sha256=bJpy9IM578CmErQd0jAMFuhedCn9kexUBg6HGIQWc8o,353 +stripe/params/_customer_retrieve_cash_balance_transaction_params.py,sha256=TuAvTaMUNU9P8Jzd9g12bAQSWkIBzE0nmHKKH65N3GU,364 +stripe/params/_customer_retrieve_params.py,sha256=8Zi3-5mpmR3h_0R-QvmdRd2mEZmbQ6b3CficaB9udzU,342 +stripe/params/_customer_retrieve_payment_method_params.py,sha256=BEuceqG0OGlLt3AGAD7Lp8kpjm1A-tXueO5bA5QfuMw,355 +stripe/params/_customer_retrieve_source_params.py,sha256=CM2STbXIFV9nVRb7b_0YC0Gos-AU2Z2XBAsWHJzz6JY,348 +stripe/params/_customer_retrieve_tax_id_params.py,sha256=AFewbe3j2wsU9trXbLN3rTQzP_jq8jNNCs1AV6VCFMA,347 +stripe/params/_customer_search_params.py,sha256=_axcbEnSYeTPBq4IeXjrzzK1k0VOgAd6_Y9SChB1BnU,992 +stripe/params/_customer_session_create_params.py,sha256=HleRsrHKf0aBIqVBl_R8HYbWOnkuasFIVA5412DnnLA,9212 +stripe/params/_customer_tax_id_create_params.py,sha256=eiCvnNjEwVMcNJ0sixAn07RCQyVxyZhkPJ2e8u-3DOY,3557 +stripe/params/_customer_tax_id_delete_params.py,sha256=r8vXm6we4y1po_acrBUoGzR2MT5xvxB8tU7r28xwo1E,158 +stripe/params/_customer_tax_id_list_params.py,sha256=9Koty7d93Y8A9oZvL80lnn4e_XeRBWSgWoKl1Pg4vvw,1158 +stripe/params/_customer_tax_id_retrieve_params.py,sha256=JDCFSdEr5D88_hDEWdLDI2iK6d5IFSxg3K7Piak8eq4,302 +stripe/params/_customer_update_params.py,sha256=mMWiuTNfrHPnSY81HjKtgYPw_fI24gPdzjj-tMby4iY,8779 +stripe/params/_dispute_close_params.py,sha256=se7hg1EHRTROQHcAapG6aemL9igLqFe9QJIk5C91R_w,338 +stripe/params/_dispute_list_params.py,sha256=Xjz3Kwz5tOtfeSHwmd5_pMrPp2TcmCoxF9WO5QCnaLs,2009 +stripe/params/_dispute_modify_params.py,sha256=UPJyxyiR7EetMQzyFio9zxZ64QVFblh99Twh_rOVog4,13537 +stripe/params/_dispute_retrieve_params.py,sha256=U6qWnXvUiHpAu_znOqgES_ClDIlS57FwhN_UHuJBeis,341 +stripe/params/_dispute_update_params.py,sha256=zAjBG2Q8lmDYN96nKROFfH2lPhEayP1-lHS0DOfQY3I,13481 +stripe/params/_ephemeral_key_create_params.py,sha256=P7iBMugr_Un5vyQ-0VGFAo2VAJg8RYEnpeh-6j_ngVQ,911 +stripe/params/_ephemeral_key_delete_params.py,sha256=z5m4GMi3ysbeUtqLsXSb7sEwgTttmqJtHRosBC0gA44,344 +stripe/params/_event_list_params.py,sha256=sjAIaWPw4abc0HnUmpFD7wDR5JQ-1WwwsEvTjpSESq8,2439 +stripe/params/_event_retrieve_params.py,sha256=LxMRuJWtZabAGw02LShYBkAlwGm6imF6i1Tq6d52uh8,339 +stripe/params/_exchange_rate_list_params.py,sha256=fWtZnjbTbNauGgCkxeKPJR08bgc8LRJo7XQiA_uS1cs,1286 +stripe/params/_exchange_rate_retrieve_params.py,sha256=lgNTX8gkx1fgrQCo_4zEWDLgnFTiWW2k7bhGpiS2ppg,346 +stripe/params/_file_create_params.py,sha256=q6NX-vcd94kpcKiCaVoEmARj_uwCFvujxhuWiNK0av0,2255 +stripe/params/_file_link_create_params.py,sha256=36WO40J6rTlhZn54Bgb6v_4Hk_fxmGtQQUhAxTcz-98,1292 +stripe/params/_file_link_list_params.py,sha256=Q8_zQchoyyDy3uxVoNQtgUzQiZBaudESZ1sbKe-WNe0,1954 +stripe/params/_file_link_modify_params.py,sha256=n6XaGfbptjC0-ja3seCngQNJ1hB04N_2EPlx8CjK5HU,939 +stripe/params/_file_link_retrieve_params.py,sha256=tmcc2JXAIaYc9KyXoJJFcFKm5un25i0EgdpgzQzCX2U,342 +stripe/params/_file_link_update_params.py,sha256=kRX8tlqyzscSJx8pnI8x9VRR9QKGWQjanMt3k2VMRBI,894 +stripe/params/_file_list_params.py,sha256=j2tN_MzBisHoSkSdcsn1P_PpGek-J1_Pf08f4abVhyk,2617 +stripe/params/_file_retrieve_params.py,sha256=_q-DuUbA65azH1QVoZ40iE6-GfH9DRMYZmuXzVM3kxw,338 +stripe/params/_invoice_add_lines_params.py,sha256=gNHSQ11PKh-6d6AJLFeIxWToeJSlR9YP6ZM5vOikFcg,11324 +stripe/params/_invoice_attach_payment_params.py,sha256=veXLC3x_5vsKG-HbYv2xyqetzuKfeXDAHL0aSmK9RiI,568 +stripe/params/_invoice_create_params.py,sha256=W_fGlwKAfiKyVatW1okQwjC-Z6xKkH3pMj-G_02pKhQ,27057 +stripe/params/_invoice_create_preview_params.py,sha256=Fh_7S_-rPUGiwU0MaWsJlf7Cj2a7REs1PiVB3_DiIwY,49743 +stripe/params/_invoice_delete_params.py,sha256=Gkz_Ck1TU1zv9sULofehIpRyL_WRqM6y0uOIhO1GL70,168 +stripe/params/_invoice_finalize_invoice_params.py,sha256=0rWgJp6R66WMtxgYv3niUWq8J84WUUKLE8ytc0Og4u4,646 +stripe/params/_invoice_item_create_params.py,sha256=7euIUkJ-uwY6Vg6tCqWfBFecdWc4CsUnF-pFGlAXrpY,7138 +stripe/params/_invoice_item_delete_params.py,sha256=C8IBBlI2plMnLXTXD-AI-3-RFa3wswuv8RK3bPGQwM0,172 +stripe/params/_invoice_item_list_params.py,sha256=7Twyol5bYgXe3A_mICSG1tZQXScSow-fd1s-VJJwJ6E,2401 +stripe/params/_invoice_item_modify_params.py,sha256=miQVqXVO3X99w4W2QZHBgyfqXbxESBo-K4UOKC4aYrM,6052 +stripe/params/_invoice_item_retrieve_params.py,sha256=u0mgwPYqbGmdyahKYJuhbde9JWTgMj2D8AuZcFI2MZI,345 +stripe/params/_invoice_item_update_params.py,sha256=pPHT5Dhoc5sPgK5ghqLj5PI0v0SOSDx06EN0uuIyc1k,5996 +stripe/params/_invoice_line_item_list_params.py,sha256=xtMSmuhcwnL4sxnpj_VazgeplKl5kgKM-mrUOY2M6yw,1160 +stripe/params/_invoice_line_item_update_params.py,sha256=ZJz3F-ZzcHJ1KB_6oQkt8aTxsMB59g2BeyPgfdmiovo,10998 +stripe/params/_invoice_list_lines_params.py,sha256=XL6nw6tR8OzssKqphQ3OlHygLAmUIPgUfvdnGk31ug8,1202 +stripe/params/_invoice_list_params.py,sha256=CyGVCCT2VBVU1WkBYNLMEX_4c7zHy4vRCRD5AgCQs7Y,2944 +stripe/params/_invoice_mark_uncollectible_params.py,sha256=QHW1BoaYEefjWAL8tMcSkHjQYlXZMFDoFW0Z_ZDFhpE,350 +stripe/params/_invoice_modify_params.py,sha256=QX2qcp2QcA5C-kOwTAA4c1fKGX6nbBlw7vb8Ahx50uk,25960 +stripe/params/_invoice_pay_params.py,sha256=_dtb5QsIuNrjwF2cGyMKt_GtLSs8vlCtwvDrE1dBZ-k,2069 +stripe/params/_invoice_payment_list_params.py,sha256=2OCeHOD7q9dSBwPdk1KuoGcOIuyUc6NHqYLQu7ikuCY,2028 +stripe/params/_invoice_payment_retrieve_params.py,sha256=C5j4mS3xtcDoY3rVeDGCnb1gf0ctPStXm1Fz7taxw4I,348 +stripe/params/_invoice_remove_lines_params.py,sha256=Ouqi5cmFVw_1VqUMeANwUqehX55PgnIOB_vT3doGqRA,1199 +stripe/params/_invoice_rendering_template_archive_params.py,sha256=zOCRszU1Ytl9hodQNhic5G6FXbA84mKJYxIuYeUr7FU,357 +stripe/params/_invoice_rendering_template_list_params.py,sha256=ECIdp38EQhkMFpWDX__IjtoiI5uPtYlQ2ZkQGpwsnkM,1278 +stripe/params/_invoice_rendering_template_retrieve_params.py,sha256=NmnX7DlF6vAhM6gGoSaMdukZodz7scRZnqq9dMKgdYQ,388 +stripe/params/_invoice_rendering_template_unarchive_params.py,sha256=Ev6xDFmzCACA8ip18i0SHrBpMb2JboICdkatKnsfG_s,359 +stripe/params/_invoice_retrieve_params.py,sha256=-PDG7H3DtaGaatphuORuYKTKfDp6lDFR4j90iLiKa0o,341 +stripe/params/_invoice_search_params.py,sha256=URE_Skv5mkD_nxQ7tZVob6Tk5qbK50ymDaPpTW9W--U,989 +stripe/params/_invoice_send_invoice_params.py,sha256=sNYF1JpCc2g8TFOnIPCjM47uLVscvlzFQZzSugMwC9E,344 +stripe/params/_invoice_update_lines_params.py,sha256=b-9l4fTMbIU-eKmIBlJ_P5uFLgFMA0Bql0Z2pB6pJho,12066 +stripe/params/_invoice_update_params.py,sha256=Ifrn2KFFfOdk9-86eacCH8jlYRga1no_WHlL5c4Jm78,25904 +stripe/params/_invoice_void_invoice_params.py,sha256=q9Hgtv69M0SuQBUgzmvxEd1adlwovbPQPls0SOyhB04,344 +stripe/params/_mandate_retrieve_params.py,sha256=Qdl3abJ87kijTxT36mLK7NK8UQTIhTvoyDGca2vY4Jw,341 +stripe/params/_payment_attempt_record_list_params.py,sha256=scufLa1T5n6-OO274H5G-o72vXcXHA39a4lKITZjNmU,930 +stripe/params/_payment_attempt_record_retrieve_params.py,sha256=-0immTo3fSH-NqEXH-BEG5aq-tnMNHtojgDVpUJcoyE,354 +stripe/params/_payment_intent_amount_details_line_item_list_params.py,sha256=17pUH2Q4CNh90qAlrTvb-xnxYqcZ_e04-ByL5p3IsdE,1179 +stripe/params/_payment_intent_apply_customer_balance_params.py,sha256=ydcNmi8F6rEqPJ58UWjOqqXYZTr-nU3mWFc4Q2k4_V4,1222 +stripe/params/_payment_intent_cancel_params.py,sha256=NHYm74Eb-g8SXGNC0lPTRbv5DEHqUZvOkWOtFjYVPZo,650 +stripe/params/_payment_intent_capture_params.py,sha256=Ysg6eiVoaPXY1PmJHMT2CU_yTa_aUl-lUkLLKqzqX7A,11506 +stripe/params/_payment_intent_confirm_params.py,sha256=q5CpM_yon2Lof9QGQnkzppciJol50PV2pNSJkVpaxj0,152722 +stripe/params/_payment_intent_create_params.py,sha256=2-CGrhCX0YypACyCLdjwPuoUaUthtr7L6EeuVl6cnvU,160720 +stripe/params/_payment_intent_increment_authorization_params.py,sha256=VKi5rFFQ2GwoN6OaeCSRTdC6AddVbp7kG1JGpHASGQM,11090 +stripe/params/_payment_intent_list_amount_details_line_items_params.py,sha256=LPrR98KbAYhi7AeYKd5hdayWy8wvYbs6-_tuDAGk2uc,1225 +stripe/params/_payment_intent_list_params.py,sha256=liaQw3-Q97DWxO_FTm7WJUnbsAbxbiojKLQ8z_I9N7o,1988 +stripe/params/_payment_intent_modify_params.py,sha256=BmDwtRl23Ji6U9R-n1c6Rkx2GDj_020KhUVbZM40IiE,152986 +stripe/params/_payment_intent_retrieve_params.py,sha256=pvMGO1oG9njeKPjCfJbHEI6ZBv8q794XdekVp0qoAM0,510 +stripe/params/_payment_intent_search_params.py,sha256=geRV2BBJPbu01ci6qD7B5rt6_iBz1aB-octRrGfgFTk,1009 +stripe/params/_payment_intent_update_params.py,sha256=aQTHfHhDL6BWOAubtc0K2X__xveSr8nBetgkUhjragY,152930 +stripe/params/_payment_intent_verify_microdeposits_params.py,sha256=_j-JrKn5ng3EKTB7cEC3S_yYzf0iQDo1TgRrGmezY38,666 +stripe/params/_payment_link_create_params.py,sha256=6im7N3sYi5xJTgNb5LGO3_MDApSimn6QxdzBKOFnxqY,38479 +stripe/params/_payment_link_line_item_list_params.py,sha256=uAMAd27I1O14Dw2lwmZJOJU5nnvhPjvGCfhOhnb_48A,1164 +stripe/params/_payment_link_list_line_items_params.py,sha256=pg6tSHvy_d_H11GfIFmtCThIlsTMZ-KVuUvHYtmxaqM,1210 +stripe/params/_payment_link_list_params.py,sha256=tNmSmJvm7kH9yl9r7a4l3VGA8dV8-sNSn-UOHlSF53E,1362 +stripe/params/_payment_link_modify_params.py,sha256=BR_7EV6USrl2zhaA8r-ClADovkPLWX5iF_yTQl_k0w4,27081 +stripe/params/_payment_link_retrieve_params.py,sha256=RK_jiHnsVKNskWi_GOMXTCNfd_4xSFq9hZKsSdy0LjI,345 +stripe/params/_payment_link_update_params.py,sha256=tf6J--A2t6QNG0WOZCGjTJaF5nAR61hkN5MvGKG8fHQ,27025 +stripe/params/_payment_method_attach_params.py,sha256=qXKAzdsOmhpGwZyKUoyZvH-UpspDFfSVX5RxmBKqiiw,444 +stripe/params/_payment_method_configuration_create_params.py,sha256=zQe-94s6GVtRK6FDThGSl99PShzUhCkuLpSi2AAiZkA,48482 +stripe/params/_payment_method_configuration_list_params.py,sha256=TD3yCqHjnAUD_wIOn-zvRvJgiuAIaK83A14wnuormA8,1331 +stripe/params/_payment_method_configuration_modify_params.py,sha256=-DtbmllyO8_63mf_QQKKFoPoSL4GC6rhdUlFt6TCBdM,48460 +stripe/params/_payment_method_configuration_retrieve_params.py,sha256=0sHJgt5YSFxUVLGbJmcZqXt5FBsrqxl4SPvzVLe43Y0,360 +stripe/params/_payment_method_configuration_update_params.py,sha256=_JbalQ_PMrWgvKoTW4GLUh3ed-qOAD5V4OLKxrCpzh4,48404 +stripe/params/_payment_method_create_params.py,sha256=bu_O-4A9nvJ4U9eHJZDi04CCI-i3xghfo7CU0B5_l1c,24876 +stripe/params/_payment_method_detach_params.py,sha256=HuH8AbJqcvWonuhnXiCmoNVLBfMZ_NE7o_V99d8_fGU,345 +stripe/params/_payment_method_domain_create_params.py,sha256=jOkz6kAa6DhvcZXGhyidNxJKhrdaAqbEZq4RUE9yX5A,690 +stripe/params/_payment_method_domain_list_params.py,sha256=Egr-E1_yQOYglAJwBDvfTY9nmhOEscuENo67vulEYRw,1523 +stripe/params/_payment_method_domain_modify_params.py,sha256=rFN3mD_z4PtG8ae4x0Ez0DRFxbwfdYQgzCM12hL69Hw,582 +stripe/params/_payment_method_domain_retrieve_params.py,sha256=zazQn25OLHhQkU1JE_LSqr5SL0Wr9TKwZiMcD9eSUEM,353 +stripe/params/_payment_method_domain_update_params.py,sha256=542oNx9SeT2bXH-M9vFoI-lFBN3r90h_QNLfEhZ5jsE,537 +stripe/params/_payment_method_domain_validate_params.py,sha256=SLEGAAtJZmnJGvof5vAfJdqJspLgXO6K5F00RDPzXrQ,353 +stripe/params/_payment_method_list_params.py,sha256=S_XM83lPgi-5AXSE1-4OIQm0Cx2gajBbCl20tLTS1QY,2837 +stripe/params/_payment_method_modify_params.py,sha256=aDNJPFzx2ia1WI7a5qcCvqyE8o5Ws9_7zq7NbsravMU,4146 +stripe/params/_payment_method_retrieve_params.py,sha256=KkGPuz7_ZcHtAfkSx-LuzA85b9UhL7U6Dauclmm5IdM,347 +stripe/params/_payment_method_update_params.py,sha256=kBW5SjUhTtwzulVhdqWezmmFseVNCo_lK2shxZ0OMk0,4090 +stripe/params/_payment_record_report_payment_attempt_canceled_params.py,sha256=MsX7DzGtvpor1oSF6b5BxdtfL-mfPTCx4hLj3GDw2r8,561 +stripe/params/_payment_record_report_payment_attempt_failed_params.py,sha256=VZCYXhEdVdub4Pr6C40mHD2K1r-nog-E-XkaX9xONvU,551 +stripe/params/_payment_record_report_payment_attempt_guaranteed_params.py,sha256=SeIcZfa1UqpDQSRDrXlmhsJh1WxxLySd6dcr9mwRObM,567 +stripe/params/_payment_record_report_payment_attempt_informational_params.py,sha256=TGyKydMmTSXAXYczAuP85VurDy9vzNESBEMhaVCO3i0,2861 +stripe/params/_payment_record_report_payment_attempt_params.py,sha256=kjwrNv538uqq-EBm6y-OcamKVKaYfxgCyM8LR4FvcAs,5855 +stripe/params/_payment_record_report_payment_params.py,sha256=uw6KXQR6KizvKEE1iFu0TU-gfTW3MXWWII1Sfw6QuWI,7922 +stripe/params/_payment_record_report_refund_params.py,sha256=8762DRbCg9iDxPi5Q5XDjdSARrV3rZzbMwGQlsYqcBE,2888 +stripe/params/_payment_record_retrieve_params.py,sha256=P8TR9HLWh9snpRzYusL2NvDmGLWYHTBnfvaVfbwJjYQ,347 +stripe/params/_payout_cancel_params.py,sha256=h-OG5BLDOOJjGCk8m9CcUN_3k0BUmwD2-_1gnVAMC4Y,338 +stripe/params/_payout_create_params.py,sha256=IrF6WXHiqwD15HOR1Th8-Hdo-4Gf3VALZxT5uJZD04E,2470 +stripe/params/_payout_list_params.py,sha256=SPJmEwCtWQB4QmYs41sgjam1jc1rM6WkoAipTMvyykA,2564 +stripe/params/_payout_modify_params.py,sha256=DFFmElC6GMMASJQa18GhQzxF25jYWBOLyHlHxJG9wLc,748 +stripe/params/_payout_retrieve_params.py,sha256=E6hMnrvEmoCotki8dopZvEIOuYMyr--_FWGtJ8AowTc,340 +stripe/params/_payout_reverse_params.py,sha256=zHcj4IvYhZo3dXoKHU40ZZULGtzzsCqIxh6P0Glaa7Q,726 +stripe/params/_payout_update_params.py,sha256=-uvZbXUDjpqVhqeur6Fnm8NDHC2-51bfRqBm4vameUc,703 +stripe/params/_plan_create_params.py,sha256=WuBPsrpntQntKRWtSR2JZ2SHvL5_sOEEVUTQTlYtqI4,7139 +stripe/params/_plan_delete_params.py,sha256=hAa5k83Smp1NUfPoNx2tbgbTSLEzgutwoDqJaHy0C64,165 +stripe/params/_plan_list_params.py,sha256=m3C-PUuhbbyUSDJMm4nMNi1W7iyJUYPfAgyhlzS2yEQ,2080 +stripe/params/_plan_modify_params.py,sha256=YIwkvQwDt-9nV-U2lL6OnBFWrIrmCE0P3MAnpgY38nk,1365 +stripe/params/_plan_retrieve_params.py,sha256=tOx8IdL-uj99ZiCPncFvK_85JBxs9I9859PaTdCumfI,338 +stripe/params/_plan_update_params.py,sha256=rT47DNZ356GaZdmFNqg9MJkNMnNDf3Kr-vJDe0B_pQA,1320 +stripe/params/_price_create_params.py,sha256=xMkoI01ByjnQh8Bqtp9TlAry9uh7Bly6ewRHJpqyBbs,12493 +stripe/params/_price_list_params.py,sha256=V9jWQur-VwePqQWGdobSq7y3v8MJmlJ4bJc2wFgdmec,3039 +stripe/params/_price_modify_params.py,sha256=zvTdf8q4kOn6Pp99o0GFww8-0Y5WRKlRDa8HsVd1Qyg,5238 +stripe/params/_price_retrieve_params.py,sha256=GMhPVtHLlPN43tSnVOWQw6kGtjtmtBmqfV9CT3XEnCc,339 +stripe/params/_price_search_params.py,sha256=KWhZ8y8KE0ay9c6HZLENNoQJpYVeDU1mCY2XkGVDiAo,983 +stripe/params/_price_update_params.py,sha256=ab5xcvjpLIqq3A4gX4eTse3if3kHTzbLDH2sxQKoM2g,5182 +stripe/params/_product_create_feature_params.py,sha256=mH-_849toL1t9mhTrnIsIh92JEOJ4EdKy88Ng4TrEbE,502 +stripe/params/_product_create_params.py,sha256=Dr-oltJLAPqpXmIce8jkFlRLY3nzUdHIlwHAAsHpzFs,10890 +stripe/params/_product_delete_feature_params.py,sha256=8uluOe-pXP6PivtN_4XIVX4lR7QU4HXA_1fKvG_J9DE,175 +stripe/params/_product_delete_params.py,sha256=6Y4vOmQE1HNWIfVb_0du5TLOrZT76Ps_Ou9bkFIfO2A,168 +stripe/params/_product_feature_create_params.py,sha256=96kbiAblUDOwoov0BtN15qR8llVaUnMqhTVoZFJaKLY,457 +stripe/params/_product_feature_delete_params.py,sha256=mu5qXwsg1Lvb6kTyKSMSW_5RrSSlsCoQhOmEg24x1Wc,159 +stripe/params/_product_feature_list_params.py,sha256=CGiflaxwuqQyajQn8MlAPqhmld58-GnTU8Zox33Squg,1159 +stripe/params/_product_feature_retrieve_params.py,sha256=L83zgrNJD7eJbnt3J12ggojaXlb78LxEakQuJaH6KYs,303 +stripe/params/_product_list_features_params.py,sha256=VRhJGgSH_9Vlq4e_FzNzNsRw9iq9_3ApuJaSIvg33_M,1205 +stripe/params/_product_list_params.py,sha256=3RQtNUHW61qBeU6-Fy-s6o0NnFXSOCr9lU602Lj87gk,2490 +stripe/params/_product_modify_params.py,sha256=URG_hoOc4fIsCQ6AAym3-sZUIpsvWm22BEAWZ-Tgns4,3784 +stripe/params/_product_retrieve_feature_params.py,sha256=Nagt3Ofd0nB8NY1fAKFnrKWpB3T-RETUv45_eYpeQBo,348 +stripe/params/_product_retrieve_params.py,sha256=RWNGrjgbwTuqBHPXkTRcPzpb0auROn45yoASTeIolio,341 +stripe/params/_product_search_params.py,sha256=pwsXpO9eAEL1TZey7pKAGz6iLv2EBsTTzq1j1Po_yRo,989 +stripe/params/_product_update_params.py,sha256=LXAKVJOGj5_sjd9O9lCXQm8UlI6MjjOheVKKKGsCXE4,3728 +stripe/params/_promotion_code_create_params.py,sha256=LQOSkJQb5P61OdEAMFAPjAPtxqXZClUAYyhgeoac8UU,3518 +stripe/params/_promotion_code_list_params.py,sha256=puli986fP1vRTcvhNeAZqMnafAORdd2IQYgeOesq0Cw,2296 +stripe/params/_promotion_code_modify_params.py,sha256=LDkhiH8FrQhSMVRV41iC9k-E6NYnE8mUOEf5F01WzfI,1801 +stripe/params/_promotion_code_retrieve_params.py,sha256=Hhz0cpxdsAJJnMnjyp9pFEk4roPIQ2J6UX2olcp7tjo,347 +stripe/params/_promotion_code_update_params.py,sha256=-ORgRw25vZxPD4CXDa6xzW1d9uy2XN2_ioVLi2Al09g,1745 +stripe/params/_quote_accept_params.py,sha256=JF80G3G0Tyb5S-YMbpSPcO67OE9oEMZZz00BCBj4IlU,337 +stripe/params/_quote_cancel_params.py,sha256=o3M9QIOWz6uCG7xEgwKL9XLFP7lLmpQE31IWzWxI0sE,337 +stripe/params/_quote_computed_upfront_line_items_list_params.py,sha256=KfhafO07vaA9KfHimctGSgEwuv4fuYCuV5L86vwJyNk,1174 +stripe/params/_quote_create_params.py,sha256=shPea7FJv4Abv70yZqzhhU3L1XD8WSrxA8taXh7D_34,13684 +stripe/params/_quote_finalize_quote_params.py,sha256=QndKC_Cf1QCMFXSIDKMQI5UeRTI4-nKiHgBGo6BW4PY,526 +stripe/params/_quote_line_item_list_params.py,sha256=DUTRlfI9Li6zjRddxGY9vz07lB2FKJwJOxyfZ1wAnqA,1158 +stripe/params/_quote_list_computed_upfront_line_items_params.py,sha256=5DbKSHnbKRTBSZgSgGuwpiTX49Ahb8HCB9w7j9AmNfk,1219 +stripe/params/_quote_list_line_items_params.py,sha256=QMQJ8KfQ2UrhC_d79H_t9lcRGWdtRHekbZEg2o7ofp8,1204 +stripe/params/_quote_list_params.py,sha256=6aQa8jhF1r25u3e7ismYcxcvNbmxcdh3MsTh4zGFr2Y,1660 +stripe/params/_quote_modify_params.py,sha256=spWxT2AXOed0CGHNMegyj_3WiCgHNoKlyB6qymwQI2A,11717 +stripe/params/_quote_pdf_params.py,sha256=Q3BO9qT9wKRx3ThiArnuo_h_Cq4QXyXDuXXAlWiFPL0,334 +stripe/params/_quote_retrieve_params.py,sha256=iwgVFTMBltTF9dD_4pIzk_P0WlVbfhXnilRaVTxg3TY,339 +stripe/params/_quote_update_params.py,sha256=xqo2HhdAj-jyTBUK9hpWKrPi2LTdDh9g78XnAgJNYZI,11661 +stripe/params/_refund_cancel_params.py,sha256=Sy7e9ZvwSzmTxLFsjz_P-RjbJ3McO7T8zoQSWJCjvos,338 +stripe/params/_refund_create_params.py,sha256=YBasqRaxfn1XzqEANseHZcRsaqJIm0Gc7PKPR3eayok,2849 +stripe/params/_refund_expire_params.py,sha256=41dzAO48VXmwCTu55xlYE73XgUkxPjCwqC0pp8Au-ow,338 +stripe/params/_refund_list_params.py,sha256=46YJkivZGQWSCyzxRcKcZLC0Ezyq7ZyD8bYFIkiUiSg,1969 +stripe/params/_refund_modify_params.py,sha256=5bp5D2Q9vyavhTpCFEf2xtC3eTSmuB3BK19KxKN0ZkM,748 +stripe/params/_refund_retrieve_params.py,sha256=jas_Vv0dTlQf-8wrzmKsz1EiAOjiYsakvVmX46yEmvo,340 +stripe/params/_refund_update_params.py,sha256=_KJRCAI1tp6ySKlbsJwN0aJDQO-oQ8sq420g6Vlzs2g,703 +stripe/params/_review_approve_params.py,sha256=LYQi2UDmIoEx_szknUNFX6qNKrIRbSPdnOiVglu96cQ,339 +stripe/params/_review_list_params.py,sha256=-CnJrk-gUq4WACSeLJMMutfEH2JCxtwW2UNkdNE9TXo,1735 +stripe/params/_review_retrieve_params.py,sha256=UsrxF1eAObh6oUZ9se9p5ck2T3Ja22zEY1-fSQfmfuY,340 +stripe/params/_setup_attempt_list_params.py,sha256=-R2XYVhJBrLcLmBEWDYaF3QW3h8aRRvOnZ4KQBwd_jA,1986 +stripe/params/_setup_intent_cancel_params.py,sha256=KbgXKu-N1nsvnJ0nvDtjw2Cg0MIM9y--Kj6LGAxOePE,596 +stripe/params/_setup_intent_confirm_params.py,sha256=PvoT6nsKYZoMJG-gvyHruJeE2yu_BJE_Z-0CQfZzGfE,46487 +stripe/params/_setup_intent_create_params.py,sha256=FU6OZKTHqIUJ_kHq99_iwzyT2HmMJ4uMZM7R74wMQPE,53113 +stripe/params/_setup_intent_list_params.py,sha256=yKWPnp-b_muvzMrrAGfwbmXNLcg3lmhjFcYJbfnKCVY,2536 +stripe/params/_setup_intent_modify_params.py,sha256=X04_3f3Qpd2AzcGYpCQhBj1KbSL1xI0JRZDuw0OcE6o,47064 +stripe/params/_setup_intent_retrieve_params.py,sha256=yCIJxZajlqDQjmLUOG0WqYUuzJFSua2_oJu9QlGnBrM,520 +stripe/params/_setup_intent_update_params.py,sha256=4eo54d5inGd1MUl6dJm9KlzAjg27iKPWCM2357RmIy8,47008 +stripe/params/_setup_intent_verify_microdeposits_params.py,sha256=VvtJ8nPPwLi6TCmnhlk9E3OLSfkLkuAXMiN-q4BeM4U,664 +stripe/params/_shipping_rate_create_params.py,sha256=OJap_xSlMFBKIbOUv4jkxeYF5y5ruCvNxAxHVFdxR60,3827 +stripe/params/_shipping_rate_list_params.py,sha256=m1Y_8S5GpyihLls2kqRa4BZxntM36U3BOVo5qF0h1ks,2076 +stripe/params/_shipping_rate_modify_params.py,sha256=Kvps5vtts47hm_IOoNdNDVBoUW0_5nSQ7vImnSKinmk,2139 +stripe/params/_shipping_rate_retrieve_params.py,sha256=N9NAkzrbfBQf8iTG1r7paraikRAb37TKLzwpG16CVQw,346 +stripe/params/_shipping_rate_update_params.py,sha256=Ei9rzzkQLKZ64rk5zDdyrvtlGnq2zRlIQ66-XYNpMlM,2083 +stripe/params/_source_create_params.py,sha256=2yUEa_9Qews636cU0h5iRjJNik5l2F4-0aWI8qdbt-o,10583 +stripe/params/_source_detach_params.py,sha256=xBT5w_HpKnBoPYRTH4Z4syZaT6TIDBqCI3SXa1iGRmg,293 +stripe/params/_source_list_source_transactions_params.py,sha256=ELJqD-nHwIbcnWWUwDUvBgtKdl8_z1XCTtXpuzqgkUI,1214 +stripe/params/_source_modify_params.py,sha256=wJnvvgW3TcLlKXYjjcaRFYP0Q4XSZEbCY8pQzUXgFCM,7952 +stripe/params/_source_retrieve_params.py,sha256=PCRgp6mBVSJX2uudmD4MO7zkWTA1flhP7fz_I4RXYYQ,491 +stripe/params/_source_transaction_list_params.py,sha256=lRB6J101Wp9xfHAR4gFL2K_JnLEpQKg1yRa0qQbaoe4,1162 +stripe/params/_source_update_params.py,sha256=qyyQh5tBVIROC-qjyu3ttv7Mg86y3A4VaYZxn6IpK8Q,7896 +stripe/params/_source_verify_params.py,sha256=jQ2OWbT7KdsowwD625JgsLNxNAw2XV-eZ9yj4flxr_A,420 +stripe/params/_subscription_cancel_params.py,sha256=jZeRxEF0XejE1vrFzbDk0uSNl4VllJXt53hWDCmXnu4,1479 +stripe/params/_subscription_create_params.py,sha256=C6mAcBaFU4ab7n4eLFzSi3wYaBf7Pssubyucj51fk3o,36036 +stripe/params/_subscription_delete_discount_params.py,sha256=Vw4ET1NeRCFcyhH9-p3plcNssFhSEGzHjj3DgIQIjfw,181 +stripe/params/_subscription_item_create_params.py,sha256=T5J1TRgPmNzv4cElZ1TVWhaXXivPiwnDvADVoBtQKqM,7626 +stripe/params/_subscription_item_delete_params.py,sha256=LhptQQQxd2cBUijncZxHYonWcRyiRDdg5CxNxsgMGF4,1121 +stripe/params/_subscription_item_list_params.py,sha256=FynWOwTmDlHJq7sw2IcuHjmVVZSTub6WiT0jS-689j4,1306 +stripe/params/_subscription_item_modify_params.py,sha256=-Fr9wim6voT1nkKoXHeBfqdgwp3tQJK9XX7JvjyuB1A,7926 +stripe/params/_subscription_item_retrieve_params.py,sha256=oNgXP1_ndai0h-unaM8xxu337sEdyMabTNzjPdxMYJQ,350 +stripe/params/_subscription_item_update_params.py,sha256=kEPXvFukMrHq7V871TlzU7nCRWzRDcPfGwXbuKdLxjk,7870 +stripe/params/_subscription_list_params.py,sha256=fy1kHWZ-EIRHx5Nf2fdanvMFcTMbjW3iCPVXK6fycRU,4988 +stripe/params/_subscription_migrate_params.py,sha256=xH2DCeLnJm36QqAqb0ZqaQaQ2Z2v-n8mwcjqpNXaV0k,1109 +stripe/params/_subscription_modify_params.py,sha256=dVV8odhYGdUG34R6uq-zBs-3rjg7dUCDTs5qL2gkrrA,36049 +stripe/params/_subscription_resume_params.py,sha256=fmHyvn1cIU3PClERAyy1hLnR-Rjr-uLE3wUj0RT_sbM,1437 +stripe/params/_subscription_retrieve_params.py,sha256=g8-9aJi2BqAWmYCr7qzad1hIOw-yAQ1K7R1cv52MOtA,346 +stripe/params/_subscription_schedule_cancel_params.py,sha256=H9W0l7OMH05Gqtuipyt5vu2dND_BzBQ0biUzUmTA8Pc,764 +stripe/params/_subscription_schedule_create_params.py,sha256=9w83QEyi61f2Xp4asUpCRKdwUNH6k1mJgC1J2jnX-u4,29516 +stripe/params/_subscription_schedule_list_params.py,sha256=oTMdfrvfABpzZtfcxO7DEQVyMKqeYti2GydlxOfIISw,3763 +stripe/params/_subscription_schedule_modify_params.py,sha256=zlY1pRbpHiS8Sbo6p6mz4lfkMlCbHpAnGdYK2aZJd9A,28302 +stripe/params/_subscription_schedule_release_params.py,sha256=HoBDdQJY8r2d8EqyrHjKJ6CffQR976URAp8oytN8hBI,485 +stripe/params/_subscription_schedule_retrieve_params.py,sha256=WMASujGwfUTGyEQ5aADdVwPGtxTsgC3IC8pyanxHV38,354 +stripe/params/_subscription_schedule_update_params.py,sha256=J7G1gk9HpkFthSftoYlOWGPwlmZFqGK2rulVijXn8DE,28246 +stripe/params/_subscription_search_params.py,sha256=IxWBcMBOI8JPm5nzFl5T8KgHGyhH4BDkrwks5YJkA1c,1004 +stripe/params/_subscription_update_params.py,sha256=GwsbY_cfjfn-lHHWCYBx27xpSjYbbbjguB7xLSyrxSU,35993 +stripe/params/_tax_code_list_params.py,sha256=dtUb2kXKbofdE-41I20WHKqQ8zam5oe0RcvsE5JVc6k,1197 +stripe/params/_tax_code_retrieve_params.py,sha256=vkhkR8kmFrWQj2v53qrwJiAz7WGanZoM_Fs7qVOL5Bw,341 +stripe/params/_tax_id_create_params.py,sha256=5xyI5jN0Grx9mRszbBOEJXEtBr8x9kkY5zv0yU86uYw,4129 +stripe/params/_tax_id_delete_params.py,sha256=PXMQN_hAH_nqyrtfg2Lc0MLetUXo1uA1Z0vnT0SXpx4,166 +stripe/params/_tax_id_list_params.py,sha256=Guz0CWGR_LKcQ-mus12G1NFZ_mJ-0hazX4SuWuvoOV0,1735 +stripe/params/_tax_id_retrieve_params.py,sha256=fIhnIthWKAWOf8CcBwbVLntGjj1f4c5zi0B73ouCXhc,339 +stripe/params/_tax_rate_create_params.py,sha256=wOCsEOq2c0kY1_gBGEJbx8t2cQyFieWB5kjKh6kls2A,2470 +stripe/params/_tax_rate_list_params.py,sha256=cpeOzMg6OnKj1xMAfxIL_gUePmz819RGFKXGVHMCZ9g,1989 +stripe/params/_tax_rate_modify_params.py,sha256=8B53KWo6e3eFl2ccI4zz-Sk7B2vbrHGzT0XHxdybJ30,2308 +stripe/params/_tax_rate_retrieve_params.py,sha256=MTbg9ZleDvRpdlltiO6nOIrF6CTrIJfHhwtmNFGDSCM,341 +stripe/params/_tax_rate_update_params.py,sha256=E2mXmCNOzdLpbQeRpvBpMgZttF-De_HSFlYg77KhZQI,2263 +stripe/params/_token_create_params.py,sha256=JaPb_ni0ejGhvhwKVgdwqKYj4ygxGPIbn-DKLLBBmng,41327 +stripe/params/_token_retrieve_params.py,sha256=V_pWkayXZORC7XHJTAEznECddoHvLo46K67uG7wOa7Y,339 +stripe/params/_topup_cancel_params.py,sha256=WnYAd8CA6MxHVk2NvYW77S9I9f1nMJ8ephJWzfW2_O0,337 +stripe/params/_topup_create_params.py,sha256=0Klg_kqu3fsMkGdDdtiIiWxC7RX9J9GQRjxvGgLcCJk,1811 +stripe/params/_topup_list_params.py,sha256=nDqaK2HaqKly_0vGaxe4pubb7poibtqPnAjxrWeIb0M,2565 +stripe/params/_topup_modify_params.py,sha256=87QCn7dqSPlyKcMh5K254cc5FudakoSsGi7wz4MLvP0,883 +stripe/params/_topup_retrieve_params.py,sha256=cdD2Xu5YQWosRCxIuqS9DOi9lbLMu-TcWbAp1Sbi2s4,339 +stripe/params/_topup_update_params.py,sha256=B3magPPiaUL9XSxzbjutOrF0iDvuAyXRVWKrrfyGZJc,838 +stripe/params/_transfer_create_params.py,sha256=NyEMk-JLg3edbTXzd3Ikasz7XwwPOXLHkPiYZ8f3oTA,2300 +stripe/params/_transfer_create_reversal_params.py,sha256=HfrkxcZHL22x6JwgERu_pewfYu049sZt2sYdPOeGT3U,1621 +stripe/params/_transfer_list_params.py,sha256=AjhCO8sEExfV07UduwZfFvNRKosKwNCHxo_u7kFIX3A,1983 +stripe/params/_transfer_list_reversals_params.py,sha256=afWJdNeafaf19I6KMEpIbORH_IfR89YhsvDdAq1mcp8,1207 +stripe/params/_transfer_modify_params.py,sha256=0ouO3d7fFz6zo2wJoFCdviMu4Bp9BlItwJxXjl8etgA,886 +stripe/params/_transfer_modify_reversal_params.py,sha256=Uc_SNxxTzQlW2Dv_OHFkWJvkJB1c4fcRZcF5R2umt_s,758 +stripe/params/_transfer_retrieve_params.py,sha256=--aTGoYLtXmx0LZQqcGTMibsij2poooqFGvHCxtxk_4,342 +stripe/params/_transfer_retrieve_reversal_params.py,sha256=MQkEA9-skFUxnmjNpUmi-SYNUgtJ90ZM2PkVbrL-Fvc,350 +stripe/params/_transfer_reversal_create_params.py,sha256=BwJSVlNEXrlAv5atIApinCM3j8oGv33UxIDQ7uXHRaY,1576 +stripe/params/_transfer_reversal_list_params.py,sha256=O3_b8ztVF7V2XfAO3do-0_YO1K-yVPiv0VFC5fzRapY,1161 +stripe/params/_transfer_reversal_retrieve_params.py,sha256=gMUQ4RseWpeltJwGn2AEqWmAp23tcESKiexlgHDyiWg,305 +stripe/params/_transfer_reversal_update_params.py,sha256=mTTlmNv7E-ZTUpFCHkaBQHeASbmipzXYeF5xam-U83k,713 +stripe/params/_transfer_update_params.py,sha256=VS7chqf4RyDm8KBnGte9TvJhrjaFZFDY92CYqda4Kbc,841 +stripe/params/_webhook_endpoint_create_params.py,sha256=eYKLoGFSDe4q33wqvU5UK-LfJ9VdUYTvRnN6l-OJWGc,15257 +stripe/params/_webhook_endpoint_delete_params.py,sha256=1SYGVqJL5-R-qa4YmyrnkaKNDukDpvYPx7ApQnBFFtU,176 +stripe/params/_webhook_endpoint_list_params.py,sha256=iBNOlaEukWcO9Qh119WbtL3VtRL3luCjDT8NJW7ZKTU,1205 +stripe/params/_webhook_endpoint_modify_params.py,sha256=mqS9wqY4Qf1-9INRyN6OHEW7v9o4DhyzCe7XHHmpZfM,12883 +stripe/params/_webhook_endpoint_retrieve_params.py,sha256=Ph_TqUvMdRZA_2GsXhPK_PbYro8E5NtDpEbFkjL_IKU,349 +stripe/params/_webhook_endpoint_update_params.py,sha256=Ac7pILyJQiGGSJ1XPN_7vJd_OjnwATRSX0AyvmXCiFg,12838 +stripe/params/apps/__init__.py,sha256=gXqzGfpJQ_umIxK7C1KcLD0qGONQ4sxxLEGlmrmXPow,2021 +stripe/params/apps/__pycache__/__init__.cpython-312.pyc,, +stripe/params/apps/__pycache__/_secret_create_params.cpython-312.pyc,, +stripe/params/apps/__pycache__/_secret_delete_where_params.cpython-312.pyc,, +stripe/params/apps/__pycache__/_secret_find_params.cpython-312.pyc,, +stripe/params/apps/__pycache__/_secret_list_params.cpython-312.pyc,, +stripe/params/apps/_secret_create_params.py,sha256=Ur1-8BRJFPNS96dHXZqNh8dHf-_1rjmEEFOlpUvMZLM,1166 +stripe/params/apps/_secret_delete_where_params.py,sha256=CwTGzN0Ba_mSiEuo1yDwmOsj9VtpZlcUPBgHUgOK0OY,964 +stripe/params/apps/_secret_find_params.py,sha256=5WO3lHM1F8hZTT_SLk7j_s0dQXc8TtF7n3EuOF-8D5Y,943 +stripe/params/apps/_secret_list_params.py,sha256=rXPsr3no0NjMFq1iyQwum3CTed1WVznFRqVZ6IJrOYU,1715 +stripe/params/billing/__init__.py,sha256=DVHyz2pX3kGe-keUsO9HUei4Ppj_igQUT_Np6aTwHvk,10385 +stripe/params/billing/__pycache__/__init__.cpython-312.pyc,, +stripe/params/billing/__pycache__/_alert_activate_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_alert_archive_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_alert_create_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_alert_deactivate_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_alert_list_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_alert_retrieve_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_balance_summary_retrieve_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_balance_transaction_list_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_balance_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_grant_create_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_grant_expire_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_grant_list_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_grant_modify_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_grant_retrieve_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_grant_update_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_credit_grant_void_grant_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_create_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_deactivate_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_event_create_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_event_summary_list_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_list_event_summaries_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_list_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_modify_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_reactivate_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_retrieve_params.cpython-312.pyc,, +stripe/params/billing/__pycache__/_meter_update_params.cpython-312.pyc,, +stripe/params/billing/_alert_activate_params.py,sha256=FkQvA2pXQ2a3kKO4AOYWOimh5tkOFRyCIw6jJ1KpsNk,339 +stripe/params/billing/_alert_archive_params.py,sha256=wUt4EUuq7CwV-gmmday6gZ4Yz9PVf4MnYN2X2uHcG2w,338 +stripe/params/billing/_alert_create_params.py,sha256=crvm-q3FFIhNvjaHcc51_ghaP5Tc_RdMTalilniw9ng,1464 +stripe/params/billing/_alert_deactivate_params.py,sha256=mHwM5HbSL3Obc38-RaYDX62tzbw3uJ7_qWKcuIKsNzc,341 +stripe/params/billing/_alert_list_params.py,sha256=kU0jmafDTrUTGXx0H1WhF5_m5l_GFSMjszJinAy9kp4,1439 +stripe/params/billing/_alert_retrieve_params.py,sha256=UupKr9O0BUssX2ti-tdOcLZlxvyu6Iok6Hf78frHfEg,339 +stripe/params/billing/_credit_balance_summary_retrieve_params.py,sha256=iQyPzcRzvSnrNEmgkW8t2mIgZMUaL4idhMtMm6WjLpc,1840 +stripe/params/billing/_credit_balance_transaction_list_params.py,sha256=RUBAaqk0QHbhFKRbczKQNnawOiY5x_AoepevqeDdDrc,1433 +stripe/params/billing/_credit_balance_transaction_retrieve_params.py,sha256=u801DztBUPEYOR-9rvWDhPaPuAMDVFwxTuxh0KyvuQc,358 +stripe/params/billing/_credit_grant_create_params.py,sha256=kYVCM8xMMxZy0TVjsw5o-0g-M_RVouNDAtPs9Ty4Trk,3346 +stripe/params/billing/_credit_grant_expire_params.py,sha256=KbEs9VqplVk8nPs02fw8w2geOoHZaalitL_miltNMgU,343 +stripe/params/billing/_credit_grant_list_params.py,sha256=zJ_GicU-1qBxMwR--aUR4qcX8sSNJjjyC4VxSU3x_TA,1297 +stripe/params/billing/_credit_grant_modify_params.py,sha256=eeuPH9QzCjl0eXsn6nr6UuEjnyT-4bPp6ui2B7ZuxPI,777 +stripe/params/billing/_credit_grant_retrieve_params.py,sha256=rICP2M2Yu6NdUTRqQg5yYx4Hddc2Il30q-C6cFvxYMA,345 +stripe/params/billing/_credit_grant_update_params.py,sha256=Y1O8Ztg83wZyKtOL3XTT8e1BoQLMY4iJJ08pe0V_HUQ,732 +stripe/params/billing/_credit_grant_void_grant_params.py,sha256=vQQMSw0yHPUf951g-3F8J43Yz8JHp3t84FT7dNTzYLQ,346 +stripe/params/billing/_meter_create_params.py,sha256=WCLcewqi3eAdS4FBnWe1UIusofIy6rEqTFSh0ZtN8Wg,2071 +stripe/params/billing/_meter_deactivate_params.py,sha256=kaXTIi2pcy5ybKBvS9fLs2JltsE6C2KriRK0iuFBVNw,341 +stripe/params/billing/_meter_event_adjustment_create_params.py,sha256=t1x88x5OUEUyezsjkHvwitULKT3JBfPHo13i6YbqwE4,1004 +stripe/params/billing/_meter_event_create_params.py,sha256=Q-knj2FltzPa_WSgcm9wFypESxoJglgQwtgLvIxy7u0,1596 +stripe/params/billing/_meter_event_summary_list_params.py,sha256=qZcymYu90TZGC-IxJE2IEYdmViVrSwRDlzIbpPyn03k,1997 +stripe/params/billing/_meter_list_event_summaries_params.py,sha256=yvRUit8SLoHZHsn27ii224GHyr8gPxVk5jeEQx6OKgo,2044 +stripe/params/billing/_meter_list_params.py,sha256=t0TXMusH9xKDnEVxzzNjY2sJZIotdLgb15sNEJHutFk,1340 +stripe/params/billing/_meter_modify_params.py,sha256=2N2Q2h8udkT14r1UWe_UFHFCXE5s_afffktx0GEhETo,439 +stripe/params/billing/_meter_reactivate_params.py,sha256=dxEM0eNWUUVNnGH6dtzZUu0indhR_PVZk8_3OmfUW8U,341 +stripe/params/billing/_meter_retrieve_params.py,sha256=HWcp371fpRwboKU6Xp0rjSUEGp_eoq8zYdLhBZr54po,339 +stripe/params/billing/_meter_update_params.py,sha256=wpW-1IUjQX_RrevqIJW7Q-v16vss8xPFY2xEivyh-V0,394 +stripe/params/billing_portal/__init__.py,sha256=lWKDZ6Z3h4g6oYTzvSAKJ2fLJJ5bE0j73A1q6SPyGx8,15905 +stripe/params/billing_portal/__pycache__/__init__.cpython-312.pyc,, +stripe/params/billing_portal/__pycache__/_configuration_create_params.cpython-312.pyc,, +stripe/params/billing_portal/__pycache__/_configuration_list_params.cpython-312.pyc,, +stripe/params/billing_portal/__pycache__/_configuration_modify_params.cpython-312.pyc,, +stripe/params/billing_portal/__pycache__/_configuration_retrieve_params.cpython-312.pyc,, +stripe/params/billing_portal/__pycache__/_configuration_update_params.cpython-312.pyc,, +stripe/params/billing_portal/__pycache__/_session_create_params.cpython-312.pyc,, +stripe/params/billing_portal/_configuration_create_params.py,sha256=-PgpQ2Q6vIwkSn0G7_GFzEap4V_HsyMdjrmd-QGPtDw,8938 +stripe/params/billing_portal/_configuration_list_params.py,sha256=8NmTXF74eA6WVkltnp43lKocxG3p-CyOT3TsS6NYZ9Q,1532 +stripe/params/billing_portal/_configuration_modify_params.py,sha256=ZzJ-6OM3LDkEHesXiC615OR26SdN3bbny7t6gcXikDY,9033 +stripe/params/billing_portal/_configuration_retrieve_params.py,sha256=P0bRU-nOhmWJ1rbu0m8J-k6tdLAIg2tSm3ypQknsaIE,347 +stripe/params/billing_portal/_configuration_update_params.py,sha256=8gXsgldQdyDjSRYFmmAMBROJ4TU7tUvupcWBhevxUV4,8977 +stripe/params/billing_portal/_session_create_params.py,sha256=f_TieCe2n_fmJKwIDaQO_2sZBhvvhCyEorA6UAxsKNo,7439 +stripe/params/checkout/__init__.py,sha256=vVPSkbTW4bzyLN563xHnErb6tPLK83LUhBnyEcL5Zas,37551 +stripe/params/checkout/__pycache__/__init__.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_create_params.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_expire_params.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_line_item_list_params.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_list_line_items_params.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_list_params.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_modify_params.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_retrieve_params.cpython-312.pyc,, +stripe/params/checkout/__pycache__/_session_update_params.cpython-312.pyc,, +stripe/params/checkout/_session_create_params.py,sha256=wz2A1Il6fHqYOttgXDOFkyfrxvA8ynK3OxH8awNkUO0,134161 +stripe/params/checkout/_session_expire_params.py,sha256=EGzsD5H5xc26YCjK5XlqM0QzIcNVAHzBVHSpE9akGYo,339 +stripe/params/checkout/_session_line_item_list_params.py,sha256=C-t8rxJSRDp1pq12mfdScrGKu6F-s3QBgpGpWGyfso0,1160 +stripe/params/checkout/_session_list_line_items_params.py,sha256=oojkjaYlqkJzW2b1Iv4ZlXQVFMpi0kKvS-mmPlkMIK0,1206 +stripe/params/checkout/_session_list_params.py,sha256=hLn8jmsgKi4iFjePb8O5vC9TGlATK9fVNNhg_-l5pgw,2653 +stripe/params/checkout/_session_modify_params.py,sha256=aWuUDMg3Cauxoi7wRYdAZNJWRJFtL3RL1EqcXc2Z-Vs,6633 +stripe/params/checkout/_session_retrieve_params.py,sha256=eVwRMKA_VIJ8le603QLR3mg7H0rgQbNjmzrIlgzMn0M,341 +stripe/params/checkout/_session_update_params.py,sha256=jI5mYpnjBDHywibvW-lACOhSkAIqsL0zVhOEaidKKsg,6577 +stripe/params/climate/__init__.py,sha256=6uBJUPcG9l18zgPUssXoT12FXhXX_5GMOKwDXpifGXk,3232 +stripe/params/climate/__pycache__/__init__.cpython-312.pyc,, +stripe/params/climate/__pycache__/_order_cancel_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_order_create_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_order_list_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_order_modify_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_order_retrieve_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_order_update_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_product_list_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_product_retrieve_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_supplier_list_params.cpython-312.pyc,, +stripe/params/climate/__pycache__/_supplier_retrieve_params.cpython-312.pyc,, +stripe/params/climate/_order_cancel_params.py,sha256=rfKw0uZfSYA9bw52cFbS4VGCou1Fv9bNC1zSWDJAfVI,337 +stripe/params/climate/_order_create_params.py,sha256=oJ7Yntv3Dp3hgCZ2e2wVpVZh2YwkUF5RI1AvN1-8GLY,1784 +stripe/params/climate/_order_list_params.py,sha256=iYmW6CwxP4RkLBk_52X9eebwemqRhC0odlwturJT5Tw,1195 +stripe/params/climate/_order_modify_params.py,sha256=FiEp-UISnVdT5Qem3Xez8uxVsCtII9aU9SsLLEJ-ThI,1139 +stripe/params/climate/_order_retrieve_params.py,sha256=BTUdx-cXMT7DhJoB-Fn-gaMbFygdSCleS1iGWzD5cZ0,339 +stripe/params/climate/_order_update_params.py,sha256=lhnFc5KPYBXQX-8oL6Dy46gogmoM9KtGh9laf8QmvNY,1083 +stripe/params/climate/_product_list_params.py,sha256=N5lTMI1HvReBvx-acEZZZpvIZwtQMqnLLWg3KIkCp_M,1197 +stripe/params/climate/_product_retrieve_params.py,sha256=RWNGrjgbwTuqBHPXkTRcPzpb0auROn45yoASTeIolio,341 +stripe/params/climate/_supplier_list_params.py,sha256=F7MpWYXtlYwHR5gSbQ8igm2i1tHpsxk4Z-kNlsyjq3o,1198 +stripe/params/climate/_supplier_retrieve_params.py,sha256=2khL1OHC1mlL2I_SnkOPk0wa5L5FgYBOubpgWwWqpVY,342 +stripe/params/entitlements/__init__.py,sha256=VbjOFRRmxn-HCUkIjRns93rzrpknQSkrfwG6Lrrpz7A,2358 +stripe/params/entitlements/__pycache__/__init__.cpython-312.pyc,, +stripe/params/entitlements/__pycache__/_active_entitlement_list_params.cpython-312.pyc,, +stripe/params/entitlements/__pycache__/_active_entitlement_retrieve_params.cpython-312.pyc,, +stripe/params/entitlements/__pycache__/_feature_create_params.cpython-312.pyc,, +stripe/params/entitlements/__pycache__/_feature_list_params.cpython-312.pyc,, +stripe/params/entitlements/__pycache__/_feature_modify_params.cpython-312.pyc,, +stripe/params/entitlements/__pycache__/_feature_retrieve_params.cpython-312.pyc,, +stripe/params/entitlements/__pycache__/_feature_update_params.cpython-312.pyc,, +stripe/params/entitlements/_active_entitlement_list_params.py,sha256=NeHkhcj4eoCdV6KifUNnYiAua1nzdXy_XT3RawcfNpg,1269 +stripe/params/entitlements/_active_entitlement_retrieve_params.py,sha256=TU97k9jGzdJ6ccUvFejsvQUJ6YyGsFgNFH2bBXQNpVs,351 +stripe/params/entitlements/_feature_create_params.py,sha256=Nyxl9jkGRMf42vwb_eLVUlcWpoRcIvWiib1-hIS-rek,809 +stripe/params/entitlements/_feature_list_params.py,sha256=yn1KZFCMQ-yU-loNIQFJfY0SyIIsp0y2HK5GagMEVUY,1456 +stripe/params/entitlements/_feature_modify_params.py,sha256=AemoQOG2bQvlBglJvm-Gzr_rXa4guQc_9UacfWlPBHk,877 +stripe/params/entitlements/_feature_retrieve_params.py,sha256=2SS9bF7SZ_J8ZTfptMmf6it0pwb9hGUJulJwE08ttEs,341 +stripe/params/entitlements/_feature_update_params.py,sha256=ejCvvzp7lB3GyI7vX6CNGbegIxg2NHWBcLXzhEojW3g,832 +stripe/params/financial_connections/__init__.py,sha256=AKhZBkkAjNsPAEuILKYAhpa_UVYgV2M37as9YLzTxfg,5174 +stripe/params/financial_connections/__pycache__/__init__.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_disconnect_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_list_owners_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_list_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_owner_list_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_refresh_account_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_refresh_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_retrieve_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_subscribe_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_account_unsubscribe_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_session_create_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_session_retrieve_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_transaction_list_params.cpython-312.pyc,, +stripe/params/financial_connections/__pycache__/_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/financial_connections/_account_disconnect_params.py,sha256=be2312dB_FvzFncUQnQsqO3gEZOKe3E6eVP0gixaedU,343 +stripe/params/financial_connections/_account_list_owners_params.py,sha256=57kmOi2nGbXuqn6-qdfDBoCe5JNBB8OrYVxTXylHxqg,1295 +stripe/params/financial_connections/_account_list_params.py,sha256=mYa-xqUkUZvk7yE88lZLbcfxsh0lmwTtxZRuLT91GQg,1865 +stripe/params/financial_connections/_account_owner_list_params.py,sha256=jTjdUI8ajDzA2uudkLbL6s7tPOvEZOYwc604XQeXiRo,1249 +stripe/params/financial_connections/_account_refresh_account_params.py,sha256=wRAb2vhJWUdbJzarVNDV_f_3ttwe8KJ4DWSh5MlbF7c,505 +stripe/params/financial_connections/_account_refresh_params.py,sha256=vJDg5E4J0V9d2JwiekuQ9-DWVdalYBkEOOR3N4P2Dbc,453 +stripe/params/financial_connections/_account_retrieve_params.py,sha256=fgJLtxY5lf5icwMfO_jl84ZJ66TejvumeWNjUVPM7fw,341 +stripe/params/financial_connections/_account_subscribe_params.py,sha256=JbrzpWxyx_--8ftfrcPbPytgv6sTimIo1oRClEWqhWA,482 +stripe/params/financial_connections/_account_unsubscribe_params.py,sha256=JADcHihW9o6Z5R0zvKz5_cE8tkPmCC-R0Mq7rzpnzkY,488 +stripe/params/financial_connections/_session_create_params.py,sha256=s-qxlBzt4XCUplmx1OLZmPZhee4P4YAJ4Hze6BbM3E8,2348 +stripe/params/financial_connections/_session_retrieve_params.py,sha256=eVwRMKA_VIJ8le603QLR3mg7H0rgQbNjmzrIlgzMn0M,341 +stripe/params/financial_connections/_transaction_list_params.py,sha256=Xyd0HRPY0hrZU5fwzvZpGaCdtndoX4JS3Qepplc4BLo,2441 +stripe/params/financial_connections/_transaction_retrieve_params.py,sha256=HU8W9BYiU7eUBNMsSbciuJ7ZuYzkg5QFFzzpPEtEOBI,345 +stripe/params/forwarding/__init__.py,sha256=ZYNeSzpxbSnZXqHRfnggVsBoXUNmkKqTVRQCiQTKtTE,1849 +stripe/params/forwarding/__pycache__/__init__.cpython-312.pyc,, +stripe/params/forwarding/__pycache__/_request_create_params.cpython-312.pyc,, +stripe/params/forwarding/__pycache__/_request_list_params.cpython-312.pyc,, +stripe/params/forwarding/__pycache__/_request_retrieve_params.cpython-312.pyc,, +stripe/params/forwarding/_request_create_params.py,sha256=Ic3NYey9GTFTyspn-OEzHilTDtZYIkQkWfIGtjfOBPc,1991 +stripe/params/forwarding/_request_list_params.py,sha256=Avtj7cjQdvXNwYKyISRO0Hp98IqDxnTTKxPuxeLuYWc,1539 +stripe/params/forwarding/_request_retrieve_params.py,sha256=w3WzKX_TOeLbC_ln2ysMOC5moMxRRHoE0b-RHwvzSFg,341 +stripe/params/identity/__init__.py,sha256=shGxc2O9V1GY7HSwm19huAmqNPRw3-XyHRxZoIJudsA,6108 +stripe/params/identity/__pycache__/__init__.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_report_list_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_report_retrieve_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_session_cancel_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_session_create_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_session_list_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_session_modify_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_session_redact_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_session_retrieve_params.cpython-312.pyc,, +stripe/params/identity/__pycache__/_verification_session_update_params.cpython-312.pyc,, +stripe/params/identity/_verification_report_list_params.py,sha256=pdB9Y5YOhmkD0ItbU2b9C0eOfAMW9JHQsSvslb_gyXI,2321 +stripe/params/identity/_verification_report_retrieve_params.py,sha256=FCBcuJzSbS5PcSDhbrDDsrpYOMt7_gnw3TEY1IYWEpk,352 +stripe/params/identity/_verification_session_cancel_params.py,sha256=Xg1r6sWf2yxaUrNAqW-Y0plk1Bqafp8H0kwIbJ8l_oQ,351 +stripe/params/identity/_verification_session_create_params.py,sha256=odOHKmER7UvlN9OmCb1-pm4BjrKn9JmBM3h1NgKt9ek,4068 +stripe/params/identity/_verification_session_list_params.py,sha256=xkQX7ncLoczmAoj3URwlUyWBZljHgcqaMRUExX9QwME,2330 +stripe/params/identity/_verification_session_modify_params.py,sha256=TPM42IoXURl-IIn5SZ_ZPUzkje7zwS8iOftB9aTSdMY,2885 +stripe/params/identity/_verification_session_redact_params.py,sha256=faJvjgHi0W0RNvtoit2JztnUkCRHuFXAPIRIlBSTr2g,351 +stripe/params/identity/_verification_session_retrieve_params.py,sha256=kc7_KqYhclOjbcuQMI-vBuEtKXcj8AmCM9r2OnybbwE,353 +stripe/params/identity/_verification_session_update_params.py,sha256=XwdJNo865iCsYRTyGQZApoteaFiCedFFN3ygvSaHSQ0,2829 +stripe/params/issuing/__init__.py,sha256=wO5qHP6g2Obr2H7YkmY6W6OOmBFOnBvtMwxJ7SpvJLw,52384 +stripe/params/issuing/__pycache__/__init__.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_approve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_create_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_decline_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_modify_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_authorization_update_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_create_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_modify_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_return_card_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_card_update_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_cardholder_create_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_cardholder_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_cardholder_modify_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_cardholder_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_cardholder_update_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_dispute_create_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_dispute_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_dispute_modify_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_dispute_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_dispute_submit_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_dispute_update_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_create_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_modify_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_personalization_design_update_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_physical_bundle_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_physical_bundle_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_token_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_token_modify_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_token_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_token_update_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_transaction_list_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_transaction_modify_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/issuing/__pycache__/_transaction_update_params.cpython-312.pyc,, +stripe/params/issuing/_authorization_approve_params.py,sha256=ZjPlB3wH4__A9mVcVnk5Pku7Mw6LT52Qa2CUS4TB3dQ,1099 +stripe/params/issuing/_authorization_capture_params.py,sha256=fLv2LW5OxjZ4MV4y_s7oQfOvu_Ko9eSmFh4iJNYVhFM,8414 +stripe/params/issuing/_authorization_create_params.py,sha256=VqbMxALBnyoNjxpMhQ3OWAbvTg4ltuDJq3rpcwPcEec,26323 +stripe/params/issuing/_authorization_decline_params.py,sha256=kJHg22M7YT-33NsvZKVBjfgrSPyl63BCb_SKGV9l2BQ,756 +stripe/params/issuing/_authorization_expire_params.py,sha256=jlPdyu_G2aWagyklYFlJPDmxr5-0xJ7OlGm-SgPt714,345 +stripe/params/issuing/_authorization_finalize_amount_params.py,sha256=ZNfj8nHq-lMidoevyoTbNQ4dygQ7Fu_8DTJG9KCjfvE,5543 +stripe/params/issuing/_authorization_increment_params.py,sha256=ZlTBNBq2XXJO2SJPOc-xyHlTDU9y0QvBS0McenDWJNs,825 +stripe/params/issuing/_authorization_list_params.py,sha256=xmfJNhc7pIzxGV1d_atvw5Cg0Rsg5tFOpQGbYRMnFm4,2184 +stripe/params/issuing/_authorization_modify_params.py,sha256=pL-HOcxJq0pU6-fxO5TpfZQ9UzhGQQqOn0whXyf2Lfo,755 +stripe/params/issuing/_authorization_respond_params.py,sha256=61izNJ9ViYBa9oiW9aPUj51XtVoHp29al4-gFvEKR_0,519 +stripe/params/issuing/_authorization_retrieve_params.py,sha256=yx4RrxOCR9or8oYQwPMhtO8uUZF8Q4dCREodM-T3nmI,347 +stripe/params/issuing/_authorization_reverse_params.py,sha256=wqdX0GNKwQDx3CA0tMfX5hwgay6kExvFghNU5UkcGBc,652 +stripe/params/issuing/_authorization_update_params.py,sha256=VvQMG1c2suA00KQt2pNrDLTSfNz9khNobUtvUY5djPw,710 +stripe/params/issuing/_card_create_params.py,sha256=lCZAj40y7vOEVZwc4fIBWtpz5j_wZColLGg_4cdZk30,47974 +stripe/params/issuing/_card_deliver_card_params.py,sha256=E2Xyq8X37-dt-YsfcK4OfM5V-33SnhW9aiJhxdV8s48,341 +stripe/params/issuing/_card_fail_card_params.py,sha256=ql5q9pOB147J2Swfyu2BLOIu7tyPkx4VrcYHF0uL6cU,338 +stripe/params/issuing/_card_list_params.py,sha256=cKhQ8LiqzZDZ830SZnD1kdHQjLOQGMIvQFa5NTzJYJo,2546 +stripe/params/issuing/_card_modify_params.py,sha256=ylIQ-rfaqanK6HWNFJSiUE5-94H3rcfy0UQLvvFNg9s,46694 +stripe/params/issuing/_card_retrieve_params.py,sha256=rZSC0CMrQ0SYERpmfkWsmgjiK-D2jvOwQuj8v3jdYII,338 +stripe/params/issuing/_card_return_card_params.py,sha256=a6ewwFNjrKqunZMFtxX5ZUgcW9O6Akn4YLtrOvQPcyk,340 +stripe/params/issuing/_card_ship_card_params.py,sha256=XP3J7t6NUzokVBaXNfkqFcUWWEVFTd_xGqlLcIBZ0M4,338 +stripe/params/issuing/_card_submit_card_params.py,sha256=LDyfY1Uapj1fkcryyTKyzXWKSTnMfOjGtX1ZL64yUOs,340 +stripe/params/issuing/_card_update_params.py,sha256=XrtmlllgkAWR9CVd8FoDMPHW7iaqZGLNk2-bvWex6oc,46638 +stripe/params/issuing/_cardholder_create_params.py,sha256=cheLIILDVTlLv0QKwX5nzklKYn-2tsyyPz8DzaC_W8s,49534 +stripe/params/issuing/_cardholder_list_params.py,sha256=_DcXV6p7Fbk6VfB2PawHKCeZa46dRXNSDXfyViVoemQ,2321 +stripe/params/issuing/_cardholder_modify_params.py,sha256=3L60xLgdp8lo2sauSIxZ6m_YhWV17UTGZWSQ3VwK_wI,48949 +stripe/params/issuing/_cardholder_retrieve_params.py,sha256=xyl2v5Eg-JNgbspCJPpAfXLX_XwpxWTANy-P1izSt8A,344 +stripe/params/issuing/_cardholder_update_params.py,sha256=VOzN4rWgGj1FDEAN8EuLpS85YY7cwzVPbkS0-xomhts,48893 +stripe/params/issuing/_dispute_create_params.py,sha256=GCyZm5tXp0XP2i1kyBTIaf9Bc6nOGdi2BH5Moi9jF-o,10075 +stripe/params/issuing/_dispute_list_params.py,sha256=qfJEYorAjwbaAVLGQ3RVElYmr0Dj0egHemP-hdJUpkQ,2032 +stripe/params/issuing/_dispute_modify_params.py,sha256=-B4rUshh6ptxbK2AG_1L8TglApJ86qKBuIw5WkahhV4,9553 +stripe/params/issuing/_dispute_retrieve_params.py,sha256=U6qWnXvUiHpAu_znOqgES_ClDIlS57FwhN_UHuJBeis,341 +stripe/params/issuing/_dispute_submit_params.py,sha256=ELCrRT1Gur51oRkSOhzaoUf318uJVUPAUeZTfnJ3eaw,749 +stripe/params/issuing/_dispute_update_params.py,sha256=wKzuFcRi6TXo0DyvKDv41KrGU4O1Eh7ovz6f18QXGyE,9497 +stripe/params/issuing/_personalization_design_activate_params.py,sha256=m8cD7JhtB3gM64iBmsuWWdtD7X-7UnvdGOIZJtxKOTI,355 +stripe/params/issuing/_personalization_design_create_params.py,sha256=HtA31V5f1Blfuk75Z7hauBIzvDJvOFYL2p_I7Sw1z_s,2720 +stripe/params/issuing/_personalization_design_deactivate_params.py,sha256=uSa28-l7bQNSDaq6kykCc34SXQBtrw83-f-Qf_cuRmI,357 +stripe/params/issuing/_personalization_design_list_params.py,sha256=QhQ3VQhVaNV619oLi4k2ZwiTjhx4U7emjqzyRxX71_Q,2174 +stripe/params/issuing/_personalization_design_modify_params.py,sha256=U9aGuOX1JVTnqLNzY9TZ0899N2y19vmye-dZMheZD4Y,2855 +stripe/params/issuing/_personalization_design_reject_params.py,sha256=OaBM8u0MMNbLky_Af2_JhU3tzGXK17hv-f93wApva0I,1421 +stripe/params/issuing/_personalization_design_retrieve_params.py,sha256=Q6D5T4OLM4OzvfBj3DbhNGzInSxkAkT52o0WkQ0CMZM,355 +stripe/params/issuing/_personalization_design_update_params.py,sha256=_7np0VQFcm3iWdjzgyxJW5I0HgnzyRTJbUWZYM9-IKI,2799 +stripe/params/issuing/_physical_bundle_list_params.py,sha256=aN8ThiSG9MrnOVluGGcCKlFpKhl-MVkp1dR0r34YbBI,1473 +stripe/params/issuing/_physical_bundle_retrieve_params.py,sha256=G4VuutOrjxfvUTCWYAdKpO96nwS-Epwf2JAiMafQHn0,348 +stripe/params/issuing/_token_list_params.py,sha256=i8ZdVq7y5s5O1s0MWPIWwwrLqgtrlgEHgZAsLygCIcU,1975 +stripe/params/issuing/_token_modify_params.py,sha256=rat99SRmokrw1v9WgHhxOU0R9est3g-5GHW62vqDuyM,475 +stripe/params/issuing/_token_retrieve_params.py,sha256=V_pWkayXZORC7XHJTAEznECddoHvLo46K67uG7wOa7Y,339 +stripe/params/issuing/_token_update_params.py,sha256=tB7rgvbW3EN1ai1dN-rggSN2MyUKB4U6embrZ0A3Vhs,430 +stripe/params/issuing/_transaction_create_force_capture_params.py,sha256=Y5qouc3XeeUKNZm7LJ74kvD1UMT0JqTmHVC9fgki81s,22409 +stripe/params/issuing/_transaction_create_unlinked_refund_params.py,sha256=Vtsc3jKC5h1gnaUYLneHyDT53fcAI89EI3qJx7Mf5LM,22522 +stripe/params/issuing/_transaction_list_params.py,sha256=8X7JbuiGS5dq465hY3zCYB8vWhhU4kYsP1qU40l3Iuk,2135 +stripe/params/issuing/_transaction_modify_params.py,sha256=1ZXPSS_FlAs5kgMBXn4d4JeakGZTCHuU2gwKFnUZBlE,753 +stripe/params/issuing/_transaction_refund_params.py,sha256=b8N8Hl0gX9wKEz4sq1HeJGTYsuOgmMCXxa27vp2qifQ,600 +stripe/params/issuing/_transaction_retrieve_params.py,sha256=HU8W9BYiU7eUBNMsSbciuJ7ZuYzkg5QFFzzpPEtEOBI,345 +stripe/params/issuing/_transaction_update_params.py,sha256=ZxJNjs1vkmTUgwmL6eVyGuTfeBSCpw7UiVfas22z1ok,708 +stripe/params/radar/__init__.py,sha256=Gzibap6Mj0Xn6BPjC6qQcGvqibTrNc0mXs_7MSxh0eI,4179 +stripe/params/radar/__pycache__/__init__.cpython-312.pyc,, +stripe/params/radar/__pycache__/_early_fraud_warning_list_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_early_fraud_warning_retrieve_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_create_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_delete_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_item_create_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_item_delete_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_item_list_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_item_retrieve_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_list_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_modify_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_retrieve_params.cpython-312.pyc,, +stripe/params/radar/__pycache__/_value_list_update_params.cpython-312.pyc,, +stripe/params/radar/_early_fraud_warning_list_params.py,sha256=OeRut_DWg8d8oJBMz3H05rPSRMdiTykk_DUsIXeBZSI,2084 +stripe/params/radar/_early_fraud_warning_retrieve_params.py,sha256=TQX_-eQEZZCaibc2xlFBessZzlnLRBWtVJnxUGjmJPg,351 +stripe/params/radar/_value_list_create_params.py,sha256=o9M1swWOzxjeePlqLXAe-pO5SuRbIkoy2XRE71m7Nu8,1539 +stripe/params/radar/_value_list_delete_params.py,sha256=jmnYV6YeXbQh_SeceJpHiDgXbPKpZNlYyY6yWcnfPc0,170 +stripe/params/radar/_value_list_item_create_params.py,sha256=57RxmvI3aCDN4Kt47WzH9QrbBRCZdwhQL18WGMQuIho,575 +stripe/params/radar/_value_list_item_delete_params.py,sha256=1mRXC-P3CSXSCO5GEOKDfOUaB2es71MD1e8Y-9A0S58,174 +stripe/params/radar/_value_list_item_list_params.py,sha256=1kty3EjM5_XUcggp2AGMoSwGjeePgG3J_9rVLok2Bl0,2011 +stripe/params/radar/_value_list_item_retrieve_params.py,sha256=8I_8leUmA0xCjrc0yn31KZNwXk1jBd36QTX-pbgLAYw,347 +stripe/params/radar/_value_list_list_params.py,sha256=0ozWgP2CC1Ki9cs39qrpRpeiRu-EvPEw9Mj-jOjQWj8,1997 +stripe/params/radar/_value_list_modify_params.py,sha256=eQKf4pJTGkm7SgSMcKYUl20vL_y-Z2IE4Acrz7DpDv4,911 +stripe/params/radar/_value_list_retrieve_params.py,sha256=aoIf9IfQeC5ka3WHEmDpTOP2hzMrgSOQTVaQs3FNgsQ,343 +stripe/params/radar/_value_list_update_params.py,sha256=R-0Izk9LfHd012EtQKO66ddI5aOdxoCgb8C7ZqreFqQ,866 +stripe/params/reporting/__init__.py,sha256=WYMyePhWQZ2h-6OOpoqPQFW1e8rhcWMSxFT_nuaeyE8,2201 +stripe/params/reporting/__pycache__/__init__.cpython-312.pyc,, +stripe/params/reporting/__pycache__/_report_run_create_params.cpython-312.pyc,, +stripe/params/reporting/__pycache__/_report_run_list_params.cpython-312.pyc,, +stripe/params/reporting/__pycache__/_report_run_retrieve_params.cpython-312.pyc,, +stripe/params/reporting/__pycache__/_report_type_list_params.cpython-312.pyc,, +stripe/params/reporting/__pycache__/_report_type_retrieve_params.cpython-312.pyc,, +stripe/params/reporting/_report_run_create_params.py,sha256=pAF-gHX4gTFm8SKVjZozKesZNRx5dTSGvyNd0b-FTyc,21398 +stripe/params/reporting/_report_run_list_params.py,sha256=w-jV7N6oT1o8BJceG9OFh3QmCLvF7WYJslzCNsbRmnQ,1748 +stripe/params/reporting/_report_run_retrieve_params.py,sha256=EJKe9E7OkjrbUt_9umtMLiSQd6MiNy8aJrOpxeJEvLI,343 +stripe/params/reporting/_report_type_list_params.py,sha256=CAYA3o8yfgRoo9hCGKxmfaLSNGm8RZtQpO_gxCozE98,340 +stripe/params/reporting/_report_type_retrieve_params.py,sha256=Zo-_3VxPFZxKHzoj7KorDC3EiKymqqOOnnbzpoWumk0,344 +stripe/params/sigma/__init__.py,sha256=5wQpD4l5oIVvk0eBB4SkL21qJK7E98LKQaisuSONo4A,1144 +stripe/params/sigma/__pycache__/__init__.cpython-312.pyc,, +stripe/params/sigma/__pycache__/_scheduled_query_run_list_params.cpython-312.pyc,, +stripe/params/sigma/__pycache__/_scheduled_query_run_retrieve_params.cpython-312.pyc,, +stripe/params/sigma/_scheduled_query_run_list_params.py,sha256=GoVNn1lNtWWKMh-dTvU9UdxiOIL6HhJzc1x4iqijudc,1207 +stripe/params/sigma/_scheduled_query_run_retrieve_params.py,sha256=jVKs0X2lsyVQErnrjyxrElN6wm4CbwdrZA0T5sMGgAY,351 +stripe/params/tax/__init__.py,sha256=PUgj7s7nYUPdNNfJzNTXDjb0j5LivD1flW0MlRSF6dE,46067 +stripe/params/tax/__pycache__/__init__.cpython-312.pyc,, +stripe/params/tax/__pycache__/_calculation_create_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_calculation_line_item_list_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_calculation_list_line_items_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_calculation_retrieve_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_registration_create_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_registration_list_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_registration_modify_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_registration_retrieve_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_registration_update_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_settings_modify_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_settings_retrieve_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_settings_update_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_transaction_create_from_calculation_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_transaction_create_reversal_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_transaction_line_item_list_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_transaction_list_line_items_params.cpython-312.pyc,, +stripe/params/tax/__pycache__/_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/tax/_calculation_create_params.py,sha256=Dsh4c6et5BKvy9jm8hwOywmx5OcYYufORvAMz1CZSZM,10829 +stripe/params/tax/_calculation_line_item_list_params.py,sha256=J8uWWnBGMkdecE2ob1VF3aZCrbhdKLlfXhF2bC6Uxbc,1164 +stripe/params/tax/_calculation_list_line_items_params.py,sha256=H-K_ltmZPCbAVbtkUGaygkET5ELA0umoQVsiFrUR3mE,1210 +stripe/params/tax/_calculation_retrieve_params.py,sha256=ygUJmYMNrKnodnbujtWxr3iQZybuQ58BTcA4AgNHtUc,345 +stripe/params/tax/_registration_create_params.py,sha256=B3okygoZ8VhyG6Ihs4bwutZUU-o2lxtKhwXOkWGPPxg,54240 +stripe/params/tax/_registration_list_params.py,sha256=qgqsULWaPF65OJRT5YOwWfMzRBJSXOHf19kE7BiCrUw,1341 +stripe/params/tax/_registration_modify_params.py,sha256=QSmqkDarPCGhk12H6Xg-r0XjWxj139HWROxAbag_bbQ,889 +stripe/params/tax/_registration_retrieve_params.py,sha256=Y5f0YDwAKXqC5ud44MbZ1j5WBaeEbcfOtb58rqMuGGA,346 +stripe/params/tax/_registration_update_params.py,sha256=r8RRFaI_i0qazqoPXLG6ttDBXshrLnNsQLc4pLhWNi0,844 +stripe/params/tax/_settings_modify_params.py,sha256=K41p9YMVoNureIXYmoP37pUqW2WDgL7rT5yS12EOlJA,2149 +stripe/params/tax/_settings_retrieve_params.py,sha256=YdIld4AgBudHqvLZpgOL3aEeVJe9T3b3GyvxzAIvXs4,342 +stripe/params/tax/_settings_update_params.py,sha256=rhtr2t7YS9nfmP5Hfjtgls2tCrdAAXDp56KJpaD233U,2093 +stripe/params/tax/_transaction_create_from_calculation_params.py,sha256=tOPRvjs0_DFlum44rcxTCHPQ3gs7DTFNnkaBP8GzjKE,1374 +stripe/params/tax/_transaction_create_reversal_params.py,sha256=cvmy9R4zoUASq3rSsRgmCN3Stoqn7wuc03TWif32C8A,3318 +stripe/params/tax/_transaction_line_item_list_params.py,sha256=fpNtntxv2buikYi6LNU12dX5XiEGtYeblTVQ_RqIc2c,1164 +stripe/params/tax/_transaction_list_line_items_params.py,sha256=M8bH1D60KVsyyZRHpuZTAqong-L6zsrQSnRqEPfHeQk,1210 +stripe/params/tax/_transaction_retrieve_params.py,sha256=HU8W9BYiU7eUBNMsSbciuJ7ZuYzkg5QFFzzpPEtEOBI,345 +stripe/params/terminal/__init__.py,sha256=Ece5EBB3i_g_eg4VDUxuY3vI3BX_cEbk_YLbYXQ9Qbc,35555 +stripe/params/terminal/__pycache__/__init__.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_configuration_create_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_configuration_delete_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_configuration_list_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_configuration_modify_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_configuration_retrieve_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_configuration_update_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_connection_token_create_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_location_create_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_location_delete_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_location_list_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_location_modify_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_location_retrieve_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_location_update_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_cancel_action_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_collect_inputs_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_collect_payment_method_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_confirm_payment_intent_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_create_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_delete_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_list_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_modify_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_process_payment_intent_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_process_setup_intent_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_refund_payment_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_retrieve_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_set_reader_display_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc,, +stripe/params/terminal/__pycache__/_reader_update_params.cpython-312.pyc,, +stripe/params/terminal/_configuration_create_params.py,sha256=d3ewOjP4fs7WK81BuqByHH31RAPoeuXie2svraClQ6U,16856 +stripe/params/terminal/_configuration_delete_params.py,sha256=cvBxRUlikSQnwl4-xQjbvTsaup7_wsNY6IC6F6ScVUw,174 +stripe/params/terminal/_configuration_list_params.py,sha256=YtEszgSldUj2O3Xm3VbMbKfqhM0pWrUZwerwdGx9jdQ,1340 +stripe/params/terminal/_configuration_modify_params.py,sha256=JbogtwuIv87b-jStZQoRUFtefLldeIqR2H90iC8NfBM,16972 +stripe/params/terminal/_configuration_retrieve_params.py,sha256=P0bRU-nOhmWJ1rbu0m8J-k6tdLAIg2tSm3ypQknsaIE,347 +stripe/params/terminal/_configuration_update_params.py,sha256=czoiGJ8CP0sWdJYR8K_dpfi_HFlL-TgwozvadjTpK94,16916 +stripe/params/terminal/_connection_token_create_params.py,sha256=HKocFTEKmprMBPzMRIJWf7aUE31ZdDJ1dLbcDTUX-cQ,853 +stripe/params/terminal/_location_create_params.py,sha256=g2Zc4q6JXGNyqiLQ-EsEzhTanYDApro4J2ipnTZXfpY,3684 +stripe/params/terminal/_location_delete_params.py,sha256=pyMUwq4tWyahJSaNIlRZ3Fe9rLYX_D-kDE4ETakIh_w,169 +stripe/params/terminal/_location_list_params.py,sha256=nqSNXD83wGL8ghLNhyez6TaBr1HMItWaKnvjgOlNA-o,1198 +stripe/params/terminal/_location_modify_params.py,sha256=8Qciit7QxtzyvyDsQhuSHluL0nNAUp1LvlpcStW2xyw,3834 +stripe/params/terminal/_location_retrieve_params.py,sha256=6gZ4xnxy5_09DvSM1yBrAI5Nj9j2P9XWcjvKC4Vi-bg,342 +stripe/params/terminal/_location_update_params.py,sha256=JUldbdY9A7R6cSJUslGAlXF-xc94v363aVhrmimfudQ,3778 +stripe/params/terminal/_reader_cancel_action_params.py,sha256=dxZe1Uk2evLVDodCfPrnbVQRIL-EcBedo-oQtLL0p9w,344 +stripe/params/terminal/_reader_collect_inputs_params.py,sha256=wejBJQlqa51vb2wIk84YMzMzhs3rXWDsu9Ay1DPc-AY,3310 +stripe/params/terminal/_reader_collect_payment_method_params.py,sha256=MApVmagjacesYC0KP_VrcE9TW143VCs6PfyO44k0yuQ,1895 +stripe/params/terminal/_reader_confirm_payment_intent_params.py,sha256=eStJAj-PNccauWXEx_6ASnmgSMHEZaxh5NEP8r2Jff0,1007 +stripe/params/terminal/_reader_create_params.py,sha256=Va2SfCERSCTfIt7kABpnw3WA3_cP9n2zMvu1SdS-QU8,1121 +stripe/params/terminal/_reader_delete_params.py,sha256=M7MmC7SVLrCWsWigXYMY6RxKGdGdQR7AkBeQyfEsNe4,167 +stripe/params/terminal/_reader_list_params.py,sha256=1PYWpYvdD3vhqtksT0pU7ZZD7gntzUOpTvUm-weeF1s,1964 +stripe/params/terminal/_reader_modify_params.py,sha256=ymB5mWEPIYiATVuKk6LciUoXk4CNRW_1Meh-PC55nIg,839 +stripe/params/terminal/_reader_present_payment_method_params.py,sha256=LdOH-DnJRmGbiErm1_ormWPcT0bi0w3L2ZEy1IJt9d8,1744 +stripe/params/terminal/_reader_process_payment_intent_params.py,sha256=4oMIkz7ELKHIU5OqTaNfLdWyz6a6CfiRLrb8EhAM50s,2164 +stripe/params/terminal/_reader_process_setup_intent_params.py,sha256=sDt-AP5agnU9PViB97xPyqwv2c-Ke6oVrBPJCgYpu-s,1181 +stripe/params/terminal/_reader_refund_payment_params.py,sha256=aMtk_Wr1qL_40NL_0WLNKrhFoMi17K4j7NgvTzcWsLo,2195 +stripe/params/terminal/_reader_retrieve_params.py,sha256=j5qs8a7SBHPZW_qhy-yB84x9jPZS_Ueu8EqjM0ZvII0,340 +stripe/params/terminal/_reader_set_reader_display_params.py,sha256=nMZ2R07xvDj_QP7BuWdEOL317JEDOLaEdDsOlUL4nwY,1678 +stripe/params/terminal/_reader_succeed_input_collection_params.py,sha256=sqSTRji_epdvzRv-c2loKRNkP2t2_cnL6AzAZ9-HOIs,512 +stripe/params/terminal/_reader_timeout_input_collection_params.py,sha256=zctFe6Vbo_PFJblvmmp2sYBzPWkLN-HEQ4a0R08rqFU,354 +stripe/params/terminal/_reader_update_params.py,sha256=JLJmjZSaXey_A9cFBhvHxvQtUMHflIIP0oNvGPqnW6Y,794 +stripe/params/test_helpers/__init__.py,sha256=mmRkBUOlFYCoJlXMzvVNv92ZP4Qjlulw9JPUxNCVUs0,19721 +stripe/params/test_helpers/__pycache__/__init__.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_confirmation_token_create_params.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_refund_expire_params.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_test_clock_advance_params.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_test_clock_create_params.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_test_clock_delete_params.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_test_clock_list_params.cpython-312.pyc,, +stripe/params/test_helpers/__pycache__/_test_clock_retrieve_params.cpython-312.pyc,, +stripe/params/test_helpers/_confirmation_token_create_params.py,sha256=xgUDAamCuwydGoWU5pCatvjKcB0BZhLr78ZUT5C8UNs,28505 +stripe/params/test_helpers/_customer_fund_cash_balance_params.py,sha256=gobSGk3WS7bmBLXLOWngrcDj7Jk_QYChc4CU8rXZyKQ,1171 +stripe/params/test_helpers/_refund_expire_params.py,sha256=q8xl866pa936ZxVrOveyAasbzTneyG-OUiFUgqdr584,293 +stripe/params/test_helpers/_test_clock_advance_params.py,sha256=nxojKL95Siikf2nfN_cANrcF2Srp-E7qCK9Dw0HurlA,668 +stripe/params/test_helpers/_test_clock_create_params.py,sha256=mtMprKeNkqY2CcGDmpWeUzgjmxIQ-MqbIicG6Dyv-Ns,504 +stripe/params/test_helpers/_test_clock_delete_params.py,sha256=gAaT-ejDZQN2V7kdeK54Bcu8SQ36hSBKxqzW-XbaL5w,170 +stripe/params/test_helpers/_test_clock_list_params.py,sha256=TI2UgEwcauCECpMVuogCIQmRy-LF-7S3Lwxejm08qAQ,1199 +stripe/params/test_helpers/_test_clock_retrieve_params.py,sha256=x_izqVPlpNIvn3aZUGXilEFBosPLPNJ6llLWYrwa5sc,343 +stripe/params/test_helpers/issuing/__init__.py,sha256=GHgvQJQxZfMWk6pbeTweU0Z0TPbG69uPxMhzyf_XYSo,24228 +stripe/params/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_authorization_create_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_card_return_card_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc,, +stripe/params/test_helpers/issuing/_authorization_capture_params.py,sha256=msHusVZkyO8VfgydF3o6CPHkJyMjMPORUE9cjU9Huow,8358 +stripe/params/test_helpers/issuing/_authorization_create_params.py,sha256=NvOzmmpYWVY-23H2iFBIdqW1Jaez6mEAiEBqAmO-21w,26267 +stripe/params/test_helpers/issuing/_authorization_expire_params.py,sha256=ApPWznf-EimcevxdNAyY8TnXvSKP6Z4C3IPb2KflcSE,300 +stripe/params/test_helpers/issuing/_authorization_finalize_amount_params.py,sha256=MOFfAPkJxlsq5MFZjCBNJa4owB-LzQA-3_K9GDSzMfQ,5487 +stripe/params/test_helpers/issuing/_authorization_increment_params.py,sha256=RGlH9nJiAEXUREOvwwpjkKpgl2iP81WbsLsmkupztqc,780 +stripe/params/test_helpers/issuing/_authorization_respond_params.py,sha256=P5XJDdXMzamFiNYFxfp_wueZAU7ClJIdAHvEUKF180Q,474 +stripe/params/test_helpers/issuing/_authorization_reverse_params.py,sha256=1hz_O_z-NrcaufVf9P3Zw9Dr_J8cTudPw6WOJ0qTMXg,607 +stripe/params/test_helpers/issuing/_card_deliver_card_params.py,sha256=TXQ7sa1mg3s9G4I_-hmrRRmhqFGcwx_q8aC6JZK_Fr0,296 +stripe/params/test_helpers/issuing/_card_fail_card_params.py,sha256=lNTPC37hG7MHUdwTCcmEA6pxYGyoM76Xf-NPkRbDzBg,293 +stripe/params/test_helpers/issuing/_card_return_card_params.py,sha256=ltD3BT8YHhnRZxWSOCnnrBkADZM4EQbF8BMg-Kj3o28,295 +stripe/params/test_helpers/issuing/_card_ship_card_params.py,sha256=5bC1Kg5JcJFADY8JpKDX0QdTR1jNwR5aBdu9CLsk5D0,293 +stripe/params/test_helpers/issuing/_card_submit_card_params.py,sha256=a1VKzNgaX2Qo3TzpmxytpLVqhAI7kh79RKsc-1938vU,295 +stripe/params/test_helpers/issuing/_personalization_design_activate_params.py,sha256=og3EM2UEL7ukvPYYYLsH9V34_xTo4CbGZ_mZImtD_oY,310 +stripe/params/test_helpers/issuing/_personalization_design_deactivate_params.py,sha256=7bjrCfP3Ggd5VMhFehxk7pLua8DRBtUH1sPdWvgyWpg,312 +stripe/params/test_helpers/issuing/_personalization_design_reject_params.py,sha256=qDeMHXZFyQ3p2M9aPvwMENWni1mtK8aBfn7vkamHP4E,1365 +stripe/params/test_helpers/issuing/_transaction_create_force_capture_params.py,sha256=FHSvum-Z_HrcIqVYW2vA9-fJIDWBeJSpn6cOaA5xkRw,22353 +stripe/params/test_helpers/issuing/_transaction_create_unlinked_refund_params.py,sha256=Vlio34kjeCf7OfPVbUiDpy2rbal6twas3k_2hQWLUWE,22466 +stripe/params/test_helpers/issuing/_transaction_refund_params.py,sha256=mbV_LBS1Aw-RtL-TA5kqAF1Pp-ZcX_sQ18aMbkxtmmw,555 +stripe/params/test_helpers/terminal/__init__.py,sha256=GpyrJj_YwXj7xUC0OlEwa2Bh4qK0IWxDhSNGifgN-mI,2351 +stripe/params/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc,, +stripe/params/test_helpers/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc,, +stripe/params/test_helpers/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc,, +stripe/params/test_helpers/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc,, +stripe/params/test_helpers/terminal/_reader_present_payment_method_params.py,sha256=jlHbh4md5fMFPcBPxIeMLkpIjMF_YbgMNeffoWlf36I,1688 +stripe/params/test_helpers/terminal/_reader_succeed_input_collection_params.py,sha256=Z3tkl2DFNWwGJrP3skzoB6TdOp1A_t-C7J1yz67_K_c,467 +stripe/params/test_helpers/terminal/_reader_timeout_input_collection_params.py,sha256=VvH_zlWLU84PJQz4OTrZwewl5gQdjf5yp2UcJMQIZlc,309 +stripe/params/test_helpers/treasury/__init__.py,sha256=8CulHFbBeA_M4_ezZHAe0JgDcJV6xad-CllMkJWZeb8,8396 +stripe/params/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc,, +stripe/params/test_helpers/treasury/_inbound_transfer_fail_params.py,sha256=KDHIch_EuFzyUkJSEPg3AZwQU3YpN7H4VtV7Ladoj7s,1069 +stripe/params/test_helpers/treasury/_inbound_transfer_return_inbound_transfer_params.py,sha256=Ltg1GWfv-LRK85PBPkeqPvIaSSyiu_VXqhZrx47NxwA,317 +stripe/params/test_helpers/treasury/_inbound_transfer_succeed_params.py,sha256=TRL1v4pSTmcPFld9jfmDVMz2sTjbLWfnweGPj75TNrg,303 +stripe/params/test_helpers/treasury/_outbound_payment_fail_params.py,sha256=mSxtW9_o6xuYBBu4eN1IKwsFP581vav6wgMZdWLiZZg,300 +stripe/params/test_helpers/treasury/_outbound_payment_post_params.py,sha256=6THus-1m6WsClYn2IhpZo0CFJEzNOzn_Rnm7wbXHRtU,300 +stripe/params/test_helpers/treasury/_outbound_payment_return_outbound_payment_params.py,sha256=TJlZcRDIBLsFq0lXXMnuNgp3k7lYJDUQ2ywoe8XLugM,1027 +stripe/params/test_helpers/treasury/_outbound_payment_update_params.py,sha256=G5HhTQ8ihB6BjWvnZ2skLJtFBO4ZWVIkxTEOGpLDx1U,1494 +stripe/params/test_helpers/treasury/_outbound_transfer_fail_params.py,sha256=0LpUr0dmAZZsr6mpKKuYEZRxeKCdgw9eJFVRrGFhKjc,301 +stripe/params/test_helpers/treasury/_outbound_transfer_post_params.py,sha256=meq4KdfnOlCD9MPC7tKCJOIXwdiTehw6wdwM6m43_-w,301 +stripe/params/test_helpers/treasury/_outbound_transfer_return_outbound_transfer_params.py,sha256=h5JjAD2EDdMcZ5xuLLMTeCmhYHlxeoSVCXPiqr8oufE,1004 +stripe/params/test_helpers/treasury/_outbound_transfer_update_params.py,sha256=QkECEJwb_BnjrXTLNCnXXYrZjihvVo7KY8hfCPS5KY4,1501 +stripe/params/test_helpers/treasury/_received_credit_create_params.py,sha256=OeftUxtGRAHBNj6KGGtNa6EyBI_4U8NNgGaP5HaB3eQ,2016 +stripe/params/test_helpers/treasury/_received_debit_create_params.py,sha256=qdtbpInChCtFKDabGN8vYA7d5NJ9bbCTqkoJyyPORFs,1993 +stripe/params/treasury/__init__.py,sha256=Bm5mZrcAcEotQolKdeclV2JxW1o1EsQ-6PpEkUDvhXQ,43068 +stripe/params/treasury/__pycache__/__init__.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_credit_reversal_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_credit_reversal_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_credit_reversal_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_debit_reversal_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_debit_reversal_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_debit_reversal_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_close_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_features_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_features_update_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_modify_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_retrieve_features_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_update_features_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_financial_account_update_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_inbound_transfer_cancel_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_inbound_transfer_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_inbound_transfer_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_inbound_transfer_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_cancel_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_cancel_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_received_credit_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_received_credit_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_received_debit_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_received_debit_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_transaction_entry_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_transaction_entry_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_transaction_list_params.cpython-312.pyc,, +stripe/params/treasury/__pycache__/_transaction_retrieve_params.cpython-312.pyc,, +stripe/params/treasury/_credit_reversal_create_params.py,sha256=AaOTxcbI-pB2FpqfwudHEamDyUjPeQm8Z0o6-QSyjwM,809 +stripe/params/treasury/_credit_reversal_list_params.py,sha256=05c92N8RmH_87MVTRLpycGBM4g9nGAvJv9UzR-174nE,1565 +stripe/params/treasury/_credit_reversal_retrieve_params.py,sha256=S5JEPwkMRiomJkVTjFWTzcFBPA6nk-WVhwRmKJRJhsI,348 +stripe/params/treasury/_debit_reversal_create_params.py,sha256=4ZaBTmq0DaMx2yDzWRxecWFSGlw-kAooP3IVKIZfQ3s,806 +stripe/params/treasury/_debit_reversal_list_params.py,sha256=wJH3NQKnE6fI1Pnj_cHUXl-uBKiyuc9hzU2tQ1Muxfk,1686 +stripe/params/treasury/_debit_reversal_retrieve_params.py,sha256=yirWyk3-6M13Ygd6ht_NuzJ8MtbYxGUAkaHYkid5Rcs,347 +stripe/params/treasury/_financial_account_close_params.py,sha256=z5CPFHzcF54-ktm4g2-0ldBYtVpx9Zojgx6HfU49CHQ,1060 +stripe/params/treasury/_financial_account_create_params.py,sha256=d8jw1AuNw6UUDsygwk2FlXJXkCu7Us6tVLzIxbVSW9Q,6405 +stripe/params/treasury/_financial_account_features_retrieve_params.py,sha256=0hbAazwurNwuf1yHK1Vh4wJA_EHnAmLm3AfPdByZZYw,313 +stripe/params/treasury/_financial_account_features_update_params.py,sha256=MzOLknAUJ4YKe8PEYpAKxxZXCEpPIbA5D4JRh4Glg1o,4924 +stripe/params/treasury/_financial_account_list_params.py,sha256=THP88Pth_vj0jwId80dHf8Fjd6a7Eg5QHAneaPoX9gk,1367 +stripe/params/treasury/_financial_account_modify_params.py,sha256=mUtWEChJM4twt9wy-QOKfip38q2DTvvInEx9Ii5WqJU,7037 +stripe/params/treasury/_financial_account_retrieve_features_params.py,sha256=unYkAHGUpjos8g9hkksCEX5eLCGx43E-_si8KR9myUU,358 +stripe/params/treasury/_financial_account_retrieve_params.py,sha256=ogVuKhay7hpsQTWGabvR7E824zsV8UroxMtqVkvRivE,350 +stripe/params/treasury/_financial_account_update_features_params.py,sha256=guVoTgrw5aC6qH7qSPzTUHWnc4iQ1GmDZq9RpFdefq4,4980 +stripe/params/treasury/_financial_account_update_params.py,sha256=9WF6YSePXtdChoFPkTB42OP7GjHYusTqqosbYJcggx4,6981 +stripe/params/treasury/_inbound_transfer_cancel_params.py,sha256=GKePfpR1N_-IJh4xLliUrROZx0VKYxOD31UMav2CauE,347 +stripe/params/treasury/_inbound_transfer_create_params.py,sha256=zqj4sCDoEvJ2YTBJY5ZlIWBpTqhQm9iJx1uB-ubv64c,1504 +stripe/params/treasury/_inbound_transfer_fail_params.py,sha256=ERxRiIpGrrNaAgZvm9fhITog0a5HfgfNIF4YL_Mij7o,1125 +stripe/params/treasury/_inbound_transfer_list_params.py,sha256=Nwborg9xE60yIdJtw1u_Auf7apPq7BWjrI9wRB_Mdew,1540 +stripe/params/treasury/_inbound_transfer_retrieve_params.py,sha256=f-tkAwHefq_FSlIxYYI-ambDzPBKczJPH7Cg2LSONBk,349 +stripe/params/treasury/_inbound_transfer_return_inbound_transfer_params.py,sha256=z1Hp9A4EhTZTofQPWjV3CDrPcIYHzOwGoK0km88Gzrg,362 +stripe/params/treasury/_inbound_transfer_succeed_params.py,sha256=XXUU2jJHw4f5pN88wV1GM_r8TWh9R0AevC4SoijOMBY,348 +stripe/params/treasury/_outbound_payment_cancel_params.py,sha256=HMEdI67D0pnghwJjg4pVdcmWt5rO-PzHgp5iJdDTN5Y,347 +stripe/params/treasury/_outbound_payment_create_params.py,sha256=JsI0_VCxkqVvCgs-LFg4OTVGHVrVqJVdSiFSat2w59A,6952 +stripe/params/treasury/_outbound_payment_fail_params.py,sha256=FqvkMxGw5YePyP6nWwVMlt1Sh3aLXoFWpw-ry0a7c-s,345 +stripe/params/treasury/_outbound_payment_list_params.py,sha256=xLnpiETr-ze5UiN3L_MVg21Uhiyj62LbYa8Ilv9Vp7U,2228 +stripe/params/treasury/_outbound_payment_post_params.py,sha256=tKaMxKoYRVylKshTqxW4KSaMAPxTwCLSYzVVmL-FEC8,345 +stripe/params/treasury/_outbound_payment_retrieve_params.py,sha256=C5GZIwsONb8GEMblCcFE2nQYIzwvzKeTMCwI6ObCu4k,349 +stripe/params/treasury/_outbound_payment_return_outbound_payment_params.py,sha256=UaNFb0w14thtUS3YOl4G0e5VT3XMlRsWcjocWLRn7pw,1083 +stripe/params/treasury/_outbound_payment_update_params.py,sha256=nqOq8DhnjWCtYok0nhDAZ8cI3mRNd_tmyv_pPUF5Ajo,1550 +stripe/params/treasury/_outbound_transfer_cancel_params.py,sha256=OIFLucN1oLfyQJzX-Xy08c_YdvOIosSv1hvQ-rdBLQY,348 +stripe/params/treasury/_outbound_transfer_create_params.py,sha256=lrHrqW-z3NUnQr3Z5GwI-CmyqpgfDGIOfw43zyfwyso,3158 +stripe/params/treasury/_outbound_transfer_fail_params.py,sha256=QlQ2gagiPuvzge22bzP7qKHg_6_jAWQkNJZUrxItJQU,346 +stripe/params/treasury/_outbound_transfer_list_params.py,sha256=2Q_t-a71RReGPeV9LUY2xjwNT9jWzT_-ASlqquztW4s,1561 +stripe/params/treasury/_outbound_transfer_post_params.py,sha256=UdO1CfMd0E8UMmglIyEtrlUI5OG9Y_w34lucQUKuMbs,346 +stripe/params/treasury/_outbound_transfer_retrieve_params.py,sha256=kMQdYnh-itwF_mcyKOu4mgeYgz3oUcxRRvzJj7-Ujug,350 +stripe/params/treasury/_outbound_transfer_return_outbound_transfer_params.py,sha256=i9oL92wdOBx0drBuby4kG45YQ8QcHDPlll5eQ0wakGY,1060 +stripe/params/treasury/_outbound_transfer_update_params.py,sha256=ouX-kpvcDjn49QxpScvTVhWiztFwCGykPIArEN7qzV8,1557 +stripe/params/treasury/_received_credit_create_params.py,sha256=mzVzbFXG17CfdEm1_2giwgAWeAEDH2s4VgNcP-D6bGo,2072 +stripe/params/treasury/_received_credit_list_params.py,sha256=FEJ44ySsCwamCQmbQ5Qycg9JQ1EUcRMl9VqdU5L-PLE,1868 +stripe/params/treasury/_received_credit_retrieve_params.py,sha256=ZG6o1VgHz71qqUGjRGoJ2cx2qzZo3hvocaYwpuqmaj8,348 +stripe/params/treasury/_received_debit_create_params.py,sha256=81VCiVyazSkCQ2xtP_R6qr2JPvswSGBIJno47TqxuaY,2049 +stripe/params/treasury/_received_debit_list_params.py,sha256=W39g2AIEp2_dmI5e5hHmynXwZRe--9ic_V_5Tc09ZJI,1465 +stripe/params/treasury/_received_debit_retrieve_params.py,sha256=fI1wAvp6UehFr377HDUvma6-OqIGwn-t2uGlmN2W7VA,347 +stripe/params/treasury/_transaction_entry_list_params.py,sha256=PUZnQRCFIzPXqDkavXglY9Z7pJYkUBZ2TrC68qaf5R0,2664 +stripe/params/treasury/_transaction_entry_retrieve_params.py,sha256=mzNrHN6jkMG5EYwP-ZVJFowPd27MHkLOEXhSVs_8dbI,350 +stripe/params/treasury/_transaction_list_params.py,sha256=gOiYhM8n5lbOvHofzkIoI5NeI1mm1w8ws3Y1Yi1jusQ,3099 +stripe/params/treasury/_transaction_retrieve_params.py,sha256=HU8W9BYiU7eUBNMsSbciuJ7ZuYzkg5QFFzzpPEtEOBI,345 +stripe/params/v2/__init__.py,sha256=qI0qdrX-RR5wRf7e72iD_IwoYQIfEN03vAx7YmvpWuI,750 +stripe/params/v2/__pycache__/__init__.cpython-312.pyc,, +stripe/params/v2/billing/__init__.py,sha256=YuSkVai75_UQUxDqGk_aZ8Wk9N3EkYTY8DVLCpnE3RM,2162 +stripe/params/v2/billing/__pycache__/__init__.cpython-312.pyc,, +stripe/params/v2/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc,, +stripe/params/v2/billing/__pycache__/_meter_event_create_params.cpython-312.pyc,, +stripe/params/v2/billing/__pycache__/_meter_event_session_create_params.cpython-312.pyc,, +stripe/params/v2/billing/__pycache__/_meter_event_stream_create_params.cpython-312.pyc,, +stripe/params/v2/billing/_meter_event_adjustment_create_params.py,sha256=_oX2JxA7B-WyQihblYpuK7un4-HK57PttWqj-XrP9DQ,771 +stripe/params/v2/billing/_meter_event_create_params.py,sha256=B36L0QHFt9ZW-eatsrFcuriMEI2ne5USavFGc0y5vss,1164 +stripe/params/v2/billing/_meter_event_session_create_params.py,sha256=8R2z7Ng545-t8XPut9sKjEqqVzaQEGjBa8RMkUDEAu8,162 +stripe/params/v2/billing/_meter_event_stream_create_params.py,sha256=Rq24VWHVjJ7kJ6VVI4bqWBKAK_gGdScExuQeKhXlSPU,1391 +stripe/params/v2/core/__init__.py,sha256=ijUns949C2DETSdQC7ggBK1pkAKk0Ih1TeUqXZcPa18,3925 +stripe/params/v2/core/__pycache__/__init__.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_create_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_delete_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_disable_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_enable_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_list_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_ping_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_retrieve_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_destination_update_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_list_params.cpython-312.pyc,, +stripe/params/v2/core/__pycache__/_event_retrieve_params.cpython-312.pyc,, +stripe/params/v2/core/_event_destination_create_params.py,sha256=pK2lVrrZvPw4Itc2M_mxiGdWZeldF91DX6S5c0dJm5M,1871 +stripe/params/v2/core/_event_destination_delete_params.py,sha256=s5TTvU_lKfcZlI-Rsdxi_vt5FYB1Uf3cMBKntVvr45E,161 +stripe/params/v2/core/_event_destination_disable_params.py,sha256=symz5S1T7VtMVWS7ve1le2iQubGp5cOCj-3Dwu4BMxM,162 +stripe/params/v2/core/_event_destination_enable_params.py,sha256=68w0Qn7kAJPsGHyCa6A2H337afHI84v5iakYWn6xPjQ,161 +stripe/params/v2/core/_event_destination_list_params.py,sha256=6STnxFB0fr4-zjTvzQQtdJNgUD39gOrsvfKur4DIZj4,432 +stripe/params/v2/core/_event_destination_ping_params.py,sha256=82j1p9ncpt22Sh-ASdvZEdV7keSbXndlAsN0kmTZCHc,159 +stripe/params/v2/core/_event_destination_retrieve_params.py,sha256=nIL4zTzygG22vHkEWavuEI1cVvsJnzvr2oHy8N7UNl8,330 +stripe/params/v2/core/_event_destination_update_params.py,sha256=oYyTe3a5KQtANHKpQ6E7M_ddKZLqRk7P7bDkLX87ahE,1049 +stripe/params/v2/core/_event_list_params.py,sha256=Obqia_XJeOO9umNmemAos6qT_wO4ODDWiGHFmkVOTU4,882 +stripe/params/v2/core/_event_retrieve_params.py,sha256=lvbBN_D9JMPjiS8iUTySyca0qjGaZcLJHUsn8Jn_tKw,152 +stripe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +stripe/radar/__init__.py,sha256=ZB1D80QebYPSOCp1WNAB5GYOEKXm_GrSrjfzcNKg__U,1626 +stripe/radar/__pycache__/__init__.cpython-312.pyc,, +stripe/radar/__pycache__/_early_fraud_warning.cpython-312.pyc,, +stripe/radar/__pycache__/_early_fraud_warning_service.cpython-312.pyc,, +stripe/radar/__pycache__/_value_list.cpython-312.pyc,, +stripe/radar/__pycache__/_value_list_item.cpython-312.pyc,, +stripe/radar/__pycache__/_value_list_item_service.cpython-312.pyc,, +stripe/radar/__pycache__/_value_list_service.cpython-312.pyc,, +stripe/radar/_early_fraud_warning.py,sha256=McIAcym7MKkUqqBHSa3nIyzzT--vgfjk5ZnBIeeMtxg,4454 +stripe/radar/_early_fraud_warning_service.py,sha256=8LAcRovAvB-JY56jjLFpoDRE_oYMXvJpR_j9giGz9xk,3596 +stripe/radar/_value_list.py,sha256=Oy0NRBNFpz0T_xCOnvUr77w38Z1yFmT_0b2XzdhJfj0,10501 +stripe/radar/_value_list_item.py,sha256=EHqkpy1VfoX4ltuT48Jb4eNRz-2BwGLA4WnCQwU3SJI,7950 +stripe/radar/_value_list_item_service.py,sha256=N_HrTyiqeWemZjGbGZoV6nYbcmCTPoINmX8EBg1EgLg,5852 +stripe/radar/_value_list_service.py,sha256=CtmReQCeSUA7VqBF6_V35sSar821yxpTWECml6WONDA,7491 +stripe/reporting/__init__.py,sha256=h3mWU1F4gm1VbvjwzEc69rreSLLj5Jm76zmPm7fLWEg,1210 +stripe/reporting/__pycache__/__init__.cpython-312.pyc,, +stripe/reporting/__pycache__/_report_run.cpython-312.pyc,, +stripe/reporting/__pycache__/_report_run_service.cpython-312.pyc,, +stripe/reporting/__pycache__/_report_type.cpython-312.pyc,, +stripe/reporting/__pycache__/_report_type_service.cpython-312.pyc,, +stripe/reporting/_report_run.py,sha256=JySy34FXji9FC68lG6euR8n49Rft8seFMfPAfPIeRXE,7382 +stripe/reporting/_report_run_service.py,sha256=UUY30AhfJ7cI_OepvtI4xl6VCA4ETBjXi-1IsTaX6iU,4390 +stripe/reporting/_report_type.py,sha256=T7Nd2H6CuPFy-Wrm42a6yAGthGyKbT9Rfjy2tpA3BkU,4539 +stripe/reporting/_report_type_service.py,sha256=6qGx_C_o7Is7MYqoLwt1pKE_vwt-i5onUqbO-jKMMho,3218 +stripe/sigma/__init__.py,sha256=m5YvzbbDYa3xDTVqqJ54wYNXxey3nDym6-n9BIZ12hk,1002 +stripe/sigma/__pycache__/__init__.cpython-312.pyc,, +stripe/sigma/__pycache__/_scheduled_query_run.cpython-312.pyc,, +stripe/sigma/__pycache__/_scheduled_query_run_service.cpython-312.pyc,, +stripe/sigma/_scheduled_query_run.py,sha256=CgkMCKefV_ZOIWqYKMaM262EeFvslJcDJSQe-yTNMK8,4218 +stripe/sigma/_scheduled_query_run_service.py,sha256=CMUuFKhA1W0krwSpZ-i7AlRi8MX5j8BBBT5VV9XJNbA,3246 +stripe/tax/__init__.py,sha256=Wo9pTDi6j-Odm7DasA5CsD53dCFF_S1NyYp-11fKH0I,2595 +stripe/tax/__pycache__/__init__.cpython-312.pyc,, +stripe/tax/__pycache__/_calculation.cpython-312.pyc,, +stripe/tax/__pycache__/_calculation_line_item.cpython-312.pyc,, +stripe/tax/__pycache__/_calculation_line_item_service.cpython-312.pyc,, +stripe/tax/__pycache__/_calculation_service.cpython-312.pyc,, +stripe/tax/__pycache__/_registration.cpython-312.pyc,, +stripe/tax/__pycache__/_registration_service.cpython-312.pyc,, +stripe/tax/__pycache__/_settings.cpython-312.pyc,, +stripe/tax/__pycache__/_settings_service.cpython-312.pyc,, +stripe/tax/__pycache__/_transaction.cpython-312.pyc,, +stripe/tax/__pycache__/_transaction_line_item.cpython-312.pyc,, +stripe/tax/__pycache__/_transaction_line_item_service.cpython-312.pyc,, +stripe/tax/__pycache__/_transaction_service.cpython-312.pyc,, +stripe/tax/_calculation.py,sha256=JF-nDzMytBFR85Fo4-lmr3UM3mqx0zgnPm5EYLSgLS0,24422 +stripe/tax/_calculation_line_item.py,sha256=SyejVwOrSx1g20xTGqhNr6KCTTRzdoySMz1Esd_vBR4,5622 +stripe/tax/_calculation_line_item_service.py,sha256=LGNPKVudstgbm-XoSObaXN0e8X7qO-XFNLJ1q7plzCU,2086 +stripe/tax/_calculation_service.py,sha256=O15x2gIB4zVzn5FfxCvJZbqjfnO6aVti2oCSt5C6h-M,3850 +stripe/tax/_registration.py,sha256=l6JL8pQydUxLEP6b0wGfkJB4_AlsuCu6LnBZDvtsJvg,43314 +stripe/tax/_registration_service.py,sha256=OOgRhgIqTR51Z_B-37BMWwQ1nAqe_4abAK4UvzL03Fs,5505 +stripe/tax/_settings.py,sha256=UGi6xcbqsaabx9d3luazRLDOqwg3VocBXk6kYOvTTb8,5682 +stripe/tax/_settings_service.py,sha256=1uM_DwodfNKTZEwNFeCoAxiRkzE5FfHSS7nSAUm2k2A,2700 +stripe/tax/_transaction.py,sha256=5bA5eSnk8N9KB1XxYqP4GGXL5x80IJvXu9g9jf-02MI,22207 +stripe/tax/_transaction_line_item.py,sha256=gSL_dwemw9vetTjcYonnfMSel42JqkOn41-BPkLM3_I,2516 +stripe/tax/_transaction_line_item_service.py,sha256=4hW6n88rEsOQRLpYTeaNOcrPMztWdBSO7vpnbY56A9w,2050 +stripe/tax/_transaction_service.py,sha256=p0Vg5TgTfQSc6ZqoiJKC8uMH0A5qoEA-FraXMyd-qgk,5239 +stripe/terminal/__init__.py,sha256=33ndi9CGHC6AjGUVBCP0M8Juj7yi9SgPNvgfyBEIGSw,1867 +stripe/terminal/__pycache__/__init__.cpython-312.pyc,, +stripe/terminal/__pycache__/_configuration.cpython-312.pyc,, +stripe/terminal/__pycache__/_configuration_service.cpython-312.pyc,, +stripe/terminal/__pycache__/_connection_token.cpython-312.pyc,, +stripe/terminal/__pycache__/_connection_token_service.cpython-312.pyc,, +stripe/terminal/__pycache__/_location.cpython-312.pyc,, +stripe/terminal/__pycache__/_location_service.cpython-312.pyc,, +stripe/terminal/__pycache__/_reader.cpython-312.pyc,, +stripe/terminal/__pycache__/_reader_service.cpython-312.pyc,, +stripe/terminal/_configuration.py,sha256=9fH7gEeWniqjgVzk8Nc9zMYdoPkgc31DkTUfq_8S3Bs,24397 +stripe/terminal/_configuration_service.py,sha256=U5D5Jx0nLEtU2-1oCusmis5ULYXlIGSnOFqrhFC8cbo,7086 +stripe/terminal/_connection_token.py,sha256=4ExKYVd7gcz1ks16piDWtsgzAmW-YTo-3Ji_IZM2DHs,2500 +stripe/terminal/_connection_token_service.py,sha256=p3eYG__YL7w5aS07Nu1SFO5SNNr0Ubh-kCZ5Qt9zOBM,1918 +stripe/terminal/_location.py,sha256=hfU4Kt7PbWpDk0v7u-mxzpM2ZNOBRLG_cQmu71Ao44M,11220 +stripe/terminal/_location_service.py,sha256=Su33K5F6pNObOYfvG0PsbtoI0S7EXP-eN-XXszFxlIk,7182 +stripe/terminal/_reader.py,sha256=L2cNrKWldT1NHH9FDwd3Qnwcvl-PESJUzz8X_sNPr9o,77916 +stripe/terminal/_reader_service.py,sha256=GHpTJg5c6H5dMLBrL9g80A90juqY_apJC2LuF1tCrQg,20288 +stripe/test_helpers/__init__.py,sha256=G2a47cEewGwFWTTXAPF9cC2Cxt1EvU675pb40zOVnjA,2333 +stripe/test_helpers/__pycache__/__init__.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_confirmation_token_service.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_customer_service.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_issuing_service.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_refund_service.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_terminal_service.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_test_clock.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_test_clock_service.cpython-312.pyc,, +stripe/test_helpers/__pycache__/_treasury_service.cpython-312.pyc,, +stripe/test_helpers/_confirmation_token_service.py,sha256=OVTC4cZk77ZXyjlfl9e1-GtRMvyGo_I0ZNctqxxB_QM,1673 +stripe/test_helpers/_customer_service.py,sha256=xpfDVuK6lI9FXlhP88nB0-YsbtKPkWUee6_BlMGJ-co,1953 +stripe/test_helpers/_issuing_service.py,sha256=XOEng8NxzUFw8CK0-V_0N2tJ1JN_1NF-l6L2iRTcuS4,1824 +stripe/test_helpers/_refund_service.py,sha256=S3PXbAQ75Wcr5EslA3G9mAuQ6ZOZM93YG3YjN6-hpPQ,1727 +stripe/test_helpers/_terminal_service.py,sha256=lLtLTbALcNRWy4tdlx0mRKQD0APwYs2sEJRE2rXu3XA,999 +stripe/test_helpers/_test_clock.py,sha256=zL6orDiMWSxStMVx3r8uyna57zhy846Dt_oIBm8L13I,11702 +stripe/test_helpers/_test_clock_service.py,sha256=ESFz2a8I-JhskiUvBn3aSxTUW4dy3W24MupncaWKMPA,7022 +stripe/test_helpers/_treasury_service.py,sha256=x5w0cFJjjfHg7oJ6hSaUoST5vCPw1S_oMHWb-00UBng,2241 +stripe/test_helpers/issuing/__init__.py,sha256=nJFn7Vght3P4x_WvbHHnvglQFQpG1Ga7j3_z3gpwKt4,1524 +stripe/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc,, +stripe/test_helpers/issuing/__pycache__/_authorization_service.cpython-312.pyc,, +stripe/test_helpers/issuing/__pycache__/_card_service.cpython-312.pyc,, +stripe/test_helpers/issuing/__pycache__/_personalization_design_service.cpython-312.pyc,, +stripe/test_helpers/issuing/__pycache__/_transaction_service.cpython-312.pyc,, +stripe/test_helpers/issuing/_authorization_service.py,sha256=gZf3wi7Neypbhz4Bn_bj5purQBsRuxVJttg-OGNDdSA,10813 +stripe/test_helpers/issuing/_card_service.py,sha256=P6XxTpOPG1CwrAyTOl_i-fn6aDMF0cAXeeCjkntgRDQ,7690 +stripe/test_helpers/issuing/_personalization_design_service.py,sha256=kFtcYxYptkJnhuqWSaTNk09MGQ8MeMVKQUPVgZrT_ME,5636 +stripe/test_helpers/issuing/_transaction_service.py,sha256=hZ_vK0m4S1iJtPnKNVG-YSCKy5fjXvBrwRn3UO4t3Zc,4542 +stripe/test_helpers/terminal/__init__.py,sha256=ZJR_lnIVjiAfLfqU1lfTZ2QZqr6wUD9_ug-3ywLildc,775 +stripe/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc,, +stripe/test_helpers/terminal/__pycache__/_reader_service.cpython-312.pyc,, +stripe/test_helpers/terminal/_reader_service.py,sha256=F8RsnB1vrzipfD_h4rL6Qcx1Z1XTw3X5jPXv4bNxzvg,5241 +stripe/test_helpers/treasury/__init__.py,sha256=Xt8tP-oS4zQzWabMlYwC32aV8d7A0UINxOWpJy9Jw2w,1863 +stripe/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc,, +stripe/test_helpers/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc,, +stripe/test_helpers/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc,, +stripe/test_helpers/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc,, +stripe/test_helpers/treasury/__pycache__/_received_credit_service.cpython-312.pyc,, +stripe/test_helpers/treasury/__pycache__/_received_debit_service.cpython-312.pyc,, +stripe/test_helpers/treasury/_inbound_transfer_service.py,sha256=L2dzSDWui9EsVh0fF8gnxoEeha674nEWMUqAgfO1yO8,5378 +stripe/test_helpers/treasury/_outbound_payment_service.py,sha256=SwtpCyqz97LlMQLxzFedholKKHPk_tv5r2WYdBBXwiA,6893 +stripe/test_helpers/treasury/_outbound_transfer_service.py,sha256=Os0Qwuphqbxc4TfE6yAUEtDr3Y-oXCHiIbUHE94vVWo,7482 +stripe/test_helpers/treasury/_received_credit_service.py,sha256=4QzNHHIi0qL7Cc_M2SYlSjw30Ne1RBkvQe03aMcO7To,1816 +stripe/test_helpers/treasury/_received_debit_service.py,sha256=2Jw3e3SOgyROK8B4RPME3ee_LBOX-zEFIMj-mozd9bE,1799 +stripe/treasury/__init__.py,sha256=jL3GUfPxbxFdW4ZXHqsOFdNxOtyqg_QIEgRDnDcy7bc,4933 +stripe/treasury/__pycache__/__init__.cpython-312.pyc,, +stripe/treasury/__pycache__/_credit_reversal.cpython-312.pyc,, +stripe/treasury/__pycache__/_credit_reversal_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_debit_reversal.cpython-312.pyc,, +stripe/treasury/__pycache__/_debit_reversal_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_financial_account.cpython-312.pyc,, +stripe/treasury/__pycache__/_financial_account_features.cpython-312.pyc,, +stripe/treasury/__pycache__/_financial_account_features_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_financial_account_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_inbound_transfer.cpython-312.pyc,, +stripe/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_outbound_payment.cpython-312.pyc,, +stripe/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_outbound_transfer.cpython-312.pyc,, +stripe/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_received_credit.cpython-312.pyc,, +stripe/treasury/__pycache__/_received_credit_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_received_debit.cpython-312.pyc,, +stripe/treasury/__pycache__/_received_debit_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_transaction.cpython-312.pyc,, +stripe/treasury/__pycache__/_transaction_entry.cpython-312.pyc,, +stripe/treasury/__pycache__/_transaction_entry_service.cpython-312.pyc,, +stripe/treasury/__pycache__/_transaction_service.cpython-312.pyc,, +stripe/treasury/_credit_reversal.py,sha256=udpHaiZQd-o5omuYouDQgajvT_AvA1gTK4oGw4A5SKM,6181 +stripe/treasury/_credit_reversal_service.py,sha256=AJVdAz3klmesJsXKua3-NEMYQ_0z8h4EuVZGE-r-9X8,4535 +stripe/treasury/_debit_reversal.py,sha256=8Z-uQnNkiKaid_xWbX1QY-oDABO_BIPyOOwwCvpsz1Q,6229 +stripe/treasury/_debit_reversal_service.py,sha256=WD2gO6zTuEOKi8v3AFR53PVyq_ZwGyfgGOjnPkftNwI,4230 +stripe/treasury/_financial_account.py,sha256=Jk5F18YPM02RODKP3dtEb-MmJfDD4LPcDdMzo2qUKTY,24080 +stripe/treasury/_financial_account_features.py,sha256=oy89icMrc3uOBXN5CncMLn7COUnbh9GoiU6_ddsLtiM,18685 +stripe/treasury/_financial_account_features_service.py,sha256=otWdlNjqaUtnCG0ixDT0TvISyeLZHrifnMG2Qby7CeM,3718 +stripe/treasury/_financial_account_service.py,sha256=ApWDHKSbvYoAGNTBWFzmHCYMCxyECP99NQyOJQMe_h4,8639 +stripe/treasury/_inbound_transfer.py,sha256=2WgxvmEWjjf7MskVs53N1Uqg2Wrm8af7YzowlSvY1PA,29400 +stripe/treasury/_inbound_transfer_service.py,sha256=bpVecM98HYiP5y6Kwgc1HGXJ69_iXeWMHbZbvbww9L4,5728 +stripe/treasury/_outbound_payment.py,sha256=zBDqwxD46gmwzrgmuOrIe7aKFBw2It0T1pQh6nNqjUg,36352 +stripe/treasury/_outbound_payment_service.py,sha256=WtMSRFnf5e9uz8WOU_X2jHxj47tTU45Vl3rrLnG4qIg,5842 +stripe/treasury/_outbound_transfer.py,sha256=IYnpiNaGC_xDLj1DpUjzC_FVFY22YgCCjoIxqyMfCvA,37412 +stripe/treasury/_outbound_transfer_service.py,sha256=ATbdBicguNCm0Sfz9SgOT3yS_xNjz2i2MssUv1577wg,6237 +stripe/treasury/_received_credit.py,sha256=qjOTQh9kK7YPe_0ko2YGGlVNW-qFnquKxDkwH3v6M4c,15116 +stripe/treasury/_received_credit_service.py,sha256=cxprG29-JuulHgQF535W06pdHUXK_ffuUwyPyMG8bi4,3155 +stripe/treasury/_received_debit.py,sha256=9UCaiT8scJazbsQfkN7cQ8DH3lMLH2M4hwCg_7rknCE,11409 +stripe/treasury/_received_debit_service.py,sha256=w4KbNbXeLSq_EsqQTPwuj6-W2Q3gdF7MOcpuum7lYBA,3046 +stripe/treasury/_transaction.py,sha256=pSpmuc9MY4inwO2ZSa43yfrHxr8ZR98HzGYOQvALr8g,10383 +stripe/treasury/_transaction_entry.py,sha256=00HJcyLAmhKbX2TPY401rgwuxeM_AbCfQXS4prNz7JQ,10765 +stripe/treasury/_transaction_entry_service.py,sha256=Au4zIic3BOg1kDeDRO6ACXTJxz-iuXVFGav4qzfSR9g,3059 +stripe/treasury/_transaction_service.py,sha256=v88G4tX3a0_9b7wtH3nf_w6j8uNYEeYdMCR7cz3DDlw,2871 +stripe/v2/__init__.py,sha256=pLqctgZeTVkHt-Y1cc_gjEABtb0EA-R1cK7U6s5iU30,1315 +stripe/v2/__pycache__/__init__.cpython-312.pyc,, +stripe/v2/__pycache__/_amount.cpython-312.pyc,, +stripe/v2/__pycache__/_billing_service.cpython-312.pyc,, +stripe/v2/__pycache__/_core_service.cpython-312.pyc,, +stripe/v2/__pycache__/_deleted_object.cpython-312.pyc,, +stripe/v2/__pycache__/_list_object.cpython-312.pyc,, +stripe/v2/_amount.py,sha256=1vYvurH_SZEKTuaOsDN-8RDRCoqM2r0nlRo0WIhGPXw,256 +stripe/v2/_billing_service.py,sha256=0E-TIC7o3KLmvTskqG0mUd2hDxzUeVbUb1kwwYoGuWs,1885 +stripe/v2/_core_service.py,sha256=Pb9GUUqslqL31UT6b6MbBSJkmJ_HtexEg5jjyoh5ji0,1209 +stripe/v2/_deleted_object.py,sha256=dC-UbVWM6d6xNZ67w3JYcDTWndXDoxlYotgUNb6ikrc,429 +stripe/v2/_list_object.py,sha256=6Lktk6pH4V50wIVGvZrRRTuVORG7MG_VtmRo-b3wO-g,1751 +stripe/v2/billing/__init__.py,sha256=XO7FInT5q4fHtGWSm1_6ViO8gCDMFg2jxbsp0ryIZuQ,2071 +stripe/v2/billing/__pycache__/__init__.cpython-312.pyc,, +stripe/v2/billing/__pycache__/_meter_event.cpython-312.pyc,, +stripe/v2/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc,, +stripe/v2/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc,, +stripe/v2/billing/__pycache__/_meter_event_service.cpython-312.pyc,, +stripe/v2/billing/__pycache__/_meter_event_session.cpython-312.pyc,, +stripe/v2/billing/__pycache__/_meter_event_session_service.cpython-312.pyc,, +stripe/v2/billing/__pycache__/_meter_event_stream_service.cpython-312.pyc,, +stripe/v2/billing/_meter_event.py,sha256=f9Nu9c6QwhEtaQt4Xe2fXPiQ_RQa8a4LpBAb1zSZyHE,1708 +stripe/v2/billing/_meter_event_adjustment.py,sha256=cCQ3_TSksDydjD23_fZknPXhlCsDlRuhoillcZIjHm0,1560 +stripe/v2/billing/_meter_event_adjustment_service.py,sha256=oGL11MSLR_SC-YT2VEwU5fOj4klLwVrPigdOjP4OwVc,1671 +stripe/v2/billing/_meter_event_service.py,sha256=wzIIyP2Fv5RUybqB4Nj6tK4WCNEarId4ekJwmCTddNw,1807 +stripe/v2/billing/_meter_event_session.py,sha256=Xt9140ViOZQqlSBPnwsFmpTAGInK_v_xorPDz2a-M1M,1054 +stripe/v2/billing/_meter_event_session_service.py,sha256=UjYp_HGNMJten--GsJQgNs-s35VKfgXzyfigqjhekE8,1952 +stripe/v2/billing/_meter_event_stream_service.py,sha256=zD5wNQ1zHUSjA9DMyOh7CG4YSioFTiS_v2ey2DRWe10,1664 +stripe/v2/core/__init__.py,sha256=rAZxg6u9lDGHkW69OrKxZ64JJf2mt_8wsJ1CphEIoM4,1493 +stripe/v2/core/__pycache__/__init__.cpython-312.pyc,, +stripe/v2/core/__pycache__/_event.cpython-312.pyc,, +stripe/v2/core/__pycache__/_event_destination.cpython-312.pyc,, +stripe/v2/core/__pycache__/_event_destination_service.cpython-312.pyc,, +stripe/v2/core/__pycache__/_event_service.cpython-312.pyc,, +stripe/v2/core/_event.py,sha256=cvR_sMu2iBYd6sxogTub89Rc8p14n08hDY2XCPApLd4,8123 +stripe/v2/core/_event_destination.py,sha256=YyK7qm0O_V_bDhLZmRY78cmIceWuacZAdPFib-aESnU,3819 +stripe/v2/core/_event_destination_service.py,sha256=T1oncjGQxJpGO_iRYQlmGe3ms4QxJ_FbjEtEjoXa-xU,10839 +stripe/v2/core/_event_service.py,sha256=xySRCNtgLRRXyOWz5cZAPLYJYLgZbubYK1lAdUamEbQ,2700 diff --git a/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/REQUESTED b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/REQUESTED new file mode 100644 index 00000000..e69de29b diff --git a/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/WHEEL b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/WHEEL new file mode 100644 index 00000000..d8b9936d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.12.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/licenses/LICENSE b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/licenses/LICENSE new file mode 100644 index 00000000..f9ee781c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe-13.2.0.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2010-2018 Stripe (http://stripe.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/__init__.py new file mode 100644 index 00000000..643e1efb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/__init__.py @@ -0,0 +1,884 @@ +from typing_extensions import TYPE_CHECKING, Literal +from typing import Optional +import os +import warnings + +# Stripe Python bindings +# API docs at http://stripe.com/docs/api +# Authors: +# Patrick Collison +# Greg Brockman +# Andrew Metcalf + +# Configuration variables +from stripe._api_version import _ApiVersion + +from stripe._app_info import AppInfo as AppInfo +from stripe._version import VERSION as VERSION + +# Constants +DEFAULT_API_BASE: str = "https://api.stripe.com" +DEFAULT_CONNECT_API_BASE: str = "https://connect.stripe.com" +DEFAULT_UPLOAD_API_BASE: str = "https://files.stripe.com" +DEFAULT_METER_EVENTS_API_BASE: str = "https://meter-events.stripe.com" + + +api_key: Optional[str] = None +client_id: Optional[str] = None +api_base: str = DEFAULT_API_BASE +connect_api_base: str = DEFAULT_CONNECT_API_BASE +upload_api_base: str = DEFAULT_UPLOAD_API_BASE +meter_events_api_base: str = DEFAULT_METER_EVENTS_API_BASE +api_version: str = _ApiVersion.CURRENT +verify_ssl_certs: bool = True +proxy: Optional[str] = None +default_http_client: Optional["HTTPClient"] = None +app_info: Optional[AppInfo] = None +enable_telemetry: bool = True +max_network_retries: int = 2 +ca_bundle_path: str = os.path.join( + os.path.dirname(__file__), "data", "ca-certificates.crt" +) + +# Lazily initialized stripe.default_http_client +default_http_client = None +_default_proxy = None + +from stripe._http_client import ( + new_default_http_client as new_default_http_client, +) + + +def ensure_default_http_client(): + if default_http_client: + _warn_if_mismatched_proxy() + return + _init_default_http_client() + + +def _init_default_http_client(): + global _default_proxy + global default_http_client + + # If the stripe.default_http_client has not been set by the user + # yet, we'll set it here. This way, we aren't creating a new + # HttpClient for every request. + default_http_client = new_default_http_client( + verify_ssl_certs=verify_ssl_certs, proxy=proxy + ) + _default_proxy = proxy + + +def _warn_if_mismatched_proxy(): + global _default_proxy + from stripe import proxy + + if proxy != _default_proxy: + warnings.warn( + "stripe.proxy was updated after sending a " + "request - this is a no-op. To use a different proxy, " + "set stripe.default_http_client to a new client " + "configured with the proxy." + ) + + +# Set to either 'debug' or 'info', controls console logging +log: Optional[Literal["debug", "info"]] = None + + +# Sets some basic information about the running application that's sent along +# with API requests. Useful for plugin authors to identify their plugin when +# communicating with Stripe. +# +# Takes a name and optional version and plugin URL. +def set_app_info( + name: str, + partner_id: Optional[str] = None, + url: Optional[str] = None, + version: Optional[str] = None, +): + global app_info + app_info = { + "name": name, + "partner_id": partner_id, + "url": url, + "version": version, + } + + +# The beginning of the section generated from our OpenAPI spec +from importlib import import_module + +if TYPE_CHECKING: + from stripe import ( + apps as apps, + billing as billing, + billing_portal as billing_portal, + checkout as checkout, + climate as climate, + entitlements as entitlements, + events as events, + financial_connections as financial_connections, + forwarding as forwarding, + identity as identity, + issuing as issuing, + params as params, + radar as radar, + reporting as reporting, + sigma as sigma, + tax as tax, + terminal as terminal, + test_helpers as test_helpers, + treasury as treasury, + v2 as v2, + ) + from stripe._account import Account as Account + from stripe._account_capability_service import ( + AccountCapabilityService as AccountCapabilityService, + ) + from stripe._account_external_account_service import ( + AccountExternalAccountService as AccountExternalAccountService, + ) + from stripe._account_link import AccountLink as AccountLink + from stripe._account_link_service import ( + AccountLinkService as AccountLinkService, + ) + from stripe._account_login_link_service import ( + AccountLoginLinkService as AccountLoginLinkService, + ) + from stripe._account_person_service import ( + AccountPersonService as AccountPersonService, + ) + from stripe._account_service import AccountService as AccountService + from stripe._account_session import AccountSession as AccountSession + from stripe._account_session_service import ( + AccountSessionService as AccountSessionService, + ) + from stripe._api_mode import ApiMode as ApiMode + from stripe._api_resource import APIResource as APIResource + from stripe._apple_pay_domain import ApplePayDomain as ApplePayDomain + from stripe._apple_pay_domain_service import ( + ApplePayDomainService as ApplePayDomainService, + ) + from stripe._application import Application as Application + from stripe._application_fee import ApplicationFee as ApplicationFee + from stripe._application_fee_refund import ( + ApplicationFeeRefund as ApplicationFeeRefund, + ) + from stripe._application_fee_refund_service import ( + ApplicationFeeRefundService as ApplicationFeeRefundService, + ) + from stripe._application_fee_service import ( + ApplicationFeeService as ApplicationFeeService, + ) + from stripe._apps_service import AppsService as AppsService + from stripe._balance import Balance as Balance + from stripe._balance_service import BalanceService as BalanceService + from stripe._balance_settings import BalanceSettings as BalanceSettings + from stripe._balance_settings_service import ( + BalanceSettingsService as BalanceSettingsService, + ) + from stripe._balance_transaction import ( + BalanceTransaction as BalanceTransaction, + ) + from stripe._balance_transaction_service import ( + BalanceTransactionService as BalanceTransactionService, + ) + from stripe._bank_account import BankAccount as BankAccount + from stripe._base_address import BaseAddress as BaseAddress + from stripe._billing_portal_service import ( + BillingPortalService as BillingPortalService, + ) + from stripe._billing_service import BillingService as BillingService + from stripe._capability import Capability as Capability + from stripe._card import Card as Card + from stripe._cash_balance import CashBalance as CashBalance + from stripe._charge import Charge as Charge + from stripe._charge_service import ChargeService as ChargeService + from stripe._checkout_service import CheckoutService as CheckoutService + from stripe._climate_service import ClimateService as ClimateService + from stripe._confirmation_token import ( + ConfirmationToken as ConfirmationToken, + ) + from stripe._confirmation_token_service import ( + ConfirmationTokenService as ConfirmationTokenService, + ) + from stripe._connect_collection_transfer import ( + ConnectCollectionTransfer as ConnectCollectionTransfer, + ) + from stripe._country_spec import CountrySpec as CountrySpec + from stripe._country_spec_service import ( + CountrySpecService as CountrySpecService, + ) + from stripe._coupon import Coupon as Coupon + from stripe._coupon_service import CouponService as CouponService + from stripe._createable_api_resource import ( + CreateableAPIResource as CreateableAPIResource, + ) + from stripe._credit_note import CreditNote as CreditNote + from stripe._credit_note_line_item import ( + CreditNoteLineItem as CreditNoteLineItem, + ) + from stripe._credit_note_line_item_service import ( + CreditNoteLineItemService as CreditNoteLineItemService, + ) + from stripe._credit_note_preview_lines_service import ( + CreditNotePreviewLinesService as CreditNotePreviewLinesService, + ) + from stripe._credit_note_service import ( + CreditNoteService as CreditNoteService, + ) + from stripe._custom_method import custom_method as custom_method + from stripe._customer import Customer as Customer + from stripe._customer_balance_transaction import ( + CustomerBalanceTransaction as CustomerBalanceTransaction, + ) + from stripe._customer_balance_transaction_service import ( + CustomerBalanceTransactionService as CustomerBalanceTransactionService, + ) + from stripe._customer_cash_balance_service import ( + CustomerCashBalanceService as CustomerCashBalanceService, + ) + from stripe._customer_cash_balance_transaction import ( + CustomerCashBalanceTransaction as CustomerCashBalanceTransaction, + ) + from stripe._customer_cash_balance_transaction_service import ( + CustomerCashBalanceTransactionService as CustomerCashBalanceTransactionService, + ) + from stripe._customer_funding_instructions_service import ( + CustomerFundingInstructionsService as CustomerFundingInstructionsService, + ) + from stripe._customer_payment_method_service import ( + CustomerPaymentMethodService as CustomerPaymentMethodService, + ) + from stripe._customer_payment_source_service import ( + CustomerPaymentSourceService as CustomerPaymentSourceService, + ) + from stripe._customer_service import CustomerService as CustomerService + from stripe._customer_session import CustomerSession as CustomerSession + from stripe._customer_session_service import ( + CustomerSessionService as CustomerSessionService, + ) + from stripe._customer_tax_id_service import ( + CustomerTaxIdService as CustomerTaxIdService, + ) + from stripe._deletable_api_resource import ( + DeletableAPIResource as DeletableAPIResource, + ) + from stripe._discount import Discount as Discount + from stripe._dispute import Dispute as Dispute + from stripe._dispute_service import DisputeService as DisputeService + from stripe._entitlements_service import ( + EntitlementsService as EntitlementsService, + ) + from stripe._ephemeral_key import EphemeralKey as EphemeralKey + from stripe._ephemeral_key_service import ( + EphemeralKeyService as EphemeralKeyService, + ) + from stripe._error import ( + APIConnectionError as APIConnectionError, + APIError as APIError, + AuthenticationError as AuthenticationError, + CardError as CardError, + IdempotencyError as IdempotencyError, + InvalidRequestError as InvalidRequestError, + PermissionError as PermissionError, + RateLimitError as RateLimitError, + SignatureVerificationError as SignatureVerificationError, + StripeError as StripeError, + StripeErrorWithParamCode as StripeErrorWithParamCode, + TemporarySessionExpiredError as TemporarySessionExpiredError, + ) + from stripe._error_object import ( + ErrorObject as ErrorObject, + OAuthErrorObject as OAuthErrorObject, + ) + from stripe._event import Event as Event + from stripe._event_service import EventService as EventService + from stripe._exchange_rate import ExchangeRate as ExchangeRate + from stripe._exchange_rate_service import ( + ExchangeRateService as ExchangeRateService, + ) + from stripe._file import File as File + from stripe._file_link import FileLink as FileLink + from stripe._file_link_service import FileLinkService as FileLinkService + from stripe._file_service import FileService as FileService + from stripe._financial_connections_service import ( + FinancialConnectionsService as FinancialConnectionsService, + ) + from stripe._forwarding_service import ( + ForwardingService as ForwardingService, + ) + from stripe._funding_instructions import ( + FundingInstructions as FundingInstructions, + ) + from stripe._http_client import ( + AIOHTTPClient as AIOHTTPClient, + HTTPClient as HTTPClient, + HTTPXClient as HTTPXClient, + PycurlClient as PycurlClient, + RequestsClient as RequestsClient, + UrlFetchClient as UrlFetchClient, + UrllibClient as UrllibClient, + ) + from stripe._identity_service import IdentityService as IdentityService + from stripe._invoice import Invoice as Invoice + from stripe._invoice_item import InvoiceItem as InvoiceItem + from stripe._invoice_item_service import ( + InvoiceItemService as InvoiceItemService, + ) + from stripe._invoice_line_item import InvoiceLineItem as InvoiceLineItem + from stripe._invoice_line_item_service import ( + InvoiceLineItemService as InvoiceLineItemService, + ) + from stripe._invoice_payment import InvoicePayment as InvoicePayment + from stripe._invoice_payment_service import ( + InvoicePaymentService as InvoicePaymentService, + ) + from stripe._invoice_rendering_template import ( + InvoiceRenderingTemplate as InvoiceRenderingTemplate, + ) + from stripe._invoice_rendering_template_service import ( + InvoiceRenderingTemplateService as InvoiceRenderingTemplateService, + ) + from stripe._invoice_service import InvoiceService as InvoiceService + from stripe._issuing_service import IssuingService as IssuingService + from stripe._line_item import LineItem as LineItem + from stripe._list_object import ListObject as ListObject + from stripe._listable_api_resource import ( + ListableAPIResource as ListableAPIResource, + ) + from stripe._login_link import LoginLink as LoginLink + from stripe._mandate import Mandate as Mandate + from stripe._mandate_service import MandateService as MandateService + from stripe._nested_resource_class_methods import ( + nested_resource_class_methods as nested_resource_class_methods, + ) + from stripe._oauth import OAuth as OAuth + from stripe._oauth_service import OAuthService as OAuthService + from stripe._payment_attempt_record import ( + PaymentAttemptRecord as PaymentAttemptRecord, + ) + from stripe._payment_attempt_record_service import ( + PaymentAttemptRecordService as PaymentAttemptRecordService, + ) + from stripe._payment_intent import PaymentIntent as PaymentIntent + from stripe._payment_intent_amount_details_line_item import ( + PaymentIntentAmountDetailsLineItem as PaymentIntentAmountDetailsLineItem, + ) + from stripe._payment_intent_amount_details_line_item_service import ( + PaymentIntentAmountDetailsLineItemService as PaymentIntentAmountDetailsLineItemService, + ) + from stripe._payment_intent_service import ( + PaymentIntentService as PaymentIntentService, + ) + from stripe._payment_link import PaymentLink as PaymentLink + from stripe._payment_link_line_item_service import ( + PaymentLinkLineItemService as PaymentLinkLineItemService, + ) + from stripe._payment_link_service import ( + PaymentLinkService as PaymentLinkService, + ) + from stripe._payment_method import PaymentMethod as PaymentMethod + from stripe._payment_method_configuration import ( + PaymentMethodConfiguration as PaymentMethodConfiguration, + ) + from stripe._payment_method_configuration_service import ( + PaymentMethodConfigurationService as PaymentMethodConfigurationService, + ) + from stripe._payment_method_domain import ( + PaymentMethodDomain as PaymentMethodDomain, + ) + from stripe._payment_method_domain_service import ( + PaymentMethodDomainService as PaymentMethodDomainService, + ) + from stripe._payment_method_service import ( + PaymentMethodService as PaymentMethodService, + ) + from stripe._payment_record import PaymentRecord as PaymentRecord + from stripe._payment_record_service import ( + PaymentRecordService as PaymentRecordService, + ) + from stripe._payout import Payout as Payout + from stripe._payout_service import PayoutService as PayoutService + from stripe._person import Person as Person + from stripe._plan import Plan as Plan + from stripe._plan_service import PlanService as PlanService + from stripe._price import Price as Price + from stripe._price_service import PriceService as PriceService + from stripe._product import Product as Product + from stripe._product_feature import ProductFeature as ProductFeature + from stripe._product_feature_service import ( + ProductFeatureService as ProductFeatureService, + ) + from stripe._product_service import ProductService as ProductService + from stripe._promotion_code import PromotionCode as PromotionCode + from stripe._promotion_code_service import ( + PromotionCodeService as PromotionCodeService, + ) + from stripe._quote import Quote as Quote + from stripe._quote_computed_upfront_line_items_service import ( + QuoteComputedUpfrontLineItemsService as QuoteComputedUpfrontLineItemsService, + ) + from stripe._quote_line_item_service import ( + QuoteLineItemService as QuoteLineItemService, + ) + from stripe._quote_service import QuoteService as QuoteService + from stripe._radar_service import RadarService as RadarService + from stripe._refund import Refund as Refund + from stripe._refund_service import RefundService as RefundService + from stripe._reporting_service import ReportingService as ReportingService + from stripe._request_options import RequestOptions as RequestOptions + from stripe._requestor_options import RequestorOptions as RequestorOptions + from stripe._reserve_transaction import ( + ReserveTransaction as ReserveTransaction, + ) + from stripe._reversal import Reversal as Reversal + from stripe._review import Review as Review + from stripe._review_service import ReviewService as ReviewService + from stripe._search_result_object import ( + SearchResultObject as SearchResultObject, + ) + from stripe._searchable_api_resource import ( + SearchableAPIResource as SearchableAPIResource, + ) + from stripe._setup_attempt import SetupAttempt as SetupAttempt + from stripe._setup_attempt_service import ( + SetupAttemptService as SetupAttemptService, + ) + from stripe._setup_intent import SetupIntent as SetupIntent + from stripe._setup_intent_service import ( + SetupIntentService as SetupIntentService, + ) + from stripe._shipping_rate import ShippingRate as ShippingRate + from stripe._shipping_rate_service import ( + ShippingRateService as ShippingRateService, + ) + from stripe._sigma_service import SigmaService as SigmaService + from stripe._singleton_api_resource import ( + SingletonAPIResource as SingletonAPIResource, + ) + from stripe._source import Source as Source + from stripe._source_mandate_notification import ( + SourceMandateNotification as SourceMandateNotification, + ) + from stripe._source_service import SourceService as SourceService + from stripe._source_transaction import ( + SourceTransaction as SourceTransaction, + ) + from stripe._source_transaction_service import ( + SourceTransactionService as SourceTransactionService, + ) + from stripe._stripe_client import StripeClient as StripeClient + from stripe._stripe_context import StripeContext as StripeContext + from stripe._stripe_object import StripeObject as StripeObject + from stripe._stripe_response import ( + StripeResponse as StripeResponse, + StripeResponseBase as StripeResponseBase, + StripeStreamResponse as StripeStreamResponse, + StripeStreamResponseAsync as StripeStreamResponseAsync, + ) + from stripe._subscription import Subscription as Subscription + from stripe._subscription_item import SubscriptionItem as SubscriptionItem + from stripe._subscription_item_service import ( + SubscriptionItemService as SubscriptionItemService, + ) + from stripe._subscription_schedule import ( + SubscriptionSchedule as SubscriptionSchedule, + ) + from stripe._subscription_schedule_service import ( + SubscriptionScheduleService as SubscriptionScheduleService, + ) + from stripe._subscription_service import ( + SubscriptionService as SubscriptionService, + ) + from stripe._tax_code import TaxCode as TaxCode + from stripe._tax_code_service import TaxCodeService as TaxCodeService + from stripe._tax_deducted_at_source import ( + TaxDeductedAtSource as TaxDeductedAtSource, + ) + from stripe._tax_id import TaxId as TaxId + from stripe._tax_id_service import TaxIdService as TaxIdService + from stripe._tax_rate import TaxRate as TaxRate + from stripe._tax_rate_service import TaxRateService as TaxRateService + from stripe._tax_service import TaxService as TaxService + from stripe._terminal_service import TerminalService as TerminalService + from stripe._test_helpers import ( + APIResourceTestHelpers as APIResourceTestHelpers, + ) + from stripe._test_helpers_service import ( + TestHelpersService as TestHelpersService, + ) + from stripe._token import Token as Token + from stripe._token_service import TokenService as TokenService + from stripe._topup import Topup as Topup + from stripe._topup_service import TopupService as TopupService + from stripe._transfer import Transfer as Transfer + from stripe._transfer_reversal_service import ( + TransferReversalService as TransferReversalService, + ) + from stripe._transfer_service import TransferService as TransferService + from stripe._treasury_service import TreasuryService as TreasuryService + from stripe._updateable_api_resource import ( + UpdateableAPIResource as UpdateableAPIResource, + ) + from stripe._util import ( + convert_to_stripe_object as convert_to_stripe_object, + ) + from stripe._v1_services import V1Services as V1Services + from stripe._v2_services import V2Services as V2Services + from stripe._verify_mixin import VerifyMixin as VerifyMixin + from stripe._webhook import ( + Webhook as Webhook, + WebhookSignature as WebhookSignature, + ) + from stripe._webhook_endpoint import WebhookEndpoint as WebhookEndpoint + from stripe._webhook_endpoint_service import ( + WebhookEndpointService as WebhookEndpointService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "apps": ("stripe.apps", True), + "billing": ("stripe.billing", True), + "billing_portal": ("stripe.billing_portal", True), + "checkout": ("stripe.checkout", True), + "climate": ("stripe.climate", True), + "entitlements": ("stripe.entitlements", True), + "events": ("stripe.events", True), + "financial_connections": ("stripe.financial_connections", True), + "forwarding": ("stripe.forwarding", True), + "identity": ("stripe.identity", True), + "issuing": ("stripe.issuing", True), + "params": ("stripe.params", True), + "radar": ("stripe.radar", True), + "reporting": ("stripe.reporting", True), + "sigma": ("stripe.sigma", True), + "tax": ("stripe.tax", True), + "terminal": ("stripe.terminal", True), + "test_helpers": ("stripe.test_helpers", True), + "treasury": ("stripe.treasury", True), + "v2": ("stripe.v2", True), + "Account": ("stripe._account", False), + "AccountCapabilityService": ("stripe._account_capability_service", False), + "AccountExternalAccountService": ( + "stripe._account_external_account_service", + False, + ), + "AccountLink": ("stripe._account_link", False), + "AccountLinkService": ("stripe._account_link_service", False), + "AccountLoginLinkService": ("stripe._account_login_link_service", False), + "AccountPersonService": ("stripe._account_person_service", False), + "AccountService": ("stripe._account_service", False), + "AccountSession": ("stripe._account_session", False), + "AccountSessionService": ("stripe._account_session_service", False), + "ApiMode": ("stripe._api_mode", False), + "APIResource": ("stripe._api_resource", False), + "ApplePayDomain": ("stripe._apple_pay_domain", False), + "ApplePayDomainService": ("stripe._apple_pay_domain_service", False), + "Application": ("stripe._application", False), + "ApplicationFee": ("stripe._application_fee", False), + "ApplicationFeeRefund": ("stripe._application_fee_refund", False), + "ApplicationFeeRefundService": ( + "stripe._application_fee_refund_service", + False, + ), + "ApplicationFeeService": ("stripe._application_fee_service", False), + "AppsService": ("stripe._apps_service", False), + "Balance": ("stripe._balance", False), + "BalanceService": ("stripe._balance_service", False), + "BalanceSettings": ("stripe._balance_settings", False), + "BalanceSettingsService": ("stripe._balance_settings_service", False), + "BalanceTransaction": ("stripe._balance_transaction", False), + "BalanceTransactionService": ( + "stripe._balance_transaction_service", + False, + ), + "BankAccount": ("stripe._bank_account", False), + "BaseAddress": ("stripe._base_address", False), + "BillingPortalService": ("stripe._billing_portal_service", False), + "BillingService": ("stripe._billing_service", False), + "Capability": ("stripe._capability", False), + "Card": ("stripe._card", False), + "CashBalance": ("stripe._cash_balance", False), + "Charge": ("stripe._charge", False), + "ChargeService": ("stripe._charge_service", False), + "CheckoutService": ("stripe._checkout_service", False), + "ClimateService": ("stripe._climate_service", False), + "ConfirmationToken": ("stripe._confirmation_token", False), + "ConfirmationTokenService": ("stripe._confirmation_token_service", False), + "ConnectCollectionTransfer": ( + "stripe._connect_collection_transfer", + False, + ), + "CountrySpec": ("stripe._country_spec", False), + "CountrySpecService": ("stripe._country_spec_service", False), + "Coupon": ("stripe._coupon", False), + "CouponService": ("stripe._coupon_service", False), + "CreateableAPIResource": ("stripe._createable_api_resource", False), + "CreditNote": ("stripe._credit_note", False), + "CreditNoteLineItem": ("stripe._credit_note_line_item", False), + "CreditNoteLineItemService": ( + "stripe._credit_note_line_item_service", + False, + ), + "CreditNotePreviewLinesService": ( + "stripe._credit_note_preview_lines_service", + False, + ), + "CreditNoteService": ("stripe._credit_note_service", False), + "custom_method": ("stripe._custom_method", False), + "Customer": ("stripe._customer", False), + "CustomerBalanceTransaction": ( + "stripe._customer_balance_transaction", + False, + ), + "CustomerBalanceTransactionService": ( + "stripe._customer_balance_transaction_service", + False, + ), + "CustomerCashBalanceService": ( + "stripe._customer_cash_balance_service", + False, + ), + "CustomerCashBalanceTransaction": ( + "stripe._customer_cash_balance_transaction", + False, + ), + "CustomerCashBalanceTransactionService": ( + "stripe._customer_cash_balance_transaction_service", + False, + ), + "CustomerFundingInstructionsService": ( + "stripe._customer_funding_instructions_service", + False, + ), + "CustomerPaymentMethodService": ( + "stripe._customer_payment_method_service", + False, + ), + "CustomerPaymentSourceService": ( + "stripe._customer_payment_source_service", + False, + ), + "CustomerService": ("stripe._customer_service", False), + "CustomerSession": ("stripe._customer_session", False), + "CustomerSessionService": ("stripe._customer_session_service", False), + "CustomerTaxIdService": ("stripe._customer_tax_id_service", False), + "DeletableAPIResource": ("stripe._deletable_api_resource", False), + "Discount": ("stripe._discount", False), + "Dispute": ("stripe._dispute", False), + "DisputeService": ("stripe._dispute_service", False), + "EntitlementsService": ("stripe._entitlements_service", False), + "EphemeralKey": ("stripe._ephemeral_key", False), + "EphemeralKeyService": ("stripe._ephemeral_key_service", False), + "APIConnectionError": ("stripe._error", False), + "APIError": ("stripe._error", False), + "AuthenticationError": ("stripe._error", False), + "CardError": ("stripe._error", False), + "IdempotencyError": ("stripe._error", False), + "InvalidRequestError": ("stripe._error", False), + "PermissionError": ("stripe._error", False), + "RateLimitError": ("stripe._error", False), + "SignatureVerificationError": ("stripe._error", False), + "StripeError": ("stripe._error", False), + "StripeErrorWithParamCode": ("stripe._error", False), + "TemporarySessionExpiredError": ("stripe._error", False), + "ErrorObject": ("stripe._error_object", False), + "OAuthErrorObject": ("stripe._error_object", False), + "Event": ("stripe._event", False), + "EventService": ("stripe._event_service", False), + "ExchangeRate": ("stripe._exchange_rate", False), + "ExchangeRateService": ("stripe._exchange_rate_service", False), + "File": ("stripe._file", False), + "FileLink": ("stripe._file_link", False), + "FileLinkService": ("stripe._file_link_service", False), + "FileService": ("stripe._file_service", False), + "FinancialConnectionsService": ( + "stripe._financial_connections_service", + False, + ), + "ForwardingService": ("stripe._forwarding_service", False), + "FundingInstructions": ("stripe._funding_instructions", False), + "AIOHTTPClient": ("stripe._http_client", False), + "HTTPClient": ("stripe._http_client", False), + "HTTPXClient": ("stripe._http_client", False), + "PycurlClient": ("stripe._http_client", False), + "RequestsClient": ("stripe._http_client", False), + "UrlFetchClient": ("stripe._http_client", False), + "UrllibClient": ("stripe._http_client", False), + "IdentityService": ("stripe._identity_service", False), + "Invoice": ("stripe._invoice", False), + "InvoiceItem": ("stripe._invoice_item", False), + "InvoiceItemService": ("stripe._invoice_item_service", False), + "InvoiceLineItem": ("stripe._invoice_line_item", False), + "InvoiceLineItemService": ("stripe._invoice_line_item_service", False), + "InvoicePayment": ("stripe._invoice_payment", False), + "InvoicePaymentService": ("stripe._invoice_payment_service", False), + "InvoiceRenderingTemplate": ("stripe._invoice_rendering_template", False), + "InvoiceRenderingTemplateService": ( + "stripe._invoice_rendering_template_service", + False, + ), + "InvoiceService": ("stripe._invoice_service", False), + "IssuingService": ("stripe._issuing_service", False), + "LineItem": ("stripe._line_item", False), + "ListObject": ("stripe._list_object", False), + "ListableAPIResource": ("stripe._listable_api_resource", False), + "LoginLink": ("stripe._login_link", False), + "Mandate": ("stripe._mandate", False), + "MandateService": ("stripe._mandate_service", False), + "nested_resource_class_methods": ( + "stripe._nested_resource_class_methods", + False, + ), + "OAuth": ("stripe._oauth", False), + "OAuthService": ("stripe._oauth_service", False), + "PaymentAttemptRecord": ("stripe._payment_attempt_record", False), + "PaymentAttemptRecordService": ( + "stripe._payment_attempt_record_service", + False, + ), + "PaymentIntent": ("stripe._payment_intent", False), + "PaymentIntentAmountDetailsLineItem": ( + "stripe._payment_intent_amount_details_line_item", + False, + ), + "PaymentIntentAmountDetailsLineItemService": ( + "stripe._payment_intent_amount_details_line_item_service", + False, + ), + "PaymentIntentService": ("stripe._payment_intent_service", False), + "PaymentLink": ("stripe._payment_link", False), + "PaymentLinkLineItemService": ( + "stripe._payment_link_line_item_service", + False, + ), + "PaymentLinkService": ("stripe._payment_link_service", False), + "PaymentMethod": ("stripe._payment_method", False), + "PaymentMethodConfiguration": ( + "stripe._payment_method_configuration", + False, + ), + "PaymentMethodConfigurationService": ( + "stripe._payment_method_configuration_service", + False, + ), + "PaymentMethodDomain": ("stripe._payment_method_domain", False), + "PaymentMethodDomainService": ( + "stripe._payment_method_domain_service", + False, + ), + "PaymentMethodService": ("stripe._payment_method_service", False), + "PaymentRecord": ("stripe._payment_record", False), + "PaymentRecordService": ("stripe._payment_record_service", False), + "Payout": ("stripe._payout", False), + "PayoutService": ("stripe._payout_service", False), + "Person": ("stripe._person", False), + "Plan": ("stripe._plan", False), + "PlanService": ("stripe._plan_service", False), + "Price": ("stripe._price", False), + "PriceService": ("stripe._price_service", False), + "Product": ("stripe._product", False), + "ProductFeature": ("stripe._product_feature", False), + "ProductFeatureService": ("stripe._product_feature_service", False), + "ProductService": ("stripe._product_service", False), + "PromotionCode": ("stripe._promotion_code", False), + "PromotionCodeService": ("stripe._promotion_code_service", False), + "Quote": ("stripe._quote", False), + "QuoteComputedUpfrontLineItemsService": ( + "stripe._quote_computed_upfront_line_items_service", + False, + ), + "QuoteLineItemService": ("stripe._quote_line_item_service", False), + "QuoteService": ("stripe._quote_service", False), + "RadarService": ("stripe._radar_service", False), + "Refund": ("stripe._refund", False), + "RefundService": ("stripe._refund_service", False), + "ReportingService": ("stripe._reporting_service", False), + "RequestOptions": ("stripe._request_options", False), + "RequestorOptions": ("stripe._requestor_options", False), + "ReserveTransaction": ("stripe._reserve_transaction", False), + "Reversal": ("stripe._reversal", False), + "Review": ("stripe._review", False), + "ReviewService": ("stripe._review_service", False), + "SearchResultObject": ("stripe._search_result_object", False), + "SearchableAPIResource": ("stripe._searchable_api_resource", False), + "SetupAttempt": ("stripe._setup_attempt", False), + "SetupAttemptService": ("stripe._setup_attempt_service", False), + "SetupIntent": ("stripe._setup_intent", False), + "SetupIntentService": ("stripe._setup_intent_service", False), + "ShippingRate": ("stripe._shipping_rate", False), + "ShippingRateService": ("stripe._shipping_rate_service", False), + "SigmaService": ("stripe._sigma_service", False), + "SingletonAPIResource": ("stripe._singleton_api_resource", False), + "Source": ("stripe._source", False), + "SourceMandateNotification": ( + "stripe._source_mandate_notification", + False, + ), + "SourceService": ("stripe._source_service", False), + "SourceTransaction": ("stripe._source_transaction", False), + "SourceTransactionService": ("stripe._source_transaction_service", False), + "StripeClient": ("stripe._stripe_client", False), + "StripeContext": ("stripe._stripe_context", False), + "StripeObject": ("stripe._stripe_object", False), + "StripeResponse": ("stripe._stripe_response", False), + "StripeResponseBase": ("stripe._stripe_response", False), + "StripeStreamResponse": ("stripe._stripe_response", False), + "StripeStreamResponseAsync": ("stripe._stripe_response", False), + "Subscription": ("stripe._subscription", False), + "SubscriptionItem": ("stripe._subscription_item", False), + "SubscriptionItemService": ("stripe._subscription_item_service", False), + "SubscriptionSchedule": ("stripe._subscription_schedule", False), + "SubscriptionScheduleService": ( + "stripe._subscription_schedule_service", + False, + ), + "SubscriptionService": ("stripe._subscription_service", False), + "TaxCode": ("stripe._tax_code", False), + "TaxCodeService": ("stripe._tax_code_service", False), + "TaxDeductedAtSource": ("stripe._tax_deducted_at_source", False), + "TaxId": ("stripe._tax_id", False), + "TaxIdService": ("stripe._tax_id_service", False), + "TaxRate": ("stripe._tax_rate", False), + "TaxRateService": ("stripe._tax_rate_service", False), + "TaxService": ("stripe._tax_service", False), + "TerminalService": ("stripe._terminal_service", False), + "APIResourceTestHelpers": ("stripe._test_helpers", False), + "TestHelpersService": ("stripe._test_helpers_service", False), + "Token": ("stripe._token", False), + "TokenService": ("stripe._token_service", False), + "Topup": ("stripe._topup", False), + "TopupService": ("stripe._topup_service", False), + "Transfer": ("stripe._transfer", False), + "TransferReversalService": ("stripe._transfer_reversal_service", False), + "TransferService": ("stripe._transfer_service", False), + "TreasuryService": ("stripe._treasury_service", False), + "UpdateableAPIResource": ("stripe._updateable_api_resource", False), + "convert_to_stripe_object": ("stripe._util", False), + "V1Services": ("stripe._v1_services", False), + "V2Services": ("stripe._v2_services", False), + "VerifyMixin": ("stripe._verify_mixin", False), + "Webhook": ("stripe._webhook", False), + "WebhookSignature": ("stripe._webhook", False), + "WebhookEndpoint": ("stripe._webhook_endpoint", False), + "WebhookEndpointService": ("stripe._webhook_endpoint_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() + +# The end of the section generated from our OpenAPI spec diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..16b8aef9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account.cpython-312.pyc new file mode 100644 index 00000000..9568ba9a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_capability_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_capability_service.cpython-312.pyc new file mode 100644 index 00000000..f9a05dfa Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_capability_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_external_account_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_external_account_service.cpython-312.pyc new file mode 100644 index 00000000..647245fd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_external_account_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_link.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_link.cpython-312.pyc new file mode 100644 index 00000000..c96e35e8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_link.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_link_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_link_service.cpython-312.pyc new file mode 100644 index 00000000..6d50944d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_link_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_login_link_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_login_link_service.cpython-312.pyc new file mode 100644 index 00000000..f23ca33c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_login_link_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_person_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_person_service.cpython-312.pyc new file mode 100644 index 00000000..a5163c13 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_person_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_service.cpython-312.pyc new file mode 100644 index 00000000..4dcdf91d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_session.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_session.cpython-312.pyc new file mode 100644 index 00000000..fbe71055 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_session.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_session_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_session_service.cpython-312.pyc new file mode 100644 index 00000000..eac8ea49 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_account_session_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_any_iterator.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_any_iterator.cpython-312.pyc new file mode 100644 index 00000000..25467366 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_any_iterator.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_mode.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_mode.cpython-312.pyc new file mode 100644 index 00000000..37cadc68 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_mode.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_requestor.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_requestor.cpython-312.pyc new file mode 100644 index 00000000..f187f66e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_requestor.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_resource.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_resource.cpython-312.pyc new file mode 100644 index 00000000..8d91aa40 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_resource.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_version.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_version.cpython-312.pyc new file mode 100644 index 00000000..48a69fbe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_api_version.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_app_info.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_app_info.cpython-312.pyc new file mode 100644 index 00000000..88e0db2e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_app_info.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apple_pay_domain.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apple_pay_domain.cpython-312.pyc new file mode 100644 index 00000000..86ca47d3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apple_pay_domain.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apple_pay_domain_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apple_pay_domain_service.cpython-312.pyc new file mode 100644 index 00000000..969c6ab2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apple_pay_domain_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application.cpython-312.pyc new file mode 100644 index 00000000..02d2df05 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee.cpython-312.pyc new file mode 100644 index 00000000..1a7ee9e1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_refund.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_refund.cpython-312.pyc new file mode 100644 index 00000000..deeb619f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_refund.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_refund_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_refund_service.cpython-312.pyc new file mode 100644 index 00000000..6a2c01cf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_refund_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_service.cpython-312.pyc new file mode 100644 index 00000000..e556e580 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_application_fee_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apps_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apps_service.cpython-312.pyc new file mode 100644 index 00000000..63679641 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_apps_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance.cpython-312.pyc new file mode 100644 index 00000000..2b52605b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_service.cpython-312.pyc new file mode 100644 index 00000000..86928a15 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_settings.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_settings.cpython-312.pyc new file mode 100644 index 00000000..3806cb7e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_settings.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_settings_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_settings_service.cpython-312.pyc new file mode 100644 index 00000000..034ed164 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_settings_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_transaction.cpython-312.pyc new file mode 100644 index 00000000..0542d59d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..d0c602b9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_balance_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_bank_account.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_bank_account.cpython-312.pyc new file mode 100644 index 00000000..80e2cb2c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_bank_account.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_base_address.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_base_address.cpython-312.pyc new file mode 100644 index 00000000..7e1b1123 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_base_address.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_billing_portal_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_billing_portal_service.cpython-312.pyc new file mode 100644 index 00000000..35cad198 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_billing_portal_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_billing_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_billing_service.cpython-312.pyc new file mode 100644 index 00000000..51049fe4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_billing_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_capability.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_capability.cpython-312.pyc new file mode 100644 index 00000000..d71eb397 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_capability.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_card.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_card.cpython-312.pyc new file mode 100644 index 00000000..9ab0eb84 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_card.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_cash_balance.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_cash_balance.cpython-312.pyc new file mode 100644 index 00000000..9a154fb3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_cash_balance.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_charge.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_charge.cpython-312.pyc new file mode 100644 index 00000000..ff29e451 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_charge.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_charge_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_charge_service.cpython-312.pyc new file mode 100644 index 00000000..6618e17e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_charge_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_checkout_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_checkout_service.cpython-312.pyc new file mode 100644 index 00000000..72cc37ec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_checkout_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_client_options.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_client_options.cpython-312.pyc new file mode 100644 index 00000000..1b4eea98 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_client_options.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_climate_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_climate_service.cpython-312.pyc new file mode 100644 index 00000000..462f6f43 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_climate_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_confirmation_token.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_confirmation_token.cpython-312.pyc new file mode 100644 index 00000000..e0b35a76 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_confirmation_token.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_confirmation_token_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_confirmation_token_service.cpython-312.pyc new file mode 100644 index 00000000..ef42db0c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_confirmation_token_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_connect_collection_transfer.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_connect_collection_transfer.cpython-312.pyc new file mode 100644 index 00000000..e3fc82b4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_connect_collection_transfer.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_country_spec.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_country_spec.cpython-312.pyc new file mode 100644 index 00000000..1eb817f9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_country_spec.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_country_spec_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_country_spec_service.cpython-312.pyc new file mode 100644 index 00000000..7db8481b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_country_spec_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_coupon.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_coupon.cpython-312.pyc new file mode 100644 index 00000000..7a9989f0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_coupon.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_coupon_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_coupon_service.cpython-312.pyc new file mode 100644 index 00000000..a08222ab Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_coupon_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_createable_api_resource.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_createable_api_resource.cpython-312.pyc new file mode 100644 index 00000000..d6ca6f99 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_createable_api_resource.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note.cpython-312.pyc new file mode 100644 index 00000000..fe8934a0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_line_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_line_item.cpython-312.pyc new file mode 100644 index 00000000..97a53b0c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_line_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..2d16fe34 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_preview_lines_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_preview_lines_service.cpython-312.pyc new file mode 100644 index 00000000..08511db0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_preview_lines_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_service.cpython-312.pyc new file mode 100644 index 00000000..b708396e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_credit_note_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_custom_method.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_custom_method.cpython-312.pyc new file mode 100644 index 00000000..382e73d5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_custom_method.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer.cpython-312.pyc new file mode 100644 index 00000000..f5bccf80 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_balance_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_balance_transaction.cpython-312.pyc new file mode 100644 index 00000000..b86b0a3f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_balance_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_balance_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_balance_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..8e6f8b30 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_balance_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_service.cpython-312.pyc new file mode 100644 index 00000000..2a6fc5de Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_transaction.cpython-312.pyc new file mode 100644 index 00000000..9d00fdef Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..00fedf2d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_cash_balance_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_funding_instructions_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_funding_instructions_service.cpython-312.pyc new file mode 100644 index 00000000..a148c9e5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_funding_instructions_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_payment_method_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_payment_method_service.cpython-312.pyc new file mode 100644 index 00000000..fe6ae2b5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_payment_method_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_payment_source_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_payment_source_service.cpython-312.pyc new file mode 100644 index 00000000..372dc1d9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_payment_source_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_service.cpython-312.pyc new file mode 100644 index 00000000..4eee8527 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_session.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_session.cpython-312.pyc new file mode 100644 index 00000000..7972fc45 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_session.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_session_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_session_service.cpython-312.pyc new file mode 100644 index 00000000..7b172f65 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_session_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_tax_id_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_tax_id_service.cpython-312.pyc new file mode 100644 index 00000000..3985cdcf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_customer_tax_id_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_deletable_api_resource.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_deletable_api_resource.cpython-312.pyc new file mode 100644 index 00000000..6f4ac624 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_deletable_api_resource.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_discount.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_discount.cpython-312.pyc new file mode 100644 index 00000000..66d0c71c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_discount.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_dispute.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_dispute.cpython-312.pyc new file mode 100644 index 00000000..7ec4114a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_dispute.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_dispute_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_dispute_service.cpython-312.pyc new file mode 100644 index 00000000..ae32462f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_dispute_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_encode.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_encode.cpython-312.pyc new file mode 100644 index 00000000..d27446e7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_encode.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_entitlements_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_entitlements_service.cpython-312.pyc new file mode 100644 index 00000000..54c42680 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_entitlements_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_ephemeral_key.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_ephemeral_key.cpython-312.pyc new file mode 100644 index 00000000..53bbb32f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_ephemeral_key.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_ephemeral_key_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_ephemeral_key_service.cpython-312.pyc new file mode 100644 index 00000000..1172b506 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_ephemeral_key_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_error.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_error.cpython-312.pyc new file mode 100644 index 00000000..b77cf486 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_error.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_error_object.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_error_object.cpython-312.pyc new file mode 100644 index 00000000..6cff0cea Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_error_object.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_event.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_event.cpython-312.pyc new file mode 100644 index 00000000..3f902b44 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_event.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_event_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_event_service.cpython-312.pyc new file mode 100644 index 00000000..77d1b48b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_event_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_exchange_rate.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_exchange_rate.cpython-312.pyc new file mode 100644 index 00000000..f60c424c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_exchange_rate.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_exchange_rate_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_exchange_rate_service.cpython-312.pyc new file mode 100644 index 00000000..b5438300 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_exchange_rate_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_expandable_field.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_expandable_field.cpython-312.pyc new file mode 100644 index 00000000..50f1a277 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_expandable_field.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file.cpython-312.pyc new file mode 100644 index 00000000..7c5cd2ca Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_link.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_link.cpython-312.pyc new file mode 100644 index 00000000..6d986087 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_link.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_link_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_link_service.cpython-312.pyc new file mode 100644 index 00000000..04193bfe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_link_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_service.cpython-312.pyc new file mode 100644 index 00000000..9f6bd024 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_file_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_financial_connections_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_financial_connections_service.cpython-312.pyc new file mode 100644 index 00000000..493d7950 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_financial_connections_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_forwarding_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_forwarding_service.cpython-312.pyc new file mode 100644 index 00000000..dc1e4dac Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_forwarding_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_funding_instructions.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_funding_instructions.cpython-312.pyc new file mode 100644 index 00000000..d3aa163a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_funding_instructions.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_http_client.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_http_client.cpython-312.pyc new file mode 100644 index 00000000..c47ed9ff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_http_client.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_identity_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_identity_service.cpython-312.pyc new file mode 100644 index 00000000..21e3fbb8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_identity_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice.cpython-312.pyc new file mode 100644 index 00000000..6047b9cf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_item.cpython-312.pyc new file mode 100644 index 00000000..f41eca88 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_item_service.cpython-312.pyc new file mode 100644 index 00000000..f6d952fb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_line_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_line_item.cpython-312.pyc new file mode 100644 index 00000000..8c3cb689 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_line_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..eb554c85 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_payment.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_payment.cpython-312.pyc new file mode 100644 index 00000000..2175e4d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_payment.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_payment_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_payment_service.cpython-312.pyc new file mode 100644 index 00000000..8c429e69 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_payment_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_rendering_template.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_rendering_template.cpython-312.pyc new file mode 100644 index 00000000..c9613b9d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_rendering_template.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_rendering_template_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_rendering_template_service.cpython-312.pyc new file mode 100644 index 00000000..eb568475 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_rendering_template_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_service.cpython-312.pyc new file mode 100644 index 00000000..917868fc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_invoice_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_issuing_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_issuing_service.cpython-312.pyc new file mode 100644 index 00000000..e039ac1f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_issuing_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_line_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_line_item.cpython-312.pyc new file mode 100644 index 00000000..162a9f63 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_line_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_list_object.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_list_object.cpython-312.pyc new file mode 100644 index 00000000..a152573b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_list_object.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_listable_api_resource.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_listable_api_resource.cpython-312.pyc new file mode 100644 index 00000000..df511f64 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_listable_api_resource.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_login_link.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_login_link.cpython-312.pyc new file mode 100644 index 00000000..e918b899 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_login_link.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_mandate.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_mandate.cpython-312.pyc new file mode 100644 index 00000000..7e6d0377 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_mandate.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_mandate_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_mandate_service.cpython-312.pyc new file mode 100644 index 00000000..3589768a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_mandate_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_multipart_data_generator.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_multipart_data_generator.cpython-312.pyc new file mode 100644 index 00000000..fb75de0c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_multipart_data_generator.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_nested_resource_class_methods.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_nested_resource_class_methods.cpython-312.pyc new file mode 100644 index 00000000..1b83a1f5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_nested_resource_class_methods.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_oauth.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_oauth.cpython-312.pyc new file mode 100644 index 00000000..10d7fdda Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_oauth.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_oauth_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_oauth_service.cpython-312.pyc new file mode 100644 index 00000000..4cc33278 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_oauth_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_object_classes.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_object_classes.cpython-312.pyc new file mode 100644 index 00000000..3e64502c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_object_classes.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_attempt_record.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_attempt_record.cpython-312.pyc new file mode 100644 index 00000000..e0855783 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_attempt_record.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_attempt_record_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_attempt_record_service.cpython-312.pyc new file mode 100644 index 00000000..86920397 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_attempt_record_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent.cpython-312.pyc new file mode 100644 index 00000000..8d1997b2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_amount_details_line_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_amount_details_line_item.cpython-312.pyc new file mode 100644 index 00000000..78dd9976 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_amount_details_line_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_amount_details_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_amount_details_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..e1a0d10c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_amount_details_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_service.cpython-312.pyc new file mode 100644 index 00000000..cb1761d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_intent_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link.cpython-312.pyc new file mode 100644 index 00000000..c2fbb6d7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..357ce1e4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link_service.cpython-312.pyc new file mode 100644 index 00000000..0b058fef Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_link_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method.cpython-312.pyc new file mode 100644 index 00000000..d4432f65 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_configuration.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_configuration.cpython-312.pyc new file mode 100644 index 00000000..8f6e58ad Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_configuration.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_configuration_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_configuration_service.cpython-312.pyc new file mode 100644 index 00000000..6e4c73c2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_configuration_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_domain.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_domain.cpython-312.pyc new file mode 100644 index 00000000..28c1966c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_domain.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_domain_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_domain_service.cpython-312.pyc new file mode 100644 index 00000000..766af1ac Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_domain_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_service.cpython-312.pyc new file mode 100644 index 00000000..11d3583b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_method_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_record.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_record.cpython-312.pyc new file mode 100644 index 00000000..33509e51 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_record.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_record_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_record_service.cpython-312.pyc new file mode 100644 index 00000000..890171ea Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payment_record_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payout.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payout.cpython-312.pyc new file mode 100644 index 00000000..2bad7e0d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payout.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payout_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payout_service.cpython-312.pyc new file mode 100644 index 00000000..a844be5b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_payout_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_person.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_person.cpython-312.pyc new file mode 100644 index 00000000..28a67be5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_person.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_plan.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_plan.cpython-312.pyc new file mode 100644 index 00000000..d9bc97e7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_plan.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_plan_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_plan_service.cpython-312.pyc new file mode 100644 index 00000000..2b4e2174 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_plan_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_price.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_price.cpython-312.pyc new file mode 100644 index 00000000..0868bab6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_price.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_price_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_price_service.cpython-312.pyc new file mode 100644 index 00000000..05b79a89 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_price_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product.cpython-312.pyc new file mode 100644 index 00000000..287c6d46 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_feature.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_feature.cpython-312.pyc new file mode 100644 index 00000000..1392423d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_feature.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_feature_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_feature_service.cpython-312.pyc new file mode 100644 index 00000000..3aed966a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_feature_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_service.cpython-312.pyc new file mode 100644 index 00000000..ee384cea Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_product_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_promotion_code.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_promotion_code.cpython-312.pyc new file mode 100644 index 00000000..5ad47213 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_promotion_code.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_promotion_code_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_promotion_code_service.cpython-312.pyc new file mode 100644 index 00000000..13f0e4d2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_promotion_code_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote.cpython-312.pyc new file mode 100644 index 00000000..4c08adf8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_computed_upfront_line_items_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_computed_upfront_line_items_service.cpython-312.pyc new file mode 100644 index 00000000..1f7780d2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_computed_upfront_line_items_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..5e367cfe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_service.cpython-312.pyc new file mode 100644 index 00000000..2e5b6ffc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_quote_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_radar_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_radar_service.cpython-312.pyc new file mode 100644 index 00000000..921a865e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_radar_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_refund.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_refund.cpython-312.pyc new file mode 100644 index 00000000..9e7983b8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_refund.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_refund_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_refund_service.cpython-312.pyc new file mode 100644 index 00000000..42973355 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_refund_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reporting_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reporting_service.cpython-312.pyc new file mode 100644 index 00000000..f79e860b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reporting_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_request_metrics.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_request_metrics.cpython-312.pyc new file mode 100644 index 00000000..40eae994 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_request_metrics.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_request_options.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_request_options.cpython-312.pyc new file mode 100644 index 00000000..f6ce0807 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_request_options.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_requestor_options.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_requestor_options.cpython-312.pyc new file mode 100644 index 00000000..a02a7998 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_requestor_options.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reserve_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reserve_transaction.cpython-312.pyc new file mode 100644 index 00000000..c73cee9d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reserve_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reversal.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reversal.cpython-312.pyc new file mode 100644 index 00000000..107bcd2b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_reversal.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_review.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_review.cpython-312.pyc new file mode 100644 index 00000000..43e10990 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_review.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_review_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_review_service.cpython-312.pyc new file mode 100644 index 00000000..7022f29d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_review_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_search_result_object.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_search_result_object.cpython-312.pyc new file mode 100644 index 00000000..8be8fb73 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_search_result_object.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_searchable_api_resource.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_searchable_api_resource.cpython-312.pyc new file mode 100644 index 00000000..dd72abb1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_searchable_api_resource.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_attempt.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_attempt.cpython-312.pyc new file mode 100644 index 00000000..43be44b0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_attempt.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_attempt_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_attempt_service.cpython-312.pyc new file mode 100644 index 00000000..89316822 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_attempt_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_intent.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_intent.cpython-312.pyc new file mode 100644 index 00000000..a2eae812 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_intent.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_intent_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_intent_service.cpython-312.pyc new file mode 100644 index 00000000..1055b94d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_setup_intent_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_shipping_rate.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_shipping_rate.cpython-312.pyc new file mode 100644 index 00000000..f64fee7c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_shipping_rate.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_shipping_rate_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_shipping_rate_service.cpython-312.pyc new file mode 100644 index 00000000..d74ed845 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_shipping_rate_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_sigma_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_sigma_service.cpython-312.pyc new file mode 100644 index 00000000..a5977943 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_sigma_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_singleton_api_resource.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_singleton_api_resource.cpython-312.pyc new file mode 100644 index 00000000..46a0b0c9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_singleton_api_resource.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source.cpython-312.pyc new file mode 100644 index 00000000..d3044b6c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_mandate_notification.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_mandate_notification.cpython-312.pyc new file mode 100644 index 00000000..4d3a5e3a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_mandate_notification.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_service.cpython-312.pyc new file mode 100644 index 00000000..d63d7a6a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_transaction.cpython-312.pyc new file mode 100644 index 00000000..370afe9a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..654f60f6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_source_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_client.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_client.cpython-312.pyc new file mode 100644 index 00000000..5b3099e4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_client.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_context.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_context.cpython-312.pyc new file mode 100644 index 00000000..de3fa3d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_context.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_object.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_object.cpython-312.pyc new file mode 100644 index 00000000..c89124e5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_object.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_response.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_response.cpython-312.pyc new file mode 100644 index 00000000..c53482b2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_response.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_service.cpython-312.pyc new file mode 100644 index 00000000..2e99ec14 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_stripe_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription.cpython-312.pyc new file mode 100644 index 00000000..aee2ed4c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_item.cpython-312.pyc new file mode 100644 index 00000000..9bd46554 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_item_service.cpython-312.pyc new file mode 100644 index 00000000..742345e3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_schedule.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_schedule.cpython-312.pyc new file mode 100644 index 00000000..e7947d59 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_schedule.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_schedule_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_schedule_service.cpython-312.pyc new file mode 100644 index 00000000..212ffb05 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_schedule_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_service.cpython-312.pyc new file mode 100644 index 00000000..40c6da49 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_subscription_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_code.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_code.cpython-312.pyc new file mode 100644 index 00000000..7e8e8a31 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_code.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_code_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_code_service.cpython-312.pyc new file mode 100644 index 00000000..436fecd4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_code_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_deducted_at_source.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_deducted_at_source.cpython-312.pyc new file mode 100644 index 00000000..3f1c25a7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_deducted_at_source.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_id.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_id.cpython-312.pyc new file mode 100644 index 00000000..5f6ccdbf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_id.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_id_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_id_service.cpython-312.pyc new file mode 100644 index 00000000..dffa3245 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_id_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_rate.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_rate.cpython-312.pyc new file mode 100644 index 00000000..1427bfeb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_rate.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_rate_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_rate_service.cpython-312.pyc new file mode 100644 index 00000000..f4ca33f4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_rate_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_service.cpython-312.pyc new file mode 100644 index 00000000..0cdc0d8f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_tax_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_terminal_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_terminal_service.cpython-312.pyc new file mode 100644 index 00000000..97e5b483 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_terminal_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_test_helpers.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_test_helpers.cpython-312.pyc new file mode 100644 index 00000000..61910714 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_test_helpers.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_test_helpers_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_test_helpers_service.cpython-312.pyc new file mode 100644 index 00000000..5f57e143 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_test_helpers_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_token.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_token.cpython-312.pyc new file mode 100644 index 00000000..5a1607a0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_token.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_token_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_token_service.cpython-312.pyc new file mode 100644 index 00000000..e7949339 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_token_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_topup.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_topup.cpython-312.pyc new file mode 100644 index 00000000..c6a87f25 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_topup.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_topup_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_topup_service.cpython-312.pyc new file mode 100644 index 00000000..d257321b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_topup_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer.cpython-312.pyc new file mode 100644 index 00000000..9ebb9a5c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer_reversal_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer_reversal_service.cpython-312.pyc new file mode 100644 index 00000000..6de9fbe1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer_reversal_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer_service.cpython-312.pyc new file mode 100644 index 00000000..f0c82b22 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_transfer_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_treasury_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_treasury_service.cpython-312.pyc new file mode 100644 index 00000000..dd77432a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_treasury_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_updateable_api_resource.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_updateable_api_resource.cpython-312.pyc new file mode 100644 index 00000000..6544856f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_updateable_api_resource.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_util.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_util.cpython-312.pyc new file mode 100644 index 00000000..82d54020 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_util.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_v1_services.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_v1_services.cpython-312.pyc new file mode 100644 index 00000000..d4337ce0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_v1_services.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_v2_services.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_v2_services.cpython-312.pyc new file mode 100644 index 00000000..f7dcf1be Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_v2_services.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_verify_mixin.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_verify_mixin.cpython-312.pyc new file mode 100644 index 00000000..dba354cf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_verify_mixin.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_version.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_version.cpython-312.pyc new file mode 100644 index 00000000..bc629818 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_version.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook.cpython-312.pyc new file mode 100644 index 00000000..97b0e529 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook_endpoint.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook_endpoint.cpython-312.pyc new file mode 100644 index 00000000..56ceaefd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook_endpoint.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook_endpoint_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook_endpoint_service.cpython-312.pyc new file mode 100644 index 00000000..4a55b578 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/_webhook_endpoint_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/oauth_error.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/oauth_error.cpython-312.pyc new file mode 100644 index 00000000..1f118a01 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/__pycache__/oauth_error.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account.py new file mode 100644 index 00000000..64f50c8a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account.py @@ -0,0 +1,2591 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._oauth import OAuth +from stripe._person import Person +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, Union, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._bank_account import BankAccount + from stripe._capability import Capability + from stripe._card import Card + from stripe._file import File + from stripe._login_link import LoginLink + from stripe._tax_id import TaxId + from stripe.params._account_create_external_account_params import ( + AccountCreateExternalAccountParams, + ) + from stripe.params._account_create_login_link_params import ( + AccountCreateLoginLinkParams, + ) + from stripe.params._account_create_params import AccountCreateParams + from stripe.params._account_create_person_params import ( + AccountCreatePersonParams, + ) + from stripe.params._account_delete_external_account_params import ( + AccountDeleteExternalAccountParams, + ) + from stripe.params._account_delete_params import AccountDeleteParams + from stripe.params._account_delete_person_params import ( + AccountDeletePersonParams, + ) + from stripe.params._account_list_capabilities_params import ( + AccountListCapabilitiesParams, + ) + from stripe.params._account_list_external_accounts_params import ( + AccountListExternalAccountsParams, + ) + from stripe.params._account_list_params import AccountListParams + from stripe.params._account_list_persons_params import ( + AccountListPersonsParams, + ) + from stripe.params._account_modify_capability_params import ( + AccountModifyCapabilityParams, + ) + from stripe.params._account_modify_external_account_params import ( + AccountModifyExternalAccountParams, + ) + from stripe.params._account_modify_person_params import ( + AccountModifyPersonParams, + ) + from stripe.params._account_persons_params import AccountPersonsParams + from stripe.params._account_reject_params import AccountRejectParams + from stripe.params._account_retrieve_capability_params import ( + AccountRetrieveCapabilityParams, + ) + from stripe.params._account_retrieve_external_account_params import ( + AccountRetrieveExternalAccountParams, + ) + from stripe.params._account_retrieve_person_params import ( + AccountRetrievePersonParams, + ) + + +@nested_resource_class_methods("capability") +@nested_resource_class_methods("external_account") +@nested_resource_class_methods("login_link") +@nested_resource_class_methods("person") +class Account( + CreateableAPIResource["Account"], + DeletableAPIResource["Account"], + ListableAPIResource["Account"], + UpdateableAPIResource["Account"], +): + """ + This is an object representing a Stripe account. You can retrieve it to see + properties on the account like its current requirements or if the account is + enabled to make live charges or receive payouts. + + For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) + is `application`, which includes Custom accounts, the properties below are always + returned. + + For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) + is `stripe`, which includes Standard and Express accounts, some properties are only returned + until you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions) + to start Connect Onboarding. Learn about the [differences between accounts](https://docs.stripe.com/connect/accounts). + """ + + OBJECT_NAME: ClassVar[Literal["account"]] = "account" + + class BusinessProfile(StripeObject): + class AnnualRevenue(StripeObject): + amount: Optional[int] + """ + A non-negative integer representing the amount in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal). + """ + currency: Optional[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + fiscal_year_end: Optional[str] + """ + The close-out date of the preceding fiscal year in ISO 8601 format. E.g. 2023-12-31 for the 31st of December, 2023. + """ + + class MonthlyEstimatedRevenue(StripeObject): + amount: int + """ + A non-negative integer representing how much to charge in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + + class SupportAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + annual_revenue: Optional[AnnualRevenue] + """ + The applicant's gross annual revenue for its preceding fiscal year. + """ + estimated_worker_count: Optional[int] + """ + An estimated upper bound of employees, contractors, vendors, etc. currently working for the business. + """ + mcc: Optional[str] + """ + [The merchant category code for the account](https://docs.stripe.com/connect/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide. + """ + minority_owned_business_designation: Optional[ + List[ + Literal[ + "lgbtqi_owned_business", + "minority_owned_business", + "none_of_these_apply", + "prefer_not_to_answer", + "women_owned_business", + ] + ] + ] + """ + Whether the business is a minority-owned, women-owned, and/or LGBTQI+ -owned business. + """ + monthly_estimated_revenue: Optional[MonthlyEstimatedRevenue] + name: Optional[str] + """ + The customer-facing business name. + """ + product_description: Optional[str] + """ + Internal-only description of the product sold or service provided by the business. It's used by Stripe for risk and underwriting purposes. + """ + support_address: Optional[SupportAddress] + """ + A publicly available mailing address for sending support issues to. + """ + support_email: Optional[str] + """ + A publicly available email address for sending support issues to. + """ + support_phone: Optional[str] + """ + A publicly available phone number to call with support issues. + """ + support_url: Optional[str] + """ + A publicly available website for handling support issues. + """ + url: Optional[str] + """ + The business's publicly available website. + """ + _inner_class_types = { + "annual_revenue": AnnualRevenue, + "monthly_estimated_revenue": MonthlyEstimatedRevenue, + "support_address": SupportAddress, + } + + class Capabilities(StripeObject): + acss_debit_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Canadian pre-authorized debits payments capability of the account, or whether the account can directly process Canadian pre-authorized debits charges. + """ + affirm_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Affirm capability of the account, or whether the account can directly process Affirm charges. + """ + afterpay_clearpay_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the Afterpay Clearpay capability of the account, or whether the account can directly process Afterpay Clearpay charges. + """ + alma_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Alma capability of the account, or whether the account can directly process Alma payments. + """ + amazon_pay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the AmazonPay capability of the account, or whether the account can directly process AmazonPay payments. + """ + au_becs_debit_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the BECS Direct Debit (AU) payments capability of the account, or whether the account can directly process BECS Direct Debit (AU) charges. + """ + bacs_debit_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Bacs Direct Debits payments capability of the account, or whether the account can directly process Bacs Direct Debits charges. + """ + bancontact_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Bancontact payments capability of the account, or whether the account can directly process Bancontact charges. + """ + bank_transfer_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the customer_balance payments capability of the account, or whether the account can directly process customer_balance charges. + """ + billie_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Billie capability of the account, or whether the account can directly process Billie payments. + """ + blik_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the blik payments capability of the account, or whether the account can directly process blik charges. + """ + boleto_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the boleto payments capability of the account, or whether the account can directly process boleto charges. + """ + card_issuing: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the card issuing capability of the account, or whether you can use Issuing to distribute funds on cards + """ + card_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the card payments capability of the account, or whether the account can directly process credit and debit card charges. + """ + cartes_bancaires_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the Cartes Bancaires payments capability of the account, or whether the account can directly process Cartes Bancaires card charges in EUR currency. + """ + cashapp_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Cash App Pay capability of the account, or whether the account can directly process Cash App Pay payments. + """ + crypto_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Crypto capability of the account, or whether the account can directly process Crypto payments. + """ + eps_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the EPS payments capability of the account, or whether the account can directly process EPS charges. + """ + fpx_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the FPX payments capability of the account, or whether the account can directly process FPX charges. + """ + gb_bank_transfer_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the GB customer_balance payments (GBP currency) capability of the account, or whether the account can directly process GB customer_balance charges. + """ + giropay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the giropay payments capability of the account, or whether the account can directly process giropay charges. + """ + grabpay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the GrabPay payments capability of the account, or whether the account can directly process GrabPay charges. + """ + ideal_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the iDEAL payments capability of the account, or whether the account can directly process iDEAL charges. + """ + india_international_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the india_international_payments capability of the account, or whether the account can process international charges (non INR) in India. + """ + jcb_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the JCB payments capability of the account, or whether the account (Japan only) can directly process JCB credit card charges in JPY currency. + """ + jp_bank_transfer_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the Japanese customer_balance payments (JPY currency) capability of the account, or whether the account can directly process Japanese customer_balance charges. + """ + kakao_pay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the KakaoPay capability of the account, or whether the account can directly process KakaoPay payments. + """ + klarna_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Klarna payments capability of the account, or whether the account can directly process Klarna charges. + """ + konbini_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the konbini payments capability of the account, or whether the account can directly process konbini charges. + """ + kr_card_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the KrCard capability of the account, or whether the account can directly process KrCard payments. + """ + legacy_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the legacy payments capability of the account. + """ + link_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the link_payments capability of the account, or whether the account can directly process Link charges. + """ + mb_way_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the MB WAY payments capability of the account, or whether the account can directly process MB WAY charges. + """ + mobilepay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the MobilePay capability of the account, or whether the account can directly process MobilePay charges. + """ + multibanco_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Multibanco payments capability of the account, or whether the account can directly process Multibanco charges. + """ + mx_bank_transfer_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the Mexican customer_balance payments (MXN currency) capability of the account, or whether the account can directly process Mexican customer_balance charges. + """ + naver_pay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the NaverPay capability of the account, or whether the account can directly process NaverPay payments. + """ + nz_bank_account_becs_debit_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the New Zealand BECS Direct Debit payments capability of the account, or whether the account can directly process New Zealand BECS Direct Debit charges. + """ + oxxo_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the OXXO payments capability of the account, or whether the account can directly process OXXO charges. + """ + p24_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the P24 payments capability of the account, or whether the account can directly process P24 charges. + """ + pay_by_bank_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the pay_by_bank payments capability of the account, or whether the account can directly process pay_by_bank charges. + """ + payco_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Payco capability of the account, or whether the account can directly process Payco payments. + """ + paynow_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the paynow payments capability of the account, or whether the account can directly process paynow charges. + """ + pix_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the pix payments capability of the account, or whether the account can directly process pix charges. + """ + promptpay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the promptpay payments capability of the account, or whether the account can directly process promptpay charges. + """ + revolut_pay_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the RevolutPay capability of the account, or whether the account can directly process RevolutPay payments. + """ + samsung_pay_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the SamsungPay capability of the account, or whether the account can directly process SamsungPay payments. + """ + satispay_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Satispay capability of the account, or whether the account can directly process Satispay payments. + """ + sepa_bank_transfer_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the SEPA customer_balance payments (EUR currency) capability of the account, or whether the account can directly process SEPA customer_balance charges. + """ + sepa_debit_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the SEPA Direct Debits payments capability of the account, or whether the account can directly process SEPA Direct Debits charges. + """ + sofort_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Sofort payments capability of the account, or whether the account can directly process Sofort charges. + """ + swish_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Swish capability of the account, or whether the account can directly process Swish payments. + """ + tax_reporting_us_1099_k: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the tax reporting 1099-K (US) capability of the account. + """ + tax_reporting_us_1099_misc: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the tax reporting 1099-MISC (US) capability of the account. + """ + transfers: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the transfers capability of the account, or whether your platform can transfer funds to the account. + """ + treasury: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the banking capability, or whether the account can have bank accounts. + """ + twint_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the TWINT capability of the account, or whether the account can directly process TWINT charges. + """ + us_bank_account_ach_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the US bank account ACH payments capability of the account, or whether the account can directly process US bank account charges. + """ + us_bank_transfer_payments: Optional[ + Literal["active", "inactive", "pending"] + ] + """ + The status of the US customer_balance payments (USD currency) capability of the account, or whether the account can directly process US customer_balance charges. + """ + zip_payments: Optional[Literal["active", "inactive", "pending"]] + """ + The status of the Zip capability of the account, or whether the account can directly process Zip charges. + """ + + class Company(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class AddressKana(StripeObject): + city: Optional[str] + """ + City/Ward. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Block/Building number. + """ + line2: Optional[str] + """ + Building details. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + Prefecture. + """ + town: Optional[str] + """ + Town/cho-me. + """ + + class AddressKanji(StripeObject): + city: Optional[str] + """ + City/Ward. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Block/Building number. + """ + line2: Optional[str] + """ + Building details. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + Prefecture. + """ + town: Optional[str] + """ + Town/cho-me. + """ + + class DirectorshipDeclaration(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the directorship declaration attestation was made. + """ + ip: Optional[str] + """ + The IP address from which the directorship declaration attestation was made. + """ + user_agent: Optional[str] + """ + The user-agent string from the browser where the directorship declaration attestation was made. + """ + + class OwnershipDeclaration(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the beneficial owner attestation was made. + """ + ip: Optional[str] + """ + The IP address from which the beneficial owner attestation was made. + """ + user_agent: Optional[str] + """ + The user-agent string from the browser where the beneficial owner attestation was made. + """ + + class RegistrationDate(StripeObject): + day: Optional[int] + """ + The day of registration, between 1 and 31. + """ + month: Optional[int] + """ + The month of registration, between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year of registration. + """ + + class RepresentativeDeclaration(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the representative declaration attestation was made. + """ + ip: Optional[str] + """ + The IP address from which the representative declaration attestation was made. + """ + user_agent: Optional[str] + """ + The user-agent string from the browser where the representative declaration attestation was made. + """ + + class Verification(StripeObject): + class Document(StripeObject): + back: Optional[ExpandableField["File"]] + """ + The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. Note that `additional_verification` files are [not downloadable](https://docs.stripe.com/file-upload#uploading-a-file). + """ + details: Optional[str] + """ + A user-displayable string describing the verification state of this document. + """ + details_code: Optional[str] + """ + One of `document_corrupt`, `document_expired`, `document_failed_copy`, `document_failed_greyscale`, `document_failed_other`, `document_failed_test_mode`, `document_fraudulent`, `document_incomplete`, `document_invalid`, `document_manipulated`, `document_not_readable`, `document_not_uploaded`, `document_type_not_supported`, or `document_too_large`. A machine-readable code specifying the verification state for this document. + """ + front: Optional[ExpandableField["File"]] + """ + The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. Note that `additional_verification` files are [not downloadable](https://docs.stripe.com/file-upload#uploading-a-file). + """ + + document: Document + _inner_class_types = {"document": Document} + + address: Optional[Address] + address_kana: Optional[AddressKana] + """ + The Kana variation of the company's primary address (Japan only). + """ + address_kanji: Optional[AddressKanji] + """ + The Kanji variation of the company's primary address (Japan only). + """ + directors_provided: Optional[bool] + """ + Whether the company's directors have been provided. This Boolean will be `true` if you've manually indicated that all directors are provided via [the `directors_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-directors_provided). + """ + directorship_declaration: Optional[DirectorshipDeclaration] + """ + This hash is used to attest that the director information provided to Stripe is both current and correct. + """ + executives_provided: Optional[bool] + """ + Whether the company's executives have been provided. This Boolean will be `true` if you've manually indicated that all executives are provided via [the `executives_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-executives_provided), or if Stripe determined that sufficient executives were provided. + """ + export_license_id: Optional[str] + """ + The export license ID number of the company, also referred as Import Export Code (India only). + """ + export_purpose_code: Optional[str] + """ + The purpose code to use for export transactions (India only). + """ + name: Optional[str] + """ + The company's legal name. Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + name_kana: Optional[str] + """ + The Kana variation of the company's legal name (Japan only). Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + name_kanji: Optional[str] + """ + The Kanji variation of the company's legal name (Japan only). Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + owners_provided: Optional[bool] + """ + Whether the company's owners have been provided. This Boolean will be `true` if you've manually indicated that all owners are provided via [the `owners_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-owners_provided), or if Stripe determined that sufficient owners were provided. Stripe determines ownership requirements using both the number of owners provided and their total percent ownership (calculated by adding the `percent_ownership` of each owner together). + """ + ownership_declaration: Optional[OwnershipDeclaration] + """ + This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct. + """ + ownership_exemption_reason: Optional[ + Literal[ + "qualified_entity_exceeds_ownership_threshold", + "qualifies_as_financial_institution", + ] + ] + """ + This value is used to determine if a business is exempt from providing ultimate beneficial owners. See [this support article](https://support.stripe.com/questions/exemption-from-providing-ownership-details) and [changelog](https://docs.stripe.com/changelog/acacia/2025-01-27/ownership-exemption-reason-accounts-api) for more details. + """ + phone: Optional[str] + """ + The company's phone number (used for verification). + """ + registration_date: Optional[RegistrationDate] + representative_declaration: Optional[RepresentativeDeclaration] + """ + This hash is used to attest that the representative is authorized to act as the representative of their legal entity. + """ + structure: Optional[ + Literal[ + "free_zone_establishment", + "free_zone_llc", + "government_instrumentality", + "governmental_unit", + "incorporated_non_profit", + "incorporated_partnership", + "limited_liability_partnership", + "llc", + "multi_member_llc", + "private_company", + "private_corporation", + "private_partnership", + "public_company", + "public_corporation", + "public_partnership", + "registered_charity", + "single_member_llc", + "sole_establishment", + "sole_proprietorship", + "tax_exempt_government_instrumentality", + "unincorporated_association", + "unincorporated_non_profit", + "unincorporated_partnership", + ] + ] + """ + The category identifying the legal structure of the company or legal entity. Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. See [Business structure](https://stripe.com/docs/connect/identity-verification#business-structure) for more details. + """ + tax_id_provided: Optional[bool] + """ + Whether the company's business ID number was provided. + """ + tax_id_registrar: Optional[str] + """ + The jurisdiction in which the `tax_id` is registered (Germany-based companies only). + """ + vat_id_provided: Optional[bool] + """ + Whether the company's business VAT number was provided. + """ + verification: Optional[Verification] + """ + Information on the verification state of the company. + """ + _inner_class_types = { + "address": Address, + "address_kana": AddressKana, + "address_kanji": AddressKanji, + "directorship_declaration": DirectorshipDeclaration, + "ownership_declaration": OwnershipDeclaration, + "registration_date": RegistrationDate, + "representative_declaration": RepresentativeDeclaration, + "verification": Verification, + } + + class Controller(StripeObject): + class Fees(StripeObject): + payer: Literal[ + "account", + "application", + "application_custom", + "application_express", + ] + """ + A value indicating the responsible payer of a bundle of Stripe fees for pricing-control eligible products on this account. Learn more about [fee behavior on connected accounts](https://docs.stripe.com/connect/direct-charges-fee-payer-behavior). + """ + + class Losses(StripeObject): + payments: Literal["application", "stripe"] + """ + A value indicating who is liable when this account can't pay back negative balances from payments. + """ + + class StripeDashboard(StripeObject): + type: Literal["express", "full", "none"] + """ + A value indicating the Stripe dashboard this account has access to independent of the Connect application. + """ + + fees: Optional[Fees] + is_controller: Optional[bool] + """ + `true` if the Connect application retrieving the resource controls the account and can therefore exercise [platform controls](https://stripe.com/docs/connect/platform-controls-for-standard-accounts). Otherwise, this field is null. + """ + losses: Optional[Losses] + requirement_collection: Optional[Literal["application", "stripe"]] + """ + A value indicating responsibility for collecting requirements on this account. Only returned when the Connect application retrieving the resource controls the account. + """ + stripe_dashboard: Optional[StripeDashboard] + type: Literal["account", "application"] + """ + The controller type. Can be `application`, if a Connect application controls the account, or `account`, if the account controls itself. + """ + _inner_class_types = { + "fees": Fees, + "losses": Losses, + "stripe_dashboard": StripeDashboard, + } + + class FutureRequirements(StripeObject): + class Alternative(StripeObject): + alternative_fields_due: List[str] + """ + Fields that can be provided to satisfy all fields in `original_fields_due`. + """ + original_fields_due: List[str] + """ + Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`. + """ + + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + alternatives: Optional[List[Alternative]] + """ + Fields that are due and can be satisfied by providing the corresponding alternative fields instead. + """ + current_deadline: Optional[int] + """ + Date on which `future_requirements` becomes the main `requirements` hash and `future_requirements` becomes empty. After the transition, `currently_due` requirements may immediately become `past_due`, but the account may also be given a grace period depending on its enablement state prior to transitioning. + """ + currently_due: Optional[List[str]] + """ + Fields that need to be collected to keep the account enabled. If not collected by `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash. + """ + disabled_reason: Optional[ + Literal[ + "action_required.requested_capabilities", + "listed", + "other", + "platform_paused", + "rejected.fraud", + "rejected.incomplete_verification", + "rejected.listed", + "rejected.other", + "rejected.platform_fraud", + "rejected.platform_other", + "rejected.platform_terms_of_service", + "rejected.terms_of_service", + "requirements.past_due", + "requirements.pending_verification", + "under_review", + ] + ] + """ + This is typed as an enum for consistency with `requirements.disabled_reason`. + """ + errors: Optional[List[Error]] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + eventually_due: Optional[List[str]] + """ + Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well. + """ + past_due: Optional[List[str]] + """ + Fields that weren't collected by `requirements.current_deadline`. These fields need to be collected to enable the capability on the account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due`. + """ + pending_verification: Optional[List[str]] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"alternatives": Alternative, "errors": Error} + + class Groups(StripeObject): + payments_pricing: Optional[str] + """ + The group the account is in to determine their payments pricing, and null if the account is on customized pricing. [See the Platform pricing tool documentation](https://stripe.com/docs/connect/platform-pricing-tools) for details. + """ + + class Requirements(StripeObject): + class Alternative(StripeObject): + alternative_fields_due: List[str] + """ + Fields that can be provided to satisfy all fields in `original_fields_due`. + """ + original_fields_due: List[str] + """ + Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`. + """ + + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + alternatives: Optional[List[Alternative]] + """ + Fields that are due and can be satisfied by providing the corresponding alternative fields instead. + """ + current_deadline: Optional[int] + """ + Date by which the fields in `currently_due` must be collected to keep the account enabled. These fields may disable the account sooner if the next threshold is reached before they are collected. + """ + currently_due: Optional[List[str]] + """ + Fields that need to be collected to keep the account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled. + """ + disabled_reason: Optional[ + Literal[ + "action_required.requested_capabilities", + "listed", + "other", + "platform_paused", + "rejected.fraud", + "rejected.incomplete_verification", + "rejected.listed", + "rejected.other", + "rejected.platform_fraud", + "rejected.platform_other", + "rejected.platform_terms_of_service", + "rejected.terms_of_service", + "requirements.past_due", + "requirements.pending_verification", + "under_review", + ] + ] + """ + If the account is disabled, this enum describes why. [Learn more about handling verification issues](https://stripe.com/docs/connect/handling-api-verification). + """ + errors: Optional[List[Error]] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + eventually_due: Optional[List[str]] + """ + Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well, and `current_deadline` becomes set. + """ + past_due: Optional[List[str]] + """ + Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the account. + """ + pending_verification: Optional[List[str]] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"alternatives": Alternative, "errors": Error} + + class Settings(StripeObject): + class BacsDebitPayments(StripeObject): + display_name: Optional[str] + """ + The Bacs Direct Debit display name for this account. For payments made with Bacs Direct Debit, this name appears on the mandate as the statement descriptor. Mobile banking apps display it as the name of the business. To use custom branding, set the Bacs Direct Debit Display Name during or right after creation. Custom branding incurs an additional monthly fee for the platform. The fee appears 5 business days after requesting Bacs. If you don't set the display name before requesting Bacs capability, it's automatically set as "Stripe" and the account is onboarded to Stripe branding, which is free. + """ + service_user_number: Optional[str] + """ + The Bacs Direct Debit Service user number for this account. For payments made with Bacs Direct Debit, this number is a unique identifier of the account with our banking partners. + """ + + class Branding(StripeObject): + icon: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) An icon for the account. Must be square and at least 128px x 128px. + """ + logo: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A logo for the account that will be used in Checkout instead of the icon and without the account's name next to it if provided. Must be at least 128px x 128px. + """ + primary_color: Optional[str] + """ + A CSS hex color value representing the primary branding color for this account + """ + secondary_color: Optional[str] + """ + A CSS hex color value representing the secondary branding color for this account + """ + + class CardIssuing(StripeObject): + class TosAcceptance(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: Optional[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: Optional[str] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + tos_acceptance: Optional[TosAcceptance] + _inner_class_types = {"tos_acceptance": TosAcceptance} + + class CardPayments(StripeObject): + class DeclineOn(StripeObject): + avs_failure: bool + """ + Whether Stripe automatically declines charges with an incorrect ZIP or postal code. This setting only applies when a ZIP or postal code is provided and they fail bank verification. + """ + cvc_failure: bool + """ + Whether Stripe automatically declines charges with an incorrect CVC. This setting only applies when a CVC is provided and it fails bank verification. + """ + + decline_on: Optional[DeclineOn] + statement_descriptor_prefix: Optional[str] + """ + The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge. `statement_descriptor_prefix` is useful for maximizing descriptor space for the dynamic portion. + """ + statement_descriptor_prefix_kana: Optional[str] + """ + The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kana` specified on the charge. `statement_descriptor_prefix_kana` is useful for maximizing descriptor space for the dynamic portion. + """ + statement_descriptor_prefix_kanji: Optional[str] + """ + The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kanji` specified on the charge. `statement_descriptor_prefix_kanji` is useful for maximizing descriptor space for the dynamic portion. + """ + _inner_class_types = {"decline_on": DeclineOn} + + class Dashboard(StripeObject): + display_name: Optional[str] + """ + The display name for this account. This is used on the Stripe Dashboard to differentiate between accounts. + """ + timezone: Optional[str] + """ + The timezone used in the Stripe Dashboard for this account. A list of possible time zone values is maintained at the [IANA Time Zone Database](http://www.iana.org/time-zones). + """ + + class Invoices(StripeObject): + default_account_tax_ids: Optional[List[ExpandableField["TaxId"]]] + """ + The list of default Account Tax IDs to automatically include on invoices. Account Tax IDs get added when an invoice is finalized. + """ + hosted_payment_method_save: Optional[ + Literal["always", "never", "offer"] + ] + """ + Whether to save the payment method after a payment is completed for a one-time invoice or a subscription invoice when the customer already has a default payment method on the hosted invoice page. + """ + + class Payments(StripeObject): + statement_descriptor: Optional[str] + """ + The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge. + """ + statement_descriptor_kana: Optional[str] + """ + The Kana variation of `statement_descriptor` used for charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + statement_descriptor_kanji: Optional[str] + """ + The Kanji variation of `statement_descriptor` used for charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + statement_descriptor_prefix_kana: Optional[str] + """ + The Kana variation of `statement_descriptor_prefix` used for card charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + statement_descriptor_prefix_kanji: Optional[str] + """ + The Kanji variation of `statement_descriptor_prefix` used for card charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + + class Payouts(StripeObject): + class Schedule(StripeObject): + delay_days: int + """ + The number of days charges for the account will be held before being paid out. + """ + interval: str + """ + How frequently funds will be paid out. One of `manual` (payouts only created via API call), `daily`, `weekly`, or `monthly`. + """ + monthly_anchor: Optional[int] + """ + The day of the month funds will be paid out. Only shown if `interval` is monthly. Payouts scheduled between the 29th and 31st of the month are sent on the last day of shorter months. + """ + monthly_payout_days: Optional[List[int]] + """ + The days of the month funds will be paid out. Only shown if `interval` is monthly. Payouts scheduled between the 29th and 31st of the month are sent on the last day of shorter months. + """ + weekly_anchor: Optional[str] + """ + The day of the week funds will be paid out, of the style 'monday', 'tuesday', etc. Only shown if `interval` is weekly. + """ + weekly_payout_days: Optional[ + List[ + Literal[ + "friday", + "monday", + "thursday", + "tuesday", + "wednesday", + ] + ] + ] + """ + The days of the week when available funds are paid out, specified as an array, for example, [`monday`, `tuesday`]. Only shown if `interval` is weekly. + """ + + debit_negative_balances: bool + """ + A Boolean indicating if Stripe should try to reclaim negative balances from an attached bank account. See [Understanding Connect account balances](https://docs.stripe.com/connect/account-balances) for details. The default value is `false` when [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, otherwise `true`. + """ + schedule: Schedule + statement_descriptor: Optional[str] + """ + The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard. + """ + _inner_class_types = {"schedule": Schedule} + + class SepaDebitPayments(StripeObject): + creditor_id: Optional[str] + """ + SEPA creditor identifier that identifies the company making the payment. + """ + + class Treasury(StripeObject): + class TosAcceptance(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: Optional[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: Optional[str] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + tos_acceptance: Optional[TosAcceptance] + _inner_class_types = {"tos_acceptance": TosAcceptance} + + bacs_debit_payments: Optional[BacsDebitPayments] + branding: Branding + card_issuing: Optional[CardIssuing] + card_payments: CardPayments + dashboard: Dashboard + invoices: Optional[Invoices] + payments: Payments + payouts: Optional[Payouts] + sepa_debit_payments: Optional[SepaDebitPayments] + treasury: Optional[Treasury] + _inner_class_types = { + "bacs_debit_payments": BacsDebitPayments, + "branding": Branding, + "card_issuing": CardIssuing, + "card_payments": CardPayments, + "dashboard": Dashboard, + "invoices": Invoices, + "payments": Payments, + "payouts": Payouts, + "sepa_debit_payments": SepaDebitPayments, + "treasury": Treasury, + } + + class TosAcceptance(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the account representative accepted their service agreement + """ + ip: Optional[str] + """ + The IP address from which the account representative accepted their service agreement + """ + service_agreement: Optional[str] + """ + The user's service agreement type + """ + user_agent: Optional[str] + """ + The user agent of the browser from which the account representative accepted their service agreement + """ + + business_profile: Optional[BusinessProfile] + """ + Business information about the account. + """ + business_type: Optional[ + Literal["company", "government_entity", "individual", "non_profit"] + ] + """ + The business type. + """ + capabilities: Optional[Capabilities] + charges_enabled: Optional[bool] + """ + Whether the account can process charges. + """ + company: Optional[Company] + controller: Optional[Controller] + country: Optional[str] + """ + The account's country. + """ + created: Optional[int] + """ + Time at which the account was connected. Measured in seconds since the Unix epoch. + """ + default_currency: Optional[str] + """ + Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://stripe.com/docs/payouts). + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + details_submitted: Optional[bool] + """ + Whether account details have been submitted. Accounts with Stripe Dashboard access, which includes Standard accounts, cannot receive payouts before this is true. Accounts where this is false should be directed to [an onboarding flow](https://docs.stripe.com/connect/onboarding) to finish submitting account details. + """ + email: Optional[str] + """ + An email address associated with the account. It's not used for authentication and Stripe doesn't market to this field without explicit approval from the platform. + """ + external_accounts: Optional[ListObject[Union["BankAccount", "Card"]]] + """ + External accounts (bank accounts and debit cards) currently attached to this account. External accounts are only returned for requests where `controller[is_controller]` is true. + """ + future_requirements: Optional[FutureRequirements] + groups: Optional[Groups] + """ + The groups associated with the account. + """ + id: str + """ + Unique identifier for the object. + """ + individual: Optional["Person"] + """ + This is an object representing a person associated with a Stripe account. + + A platform can only access a subset of data in a person for an account where [account.controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding. + + See the [Standard onboarding](https://docs.stripe.com/connect/standard-accounts) or [Express onboarding](https://docs.stripe.com/connect/express-accounts) documentation for information about prefilling information and account onboarding steps. Learn more about [handling identity verification with the API](https://docs.stripe.com/connect/handling-api-verification#person-information). + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["account"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payouts_enabled: Optional[bool] + """ + Whether the funds in this account can be paid out. + """ + requirements: Optional[Requirements] + settings: Optional[Settings] + """ + Options for customizing how the account functions within Stripe. + """ + tos_acceptance: Optional[TosAcceptance] + type: Optional[Literal["custom", "express", "none", "standard"]] + """ + The Stripe account type. Can be `standard`, `express`, `custom`, or `none`. + """ + + @classmethod + def create(cls, **params: Unpack["AccountCreateParams"]) -> "Account": + """ + With [Connect](https://docs.stripe.com/docs/connect), you can create Stripe accounts for your users. + To do this, you'll first need to [register your platform](https://dashboard.stripe.com/account/applications/settings). + + If you've already collected information for your connected accounts, you [can prefill that information](https://docs.stripe.com/docs/connect/best-practices#onboarding) when + creating the account. Connect Onboarding won't ask for the prefilled information during account onboarding. + You can prefill any information on the account. + """ + return cast( + "Account", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["AccountCreateParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/docs/connect), you can create Stripe accounts for your users. + To do this, you'll first need to [register your platform](https://dashboard.stripe.com/account/applications/settings). + + If you've already collected information for your connected accounts, you [can prefill that information](https://docs.stripe.com/docs/connect/best-practices#onboarding) when + creating the account. Connect Onboarding won't ask for the prefilled information during account onboarding. + You can prefill any information on the account. + """ + return cast( + "Account", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["AccountDeleteParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Account", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete(sid: str, **params: Unpack["AccountDeleteParams"]) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + ... + + @overload + def delete(self, **params: Unpack["AccountDeleteParams"]) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountDeleteParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["AccountDeleteParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Account", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["AccountDeleteParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["AccountDeleteParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountDeleteParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["AccountListParams"] + ) -> ListObject["Account"]: + """ + Returns a list of accounts connected to your platform via [Connect](https://docs.stripe.com/docs/connect). If you're not a platform, the list is empty. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["AccountListParams"] + ) -> ListObject["Account"]: + """ + Returns a list of accounts connected to your platform via [Connect](https://docs.stripe.com/docs/connect). If you're not a platform, the list is empty. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_persons( + cls, account: str, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + ListObject["Person"], + cls._static_request( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def persons( + account: str, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + ... + + @overload + def persons( + self, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + ... + + @class_method_variant("_cls_persons") + def persons( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + ListObject["Person"], + self._request( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_persons_async( + cls, account: str, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + ListObject["Person"], + await cls._static_request_async( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def persons_async( + account: str, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + ... + + @overload + async def persons_async( + self, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + ... + + @class_method_variant("_cls_persons_async") + async def persons_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + ListObject["Person"], + await self._request_async( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_reject( + cls, account: str, **params: Unpack["AccountRejectParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + return cast( + "Account", + cls._static_request( + "post", + "/v1/accounts/{account}/reject".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def reject( + account: str, **params: Unpack["AccountRejectParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + ... + + @overload + def reject(self, **params: Unpack["AccountRejectParams"]) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + ... + + @class_method_variant("_cls_reject") + def reject( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountRejectParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + return cast( + "Account", + self._request( + "post", + "/v1/accounts/{account}/reject".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_reject_async( + cls, account: str, **params: Unpack["AccountRejectParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + return cast( + "Account", + await cls._static_request_async( + "post", + "/v1/accounts/{account}/reject".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def reject_async( + account: str, **params: Unpack["AccountRejectParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + ... + + @overload + async def reject_async( + self, **params: Unpack["AccountRejectParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + ... + + @class_method_variant("_cls_reject_async") + async def reject_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountRejectParams"] + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/accounts/{account}/reject".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve(cls, id=None, **params) -> "Account": + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async(cls, id=None, **params) -> "Account": + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def modify(cls, id=None, **params) -> "Account": + url = cls._build_instance_url(id) + return cast("Account", cls._static_request("post", url, params=params)) + + @classmethod + async def modify_async(cls, id=None, **params) -> "Account": + url = cls._build_instance_url(id) + return cast( + "Account", + await cls._static_request_async("post", url, params=params), + ) + + @classmethod + def _build_instance_url(cls, sid): + if not sid: + return "/v1/account" + base = cls.class_url() + extn = sanitize_id(sid) + return "%s/%s" % (base, extn) + + def instance_url(self): + return self._build_instance_url(self.get("id")) + + def deauthorize(self, **params): + params["stripe_user_id"] = self.id + return OAuth.deauthorize(**params) + + def serialize(self, previous): + params = super(Account, self).serialize(previous) + previous = previous or self._previous or {} + + for k, v in iter(self.items()): + if k == "individual" and isinstance(v, Person) and k not in params: + params[k] = v.serialize(previous.get(k, None)) + + return params + + @classmethod + def list_capabilities( + cls, account: str, **params: Unpack["AccountListCapabilitiesParams"] + ) -> ListObject["Capability"]: + """ + Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first. + """ + return cast( + ListObject["Capability"], + cls._static_request( + "get", + "/v1/accounts/{account}/capabilities".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + async def list_capabilities_async( + cls, account: str, **params: Unpack["AccountListCapabilitiesParams"] + ) -> ListObject["Capability"]: + """ + Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first. + """ + return cast( + ListObject["Capability"], + await cls._static_request_async( + "get", + "/v1/accounts/{account}/capabilities".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + def retrieve_capability( + cls, + account: str, + capability: str, + **params: Unpack["AccountRetrieveCapabilityParams"], + ) -> "Capability": + """ + Retrieves information about the specified Account Capability. + """ + return cast( + "Capability", + cls._static_request( + "get", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + params=params, + ), + ) + + @classmethod + async def retrieve_capability_async( + cls, + account: str, + capability: str, + **params: Unpack["AccountRetrieveCapabilityParams"], + ) -> "Capability": + """ + Retrieves information about the specified Account Capability. + """ + return cast( + "Capability", + await cls._static_request_async( + "get", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + params=params, + ), + ) + + @classmethod + def modify_capability( + cls, + account: str, + capability: str, + **params: Unpack["AccountModifyCapabilityParams"], + ) -> "Capability": + """ + Updates an existing Account Capability. Request or remove a capability by updating its requested parameter. + """ + return cast( + "Capability", + cls._static_request( + "post", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + params=params, + ), + ) + + @classmethod + async def modify_capability_async( + cls, + account: str, + capability: str, + **params: Unpack["AccountModifyCapabilityParams"], + ) -> "Capability": + """ + Updates an existing Account Capability. Request or remove a capability by updating its requested parameter. + """ + return cast( + "Capability", + await cls._static_request_async( + "post", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + params=params, + ), + ) + + @classmethod + def delete_external_account( + cls, + account: str, + id: str, + **params: Unpack["AccountDeleteExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + return cast( + Union["BankAccount", "Card"], + cls._static_request( + "delete", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def delete_external_account_async( + cls, + account: str, + id: str, + **params: Unpack["AccountDeleteExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + return cast( + Union["BankAccount", "Card"], + await cls._static_request_async( + "delete", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def retrieve_external_account( + cls, + account: str, + id: str, + **params: Unpack["AccountRetrieveExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Retrieve a specified external account for a given account. + """ + return cast( + Union["BankAccount", "Card"], + cls._static_request( + "get", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_external_account_async( + cls, + account: str, + id: str, + **params: Unpack["AccountRetrieveExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Retrieve a specified external account for a given account. + """ + return cast( + Union["BankAccount", "Card"], + await cls._static_request_async( + "get", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def modify_external_account( + cls, + account: str, + id: str, + **params: Unpack["AccountModifyExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Updates the metadata, account holder name, account holder type of a bank account belonging to + a connected account and optionally sets it as the default for its currency. Other bank account + details are not editable by design. + + You can only update bank accounts when [account.controller.requirement_collection is application, which includes Custom accounts](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection). + + You can re-enable a disabled bank account by performing an update call without providing any + arguments or changes. + """ + return cast( + Union["BankAccount", "Card"], + cls._static_request( + "post", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def modify_external_account_async( + cls, + account: str, + id: str, + **params: Unpack["AccountModifyExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Updates the metadata, account holder name, account holder type of a bank account belonging to + a connected account and optionally sets it as the default for its currency. Other bank account + details are not editable by design. + + You can only update bank accounts when [account.controller.requirement_collection is application, which includes Custom accounts](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection). + + You can re-enable a disabled bank account by performing an update call without providing any + arguments or changes. + """ + return cast( + Union["BankAccount", "Card"], + await cls._static_request_async( + "post", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def list_external_accounts( + cls, + account: str, + **params: Unpack["AccountListExternalAccountsParams"], + ) -> ListObject[Union["BankAccount", "Card"]]: + """ + List external accounts for an account. + """ + return cast( + ListObject[Union["BankAccount", "Card"]], + cls._static_request( + "get", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + async def list_external_accounts_async( + cls, + account: str, + **params: Unpack["AccountListExternalAccountsParams"], + ) -> ListObject[Union["BankAccount", "Card"]]: + """ + List external accounts for an account. + """ + return cast( + ListObject[Union["BankAccount", "Card"]], + await cls._static_request_async( + "get", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + def create_external_account( + cls, + account: str, + **params: Unpack["AccountCreateExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Create an external account for a given account. + """ + return cast( + Union["BankAccount", "Card"], + cls._static_request( + "post", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + async def create_external_account_async( + cls, + account: str, + **params: Unpack["AccountCreateExternalAccountParams"], + ) -> Union["BankAccount", "Card"]: + """ + Create an external account for a given account. + """ + return cast( + Union["BankAccount", "Card"], + await cls._static_request_async( + "post", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + def create_login_link( + cls, account: str, **params: Unpack["AccountCreateLoginLinkParams"] + ) -> "LoginLink": + """ + Creates a login link for a connected account to access the Express Dashboard. + + You can only create login links for accounts that use the [Express Dashboard](https://docs.stripe.com/connect/express-dashboard) and are connected to your platform. + """ + return cast( + "LoginLink", + cls._static_request( + "post", + "/v1/accounts/{account}/login_links".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + async def create_login_link_async( + cls, account: str, **params: Unpack["AccountCreateLoginLinkParams"] + ) -> "LoginLink": + """ + Creates a login link for a connected account to access the Express Dashboard. + + You can only create login links for accounts that use the [Express Dashboard](https://docs.stripe.com/connect/express-dashboard) and are connected to your platform. + """ + return cast( + "LoginLink", + await cls._static_request_async( + "post", + "/v1/accounts/{account}/login_links".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + def delete_person( + cls, + account: str, + person: str, + **params: Unpack["AccountDeletePersonParams"], + ) -> "Person": + """ + Deletes an existing person's relationship to the account's legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file. + """ + return cast( + "Person", + cls._static_request( + "delete", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), person=sanitize_id(person) + ), + params=params, + ), + ) + + @classmethod + async def delete_person_async( + cls, + account: str, + person: str, + **params: Unpack["AccountDeletePersonParams"], + ) -> "Person": + """ + Deletes an existing person's relationship to the account's legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file. + """ + return cast( + "Person", + await cls._static_request_async( + "delete", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), person=sanitize_id(person) + ), + params=params, + ), + ) + + @classmethod + def retrieve_person( + cls, + account: str, + person: str, + **params: Unpack["AccountRetrievePersonParams"], + ) -> "Person": + """ + Retrieves an existing person. + """ + return cast( + "Person", + cls._static_request( + "get", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), person=sanitize_id(person) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_person_async( + cls, + account: str, + person: str, + **params: Unpack["AccountRetrievePersonParams"], + ) -> "Person": + """ + Retrieves an existing person. + """ + return cast( + "Person", + await cls._static_request_async( + "get", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), person=sanitize_id(person) + ), + params=params, + ), + ) + + @classmethod + def modify_person( + cls, + account: str, + person: str, + **params: Unpack["AccountModifyPersonParams"], + ) -> "Person": + """ + Updates an existing person. + """ + return cast( + "Person", + cls._static_request( + "post", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), person=sanitize_id(person) + ), + params=params, + ), + ) + + @classmethod + async def modify_person_async( + cls, + account: str, + person: str, + **params: Unpack["AccountModifyPersonParams"], + ) -> "Person": + """ + Updates an existing person. + """ + return cast( + "Person", + await cls._static_request_async( + "post", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), person=sanitize_id(person) + ), + params=params, + ), + ) + + @classmethod + def list_persons( + cls, account: str, **params: Unpack["AccountListPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + ListObject["Person"], + cls._static_request( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + async def list_persons_async( + cls, account: str, **params: Unpack["AccountListPersonsParams"] + ) -> ListObject["Person"]: + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + ListObject["Person"], + await cls._static_request_async( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + def create_person( + cls, account: str, **params: Unpack["AccountCreatePersonParams"] + ) -> "Person": + """ + Creates a new person. + """ + return cast( + "Person", + cls._static_request( + "post", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @classmethod + async def create_person_async( + cls, account: str, **params: Unpack["AccountCreatePersonParams"] + ) -> "Person": + """ + Creates a new person. + """ + return cast( + "Person", + await cls._static_request_async( + "post", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + _inner_class_types = { + "business_profile": BusinessProfile, + "capabilities": Capabilities, + "company": Company, + "controller": Controller, + "future_requirements": FutureRequirements, + "groups": Groups, + "requirements": Requirements, + "settings": Settings, + "tos_acceptance": TosAcceptance, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_capability_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_capability_service.py new file mode 100644 index 00000000..afe33c8c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_capability_service.py @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._capability import Capability + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._account_capability_list_params import ( + AccountCapabilityListParams, + ) + from stripe.params._account_capability_retrieve_params import ( + AccountCapabilityRetrieveParams, + ) + from stripe.params._account_capability_update_params import ( + AccountCapabilityUpdateParams, + ) + + +class AccountCapabilityService(StripeService): + def list( + self, + account: str, + params: Optional["AccountCapabilityListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Capability]": + """ + Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first. + """ + return cast( + "ListObject[Capability]", + self._request( + "get", + "/v1/accounts/{account}/capabilities".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + account: str, + params: Optional["AccountCapabilityListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Capability]": + """ + Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first. + """ + return cast( + "ListObject[Capability]", + await self._request_async( + "get", + "/v1/accounts/{account}/capabilities".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + account: str, + capability: str, + params: Optional["AccountCapabilityRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Capability": + """ + Retrieves information about the specified Account Capability. + """ + return cast( + "Capability", + self._request( + "get", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + account: str, + capability: str, + params: Optional["AccountCapabilityRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Capability": + """ + Retrieves information about the specified Account Capability. + """ + return cast( + "Capability", + await self._request_async( + "get", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + account: str, + capability: str, + params: Optional["AccountCapabilityUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Capability": + """ + Updates an existing Account Capability. Request or remove a capability by updating its requested parameter. + """ + return cast( + "Capability", + self._request( + "post", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + account: str, + capability: str, + params: Optional["AccountCapabilityUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Capability": + """ + Updates an existing Account Capability. Request or remove a capability by updating its requested parameter. + """ + return cast( + "Capability", + await self._request_async( + "post", + "/v1/accounts/{account}/capabilities/{capability}".format( + account=sanitize_id(account), + capability=sanitize_id(capability), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_external_account_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_external_account_service.py new file mode 100644 index 00000000..c599096f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_external_account_service.py @@ -0,0 +1,276 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._bank_account import BankAccount + from stripe._card import Card + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._account_external_account_create_params import ( + AccountExternalAccountCreateParams, + ) + from stripe.params._account_external_account_delete_params import ( + AccountExternalAccountDeleteParams, + ) + from stripe.params._account_external_account_list_params import ( + AccountExternalAccountListParams, + ) + from stripe.params._account_external_account_retrieve_params import ( + AccountExternalAccountRetrieveParams, + ) + from stripe.params._account_external_account_update_params import ( + AccountExternalAccountUpdateParams, + ) + from typing import Union + + +class AccountExternalAccountService(StripeService): + def delete( + self, + account: str, + id: str, + params: Optional["AccountExternalAccountDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Delete a specified external account for a given account. + """ + return cast( + "Union[BankAccount, Card]", + self._request( + "delete", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + account: str, + id: str, + params: Optional["AccountExternalAccountDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Delete a specified external account for a given account. + """ + return cast( + "Union[BankAccount, Card]", + await self._request_async( + "delete", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + account: str, + id: str, + params: Optional["AccountExternalAccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Retrieve a specified external account for a given account. + """ + return cast( + "Union[BankAccount, Card]", + self._request( + "get", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + account: str, + id: str, + params: Optional["AccountExternalAccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Retrieve a specified external account for a given account. + """ + return cast( + "Union[BankAccount, Card]", + await self._request_async( + "get", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + account: str, + id: str, + params: Optional["AccountExternalAccountUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Updates the metadata, account holder name, account holder type of a bank account belonging to + a connected account and optionally sets it as the default for its currency. Other bank account + details are not editable by design. + + You can only update bank accounts when [account.controller.requirement_collection is application, which includes Custom accounts](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection). + + You can re-enable a disabled bank account by performing an update call without providing any + arguments or changes. + """ + return cast( + "Union[BankAccount, Card]", + self._request( + "post", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + account: str, + id: str, + params: Optional["AccountExternalAccountUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Updates the metadata, account holder name, account holder type of a bank account belonging to + a connected account and optionally sets it as the default for its currency. Other bank account + details are not editable by design. + + You can only update bank accounts when [account.controller.requirement_collection is application, which includes Custom accounts](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection). + + You can re-enable a disabled bank account by performing an update call without providing any + arguments or changes. + """ + return cast( + "Union[BankAccount, Card]", + await self._request_async( + "post", + "/v1/accounts/{account}/external_accounts/{id}".format( + account=sanitize_id(account), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + account: str, + params: Optional["AccountExternalAccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Union[BankAccount, Card]]": + """ + List external accounts for an account. + """ + return cast( + "ListObject[Union[BankAccount, Card]]", + self._request( + "get", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + account: str, + params: Optional["AccountExternalAccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Union[BankAccount, Card]]": + """ + List external accounts for an account. + """ + return cast( + "ListObject[Union[BankAccount, Card]]", + await self._request_async( + "get", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + account: str, + params: "AccountExternalAccountCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Create an external account for a given account. + """ + return cast( + "Union[BankAccount, Card]", + self._request( + "post", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + account: str, + params: "AccountExternalAccountCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Union[BankAccount, Card]": + """ + Create an external account for a given account. + """ + return cast( + "Union[BankAccount, Card]", + await self._request_async( + "post", + "/v1/accounts/{account}/external_accounts".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_link.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_link.py new file mode 100644 index 00000000..15043e9e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_link.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from typing import ClassVar, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._account_link_create_params import ( + AccountLinkCreateParams, + ) + + +class AccountLink(CreateableAPIResource["AccountLink"]): + """ + Account Links are the means by which a Connect platform grants a connected account permission to access + Stripe-hosted applications, such as Connect Onboarding. + + Related guide: [Connect Onboarding](https://stripe.com/docs/connect/custom/hosted-onboarding) + """ + + OBJECT_NAME: ClassVar[Literal["account_link"]] = "account_link" + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + expires_at: int + """ + The timestamp at which this account link will expire. + """ + object: Literal["account_link"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + url: str + """ + The URL for the account link. + """ + + @classmethod + def create( + cls, **params: Unpack["AccountLinkCreateParams"] + ) -> "AccountLink": + """ + Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow. + """ + return cast( + "AccountLink", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["AccountLinkCreateParams"] + ) -> "AccountLink": + """ + Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow. + """ + return cast( + "AccountLink", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_link_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_link_service.py new file mode 100644 index 00000000..ac0d42f3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_link_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account_link import AccountLink + from stripe._request_options import RequestOptions + from stripe.params._account_link_create_params import ( + AccountLinkCreateParams, + ) + + +class AccountLinkService(StripeService): + def create( + self, + params: "AccountLinkCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "AccountLink": + """ + Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow. + """ + return cast( + "AccountLink", + self._request( + "post", + "/v1/account_links", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "AccountLinkCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "AccountLink": + """ + Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow. + """ + return cast( + "AccountLink", + await self._request_async( + "post", + "/v1/account_links", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_login_link_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_login_link_service.py new file mode 100644 index 00000000..39212510 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_login_link_service.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._login_link import LoginLink + from stripe._request_options import RequestOptions + from stripe.params._account_login_link_create_params import ( + AccountLoginLinkCreateParams, + ) + + +class AccountLoginLinkService(StripeService): + def create( + self, + account: str, + params: Optional["AccountLoginLinkCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "LoginLink": + """ + Creates a login link for a connected account to access the Express Dashboard. + + You can only create login links for accounts that use the [Express Dashboard](https://docs.stripe.com/connect/express-dashboard) and are connected to your platform. + """ + return cast( + "LoginLink", + self._request( + "post", + "/v1/accounts/{account}/login_links".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + account: str, + params: Optional["AccountLoginLinkCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "LoginLink": + """ + Creates a login link for a connected account to access the Express Dashboard. + + You can only create login links for accounts that use the [Express Dashboard](https://docs.stripe.com/connect/express-dashboard) and are connected to your platform. + """ + return cast( + "LoginLink", + await self._request_async( + "post", + "/v1/accounts/{account}/login_links".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_person_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_person_service.py new file mode 100644 index 00000000..06a94733 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_person_service.py @@ -0,0 +1,260 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._person import Person + from stripe._request_options import RequestOptions + from stripe.params._account_person_create_params import ( + AccountPersonCreateParams, + ) + from stripe.params._account_person_delete_params import ( + AccountPersonDeleteParams, + ) + from stripe.params._account_person_list_params import ( + AccountPersonListParams, + ) + from stripe.params._account_person_retrieve_params import ( + AccountPersonRetrieveParams, + ) + from stripe.params._account_person_update_params import ( + AccountPersonUpdateParams, + ) + + +class AccountPersonService(StripeService): + def delete( + self, + account: str, + person: str, + params: Optional["AccountPersonDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Deletes an existing person's relationship to the account's legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file. + """ + return cast( + "Person", + self._request( + "delete", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), + person=sanitize_id(person), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + account: str, + person: str, + params: Optional["AccountPersonDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Deletes an existing person's relationship to the account's legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file. + """ + return cast( + "Person", + await self._request_async( + "delete", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), + person=sanitize_id(person), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + account: str, + person: str, + params: Optional["AccountPersonRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Retrieves an existing person. + """ + return cast( + "Person", + self._request( + "get", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), + person=sanitize_id(person), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + account: str, + person: str, + params: Optional["AccountPersonRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Retrieves an existing person. + """ + return cast( + "Person", + await self._request_async( + "get", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), + person=sanitize_id(person), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + account: str, + person: str, + params: Optional["AccountPersonUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Updates an existing person. + """ + return cast( + "Person", + self._request( + "post", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), + person=sanitize_id(person), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + account: str, + person: str, + params: Optional["AccountPersonUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Updates an existing person. + """ + return cast( + "Person", + await self._request_async( + "post", + "/v1/accounts/{account}/persons/{person}".format( + account=sanitize_id(account), + person=sanitize_id(person), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + account: str, + params: Optional["AccountPersonListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Person]": + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + "ListObject[Person]", + self._request( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + account: str, + params: Optional["AccountPersonListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Person]": + """ + Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first. + """ + return cast( + "ListObject[Person]", + await self._request_async( + "get", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + account: str, + params: Optional["AccountPersonCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Creates a new person. + """ + return cast( + "Person", + self._request( + "post", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + account: str, + params: Optional["AccountPersonCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Person": + """ + Creates a new person. + """ + return cast( + "Person", + await self._request_async( + "post", + "/v1/accounts/{account}/persons".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_service.py new file mode 100644 index 00000000..ecec209b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_service.py @@ -0,0 +1,397 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._account_capability_service import AccountCapabilityService + from stripe._account_external_account_service import ( + AccountExternalAccountService, + ) + from stripe._account_login_link_service import AccountLoginLinkService + from stripe._account_person_service import AccountPersonService + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._account_create_params import AccountCreateParams + from stripe.params._account_delete_params import AccountDeleteParams + from stripe.params._account_list_params import AccountListParams + from stripe.params._account_reject_params import AccountRejectParams + from stripe.params._account_retrieve_current_params import ( + AccountRetrieveCurrentParams, + ) + from stripe.params._account_retrieve_params import AccountRetrieveParams + from stripe.params._account_update_params import AccountUpdateParams + +_subservices = { + "capabilities": [ + "stripe._account_capability_service", + "AccountCapabilityService", + ], + "external_accounts": [ + "stripe._account_external_account_service", + "AccountExternalAccountService", + ], + "login_links": [ + "stripe._account_login_link_service", + "AccountLoginLinkService", + ], + "persons": ["stripe._account_person_service", "AccountPersonService"], +} + + +class AccountService(StripeService): + capabilities: "AccountCapabilityService" + external_accounts: "AccountExternalAccountService" + login_links: "AccountLoginLinkService" + persons: "AccountPersonService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def delete( + self, + account: str, + params: Optional["AccountDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + return cast( + "Account", + self._request( + "delete", + "/v1/accounts/{account}".format(account=sanitize_id(account)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + account: str, + params: Optional["AccountDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage. + + Test-mode accounts can be deleted at any time. + + Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero. + + If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead. + """ + return cast( + "Account", + await self._request_async( + "delete", + "/v1/accounts/{account}".format(account=sanitize_id(account)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + account: str, + params: Optional["AccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Retrieves the details of an account. + """ + return cast( + "Account", + self._request( + "get", + "/v1/accounts/{account}".format(account=sanitize_id(account)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + account: str, + params: Optional["AccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Retrieves the details of an account. + """ + return cast( + "Account", + await self._request_async( + "get", + "/v1/accounts/{account}".format(account=sanitize_id(account)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + account: str, + params: Optional["AccountUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Updates a [connected account](https://docs.stripe.com/connect/accounts) by setting the values of the parameters passed. Any parameters not provided are + left unchanged. + + For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) + is application, which includes Custom accounts, you can update any information on the account. + + For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) + is stripe, which includes Standard and Express accounts, you can update all information until you create + an [Account Link or Account Session](https://docs.stripe.com/api/account_links) to start Connect onboarding, + after which some properties can no longer be updated. + + To update your own account, use the [Dashboard](https://dashboard.stripe.com/settings/account). Refer to our + [Connect](https://docs.stripe.com/docs/connect/updating-accounts) documentation to learn more about updating accounts. + """ + return cast( + "Account", + self._request( + "post", + "/v1/accounts/{account}".format(account=sanitize_id(account)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + account: str, + params: Optional["AccountUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Updates a [connected account](https://docs.stripe.com/connect/accounts) by setting the values of the parameters passed. Any parameters not provided are + left unchanged. + + For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) + is application, which includes Custom accounts, you can update any information on the account. + + For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) + is stripe, which includes Standard and Express accounts, you can update all information until you create + an [Account Link or Account Session](https://docs.stripe.com/api/account_links) to start Connect onboarding, + after which some properties can no longer be updated. + + To update your own account, use the [Dashboard](https://dashboard.stripe.com/settings/account). Refer to our + [Connect](https://docs.stripe.com/docs/connect/updating-accounts) documentation to learn more about updating accounts. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/accounts/{account}".format(account=sanitize_id(account)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve_current( + self, + params: Optional["AccountRetrieveCurrentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Retrieves the details of an account. + """ + return cast( + "Account", + self._request( + "get", + "/v1/account", + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_current_async( + self, + params: Optional["AccountRetrieveCurrentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Retrieves the details of an account. + """ + return cast( + "Account", + await self._request_async( + "get", + "/v1/account", + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["AccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Account]": + """ + Returns a list of accounts connected to your platform via [Connect](https://docs.stripe.com/docs/connect). If you're not a platform, the list is empty. + """ + return cast( + "ListObject[Account]", + self._request( + "get", + "/v1/accounts", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["AccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Account]": + """ + Returns a list of accounts connected to your platform via [Connect](https://docs.stripe.com/docs/connect). If you're not a platform, the list is empty. + """ + return cast( + "ListObject[Account]", + await self._request_async( + "get", + "/v1/accounts", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["AccountCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/docs/connect), you can create Stripe accounts for your users. + To do this, you'll first need to [register your platform](https://dashboard.stripe.com/account/applications/settings). + + If you've already collected information for your connected accounts, you [can prefill that information](https://docs.stripe.com/docs/connect/best-practices#onboarding) when + creating the account. Connect Onboarding won't ask for the prefilled information during account onboarding. + You can prefill any information on the account. + """ + return cast( + "Account", + self._request( + "post", + "/v1/accounts", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["AccountCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/docs/connect), you can create Stripe accounts for your users. + To do this, you'll first need to [register your platform](https://dashboard.stripe.com/account/applications/settings). + + If you've already collected information for your connected accounts, you [can prefill that information](https://docs.stripe.com/docs/connect/best-practices#onboarding) when + creating the account. Connect Onboarding won't ask for the prefilled information during account onboarding. + You can prefill any information on the account. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/accounts", + base_address="api", + params=params, + options=options, + ), + ) + + def reject( + self, + account: str, + params: "AccountRejectParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + return cast( + "Account", + self._request( + "post", + "/v1/accounts/{account}/reject".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def reject_async( + self, + account: str, + params: "AccountRejectParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious. + + Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/accounts/{account}/reject".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_session.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_session.py new file mode 100644 index 00000000..0f338bb1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_session.py @@ -0,0 +1,514 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._account_session_create_params import ( + AccountSessionCreateParams, + ) + + +class AccountSession(CreateableAPIResource["AccountSession"]): + """ + An AccountSession allows a Connect platform to grant access to a connected account in Connect embedded components. + + We recommend that you create an AccountSession each time you need to display an embedded component + to your user. Do not save AccountSessions to your database as they expire relatively + quickly, and cannot be used more than once. + + Related guide: [Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components) + """ + + OBJECT_NAME: ClassVar[Literal["account_session"]] = "account_session" + + class Components(StripeObject): + class AccountManagement(StripeObject): + class Features(StripeObject): + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: bool + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class AccountOnboarding(StripeObject): + class Features(StripeObject): + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: bool + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class Balances(StripeObject): + class Features(StripeObject): + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + edit_payout_schedule: bool + """ + Whether to allow payout schedule to be changed. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + external_account_collection: bool + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + instant_payouts: bool + """ + Whether to allow creation of instant payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + standard_payouts: bool + """ + Whether to allow creation of standard payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class DisputesList(StripeObject): + class Features(StripeObject): + capture_payments: bool + """ + Whether to allow capturing and cancelling payment intents. This is `true` by default. + """ + destination_on_behalf_of_charge_management: bool + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: bool + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: bool + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class Documents(StripeObject): + class Features(StripeObject): + pass + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class FinancialAccount(StripeObject): + class Features(StripeObject): + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: bool + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + send_money: bool + """ + Whether to allow sending money. + """ + transfer_balance: bool + """ + Whether to allow transferring balance. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class FinancialAccountTransactions(StripeObject): + class Features(StripeObject): + card_spend_dispute_management: bool + """ + Whether to allow card spend dispute management features. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class InstantPayoutsPromotion(StripeObject): + class Features(StripeObject): + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: bool + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + instant_payouts: bool + """ + Whether to allow creation of instant payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class IssuingCard(StripeObject): + class Features(StripeObject): + card_management: bool + """ + Whether to allow card management features. + """ + card_spend_dispute_management: bool + """ + Whether to allow card spend dispute management features. + """ + cardholder_management: bool + """ + Whether to allow cardholder management features. + """ + spend_control_management: bool + """ + Whether to allow spend control management features. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class IssuingCardsList(StripeObject): + class Features(StripeObject): + card_management: bool + """ + Whether to allow card management features. + """ + card_spend_dispute_management: bool + """ + Whether to allow card spend dispute management features. + """ + cardholder_management: bool + """ + Whether to allow cardholder management features. + """ + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + spend_control_management: bool + """ + Whether to allow spend control management features. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class NotificationBanner(StripeObject): + class Features(StripeObject): + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: bool + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class PaymentDetails(StripeObject): + class Features(StripeObject): + capture_payments: bool + """ + Whether to allow capturing and cancelling payment intents. This is `true` by default. + """ + destination_on_behalf_of_charge_management: bool + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: bool + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: bool + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class PaymentDisputes(StripeObject): + class Features(StripeObject): + destination_on_behalf_of_charge_management: bool + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: bool + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: bool + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class Payments(StripeObject): + class Features(StripeObject): + capture_payments: bool + """ + Whether to allow capturing and cancelling payment intents. This is `true` by default. + """ + destination_on_behalf_of_charge_management: bool + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: bool + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: bool + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class PayoutDetails(StripeObject): + class Features(StripeObject): + pass + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class Payouts(StripeObject): + class Features(StripeObject): + disable_stripe_user_authentication: bool + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + edit_payout_schedule: bool + """ + Whether to allow payout schedule to be changed. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + external_account_collection: bool + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + instant_payouts: bool + """ + Whether to allow creation of instant payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + standard_payouts: bool + """ + Whether to allow creation of standard payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class PayoutsList(StripeObject): + class Features(StripeObject): + pass + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class TaxRegistrations(StripeObject): + class Features(StripeObject): + pass + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + class TaxSettings(StripeObject): + class Features(StripeObject): + pass + + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: Features + _inner_class_types = {"features": Features} + + account_management: AccountManagement + account_onboarding: AccountOnboarding + balances: Balances + disputes_list: DisputesList + documents: Documents + financial_account: FinancialAccount + financial_account_transactions: FinancialAccountTransactions + instant_payouts_promotion: InstantPayoutsPromotion + issuing_card: IssuingCard + issuing_cards_list: IssuingCardsList + notification_banner: NotificationBanner + payment_details: PaymentDetails + payment_disputes: PaymentDisputes + payments: Payments + payout_details: PayoutDetails + payouts: Payouts + payouts_list: PayoutsList + tax_registrations: TaxRegistrations + tax_settings: TaxSettings + _inner_class_types = { + "account_management": AccountManagement, + "account_onboarding": AccountOnboarding, + "balances": Balances, + "disputes_list": DisputesList, + "documents": Documents, + "financial_account": FinancialAccount, + "financial_account_transactions": FinancialAccountTransactions, + "instant_payouts_promotion": InstantPayoutsPromotion, + "issuing_card": IssuingCard, + "issuing_cards_list": IssuingCardsList, + "notification_banner": NotificationBanner, + "payment_details": PaymentDetails, + "payment_disputes": PaymentDisputes, + "payments": Payments, + "payout_details": PayoutDetails, + "payouts": Payouts, + "payouts_list": PayoutsList, + "tax_registrations": TaxRegistrations, + "tax_settings": TaxSettings, + } + + account: str + """ + The ID of the account the AccountSession was created for + """ + client_secret: str + """ + The client secret of this AccountSession. Used on the client to set up secure access to the given `account`. + + The client secret can be used to provide access to `account` from your frontend. It should not be stored, logged, or exposed to anyone other than the connected account. Make sure that you have TLS enabled on any page that includes the client secret. + + Refer to our docs to [setup Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components) and learn about how `client_secret` should be handled. + """ + components: Components + expires_at: int + """ + The timestamp at which this AccountSession will expire. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["account_session"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def create( + cls, **params: Unpack["AccountSessionCreateParams"] + ) -> "AccountSession": + """ + Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access. + """ + return cast( + "AccountSession", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["AccountSessionCreateParams"] + ) -> "AccountSession": + """ + Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access. + """ + return cast( + "AccountSession", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + _inner_class_types = {"components": Components} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_account_session_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_account_session_service.py new file mode 100644 index 00000000..c0013cc7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_account_session_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account_session import AccountSession + from stripe._request_options import RequestOptions + from stripe.params._account_session_create_params import ( + AccountSessionCreateParams, + ) + + +class AccountSessionService(StripeService): + def create( + self, + params: "AccountSessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "AccountSession": + """ + Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access. + """ + return cast( + "AccountSession", + self._request( + "post", + "/v1/account_sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "AccountSessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "AccountSession": + """ + Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access. + """ + return cast( + "AccountSession", + await self._request_async( + "post", + "/v1/account_sessions", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_any_iterator.py b/Backend/venv/lib/python3.12/site-packages/stripe/_any_iterator.py new file mode 100644 index 00000000..0a7e6058 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_any_iterator.py @@ -0,0 +1,34 @@ +from typing import TypeVar, Iterator, AsyncIterator + +T = TypeVar("T") + + +class AnyIterator(Iterator[T], AsyncIterator[T]): + """ + AnyIterator supports iteration through both `for ... in ` and `async for ... in syntaxes. + """ + + def __init__( + self, iterator: Iterator[T], async_iterator: AsyncIterator[T] + ) -> None: + self._iterator = iterator + self._async_iterator = async_iterator + + self._sync_iterated = False + self._async_iterated = False + + def __next__(self) -> T: + if self._async_iterated: + raise RuntimeError( + "AnyIterator error: cannot mix sync and async iteration" + ) + self._sync_iterated = True + return self._iterator.__next__() + + async def __anext__(self) -> T: + if self._sync_iterated: + raise RuntimeError( + "AnyIterator error: cannot mix sync and async iteration" + ) + self._async_iterated = True + return await self._async_iterator.__anext__() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_api_mode.py b/Backend/venv/lib/python3.12/site-packages/stripe/_api_mode.py new file mode 100644 index 00000000..7290784d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_api_mode.py @@ -0,0 +1,4 @@ +from typing_extensions import Literal + + +ApiMode = Literal["V1", "V2"] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_api_requestor.py b/Backend/venv/lib/python3.12/site-packages/stripe/_api_requestor.py new file mode 100644 index 00000000..4c4e44cb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_api_requestor.py @@ -0,0 +1,919 @@ +from io import BytesIO, IOBase +import json +import platform +from typing import ( + Any, + AsyncIterable, + Dict, + List, + Mapping, + Optional, + Tuple, + Union, + cast, + ClassVar, +) +from typing_extensions import ( + TYPE_CHECKING, + Literal, + NoReturn, + Unpack, +) +import uuid +from urllib.parse import urlsplit, urlunsplit, parse_qs + +# breaking circular dependency +import stripe # noqa: IMP101 +from stripe._util import ( + log_debug, + log_info, + dashboard_link, + _convert_to_stripe_object, + get_api_mode, +) +from stripe._version import VERSION +import stripe._error as error +import stripe.oauth_error as oauth_error +from stripe._multipart_data_generator import MultipartDataGenerator +from urllib.parse import urlencode +from stripe._encode import _api_encode, _json_encode_date_callback +from stripe._stripe_response import ( + StripeResponse, + StripeStreamResponse, + StripeStreamResponseAsync, +) +from stripe._request_options import ( + PERSISTENT_OPTIONS_KEYS, + RequestOptions, + merge_options, +) +from stripe._requestor_options import ( + RequestorOptions, + _GlobalRequestorOptions, +) +from stripe._http_client import ( + HTTPClient, + new_default_http_client, + new_http_client_async_fallback, +) + +from stripe._base_address import BaseAddress +from stripe._api_mode import ApiMode + +if TYPE_CHECKING: + from stripe._app_info import AppInfo + from stripe._stripe_object import StripeObject + +HttpVerb = Literal["get", "post", "delete"] + +# Lazily initialized +_default_proxy: Optional[str] = None + + +def is_v2_delete_resp(method: str, api_mode: ApiMode) -> bool: + return method == "delete" and api_mode == "V2" + + +class _APIRequestor(object): + _instance: ClassVar["_APIRequestor|None"] = None + + def __init__( + self, + options: Optional[RequestorOptions] = None, + client: Optional[HTTPClient] = None, + ): + if options is None: + options = RequestorOptions() + self._options = options + self._client = client + + # In the case of client=None, we should use the current value of stripe.default_http_client + # or lazily initialize it. Since stripe.default_http_client can change throughout the lifetime of + # an _APIRequestor, we shouldn't set it as stripe._client and should access it only through this + # getter. + def _get_http_client(self) -> HTTPClient: + client = self._client + if client is None: + global _default_proxy + + if not stripe.default_http_client: + kwargs = { + "verify_ssl_certs": stripe.verify_ssl_certs, + "proxy": stripe.proxy, + } + # If the stripe.default_http_client has not been set by the user + # yet, we'll set it here. This way, we aren't creating a new + # HttpClient for every request. + stripe.default_http_client = new_default_http_client( + async_fallback_client=new_http_client_async_fallback( + **kwargs + ), + **kwargs, + ) + _default_proxy = stripe.proxy + elif stripe.proxy != _default_proxy: + import warnings + + warnings.warn( + "stripe.proxy was updated after sending a " + "request - this is a no-op. To use a different proxy, " + "set stripe.default_http_client to a new client " + "configured with the proxy." + ) + + assert stripe.default_http_client is not None + return stripe.default_http_client + return client + + def _new_requestor_with_options( + self, options: Optional[RequestOptions] + ) -> "_APIRequestor": + """ + Returns a new _APIRequestor instance with the same HTTP client but a (potentially) updated set of options. Useful for ensuring the original isn't modified, but any options the original had are still used. + """ + options = options or {} + new_options = self._options.to_dict() + for key in PERSISTENT_OPTIONS_KEYS: + if key in options and options[key] is not None: + new_options[key] = options[key] + return _APIRequestor( + options=RequestorOptions(**new_options), client=self._client + ) + + @property + def api_key(self): + return self._options.api_key + + @property + def stripe_account(self): + return self._options.stripe_account + + @property + def stripe_version(self): + return self._options.stripe_version + + @property + def base_addresses(self): + return self._options.base_addresses + + @classmethod + def _global_instance(cls): + """ + Returns the singleton instance of _APIRequestor, to be used when + calling a static method such as stripe.Customer.create(...) + """ + + # Lazily initialize. + if cls._instance is None: + cls._instance = cls(options=_GlobalRequestorOptions(), client=None) + return cls._instance + + @staticmethod + def _global_with_options( + **params: Unpack[RequestOptions], + ) -> "_APIRequestor": + return _APIRequestor._global_instance()._new_requestor_with_options( + params + ) + + @classmethod + def _format_app_info(cls, info): + str = info["name"] + if info["version"]: + str += "/%s" % (info["version"],) + if info["url"]: + str += " (%s)" % (info["url"],) + return str + + def request( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + usage: Optional[List[str]] = None, + ) -> "StripeObject": + api_mode = get_api_mode(url) + requestor = self._new_requestor_with_options(options) + rbody, rcode, rheaders = requestor.request_raw( + method.lower(), + url, + params, + is_streaming=False, + api_mode=api_mode, + base_address=base_address, + options=options, + usage=usage, + ) + resp = requestor._interpret_response(rbody, rcode, rheaders, api_mode) + + obj = _convert_to_stripe_object( + resp=resp, + params=params, + requestor=requestor, + api_mode=api_mode, + is_v2_deleted_object=is_v2_delete_resp(method, api_mode), + ) + + return obj + + async def request_async( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + usage: Optional[List[str]] = None, + ) -> "StripeObject": + api_mode = get_api_mode(url) + requestor = self._new_requestor_with_options(options) + rbody, rcode, rheaders = await requestor.request_raw_async( + method.lower(), + url, + params, + is_streaming=False, + api_mode=api_mode, + base_address=base_address, + options=options, + usage=usage, + ) + resp = requestor._interpret_response(rbody, rcode, rheaders, api_mode) + + obj = _convert_to_stripe_object( + resp=resp, + params=params, + requestor=requestor, + api_mode=api_mode, + is_v2_deleted_object=is_v2_delete_resp(method, api_mode), + ) + + return obj + + def request_stream( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + usage: Optional[List[str]] = None, + ) -> StripeStreamResponse: + api_mode = get_api_mode(url) + stream, rcode, rheaders = self.request_raw( + method.lower(), + url, + params, + is_streaming=True, + api_mode=api_mode, + base_address=base_address, + options=options, + usage=usage, + ) + resp = self._interpret_streaming_response( + # TODO: should be able to remove this cast once self._client.request_stream_with_retries + # returns a more specific type. + cast(IOBase, stream), + rcode, + rheaders, + api_mode, + ) + return resp + + async def request_stream_async( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + usage: Optional[List[str]] = None, + ) -> StripeStreamResponseAsync: + api_mode = get_api_mode(url) + stream, rcode, rheaders = await self.request_raw_async( + method.lower(), + url, + params, + is_streaming=True, + api_mode=api_mode, + base_address=base_address, + options=options, + usage=usage, + ) + resp = await self._interpret_streaming_response_async( + stream, + rcode, + rheaders, + api_mode, + ) + return resp + + def handle_error_response( + self, rbody, rcode, resp, rheaders, api_mode + ) -> NoReturn: + try: + error_data = resp["error"] + except (KeyError, TypeError): + raise error.APIError( + "Invalid response object from API: %r (HTTP response code " + "was %d)" % (rbody, rcode), + rbody, + rcode, + resp, + ) + + err = None + + # OAuth errors are a JSON object where `error` is a string. In + # contrast, in API errors, `error` is a hash with sub-keys. We use + # this property to distinguish between OAuth and API errors. + if isinstance(error_data, str): + err = self.specific_oauth_error( + rbody, rcode, resp, rheaders, error_data + ) + + if err is None: + err = ( + self.specific_v2_api_error( + rbody, rcode, resp, rheaders, error_data + ) + if api_mode == "V2" + else self.specific_v1_api_error( + rbody, rcode, resp, rheaders, error_data + ) + ) + + raise err + + def specific_v2_api_error(self, rbody, rcode, resp, rheaders, error_data): + type = error_data.get("type") + code = error_data.get("code") + message = error_data.get("message") + error_args = { + "message": message, + "http_body": rbody, + "http_status": rcode, + "json_body": resp, + "headers": rheaders, + "code": code, + } + + log_info( + "Stripe v2 API error received", + error_code=code, + error_type=error_data.get("type"), + error_message=message, + error_param=error_data.get("param"), + ) + + if type == "idempotency_error": + return error.IdempotencyError( + message, + rbody, + rcode, + resp, + rheaders, + code, + ) + # switchCases: The beginning of the section generated from our OpenAPI spec + elif type == "temporary_session_expired": + return error.TemporarySessionExpiredError(**error_args) + # switchCases: The end of the section generated from our OpenAPI spec + + return self.specific_v1_api_error( + rbody, rcode, resp, rheaders, error_data + ) + + def specific_v1_api_error(self, rbody, rcode, resp, rheaders, error_data): + log_info( + "Stripe v1 API error received", + error_code=error_data.get("code"), + error_type=error_data.get("type"), + error_message=error_data.get("message"), + error_param=error_data.get("param"), + ) + + # Rate limits were previously coded as 400's with code 'rate_limit' + if rcode == 429 or ( + rcode == 400 and error_data.get("code") == "rate_limit" + ): + return error.RateLimitError( + error_data.get("message"), rbody, rcode, resp, rheaders + ) + elif rcode in [400, 404]: + if error_data.get("type") == "idempotency_error": + return error.IdempotencyError( + error_data.get("message"), rbody, rcode, resp, rheaders + ) + else: + return error.InvalidRequestError( + error_data.get("message"), + error_data.get("param"), + error_data.get("code"), + rbody, + rcode, + resp, + rheaders, + ) + elif rcode == 401: + return error.AuthenticationError( + error_data.get("message"), rbody, rcode, resp, rheaders + ) + elif rcode == 402: + return error.CardError( + error_data.get("message"), + error_data.get("param"), + error_data.get("code"), + rbody, + rcode, + resp, + rheaders, + ) + elif rcode == 403: + return error.PermissionError( + error_data.get("message"), rbody, rcode, resp, rheaders + ) + else: + return error.APIError( + error_data.get("message"), rbody, rcode, resp, rheaders + ) + + def specific_oauth_error(self, rbody, rcode, resp, rheaders, error_code): + description = resp.get("error_description", error_code) + + log_info( + "Stripe OAuth error received", + error_code=error_code, + error_description=description, + ) + + args = [error_code, description, rbody, rcode, resp, rheaders] + + if error_code == "invalid_client": + return oauth_error.InvalidClientError(*args) + elif error_code == "invalid_grant": + return oauth_error.InvalidGrantError(*args) + elif error_code == "invalid_request": + return oauth_error.InvalidRequestError(*args) + elif error_code == "invalid_scope": + return oauth_error.InvalidScopeError(*args) + elif error_code == "unsupported_grant_type": + return oauth_error.UnsupportedGrantTypeError(*args) + elif error_code == "unsupported_response_type": + return oauth_error.UnsupportedResponseTypeError(*args) + + return None + + def request_headers( + self, method: HttpVerb, api_mode: ApiMode, options: RequestOptions + ): + user_agent = "Stripe/%s PythonBindings/%s" % ( + api_mode.lower(), + VERSION, + ) + if stripe.app_info: + user_agent += " " + self._format_app_info(stripe.app_info) + + ua: Dict[str, Union[str, "AppInfo"]] = { + "bindings_version": VERSION, + "lang": "python", + "publisher": "stripe", + "httplib": self._get_http_client().name, + } + for attr, func in [ + ["lang_version", platform.python_version], + ["platform", platform.platform], + ["uname", lambda: " ".join(platform.uname())], + ]: + try: + val = func() + except Exception: + val = "(disabled)" + ua[attr] = val + if stripe.app_info: + ua["application"] = stripe.app_info + + headers: Dict[str, str] = { + "X-Stripe-Client-User-Agent": json.dumps(ua), + "User-Agent": user_agent, + "Authorization": "Bearer %s" % (options.get("api_key"),), + } + + stripe_account = options.get("stripe_account") + if stripe_account: + headers["Stripe-Account"] = stripe_account + + stripe_context = options.get("stripe_context") + if stripe_context and str(stripe_context): + headers["Stripe-Context"] = str(stripe_context) + + idempotency_key = options.get("idempotency_key") + if idempotency_key: + headers["Idempotency-Key"] = idempotency_key + + # IKs should be set for all POST requests and v2 delete requests + if method == "post" or (api_mode == "V2" and method == "delete"): + headers.setdefault("Idempotency-Key", str(uuid.uuid4())) + + if method == "post": + if api_mode == "V2": + headers["Content-Type"] = "application/json" + else: + headers["Content-Type"] = "application/x-www-form-urlencoded" + + stripe_version = options.get("stripe_version") + if stripe_version: + headers["Stripe-Version"] = stripe_version + + return headers + + def _args_for_request_with_retries( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + api_mode: ApiMode, + usage: Optional[List[str]] = None, + ): + """ + Mechanism for issuing an API call. Used by request_raw and request_raw_async. + """ + request_options = merge_options(self._options, options) + + # Special stripe_version handling for v2 requests: + if ( + options + and "stripe_version" in options + and (options["stripe_version"] is not None) + ): + # If user specified an API version, honor it + request_options["stripe_version"] = options["stripe_version"] + + if request_options.get("api_key") is None: + raise error.AuthenticationError( + "No API key provided. (HINT: set your API key using " + '"stripe.api_key = "). You can generate API keys ' + "from the Stripe web interface. See https://stripe.com/api " + "for details, or email support@stripe.com if you have any " + "questions." + ) + + abs_url = "%s%s" % ( + self._options.base_addresses.get(base_address), + url, + ) + + params = params or {} + if params and (method == "get" or method == "delete"): + # if we're sending params in the querystring, then we have to make sure we're not + # duplicating anything we got back from the server already (like in a list iterator) + # so, we parse the querystring the server sends back so we can merge with what we (or the user) are trying to send + existing_params = {} + for k, v in parse_qs(urlsplit(url).query).items(): + # note: server sends back "expand[]" but users supply "expand", so we strip the brackets from the key name + if k.endswith("[]"): + existing_params[k[:-2]] = v + else: + # all querystrings are pulled out as lists. + # We want to keep the querystrings that actually are lists, but flatten the ones that are single values + existing_params[k] = v[0] if len(v) == 1 else v + + # if a user is expanding something that wasn't expanded before, add (and deduplicate) it + # this could theoretically work for other lists that we want to merge too, but that doesn't seem to be a use case + # it never would have worked before, so I think we can start with `expand` and go from there + if "expand" in existing_params and "expand" in params: + params["expand"] = list( # type:ignore - this is a dict + set([*existing_params["expand"], *params["expand"]]) + ) + + params = { + **existing_params, + # user_supplied params take precedence over server params + **params, + } + + encoded_params = urlencode(list(_api_encode(params or {}, api_mode))) + + # Don't use strict form encoding by changing the square bracket control + # characters back to their literals. This is fine by the server, and + # makes these parameter strings easier to read. + encoded_params = encoded_params.replace("%5B", "[").replace("%5D", "]") + + if api_mode == "V2": + encoded_body = json.dumps( + params or {}, default=_json_encode_date_callback + ) + else: + encoded_body = encoded_params + + supplied_headers = None + if ( + "headers" in request_options + and request_options["headers"] is not None + ): + supplied_headers = dict(request_options["headers"]) + + headers = self.request_headers( + # this cast is safe because the blocks below validate that `method` is one of the allowed values + cast(HttpVerb, method), + api_mode, + request_options, + ) + + if method == "get" or method == "delete": + if params: + # if we're sending query params, we've already merged the incoming ones with the server's "url" + # so we can overwrite the whole thing + scheme, netloc, path, _, fragment = urlsplit(abs_url) + + abs_url = urlunsplit( + (scheme, netloc, path, encoded_params, fragment) + ) + post_data = None + elif method == "post": + if ( + options is not None + and options.get("content_type") == "multipart/form-data" + ): + generator = MultipartDataGenerator() + generator.add_params(params or {}) + post_data = generator.get_post_data() + headers["Content-Type"] = ( + "multipart/form-data; boundary=%s" % (generator.boundary,) + ) + else: + post_data = encoded_body + else: + raise error.APIConnectionError( + "Unrecognized HTTP method %r. This may indicate a bug in the " + "Stripe bindings. Please contact support@stripe.com for " + "assistance." % (method,) + ) + + if supplied_headers is not None: + for key, value in supplied_headers.items(): + headers[key] = value + + max_network_retries = request_options.get("max_network_retries") + + return ( + # Actual args + method, + abs_url, + headers, + post_data, + max_network_retries, + usage, + # For logging + encoded_params, + request_options.get("stripe_version"), + ) + + def request_raw( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + is_streaming: bool = False, + *, + base_address: BaseAddress, + api_mode: ApiMode, + usage: Optional[List[str]] = None, + ) -> Tuple[object, int, Mapping[str, str]]: + ( + method, + abs_url, + headers, + post_data, + max_network_retries, + usage, + encoded_params, + api_version, + ) = self._args_for_request_with_retries( + method, + url, + params, + options, + base_address=base_address, + api_mode=api_mode, + usage=usage, + ) + + log_info("Request to Stripe api", method=method, url=abs_url) + log_debug( + "Post details", post_data=encoded_params, api_version=api_version + ) + + if is_streaming: + ( + rcontent, + rcode, + rheaders, + ) = self._get_http_client().request_stream_with_retries( + method, + abs_url, + headers, + post_data, + max_network_retries=max_network_retries, + _usage=usage, + ) + else: + ( + rcontent, + rcode, + rheaders, + ) = self._get_http_client().request_with_retries( + method, + abs_url, + headers, + post_data, + max_network_retries=max_network_retries, + _usage=usage, + ) + + log_info("Stripe API response", path=abs_url, response_code=rcode) + log_debug("API response body", body=rcontent) + + if "Request-Id" in rheaders: + request_id = rheaders["Request-Id"] + log_debug( + "Dashboard link for request", + link=dashboard_link(request_id), + ) + + return rcontent, rcode, rheaders + + async def request_raw_async( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + is_streaming: bool = False, + *, + base_address: BaseAddress, + api_mode: ApiMode, + usage: Optional[List[str]] = None, + ) -> Tuple[AsyncIterable[bytes], int, Mapping[str, str]]: + """ + Mechanism for issuing an API call + """ + + usage = usage or [] + usage = usage + ["async"] + + ( + method, + abs_url, + headers, + post_data, + max_network_retries, + usage, + encoded_params, + api_version, + ) = self._args_for_request_with_retries( + method, + url, + params, + options, + base_address=base_address, + api_mode=api_mode, + usage=usage, + ) + + log_info("Request to Stripe api", method=method, url=abs_url) + log_debug( + "Post details", + post_data=encoded_params, + api_version=api_version, + ) + + if is_streaming: + ( + rcontent, + rcode, + rheaders, + ) = await self._get_http_client().request_stream_with_retries_async( + method, + abs_url, + headers, + post_data, + max_network_retries=max_network_retries, + _usage=usage, + ) + else: + ( + rcontent, + rcode, + rheaders, + ) = await self._get_http_client().request_with_retries_async( + method, + abs_url, + headers, + post_data, + max_network_retries=max_network_retries, + _usage=usage, + ) + + log_info("Stripe API response", path=abs_url, response_code=rcode) + log_debug("API response body", body=rcontent) + + if "Request-Id" in rheaders: + request_id = rheaders["Request-Id"] + log_debug( + "Dashboard link for request", + link=dashboard_link(request_id), + ) + + return rcontent, rcode, rheaders + + def _should_handle_code_as_error(self, rcode: int) -> bool: + return not 200 <= rcode < 300 + + def _interpret_response( + self, + rbody: object, + rcode: int, + rheaders: Mapping[str, str], + api_mode: ApiMode, + ) -> StripeResponse: + try: + if hasattr(rbody, "decode"): + # TODO: should be able to remove this cast once self._client.request_with_retries + # returns a more specific type. + rbody = cast(bytes, rbody).decode("utf-8") + resp = StripeResponse( + cast(str, rbody), + rcode, + rheaders, + ) + except Exception: + raise error.APIError( + "Invalid response body from API: %s " + "(HTTP response code was %d)" % (rbody, rcode), + cast(bytes, rbody), + rcode, + rheaders, + ) + if self._should_handle_code_as_error(rcode): + self.handle_error_response( + rbody, rcode, resp.data, rheaders, api_mode + ) + return resp + + def _interpret_streaming_response( + self, + stream: IOBase, + rcode: int, + rheaders: Mapping[str, str], + api_mode: ApiMode, + ) -> StripeStreamResponse: + # Streaming response are handled with minimal processing for the success + # case (ie. we don't want to read the content). When an error is + # received, we need to read from the stream and parse the received JSON, + # treating it like a standard JSON response. + if self._should_handle_code_as_error(rcode): + if hasattr(stream, "getvalue"): + json_content = cast(BytesIO, stream).getvalue() + elif hasattr(stream, "read"): + json_content = stream.read() + else: + raise NotImplementedError( + "HTTP client %s does not return an IOBase object which " + "can be consumed when streaming a response." + % self._get_http_client().name + ) + + self._interpret_response(json_content, rcode, rheaders, api_mode) + # _interpret_response is guaranteed to throw since we've checked self._should_handle_code_as_error + raise RuntimeError( + "_interpret_response should have raised an error" + ) + else: + return StripeStreamResponse(stream, rcode, rheaders) + + async def _interpret_streaming_response_async( + self, + stream: AsyncIterable[bytes], + rcode: int, + rheaders: Mapping[str, str], + api_mode: ApiMode, + ) -> StripeStreamResponseAsync: + if self._should_handle_code_as_error(rcode): + json_content = b"".join([chunk async for chunk in stream]) + self._interpret_response(json_content, rcode, rheaders, api_mode) + # _interpret_response is guaranteed to throw since we've checked self._should_handle_code_as_error + raise RuntimeError( + "_interpret_response should have raised an error" + ) + else: + return StripeStreamResponseAsync(stream, rcode, rheaders) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_api_resource.py b/Backend/venv/lib/python3.12/site-packages/stripe/_api_resource.py new file mode 100644 index 00000000..2866b42c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_api_resource.py @@ -0,0 +1,232 @@ +from typing_extensions import Literal, Self + +from stripe._error import InvalidRequestError +from stripe._stripe_object import StripeObject +from stripe._request_options import extract_options_from_dict +from stripe._api_mode import ApiMode +from stripe._base_address import BaseAddress +from stripe._api_requestor import _APIRequestor +from stripe import _util +from urllib.parse import quote_plus +from typing import ( + Any, + ClassVar, + Generic, + List, + Optional, + TypeVar, + cast, + Mapping, +) + +T = TypeVar("T", bound=StripeObject) + + +class APIResource(StripeObject, Generic[T]): + OBJECT_NAME: ClassVar[str] + + @classmethod + @_util.deprecated( + "This method is deprecated and will be removed in a future version of stripe-python. Child classes of APIResource should define their own `retrieve` and use APIResource._request directly." + ) + def retrieve(cls, id, **params) -> T: + instance = cls(id, **params) + instance.refresh() + return cast(T, instance) + + def refresh(self) -> Self: + return self._request_and_refresh("get", self.instance_url()) + + async def refresh_async(self) -> Self: + return await self._request_and_refresh_async( + "get", self.instance_url() + ) + + @classmethod + def class_url(cls) -> str: + if cls == APIResource: + raise NotImplementedError( + "APIResource is an abstract class. You should perform " + "actions on its subclasses (e.g. Charge, Customer)" + ) + # Namespaces are separated in object names with periods (.) and in URLs + # with forward slashes (/), so replace the former with the latter. + base = cls.OBJECT_NAME.replace(".", "/") + return "/v1/%ss" % (base,) + + def instance_url(self) -> str: + id = self.get("id") + + if not isinstance(id, str): + raise InvalidRequestError( + "Could not determine which URL to request: %s instance " + "has invalid ID: %r, %s. ID should be of type `str` (or" + " `unicode`)" % (type(self).__name__, id, type(id)), + "id", + ) + + base = self.class_url() + extn = quote_plus(id) + return "%s/%s" % (base, extn) + + def _request( + self, + method, + url, + params=None, + *, + base_address: BaseAddress = "api", + api_mode: ApiMode = "V1", + ) -> StripeObject: + obj = StripeObject._request( + self, + method, + url, + params=params, + base_address=base_address, + ) + + if type(self) is type(obj): + self._refresh_from(values=obj, api_mode=api_mode) + return self + else: + return obj + + async def _request_async( + self, + method, + url, + params=None, + *, + base_address: BaseAddress = "api", + api_mode: ApiMode = "V1", + ) -> StripeObject: + obj = await StripeObject._request_async( + self, + method, + url, + params=params, + base_address=base_address, + ) + + if type(self) is type(obj): + self._refresh_from(values=obj, api_mode=api_mode) + return self + else: + return obj + + def _request_and_refresh( + self, + method: Literal["get", "post", "delete"], + url: str, + params: Optional[Mapping[str, Any]] = None, + usage: Optional[List[str]] = None, + *, + base_address: BaseAddress = "api", + api_mode: ApiMode = "V1", + ) -> Self: + obj = StripeObject._request( + self, + method, + url, + params=params, + base_address=base_address, + usage=usage, + ) + + self._refresh_from(values=obj, api_mode=api_mode) + return self + + async def _request_and_refresh_async( + self, + method: Literal["get", "post", "delete"], + url: str, + params: Optional[Mapping[str, Any]] = None, + usage: Optional[List[str]] = None, + *, + base_address: BaseAddress = "api", + api_mode: ApiMode = "V1", + ) -> Self: + obj = await StripeObject._request_async( + self, + method, + url, + params=params, + base_address=base_address, + usage=usage, + ) + + self._refresh_from(values=obj, api_mode=api_mode) + return self + + @classmethod + def _static_request( + cls, + method_, + url_, + params: Optional[Mapping[str, Any]] = None, + *, + base_address: BaseAddress = "api", + ): + request_options, request_params = extract_options_from_dict(params) + return _APIRequestor._global_instance().request( + method_, + url_, + params=request_params, + options=request_options, + base_address=base_address, + ) + + @classmethod + async def _static_request_async( + cls, + method_, + url_, + params: Optional[Mapping[str, Any]] = None, + *, + base_address: BaseAddress = "api", + ): + request_options, request_params = extract_options_from_dict(params) + return await _APIRequestor._global_instance().request_async( + method_, + url_, + params=request_params, + options=request_options, + base_address=base_address, + ) + + @classmethod + def _static_request_stream( + cls, + method, + url, + params: Optional[Mapping[str, Any]] = None, + *, + base_address: BaseAddress = "api", + ): + request_options, request_params = extract_options_from_dict(params) + return _APIRequestor._global_instance().request_stream( + method, + url, + params=request_params, + options=request_options, + base_address=base_address, + ) + + @classmethod + async def _static_request_stream_async( + cls, + method, + url, + params: Optional[Mapping[str, Any]] = None, + *, + base_address: BaseAddress = "api", + ): + request_options, request_params = extract_options_from_dict(params) + return await _APIRequestor._global_instance().request_stream_async( + method, + url, + params=request_params, + options=request_options, + base_address=base_address, + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_api_version.py b/Backend/venv/lib/python3.12/site-packages/stripe/_api_version.py new file mode 100644 index 00000000..570f6144 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_api_version.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +class _ApiVersion: + CURRENT = "2025-10-29.clover" + CURRENT_MAJOR = "clover" diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_app_info.py b/Backend/venv/lib/python3.12/site-packages/stripe/_app_info.py new file mode 100644 index 00000000..d31679fa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_app_info.py @@ -0,0 +1,9 @@ +from typing import Optional +from typing_extensions import TypedDict + + +class AppInfo(TypedDict): + name: str + partner_id: Optional[str] + url: Optional[str] + version: Optional[str] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_apple_pay_domain.py b/Backend/venv/lib/python3.12/site-packages/stripe/_apple_pay_domain.py new file mode 100644 index 00000000..3ed5195a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_apple_pay_domain.py @@ -0,0 +1,248 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._apple_pay_domain_create_params import ( + ApplePayDomainCreateParams, + ) + from stripe.params._apple_pay_domain_delete_params import ( + ApplePayDomainDeleteParams, + ) + from stripe.params._apple_pay_domain_list_params import ( + ApplePayDomainListParams, + ) + from stripe.params._apple_pay_domain_retrieve_params import ( + ApplePayDomainRetrieveParams, + ) + + +class ApplePayDomain( + CreateableAPIResource["ApplePayDomain"], + DeletableAPIResource["ApplePayDomain"], + ListableAPIResource["ApplePayDomain"], +): + OBJECT_NAME: ClassVar[Literal["apple_pay_domain"]] = "apple_pay_domain" + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + domain_name: str + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["apple_pay_domain"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def create( + cls, **params: Unpack["ApplePayDomainCreateParams"] + ) -> "ApplePayDomain": + """ + Create an apple pay domain. + """ + return cast( + "ApplePayDomain", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ApplePayDomainCreateParams"] + ) -> "ApplePayDomain": + """ + Create an apple pay domain. + """ + return cast( + "ApplePayDomain", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "ApplePayDomain", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + ... + + @overload + def delete( + self, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "ApplePayDomain", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ApplePayDomainDeleteParams"] + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["ApplePayDomainListParams"] + ) -> ListObject["ApplePayDomain"]: + """ + List apple pay domains. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ApplePayDomainListParams"] + ) -> ListObject["ApplePayDomain"]: + """ + List apple pay domains. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ApplePayDomainRetrieveParams"] + ) -> "ApplePayDomain": + """ + Retrieve an apple pay domain. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ApplePayDomainRetrieveParams"] + ) -> "ApplePayDomain": + """ + Retrieve an apple pay domain. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def class_url(cls): + return "/v1/apple_pay/domains" diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_apple_pay_domain_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_apple_pay_domain_service.py new file mode 100644 index 00000000..6c72f7d6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_apple_pay_domain_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._apple_pay_domain import ApplePayDomain + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._apple_pay_domain_create_params import ( + ApplePayDomainCreateParams, + ) + from stripe.params._apple_pay_domain_delete_params import ( + ApplePayDomainDeleteParams, + ) + from stripe.params._apple_pay_domain_list_params import ( + ApplePayDomainListParams, + ) + from stripe.params._apple_pay_domain_retrieve_params import ( + ApplePayDomainRetrieveParams, + ) + + +class ApplePayDomainService(StripeService): + def delete( + self, + domain: str, + params: Optional["ApplePayDomainDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + return cast( + "ApplePayDomain", + self._request( + "delete", + "/v1/apple_pay/domains/{domain}".format( + domain=sanitize_id(domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + domain: str, + params: Optional["ApplePayDomainDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplePayDomain": + """ + Delete an apple pay domain. + """ + return cast( + "ApplePayDomain", + await self._request_async( + "delete", + "/v1/apple_pay/domains/{domain}".format( + domain=sanitize_id(domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + domain: str, + params: Optional["ApplePayDomainRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplePayDomain": + """ + Retrieve an apple pay domain. + """ + return cast( + "ApplePayDomain", + self._request( + "get", + "/v1/apple_pay/domains/{domain}".format( + domain=sanitize_id(domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + domain: str, + params: Optional["ApplePayDomainRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplePayDomain": + """ + Retrieve an apple pay domain. + """ + return cast( + "ApplePayDomain", + await self._request_async( + "get", + "/v1/apple_pay/domains/{domain}".format( + domain=sanitize_id(domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["ApplePayDomainListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ApplePayDomain]": + """ + List apple pay domains. + """ + return cast( + "ListObject[ApplePayDomain]", + self._request( + "get", + "/v1/apple_pay/domains", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ApplePayDomainListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ApplePayDomain]": + """ + List apple pay domains. + """ + return cast( + "ListObject[ApplePayDomain]", + await self._request_async( + "get", + "/v1/apple_pay/domains", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ApplePayDomainCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ApplePayDomain": + """ + Create an apple pay domain. + """ + return cast( + "ApplePayDomain", + self._request( + "post", + "/v1/apple_pay/domains", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ApplePayDomainCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ApplePayDomain": + """ + Create an apple pay domain. + """ + return cast( + "ApplePayDomain", + await self._request_async( + "post", + "/v1/apple_pay/domains", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_application.py b/Backend/venv/lib/python3.12/site-packages/stripe/_application.py new file mode 100644 index 00000000..dee1e54f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_application.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal + + +class Application(StripeObject): + OBJECT_NAME: ClassVar[Literal["application"]] = "application" + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + id: str + """ + Unique identifier for the object. + """ + name: Optional[str] + """ + The name of the application. + """ + object: Literal["application"] + """ + String representing the object's type. Objects of the same type share the same value. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee.py b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee.py new file mode 100644 index 00000000..f83ab1ea --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee.py @@ -0,0 +1,520 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._application_fee_refund import ApplicationFeeRefund + from stripe._balance_transaction import BalanceTransaction + from stripe._charge import Charge + from stripe.params._application_fee_create_refund_params import ( + ApplicationFeeCreateRefundParams, + ) + from stripe.params._application_fee_list_params import ( + ApplicationFeeListParams, + ) + from stripe.params._application_fee_list_refunds_params import ( + ApplicationFeeListRefundsParams, + ) + from stripe.params._application_fee_modify_refund_params import ( + ApplicationFeeModifyRefundParams, + ) + from stripe.params._application_fee_refund_params import ( + ApplicationFeeRefundParams, + ) + from stripe.params._application_fee_retrieve_params import ( + ApplicationFeeRetrieveParams, + ) + from stripe.params._application_fee_retrieve_refund_params import ( + ApplicationFeeRetrieveRefundParams, + ) + + +@nested_resource_class_methods("refund") +class ApplicationFee(ListableAPIResource["ApplicationFee"]): + OBJECT_NAME: ClassVar[Literal["application_fee"]] = "application_fee" + + class FeeSource(StripeObject): + charge: Optional[str] + """ + Charge ID that created this application fee. + """ + payout: Optional[str] + """ + Payout ID that created this application fee. + """ + type: Literal["charge", "payout"] + """ + Type of object that created the application fee. + """ + + account: ExpandableField["Account"] + """ + ID of the Stripe account this fee was taken from. + """ + amount: int + """ + Amount earned, in cents (or local equivalent). + """ + amount_refunded: int + """ + Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the fee if a partial refund was issued) + """ + application: ExpandableField["Application"] + """ + ID of the Connect application that earned the fee. + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds). + """ + charge: ExpandableField["Charge"] + """ + ID of the charge that the application fee was taken from. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + fee_source: Optional[FeeSource] + """ + Polymorphic source of the application fee. Includes the ID of the object the application fee was created from. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["application_fee"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + originating_transaction: Optional[ExpandableField["Charge"]] + """ + ID of the corresponding charge on the platform account, if this fee was the result of a charge using the `destination` parameter. + """ + refunded: bool + """ + Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false. + """ + refunds: ListObject["ApplicationFeeRefund"] + """ + A list of refunds that have been applied to the fee. + """ + + @classmethod + def list( + cls, **params: Unpack["ApplicationFeeListParams"] + ) -> ListObject["ApplicationFee"]: + """ + Returns a list of application fees you've previously collected. The application fees are returned in sorted order, with the most recent fees appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ApplicationFeeListParams"] + ) -> ListObject["ApplicationFee"]: + """ + Returns a list of application fees you've previously collected. The application fees are returned in sorted order, with the most recent fees appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_refund( + cls, id: str, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + cls._static_request( + "post", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + def refund( + id: str, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + ... + + @overload + def refund( + self, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + ... + + @class_method_variant("_cls_refund") + def refund( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + self._request( + "post", + "/v1/application_fees/{id}/refunds".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_refund_async( + cls, id: str, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + await cls._static_request_async( + "post", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + async def refund_async( + id: str, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + ... + + @overload + async def refund_async( + self, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + ... + + @class_method_variant("_cls_refund_async") + async def refund_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ApplicationFeeRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + await self._request_async( + "post", + "/v1/application_fees/{id}/refunds".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ApplicationFeeRetrieveParams"] + ) -> "ApplicationFee": + """ + Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ApplicationFeeRetrieveParams"] + ) -> "ApplicationFee": + """ + Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def retrieve_refund( + cls, + fee: str, + id: str, + **params: Unpack["ApplicationFeeRetrieveRefundParams"], + ) -> "ApplicationFeeRefund": + """ + By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee. + """ + return cast( + "ApplicationFeeRefund", + cls._static_request( + "get", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_refund_async( + cls, + fee: str, + id: str, + **params: Unpack["ApplicationFeeRetrieveRefundParams"], + ) -> "ApplicationFeeRefund": + """ + By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee. + """ + return cast( + "ApplicationFeeRefund", + await cls._static_request_async( + "get", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def modify_refund( + cls, + fee: str, + id: str, + **params: Unpack["ApplicationFeeModifyRefundParams"], + ) -> "ApplicationFeeRefund": + """ + Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata as an argument. + """ + return cast( + "ApplicationFeeRefund", + cls._static_request( + "post", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def modify_refund_async( + cls, + fee: str, + id: str, + **params: Unpack["ApplicationFeeModifyRefundParams"], + ) -> "ApplicationFeeRefund": + """ + Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata as an argument. + """ + return cast( + "ApplicationFeeRefund", + await cls._static_request_async( + "post", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def list_refunds( + cls, id: str, **params: Unpack["ApplicationFeeListRefundsParams"] + ) -> ListObject["ApplicationFeeRefund"]: + """ + You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds. + """ + return cast( + ListObject["ApplicationFeeRefund"], + cls._static_request( + "get", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + params=params, + ), + ) + + @classmethod + async def list_refunds_async( + cls, id: str, **params: Unpack["ApplicationFeeListRefundsParams"] + ) -> ListObject["ApplicationFeeRefund"]: + """ + You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds. + """ + return cast( + ListObject["ApplicationFeeRefund"], + await cls._static_request_async( + "get", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + params=params, + ), + ) + + @classmethod + def create_refund( + cls, id: str, **params: Unpack["ApplicationFeeCreateRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + cls._static_request( + "post", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + params=params, + ), + ) + + @classmethod + async def create_refund_async( + cls, id: str, **params: Unpack["ApplicationFeeCreateRefundParams"] + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + await cls._static_request_async( + "post", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + params=params, + ), + ) + + _inner_class_types = {"fee_source": FeeSource} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_refund.py b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_refund.py new file mode 100644 index 00000000..4ae51aeb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_refund.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._application_fee import ApplicationFee +from stripe._expandable_field import ExpandableField +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + + +class ApplicationFeeRefund(UpdateableAPIResource["ApplicationFeeRefund"]): + """ + `Application Fee Refund` objects allow you to refund an application fee that + has previously been created but not yet refunded. Funds will be refunded to + the Stripe account from which the fee was originally collected. + + Related guide: [Refunding application fees](https://stripe.com/docs/connect/destination-charges#refunding-app-fee) + """ + + OBJECT_NAME: ClassVar[Literal["fee_refund"]] = "fee_refund" + amount: int + """ + Amount, in cents (or local equivalent). + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + Balance transaction that describes the impact on your account balance. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + fee: ExpandableField["ApplicationFee"] + """ + ID of the application fee that was refunded. + """ + id: str + """ + Unique identifier for the object. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["fee_refund"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def _build_instance_url(cls, fee, sid): + base = ApplicationFee.class_url() + cust_extn = sanitize_id(fee) + extn = sanitize_id(sid) + return "%s/%s/refunds/%s" % (base, cust_extn, extn) + + @classmethod + def modify(cls, fee, sid, **params) -> "ApplicationFeeRefund": + url = cls._build_instance_url(fee, sid) + return cast( + "ApplicationFeeRefund", + cls._static_request("post", url, params=params), + ) + + def instance_url(self): + return self._build_instance_url(self.fee, self.id) + + @classmethod + def retrieve(cls, id, **params) -> "ApplicationFeeRefund": + raise NotImplementedError( + "Can't retrieve a refund without an application fee ID. " + "Use application_fee.refunds.retrieve('refund_id') instead." + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_refund_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_refund_service.py new file mode 100644 index 00000000..1f109689 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_refund_service.py @@ -0,0 +1,221 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._application_fee_refund import ApplicationFeeRefund + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._application_fee_refund_create_params import ( + ApplicationFeeRefundCreateParams, + ) + from stripe.params._application_fee_refund_list_params import ( + ApplicationFeeRefundListParams, + ) + from stripe.params._application_fee_refund_retrieve_params import ( + ApplicationFeeRefundRetrieveParams, + ) + from stripe.params._application_fee_refund_update_params import ( + ApplicationFeeRefundUpdateParams, + ) + + +class ApplicationFeeRefundService(StripeService): + def retrieve( + self, + fee: str, + id: str, + params: Optional["ApplicationFeeRefundRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFeeRefund": + """ + By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee. + """ + return cast( + "ApplicationFeeRefund", + self._request( + "get", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + fee: str, + id: str, + params: Optional["ApplicationFeeRefundRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFeeRefund": + """ + By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee. + """ + return cast( + "ApplicationFeeRefund", + await self._request_async( + "get", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + fee: str, + id: str, + params: Optional["ApplicationFeeRefundUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFeeRefund": + """ + Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata as an argument. + """ + return cast( + "ApplicationFeeRefund", + self._request( + "post", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + fee: str, + id: str, + params: Optional["ApplicationFeeRefundUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFeeRefund": + """ + Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata as an argument. + """ + return cast( + "ApplicationFeeRefund", + await self._request_async( + "post", + "/v1/application_fees/{fee}/refunds/{id}".format( + fee=sanitize_id(fee), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + id: str, + params: Optional["ApplicationFeeRefundListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ApplicationFeeRefund]": + """ + You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds. + """ + return cast( + "ListObject[ApplicationFeeRefund]", + self._request( + "get", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + id: str, + params: Optional["ApplicationFeeRefundListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ApplicationFeeRefund]": + """ + You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds. + """ + return cast( + "ListObject[ApplicationFeeRefund]", + await self._request_async( + "get", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + id: str, + params: Optional["ApplicationFeeRefundCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + self._request( + "post", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + id: str, + params: Optional["ApplicationFeeRefundCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFeeRefund": + """ + Refunds an application fee that has previously been collected but not yet refunded. + Funds will be refunded to the Stripe account from which the fee was originally collected. + + You can optionally refund only part of an application fee. + You can do so multiple times, until the entire fee has been refunded. + + Once entirely refunded, an application fee can't be refunded again. + This method will raise an error when called on an already-refunded application fee, + or when trying to refund more money than is left on an application fee. + """ + return cast( + "ApplicationFeeRefund", + await self._request_async( + "post", + "/v1/application_fees/{id}/refunds".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_service.py new file mode 100644 index 00000000..814c3ad9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_application_fee_service.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._application_fee import ApplicationFee + from stripe._application_fee_refund_service import ( + ApplicationFeeRefundService, + ) + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._application_fee_list_params import ( + ApplicationFeeListParams, + ) + from stripe.params._application_fee_retrieve_params import ( + ApplicationFeeRetrieveParams, + ) + +_subservices = { + "refunds": [ + "stripe._application_fee_refund_service", + "ApplicationFeeRefundService", + ], +} + + +class ApplicationFeeService(StripeService): + refunds: "ApplicationFeeRefundService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["ApplicationFeeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ApplicationFee]": + """ + Returns a list of application fees you've previously collected. The application fees are returned in sorted order, with the most recent fees appearing first. + """ + return cast( + "ListObject[ApplicationFee]", + self._request( + "get", + "/v1/application_fees", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ApplicationFeeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ApplicationFee]": + """ + Returns a list of application fees you've previously collected. The application fees are returned in sorted order, with the most recent fees appearing first. + """ + return cast( + "ListObject[ApplicationFee]", + await self._request_async( + "get", + "/v1/application_fees", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["ApplicationFeeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFee": + """ + Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee. + """ + return cast( + "ApplicationFee", + self._request( + "get", + "/v1/application_fees/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["ApplicationFeeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ApplicationFee": + """ + Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee. + """ + return cast( + "ApplicationFee", + await self._request_async( + "get", + "/v1/application_fees/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_apps_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_apps_service.py new file mode 100644 index 00000000..d20e1347 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_apps_service.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.apps._secret_service import SecretService + +_subservices = {"secrets": ["stripe.apps._secret_service", "SecretService"]} + + +class AppsService(StripeService): + secrets: "SecretService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_balance.py b/Backend/venv/lib/python3.12/site-packages/stripe/_balance.py new file mode 100644 index 00000000..e3a5e847 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_balance.py @@ -0,0 +1,317 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._singleton_api_resource import SingletonAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._balance_retrieve_params import BalanceRetrieveParams + + +class Balance(SingletonAPIResource["Balance"]): + """ + This is an object representing your Stripe balance. You can retrieve it to see + the balance currently on your Stripe account. + + The top-level `available` and `pending` comprise your "payments balance." + + Related guide: [Balances and settlement time](https://stripe.com/docs/payments/balances), [Understanding Connect account balances](https://stripe.com/docs/connect/account-balances) + """ + + OBJECT_NAME: ClassVar[Literal["balance"]] = "balance" + + class Available(StripeObject): + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Balance amount. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + source_types: Optional[SourceTypes] + _inner_class_types = {"source_types": SourceTypes} + + class ConnectReserved(StripeObject): + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Balance amount. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + source_types: Optional[SourceTypes] + _inner_class_types = {"source_types": SourceTypes} + + class InstantAvailable(StripeObject): + class NetAvailable(StripeObject): + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Net balance amount, subtracting fees from platform-set pricing. + """ + destination: str + """ + ID of the external account for this net balance (not expandable). + """ + source_types: Optional[SourceTypes] + _inner_class_types = {"source_types": SourceTypes} + + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Balance amount. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + net_available: Optional[List[NetAvailable]] + """ + Breakdown of balance by destination. + """ + source_types: Optional[SourceTypes] + _inner_class_types = { + "net_available": NetAvailable, + "source_types": SourceTypes, + } + + class Issuing(StripeObject): + class Available(StripeObject): + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Balance amount. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + source_types: Optional[SourceTypes] + _inner_class_types = {"source_types": SourceTypes} + + available: List[Available] + """ + Funds that are available for use. + """ + _inner_class_types = {"available": Available} + + class Pending(StripeObject): + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Balance amount. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + source_types: Optional[SourceTypes] + _inner_class_types = {"source_types": SourceTypes} + + class RefundAndDisputePrefunding(StripeObject): + class Available(StripeObject): + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Balance amount. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + source_types: Optional[SourceTypes] + _inner_class_types = {"source_types": SourceTypes} + + class Pending(StripeObject): + class SourceTypes(StripeObject): + bank_account: Optional[int] + """ + Amount coming from [legacy US ACH payments](https://docs.stripe.com/ach-deprecated). + """ + card: Optional[int] + """ + Amount coming from most payment methods, including cards as well as [non-legacy bank debits](https://docs.stripe.com/payments/bank-debits). + """ + fpx: Optional[int] + """ + Amount coming from [FPX](https://docs.stripe.com/payments/fpx), a Malaysian payment method. + """ + + amount: int + """ + Balance amount. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + source_types: Optional[SourceTypes] + _inner_class_types = {"source_types": SourceTypes} + + available: List[Available] + """ + Funds that are available for use. + """ + pending: List[Pending] + """ + Funds that are pending + """ + _inner_class_types = {"available": Available, "pending": Pending} + + available: List[Available] + """ + Available funds that you can transfer or pay out automatically by Stripe or explicitly through the [Transfers API](https://stripe.com/docs/api#transfers) or [Payouts API](https://stripe.com/docs/api#payouts). You can find the available balance for each currency and payment type in the `source_types` property. + """ + connect_reserved: Optional[List[ConnectReserved]] + """ + Funds held due to negative balances on connected accounts where [account.controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. You can find the connect reserve balance for each currency and payment type in the `source_types` property. + """ + instant_available: Optional[List[InstantAvailable]] + """ + Funds that you can pay out using Instant Payouts. + """ + issuing: Optional[Issuing] + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["balance"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + pending: List[Pending] + """ + Funds that aren't available in the balance yet. You can find the pending balance for each currency and each payment type in the `source_types` property. + """ + refund_and_dispute_prefunding: Optional[RefundAndDisputePrefunding] + + @classmethod + def retrieve(cls, **params: Unpack["BalanceRetrieveParams"]) -> "Balance": + """ + Retrieves the current account balance, based on the authentication that was used to make the request. + For a sample request, see [Accounting for negative balances](https://docs.stripe.com/docs/connect/account-balances#accounting-for-negative-balances). + """ + instance = cls(None, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, **params: Unpack["BalanceRetrieveParams"] + ) -> "Balance": + """ + Retrieves the current account balance, based on the authentication that was used to make the request. + For a sample request, see [Accounting for negative balances](https://docs.stripe.com/docs/connect/account-balances#accounting-for-negative-balances). + """ + instance = cls(None, **params) + await instance.refresh_async() + return instance + + @classmethod + def class_url(cls): + return "/v1/balance" + + _inner_class_types = { + "available": Available, + "connect_reserved": ConnectReserved, + "instant_available": InstantAvailable, + "issuing": Issuing, + "pending": Pending, + "refund_and_dispute_prefunding": RefundAndDisputePrefunding, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_balance_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_service.py new file mode 100644 index 00000000..2f4c7cb0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance import Balance + from stripe._request_options import RequestOptions + from stripe.params._balance_retrieve_params import BalanceRetrieveParams + + +class BalanceService(StripeService): + def retrieve( + self, + params: Optional["BalanceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Balance": + """ + Retrieves the current account balance, based on the authentication that was used to make the request. + For a sample request, see [Accounting for negative balances](https://docs.stripe.com/docs/connect/account-balances#accounting-for-negative-balances). + """ + return cast( + "Balance", + self._request( + "get", + "/v1/balance", + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + params: Optional["BalanceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Balance": + """ + Retrieves the current account balance, based on the authentication that was used to make the request. + For a sample request, see [Accounting for negative balances](https://docs.stripe.com/docs/connect/account-balances#accounting-for-negative-balances). + """ + return cast( + "Balance", + await self._request_async( + "get", + "/v1/balance", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_balance_settings.py b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_settings.py new file mode 100644 index 00000000..bda6ce9b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_settings.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._singleton_api_resource import SingletonAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from typing import ClassVar, Dict, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._balance_settings_modify_params import ( + BalanceSettingsModifyParams, + ) + from stripe.params._balance_settings_retrieve_params import ( + BalanceSettingsRetrieveParams, + ) + + +class BalanceSettings( + SingletonAPIResource["BalanceSettings"], + UpdateableAPIResource["BalanceSettings"], +): + """ + Options for customizing account balances and payout settings for a Stripe platform's connected accounts. + """ + + OBJECT_NAME: ClassVar[Literal["balance_settings"]] = "balance_settings" + + class Payments(StripeObject): + class Payouts(StripeObject): + class Schedule(StripeObject): + interval: Optional[ + Literal["daily", "manual", "monthly", "weekly"] + ] + """ + How frequently funds will be paid out. One of `manual` (payouts only created via API call), `daily`, `weekly`, or `monthly`. + """ + monthly_payout_days: Optional[List[int]] + """ + The day of the month funds will be paid out. Only shown if `interval` is monthly. Payouts scheduled between the 29th and 31st of the month are sent on the last day of shorter months. + """ + weekly_payout_days: Optional[ + List[ + Literal[ + "friday", + "monday", + "thursday", + "tuesday", + "wednesday", + ] + ] + ] + """ + The days of the week when available funds are paid out, specified as an array, for example, [`monday`, `tuesday`]. Only shown if `interval` is weekly. + """ + + minimum_balance_by_currency: Optional[Dict[str, int]] + """ + The minimum balance amount to retain per currency after automatic payouts. Only funds that exceed these amounts are paid out. Learn more about the [minimum balances for automatic payouts](https://docs.stripe.com/payouts/minimum-balances-for-automatic-payouts). + """ + schedule: Optional[Schedule] + """ + Details on when funds from charges are available, and when they are paid out to an external account. See our [Setting Bank and Debit Card Payouts](https://stripe.com/docs/connect/bank-transfers#payout-information) documentation for details. + """ + statement_descriptor: Optional[str] + """ + The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard. + """ + status: Literal["disabled", "enabled"] + """ + Whether the funds in this account can be paid out. + """ + _inner_class_types = {"schedule": Schedule} + + class SettlementTiming(StripeObject): + delay_days: int + """ + The number of days charge funds are held before becoming available. + """ + delay_days_override: Optional[int] + """ + The number of days charge funds are held before becoming available. If present, overrides the default, or minimum available, for the account. + """ + + debit_negative_balances: Optional[bool] + """ + A Boolean indicating if Stripe should try to reclaim negative balances from an attached bank account. See [Understanding Connect account balances](https://docs.stripe.com/connect/account-balances) for details. The default value is `false` when [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, otherwise `true`. + """ + payouts: Optional[Payouts] + """ + Settings specific to the account's payouts. + """ + settlement_timing: SettlementTiming + _inner_class_types = { + "payouts": Payouts, + "settlement_timing": SettlementTiming, + } + + object: Literal["balance_settings"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payments: Payments + + @classmethod + def modify( + cls, **params: Unpack["BalanceSettingsModifyParams"] + ) -> "BalanceSettings": + """ + Updates balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + return cast( + "BalanceSettings", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, **params: Unpack["BalanceSettingsModifyParams"] + ) -> "BalanceSettings": + """ + Updates balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + return cast( + "BalanceSettings", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, **params: Unpack["BalanceSettingsRetrieveParams"] + ) -> "BalanceSettings": + """ + Retrieves balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + instance = cls(None, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, **params: Unpack["BalanceSettingsRetrieveParams"] + ) -> "BalanceSettings": + """ + Retrieves balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + instance = cls(None, **params) + await instance.refresh_async() + return instance + + @classmethod + def class_url(cls): + return "/v1/balance_settings" + + _inner_class_types = {"payments": Payments} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_balance_settings_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_settings_service.py new file mode 100644 index 00000000..a88c302a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_settings_service.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_settings import BalanceSettings + from stripe._request_options import RequestOptions + from stripe.params._balance_settings_retrieve_params import ( + BalanceSettingsRetrieveParams, + ) + from stripe.params._balance_settings_update_params import ( + BalanceSettingsUpdateParams, + ) + + +class BalanceSettingsService(StripeService): + def retrieve( + self, + params: Optional["BalanceSettingsRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BalanceSettings": + """ + Retrieves balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + return cast( + "BalanceSettings", + self._request( + "get", + "/v1/balance_settings", + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + params: Optional["BalanceSettingsRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BalanceSettings": + """ + Retrieves balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + return cast( + "BalanceSettings", + await self._request_async( + "get", + "/v1/balance_settings", + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + params: Optional["BalanceSettingsUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BalanceSettings": + """ + Updates balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + return cast( + "BalanceSettings", + self._request( + "post", + "/v1/balance_settings", + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + params: Optional["BalanceSettingsUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BalanceSettings": + """ + Updates balance settings for a given connected account. + Related guide: [Making API calls for connected accounts](https://docs.stripe.com/connect/authentication) + """ + return cast( + "BalanceSettings", + await self._request_async( + "post", + "/v1/balance_settings", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_balance_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_transaction.py new file mode 100644 index 00000000..e8393984 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_transaction.py @@ -0,0 +1,274 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional, Union +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._application_fee import ApplicationFee + from stripe._application_fee_refund import ApplicationFeeRefund + from stripe._charge import Charge + from stripe._connect_collection_transfer import ConnectCollectionTransfer + from stripe._customer_cash_balance_transaction import ( + CustomerCashBalanceTransaction, + ) + from stripe._dispute import Dispute as DisputeResource + from stripe._payout import Payout + from stripe._refund import Refund + from stripe._reserve_transaction import ReserveTransaction + from stripe._reversal import Reversal + from stripe._tax_deducted_at_source import TaxDeductedAtSource + from stripe._topup import Topup + from stripe._transfer import Transfer + from stripe.issuing._authorization import Authorization + from stripe.issuing._dispute import Dispute as IssuingDisputeResource + from stripe.issuing._transaction import Transaction + from stripe.params._balance_transaction_list_params import ( + BalanceTransactionListParams, + ) + from stripe.params._balance_transaction_retrieve_params import ( + BalanceTransactionRetrieveParams, + ) + + +class BalanceTransaction(ListableAPIResource["BalanceTransaction"]): + """ + Balance transactions represent funds moving through your Stripe account. + Stripe creates them for every type of transaction that enters or leaves your Stripe account balance. + + Related guide: [Balance transaction types](https://stripe.com/docs/reports/balance-transaction-types) + """ + + OBJECT_NAME: ClassVar[Literal["balance_transaction"]] = ( + "balance_transaction" + ) + + class FeeDetail(StripeObject): + amount: int + """ + Amount of the fee, in cents. + """ + application: Optional[str] + """ + ID of the Connect application that earned the fee. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + type: str + """ + Type of the fee, one of: `application_fee`, `payment_method_passthrough_fee`, `stripe_fee` or `tax`. + """ + + amount: int + """ + Gross amount of this transaction (in cents (or local equivalent)). A positive value represents funds charged to another party, and a negative value represents funds sent to another party. + """ + available_on: int + """ + The date that the transaction's net funds become available in the Stripe balance. + """ + balance_type: Literal[ + "issuing", "payments", "refund_and_dispute_prefunding" + ] + """ + The balance that this transaction impacts. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + exchange_rate: Optional[float] + """ + If applicable, this transaction uses an exchange rate. If money converts from currency A to currency B, then the `amount` in currency A, multipled by the `exchange_rate`, equals the `amount` in currency B. For example, if you charge a customer 10.00 EUR, the PaymentIntent's `amount` is `1000` and `currency` is `eur`. If this converts to 12.34 USD in your Stripe account, the BalanceTransaction's `amount` is `1234`, its `currency` is `usd`, and the `exchange_rate` is `1.234`. + """ + fee: int + """ + Fees (in cents (or local equivalent)) paid for this transaction. Represented as a positive integer when assessed. + """ + fee_details: List[FeeDetail] + """ + Detailed breakdown of fees (in cents (or local equivalent)) paid for this transaction. + """ + id: str + """ + Unique identifier for the object. + """ + net: int + """ + Net impact to a Stripe balance (in cents (or local equivalent)). A positive value represents incrementing a Stripe balance, and a negative value decrementing a Stripe balance. You can calculate the net impact of a transaction on a balance by `amount` - `fee` + """ + object: Literal["balance_transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + reporting_category: str + """ + Learn more about how [reporting categories](https://stripe.com/docs/reports/reporting-categories) can help you understand balance transactions from an accounting perspective. + """ + source: Optional[ + ExpandableField[ + Union[ + "ApplicationFee", + "Charge", + "ConnectCollectionTransfer", + "CustomerCashBalanceTransaction", + "DisputeResource", + "ApplicationFeeRefund", + "Authorization", + "IssuingDisputeResource", + "Transaction", + "Payout", + "Refund", + "ReserveTransaction", + "TaxDeductedAtSource", + "Topup", + "Transfer", + "Reversal", + ] + ] + ] + """ + This transaction relates to the Stripe object. + """ + status: str + """ + The transaction's net funds status in the Stripe balance, which are either `available` or `pending`. + """ + type: Literal[ + "adjustment", + "advance", + "advance_funding", + "anticipation_repayment", + "application_fee", + "application_fee_refund", + "charge", + "climate_order_purchase", + "climate_order_refund", + "connect_collection_transfer", + "contribution", + "issuing_authorization_hold", + "issuing_authorization_release", + "issuing_dispute", + "issuing_transaction", + "obligation_outbound", + "obligation_reversal_inbound", + "payment", + "payment_failure_refund", + "payment_network_reserve_hold", + "payment_network_reserve_release", + "payment_refund", + "payment_reversal", + "payment_unreconciled", + "payout", + "payout_cancel", + "payout_failure", + "payout_minimum_balance_hold", + "payout_minimum_balance_release", + "refund", + "refund_failure", + "reserve_transaction", + "reserved_funds", + "stripe_balance_payment_debit", + "stripe_balance_payment_debit_reversal", + "stripe_fee", + "stripe_fx_fee", + "tax_fee", + "topup", + "topup_reversal", + "transfer", + "transfer_cancel", + "transfer_failure", + "transfer_refund", + ] + """ + Transaction type: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `payout_minimum_balance_hold`, `payout_minimum_balance_release`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `stripe_balance_payment_debit`, `stripe_balance_payment_debit_reversal`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. Learn more about [balance transaction types and what they represent](https://stripe.com/docs/reports/balance-transaction-types). To classify transactions for accounting purposes, consider `reporting_category` instead. + """ + + @classmethod + def list( + cls, **params: Unpack["BalanceTransactionListParams"] + ) -> ListObject["BalanceTransaction"]: + """ + Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first. + + Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["BalanceTransactionListParams"] + ) -> ListObject["BalanceTransaction"]: + """ + Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first. + + Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["BalanceTransactionRetrieveParams"] + ) -> "BalanceTransaction": + """ + Retrieves the balance transaction with the given ID. + + Note that this endpoint previously used the path /v1/balance/history/:id. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["BalanceTransactionRetrieveParams"] + ) -> "BalanceTransaction": + """ + Retrieves the balance transaction with the given ID. + + Note that this endpoint previously used the path /v1/balance/history/:id. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"fee_details": FeeDetail} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_balance_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_transaction_service.py new file mode 100644 index 00000000..35023fd9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_balance_transaction_service.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._balance_transaction_list_params import ( + BalanceTransactionListParams, + ) + from stripe.params._balance_transaction_retrieve_params import ( + BalanceTransactionRetrieveParams, + ) + + +class BalanceTransactionService(StripeService): + def list( + self, + params: Optional["BalanceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[BalanceTransaction]": + """ + Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first. + + Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history. + """ + return cast( + "ListObject[BalanceTransaction]", + self._request( + "get", + "/v1/balance_transactions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["BalanceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[BalanceTransaction]": + """ + Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first. + + Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history. + """ + return cast( + "ListObject[BalanceTransaction]", + await self._request_async( + "get", + "/v1/balance_transactions", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["BalanceTransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BalanceTransaction": + """ + Retrieves the balance transaction with the given ID. + + Note that this endpoint previously used the path /v1/balance/history/:id. + """ + return cast( + "BalanceTransaction", + self._request( + "get", + "/v1/balance_transactions/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["BalanceTransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BalanceTransaction": + """ + Retrieves the balance transaction with the given ID. + + Note that this endpoint previously used the path /v1/balance/history/:id. + """ + return cast( + "BalanceTransaction", + await self._request_async( + "get", + "/v1/balance_transactions/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_bank_account.py b/Backend/venv/lib/python3.12/site-packages/stripe/_bank_account.py new file mode 100644 index 00000000..068e8ccc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_bank_account.py @@ -0,0 +1,537 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._account import Account +from stripe._customer import Customer +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._error import InvalidRequestError +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from stripe._verify_mixin import VerifyMixin +from typing import ClassVar, Dict, List, Optional, Union, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._card import Card + from stripe.params._bank_account_delete_params import ( + BankAccountDeleteParams, + ) + + +class BankAccount( + DeletableAPIResource["BankAccount"], + UpdateableAPIResource["BankAccount"], + VerifyMixin, +): + """ + These bank accounts are payment methods on `Customer` objects. + + On the other hand [External Accounts](https://docs.stripe.com/api#external_accounts) are transfer + destinations on `Account` objects for connected accounts. + They can be bank accounts or debit cards as well, and are documented in the links above. + + Related guide: [Bank debits and transfers](https://docs.stripe.com/payments/bank-debits-transfers) + """ + + OBJECT_NAME: ClassVar[Literal["bank_account"]] = "bank_account" + + class FutureRequirements(StripeObject): + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + currently_due: Optional[List[str]] + """ + Fields that need to be collected to keep the external account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled. + """ + errors: Optional[List[Error]] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + past_due: Optional[List[str]] + """ + Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the external account. + """ + pending_verification: Optional[List[str]] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"errors": Error} + + class Requirements(StripeObject): + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + currently_due: Optional[List[str]] + """ + Fields that need to be collected to keep the external account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled. + """ + errors: Optional[List[Error]] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + past_due: Optional[List[str]] + """ + Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the external account. + """ + pending_verification: Optional[List[str]] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"errors": Error} + + account: Optional[ExpandableField["Account"]] + """ + The account this bank account belongs to. Only applicable on Accounts (not customers or recipients) This property is only available when returned as an [External Account](https://docs.stripe.com/api/external_account_bank_accounts/object) where [controller.is_controller](https://docs.stripe.com/api/accounts/object#account_object-controller-is_controller) is `true`. + """ + account_holder_name: Optional[str] + """ + The name of the person or business that owns the bank account. + """ + account_holder_type: Optional[str] + """ + The type of entity that holds the account. This can be either `individual` or `company`. + """ + account_type: Optional[str] + """ + The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`. + """ + available_payout_methods: Optional[List[Literal["instant", "standard"]]] + """ + A set of available payout methods for this bank account. Only values from this set should be passed as the `method` when creating a payout. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the routing number (e.g., `WELLS FARGO`). + """ + country: str + """ + Two-letter ISO code representing the country the bank account is located in. + """ + currency: str + """ + Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account. + """ + customer: Optional[ExpandableField["Customer"]] + """ + The ID of the customer that the bank account is associated with. + """ + default_for_currency: Optional[bool] + """ + Whether this bank account is the default external account for its currency. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + future_requirements: Optional[FutureRequirements] + """ + Information about the [upcoming new requirements for the bank account](https://stripe.com/docs/connect/custom-accounts/future-requirements), including what information needs to be collected, and by when. + """ + id: str + """ + Unique identifier for the object. + """ + last4: str + """ + The last four digits of the bank account number. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["bank_account"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + requirements: Optional[Requirements] + """ + Information about the requirements for the bank account, including what information needs to be collected. + """ + routing_number: Optional[str] + """ + The routing transit number for the bank account. + """ + status: str + """ + For bank accounts, possible values are `new`, `validated`, `verified`, `verification_failed`, or `errored`. A bank account that hasn't had any activity or validation performed is `new`. If Stripe can determine that the bank account exists, its status will be `validated`. Note that there often isn't enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be `verified`. If the verification failed for any reason, such as microdeposit failure, the status will be `verification_failed`. If a payout sent to this bank account fails, we'll set the status to `errored` and will not continue to send [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) until the bank details are updated. + + For external accounts, possible values are `new`, `errored` and `verification_failed`. If a payout fails, the status is set to `errored` and scheduled payouts are stopped until account details are updated. In the US and India, if we can't [verify the owner of the bank account](https://support.stripe.com/questions/bank-account-ownership-verification), we'll set the status to `verification_failed`. Other validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply. + """ + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + Union["BankAccount", "Card"], + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @overload + def delete( + self, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + Union["BankAccount", "Card"], + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["BankAccountDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + def instance_url(self): + token = self.id + extn = sanitize_id(token) + if hasattr(self, "customer"): + customer = self.customer + + base = Customer.class_url() + assert customer is not None + if isinstance(customer, Customer): + customer = customer.id + owner_extn = sanitize_id(customer) + class_base = "sources" + + elif hasattr(self, "account"): + account = self.account + + base = Account.class_url() + assert account is not None + if isinstance(account, Account): + account = account.id + owner_extn = sanitize_id(account) + class_base = "external_accounts" + + else: + raise InvalidRequestError( + "Could not determine whether bank_account_id %s is " + "attached to a customer or an account." % token, + "id", + ) + + return "%s/%s/%s/%s" % (base, owner_extn, class_base, extn) + + @classmethod + def modify(cls, sid, **params): + raise NotImplementedError( + "Can't modify a bank account without a customer or account ID. " + "Use stripe.Customer.modify_source('customer_id', 'bank_account_id', ...) " + "(see https://stripe.com/docs/api/customer_bank_accounts/update) or " + "stripe.Account.modify_external_account('customer_id', 'bank_account_id', ...) " + "(see https://stripe.com/docs/api/external_account_bank_accounts/update)." + ) + + @classmethod + def retrieve(cls, id, **params): + raise NotImplementedError( + "Can't retrieve a bank account without a customer or account ID. " + "Use stripe.customer.retrieve_source('customer_id', 'bank_account_id') " + "(see https://stripe.com/docs/api/customer_bank_accounts/retrieve) or " + "stripe.Account.retrieve_external_account('account_id', 'bank_account_id') " + "(see https://stripe.com/docs/api/external_account_bank_accounts/retrieve)." + ) + + _inner_class_types = { + "future_requirements": FutureRequirements, + "requirements": Requirements, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_base_address.py b/Backend/venv/lib/python3.12/site-packages/stripe/_base_address.py new file mode 100644 index 00000000..b45e6eda --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_base_address.py @@ -0,0 +1,12 @@ +from typing import Optional +from typing_extensions import NotRequired, TypedDict, Literal + + +BaseAddress = Literal["api", "files", "connect", "meter_events"] + + +class BaseAddresses(TypedDict): + api: NotRequired[Optional[str]] + connect: NotRequired[Optional[str]] + files: NotRequired[Optional[str]] + meter_events: NotRequired[Optional[str]] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_billing_portal_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_billing_portal_service.py new file mode 100644 index 00000000..07fcd2d9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_billing_portal_service.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.billing_portal._configuration_service import ( + ConfigurationService, + ) + from stripe.billing_portal._session_service import SessionService + +_subservices = { + "configurations": [ + "stripe.billing_portal._configuration_service", + "ConfigurationService", + ], + "sessions": ["stripe.billing_portal._session_service", "SessionService"], +} + + +class BillingPortalService(StripeService): + configurations: "ConfigurationService" + sessions: "SessionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_billing_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_billing_service.py new file mode 100644 index 00000000..49fb9a4c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_billing_service.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.billing._alert_service import AlertService + from stripe.billing._credit_balance_summary_service import ( + CreditBalanceSummaryService, + ) + from stripe.billing._credit_balance_transaction_service import ( + CreditBalanceTransactionService, + ) + from stripe.billing._credit_grant_service import CreditGrantService + from stripe.billing._meter_event_adjustment_service import ( + MeterEventAdjustmentService, + ) + from stripe.billing._meter_event_service import MeterEventService + from stripe.billing._meter_service import MeterService + +_subservices = { + "alerts": ["stripe.billing._alert_service", "AlertService"], + "credit_balance_summary": [ + "stripe.billing._credit_balance_summary_service", + "CreditBalanceSummaryService", + ], + "credit_balance_transactions": [ + "stripe.billing._credit_balance_transaction_service", + "CreditBalanceTransactionService", + ], + "credit_grants": [ + "stripe.billing._credit_grant_service", + "CreditGrantService", + ], + "meters": ["stripe.billing._meter_service", "MeterService"], + "meter_events": [ + "stripe.billing._meter_event_service", + "MeterEventService", + ], + "meter_event_adjustments": [ + "stripe.billing._meter_event_adjustment_service", + "MeterEventAdjustmentService", + ], +} + + +class BillingService(StripeService): + alerts: "AlertService" + credit_balance_summary: "CreditBalanceSummaryService" + credit_balance_transactions: "CreditBalanceTransactionService" + credit_grants: "CreditGrantService" + meters: "MeterService" + meter_events: "MeterEventService" + meter_event_adjustments: "MeterEventAdjustmentService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_capability.py b/Backend/venv/lib/python3.12/site-packages/stripe/_capability.py new file mode 100644 index 00000000..8e244eef --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_capability.py @@ -0,0 +1,415 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._account import Account +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, List, Optional +from typing_extensions import Literal + + +class Capability(UpdateableAPIResource["Capability"]): + """ + This is an object representing a capability for a Stripe account. + + Related guide: [Account capabilities](https://stripe.com/docs/connect/account-capabilities) + """ + + OBJECT_NAME: ClassVar[Literal["capability"]] = "capability" + + class FutureRequirements(StripeObject): + class Alternative(StripeObject): + alternative_fields_due: List[str] + """ + Fields that can be provided to satisfy all fields in `original_fields_due`. + """ + original_fields_due: List[str] + """ + Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`. + """ + + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + alternatives: Optional[List[Alternative]] + """ + Fields that are due and can be satisfied by providing the corresponding alternative fields instead. + """ + current_deadline: Optional[int] + """ + Date on which `future_requirements` becomes the main `requirements` hash and `future_requirements` becomes empty. After the transition, `currently_due` requirements may immediately become `past_due`, but the account may also be given a grace period depending on the capability's enablement state prior to transitioning. + """ + currently_due: List[str] + """ + Fields that need to be collected to keep the capability enabled. If not collected by `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash. + """ + disabled_reason: Optional[ + Literal[ + "other", + "paused.inactivity", + "pending.onboarding", + "pending.review", + "platform_disabled", + "platform_paused", + "rejected.inactivity", + "rejected.other", + "rejected.unsupported_business", + "requirements.fields_needed", + ] + ] + """ + This is typed as an enum for consistency with `requirements.disabled_reason`, but it safe to assume `future_requirements.disabled_reason` is null because fields in `future_requirements` will never disable the account. + """ + errors: List[Error] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + eventually_due: List[str] + """ + Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well. + """ + past_due: List[str] + """ + Fields that weren't collected by `requirements.current_deadline`. These fields need to be collected to enable the capability on the account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due`. + """ + pending_verification: List[str] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"alternatives": Alternative, "errors": Error} + + class Requirements(StripeObject): + class Alternative(StripeObject): + alternative_fields_due: List[str] + """ + Fields that can be provided to satisfy all fields in `original_fields_due`. + """ + original_fields_due: List[str] + """ + Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`. + """ + + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + alternatives: Optional[List[Alternative]] + """ + Fields that are due and can be satisfied by providing the corresponding alternative fields instead. + """ + current_deadline: Optional[int] + """ + The date by which all required account information must be both submitted and verified. This includes fields listed in `currently_due` as well as those in `pending_verification`. If any required information is missing or unverified by this date, the account may be disabled. Note that `current_deadline` may change if additional `currently_due` requirements are requested. + """ + currently_due: List[str] + """ + Fields that need to be collected to keep the capability enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the capability is disabled. + """ + disabled_reason: Optional[ + Literal[ + "other", + "paused.inactivity", + "pending.onboarding", + "pending.review", + "platform_disabled", + "platform_paused", + "rejected.inactivity", + "rejected.other", + "rejected.unsupported_business", + "requirements.fields_needed", + ] + ] + """ + Description of why the capability is disabled. [Learn more about handling verification issues](https://stripe.com/docs/connect/handling-api-verification). + """ + errors: List[Error] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + eventually_due: List[str] + """ + Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well, and `current_deadline` becomes set. + """ + past_due: List[str] + """ + Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the capability on the account. + """ + pending_verification: List[str] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"alternatives": Alternative, "errors": Error} + + account: ExpandableField["Account"] + """ + The account for which the capability enables functionality. + """ + future_requirements: Optional[FutureRequirements] + id: str + """ + The identifier for the capability. + """ + object: Literal["capability"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + requested: bool + """ + Whether the capability has been requested. + """ + requested_at: Optional[int] + """ + Time at which the capability was requested. Measured in seconds since the Unix epoch. + """ + requirements: Optional[Requirements] + status: Literal["active", "inactive", "pending", "unrequested"] + """ + The status of the capability. + """ + + def instance_url(self): + token = self.id + account = self.account + base = Account.class_url() + if isinstance(account, Account): + account = account.id + acct_extn = sanitize_id(account) + extn = sanitize_id(token) + return "%s/%s/capabilities/%s" % (base, acct_extn, extn) + + @classmethod + def modify(cls, sid, **params): + raise NotImplementedError( + "Can't update a capability without an account ID. Update a capability using " + "account.modify_capability('acct_123', 'acap_123', params)" + ) + + @classmethod + def retrieve(cls, id, **params): + raise NotImplementedError( + "Can't retrieve a capability without an account ID. Retrieve a capability using " + "account.retrieve_capability('acct_123', 'acap_123')" + ) + + _inner_class_types = { + "future_requirements": FutureRequirements, + "requirements": Requirements, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_card.py b/Backend/venv/lib/python3.12/site-packages/stripe/_card.py new file mode 100644 index 00000000..5936cc24 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_card.py @@ -0,0 +1,324 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._account import Account +from stripe._customer import Customer +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._error import InvalidRequestError +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, Union, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._bank_account import BankAccount + from stripe.params._card_delete_params import CardDeleteParams + + +class Card(DeletableAPIResource["Card"], UpdateableAPIResource["Card"]): + """ + You can store multiple cards on a customer in order to charge the customer + later. You can also store multiple debit cards on a recipient in order to + transfer to those cards later. + + Related guide: [Card payments with Sources](https://stripe.com/docs/sources/cards) + """ + + OBJECT_NAME: ClassVar[Literal["card"]] = "card" + + class Networks(StripeObject): + preferred: Optional[str] + """ + The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card. + """ + + account: Optional[ExpandableField["Account"]] + address_city: Optional[str] + """ + City/District/Suburb/Town/Village. + """ + address_country: Optional[str] + """ + Billing address country, if provided when creating card. + """ + address_line1: Optional[str] + """ + Address line 1 (Street address/PO Box/Company name). + """ + address_line1_check: Optional[str] + """ + If `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. + """ + address_line2: Optional[str] + """ + Address line 2 (Apartment/Suite/Unit/Building). + """ + address_state: Optional[str] + """ + State/County/Province/Region. + """ + address_zip: Optional[str] + """ + ZIP or postal code. + """ + address_zip_check: Optional[str] + """ + If `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. + """ + allow_redisplay: Optional[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. + """ + available_payout_methods: Optional[List[Literal["instant", "standard"]]] + """ + A set of available payout methods for this card. Only values from this set should be passed as the `method` when creating a payout. + """ + brand: str + """ + Card brand. Can be `American Express`, `Cartes Bancaires`, `Diners Club`, `Discover`, `Eftpos Australia`, `Girocard`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown`. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + currency: Optional[str] + """ + Three-letter [ISO code for currency](https://www.iso.org/iso-4217-currency-codes.html) in lowercase. Must be a [supported currency](https://docs.stripe.com/currencies). Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency. This property is only available when returned as an [External Account](https://docs.stripe.com/api/external_account_cards/object) where [controller.is_controller](https://docs.stripe.com/api/accounts/object#account_object-controller-is_controller) is `true`. + """ + customer: Optional[ExpandableField["Customer"]] + """ + The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead. + """ + cvc_check: Optional[str] + """ + If a CVC was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A result of unchecked indicates that CVC was provided but hasn't been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https://support.stripe.com/questions/check-if-a-card-is-valid-without-a-charge). + """ + default_for_currency: Optional[bool] + """ + Whether this card is the default external account for its currency. This property is only available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + dynamic_last4: Optional[str] + """ + (For tokenized numbers only.) The last four digits of the device account number. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: str + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + id: str + """ + Unique identifier for the object. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: str + """ + The last four digits of the card. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: Optional[str] + """ + Cardholder name. + """ + networks: Optional[Networks] + object: Literal["card"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + regulated_status: Optional[Literal["regulated", "unregulated"]] + """ + Status of a card based on the card issuer. + """ + status: Optional[str] + """ + For external accounts that are cards, possible values are `new` and `errored`. If a payout fails, the status is set to `errored` and [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) are stopped until account details are updated. + """ + tokenization_method: Optional[str] + """ + If the card number is tokenized, this is the method that was used. Can be `android_pay` (includes Google Pay), `apple_pay`, `masterpass`, `visa_checkout`, or null. + """ + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + Union["BankAccount", "Card"], + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @overload + def delete( + self, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + Union["BankAccount", "Card"], + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardDeleteParams"] + ) -> Union["BankAccount", "Card"]: + """ + Delete a specified external account for a given account. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + def instance_url(self): + token = self.id + extn = sanitize_id(token) + if hasattr(self, "customer"): + customer = self.customer + + base = Customer.class_url() + assert customer is not None + if isinstance(customer, Customer): + customer = customer.id + owner_extn = sanitize_id(customer) + class_base = "sources" + + elif hasattr(self, "account"): + account = self.account + + base = Account.class_url() + assert account is not None + if isinstance(account, Account): + account = account.id + owner_extn = sanitize_id(account) + class_base = "external_accounts" + + else: + raise InvalidRequestError( + "Could not determine whether card_id %s is " + "attached to a customer, or " + "account." % token, + "id", + ) + + return "%s/%s/%s/%s" % (base, owner_extn, class_base, extn) + + @classmethod + def modify(cls, sid, **params): + raise NotImplementedError( + "Can't modify a card without a customer or account ID. " + "Use stripe.Customer.modify_source('customer_id', 'card_id', ...) " + "(see https://stripe.com/docs/api/cards/update) or " + "stripe.Account.modify_external_account('account_id', 'card_id', ...) " + "(see https://stripe.com/docs/api/external_account_cards/update)." + ) + + @classmethod + def retrieve(cls, id, **params): + raise NotImplementedError( + "Can't retrieve a card without a customer or account ID. " + "Use stripe.Customer.retrieve_source('customer_id', 'card_id') " + "(see https://stripe.com/docs/api/cards/retrieve) or " + "stripe.Account.retrieve_external_account('account_id', 'card_id') " + "(see https://stripe.com/docs/api/external_account_cards/retrieve)." + ) + + _inner_class_types = {"networks": Networks} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_cash_balance.py b/Backend/venv/lib/python3.12/site-packages/stripe/_cash_balance.py new file mode 100644 index 00000000..287e786a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_cash_balance.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._customer import Customer +from stripe._stripe_object import StripeObject +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional +from typing_extensions import Literal + + +class CashBalance(StripeObject): + """ + A customer's `Cash balance` represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account. + """ + + OBJECT_NAME: ClassVar[Literal["cash_balance"]] = "cash_balance" + + class Settings(StripeObject): + reconciliation_mode: Literal["automatic", "manual"] + """ + The configuration for how funds that land in the customer cash balance are reconciled. + """ + using_merchant_default: bool + """ + A flag to indicate if reconciliation mode returned is the user's default or is specific to this customer cash balance + """ + + available: Optional[Dict[str, int]] + """ + A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + customer: str + """ + The ID of the customer whose cash balance this object represents. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["cash_balance"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + settings: Settings + + def instance_url(self): + customer = self.customer + base = Customer.class_url() + cust_extn = sanitize_id(customer) + return "%s/%s/cash_balance" % (base, cust_extn) + + @classmethod + def retrieve(cls, id, **params): + raise NotImplementedError( + "Can't retrieve a Customer Cash Balance without a Customer ID. " + "Use Customer.retrieve_cash_balance('cus_123')" + ) + + _inner_class_types = {"settings": Settings} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_charge.py b/Backend/venv/lib/python3.12/site-packages/stripe/_charge.py new file mode 100644 index 00000000..bda833c4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_charge.py @@ -0,0 +1,2737 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._search_result_object import SearchResultObject +from stripe._searchable_api_resource import SearchableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ( + AsyncIterator, + ClassVar, + Dict, + Iterator, + List, + Optional, + Union, + cast, + overload, +) +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._application_fee import ApplicationFee + from stripe._balance_transaction import BalanceTransaction + from stripe._bank_account import BankAccount + from stripe._card import Card as CardResource + from stripe._customer import Customer + from stripe._mandate import Mandate + from stripe._payment_intent import PaymentIntent + from stripe._payment_method import PaymentMethod + from stripe._refund import Refund + from stripe._review import Review + from stripe._source import Source + from stripe._transfer import Transfer + from stripe.params._charge_capture_params import ChargeCaptureParams + from stripe.params._charge_create_params import ChargeCreateParams + from stripe.params._charge_list_params import ChargeListParams + from stripe.params._charge_list_refunds_params import ( + ChargeListRefundsParams, + ) + from stripe.params._charge_modify_params import ChargeModifyParams + from stripe.params._charge_retrieve_params import ChargeRetrieveParams + from stripe.params._charge_retrieve_refund_params import ( + ChargeRetrieveRefundParams, + ) + from stripe.params._charge_search_params import ChargeSearchParams + + +@nested_resource_class_methods("refund") +class Charge( + CreateableAPIResource["Charge"], + ListableAPIResource["Charge"], + SearchableAPIResource["Charge"], + UpdateableAPIResource["Charge"], +): + """ + The `Charge` object represents a single attempt to move money into your Stripe account. + PaymentIntent confirmation is the most common way to create Charges, but [Account Debits](https://stripe.com/docs/connect/account-debits) may also create Charges. + Some legacy payment flows create Charges directly, which is not recommended for new integrations. + """ + + OBJECT_NAME: ClassVar[Literal["charge"]] = "charge" + + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + """ + Billing address. + """ + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + phone: Optional[str] + """ + Billing phone number (including extension). + """ + tax_id: Optional[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + _inner_class_types = {"address": Address} + + class FraudDetails(StripeObject): + stripe_report: Optional[str] + """ + Assessments from Stripe. If set, the value is `fraudulent`. + """ + user_report: Optional[str] + """ + Assessments reported by you. If set, possible values of are `safe` and `fraudulent`. + """ + + class Level3(StripeObject): + class LineItem(StripeObject): + discount_amount: Optional[int] + product_code: str + product_description: str + quantity: Optional[int] + tax_amount: Optional[int] + unit_cost: Optional[int] + + customer_reference: Optional[str] + line_items: List[LineItem] + merchant_reference: str + shipping_address_zip: Optional[str] + shipping_amount: Optional[int] + shipping_from_zip: Optional[str] + _inner_class_types = {"line_items": LineItem} + + class Outcome(StripeObject): + class Rule(StripeObject): + action: str + """ + The action taken on the payment. + """ + id: str + """ + Unique identifier for the object. + """ + predicate: str + """ + The predicate to evaluate the payment against. + """ + + advice_code: Optional[ + Literal["confirm_card_data", "do_not_try_again", "try_again_later"] + ] + """ + An enumerated value providing a more detailed explanation on [how to proceed with an error](https://stripe.com/docs/declines#retrying-issuer-declines). + """ + network_advice_code: Optional[str] + """ + For charges declined by the network, a 2 digit code which indicates the advice returned by the network on how to proceed with an error. + """ + network_decline_code: Optional[str] + """ + For charges declined by the network, an alphanumeric code which indicates the reason the charge failed. + """ + network_status: Optional[str] + """ + Possible values are `approved_by_network`, `declined_by_network`, `not_sent_to_network`, and `reversed_after_approval`. The value `reversed_after_approval` indicates the payment was [blocked by Stripe](https://stripe.com/docs/declines#blocked-payments) after bank authorization, and may temporarily appear as "pending" on a cardholder's statement. + """ + reason: Optional[str] + """ + An enumerated value providing a more detailed explanation of the outcome's `type`. Charges blocked by Radar's default block rule have the value `highest_risk_level`. Charges placed in review by Radar's default review rule have the value `elevated_risk_level`. Charges blocked because the payment is unlikely to be authorized have the value `low_probability_of_authorization`. Charges authorized, blocked, or placed in review by custom rules have the value `rule`. See [understanding declines](https://stripe.com/docs/declines) for more details. + """ + risk_level: Optional[str] + """ + Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are `normal`, `elevated`, `highest`. For non-card payments, and card-based payments predating the public assignment of risk levels, this field will have the value `not_assessed`. In the event of an error in the evaluation, this field will have the value `unknown`. This field is only available with Radar. + """ + risk_score: Optional[int] + """ + Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are between 0 and 100. For non-card payments, card-based payments predating the public assignment of risk scores, or in the event of an error during evaluation, this field will not be present. This field is only available with Radar for Fraud Teams. + """ + rule: Optional[ExpandableField[Rule]] + """ + The ID of the Radar rule that matched the payment, if applicable. + """ + seller_message: Optional[str] + """ + A human-readable description of the outcome type and reason, designed for you (the recipient of the payment), not your customer. + """ + type: str + """ + Possible values are `authorized`, `manual_review`, `issuer_declined`, `blocked`, and `invalid`. See [understanding declines](https://stripe.com/docs/declines) and [Radar reviews](https://stripe.com/docs/radar/reviews) for details. + """ + _inner_class_types = {"rule": Rule} + + class PaymentMethodDetails(StripeObject): + class AchCreditTransfer(StripeObject): + account_number: Optional[str] + """ + Account number to transfer funds to. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the routing number. + """ + routing_number: Optional[str] + """ + Routing transit number for the bank account to transfer funds to. + """ + swift_code: Optional[str] + """ + SWIFT code of the bank associated with the routing number. + """ + + class AchDebit(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Type of entity that holds the account. This can be either `individual` or `company`. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + routing_number: Optional[str] + """ + Routing transit number of the bank account. + """ + + class AcssDebit(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + institution_number: Optional[str] + """ + Institution number of the bank account + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + transit_number: Optional[str] + """ + Transit number of the bank account. + """ + + class Affirm(StripeObject): + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + transaction_id: Optional[str] + """ + The Affirm transaction ID associated with this payment. + """ + + class AfterpayClearpay(StripeObject): + order_id: Optional[str] + """ + The Afterpay order ID associated with this payment intent. + """ + reference: Optional[str] + """ + Order identifier shown to the merchant in Afterpay's online portal. + """ + + class Alipay(StripeObject): + buyer_id: Optional[str] + """ + Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same. + """ + transaction_id: Optional[str] + """ + Transaction ID of this particular Alipay transaction. + """ + + class Alma(StripeObject): + class Installments(StripeObject): + count: int + """ + The number of installments. + """ + + installments: Optional[Installments] + transaction_id: Optional[str] + """ + The Alma transaction ID associated with this payment. + """ + _inner_class_types = {"installments": Installments} + + class AmazonPay(StripeObject): + class Funding(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: Optional[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: Optional[int] + """ + Four-digit number representing the card's expiration year. + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + + card: Optional[Card] + type: Optional[Literal["card"]] + """ + funding type of the underlying payment method. + """ + _inner_class_types = {"card": Card} + + funding: Optional[Funding] + transaction_id: Optional[str] + """ + The Amazon Pay transaction ID associated with this payment. + """ + _inner_class_types = {"funding": Funding} + + class AuBecsDebit(StripeObject): + bsb_number: Optional[str] + """ + Bank-State-Branch number of the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + + class BacsDebit(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + sort_code: Optional[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + class Bancontact(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + Can be one of `en`, `de`, `fr`, or `nl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Bancontact directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class Billie(StripeObject): + transaction_id: Optional[str] + """ + The Billie transaction ID associated with this payment. + """ + + class Blik(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by BLIK to every buyer. + """ + + class Boleto(StripeObject): + tax_id: str + """ + The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses consumers) + """ + + class Card(StripeObject): + class Checks(StripeObject): + address_line1_check: Optional[str] + """ + If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + address_postal_code_check: Optional[str] + """ + If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + cvc_check: Optional[str] + """ + If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + + class ExtendedAuthorization(StripeObject): + status: Literal["disabled", "enabled"] + """ + Indicates whether or not the capture window is extended beyond the standard authorization. + """ + + class IncrementalAuthorization(StripeObject): + status: Literal["available", "unavailable"] + """ + Indicates whether or not the incremental authorization feature is supported. + """ + + class Installments(StripeObject): + class Plan(StripeObject): + count: Optional[int] + """ + For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card. + """ + interval: Optional[Literal["month"]] + """ + For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + plan: Optional[Plan] + """ + Installment plan selected for the payment. + """ + _inner_class_types = {"plan": Plan} + + class Multicapture(StripeObject): + status: Literal["available", "unavailable"] + """ + Indicates whether or not multiple captures are supported. + """ + + class NetworkToken(StripeObject): + used: bool + """ + Indicates if Stripe used a network token, either user provided or Stripe managed when processing the transaction. + """ + + class Overcapture(StripeObject): + maximum_amount_capturable: int + """ + The maximum amount that can be captured. + """ + status: Literal["available", "unavailable"] + """ + Indicates whether or not the authorized amount can be over-captured. + """ + + class ThreeDSecure(StripeObject): + authentication_flow: Optional[ + Literal["challenge", "frictionless"] + ] + """ + For authenticated transactions: how the customer was authenticated by + the issuing bank. + """ + electronic_commerce_indicator: Optional[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI). A protocol-level field + indicating what degree of authentication was performed. + """ + exemption_indicator: Optional[Literal["low_risk", "none"]] + """ + The exemption requested via 3DS and accepted by the issuer at authentication time. + """ + exemption_indicator_applied: Optional[bool] + """ + Whether Stripe requested the value of `exemption_indicator` in the transaction. This will depend on + the outcome of Stripe's internal risk assessment. + """ + result: Optional[ + Literal[ + "attempt_acknowledged", + "authenticated", + "exempted", + "failed", + "not_supported", + "processing_error", + ] + ] + """ + Indicates the outcome of 3D Secure authentication. + """ + result_reason: Optional[ + Literal[ + "abandoned", + "bypassed", + "canceled", + "card_not_enrolled", + "network_not_supported", + "protocol_error", + "rejected", + ] + ] + """ + Additional information about why 3D Secure succeeded or failed based + on the `result`. + """ + transaction_id: Optional[str] + """ + The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID + (dsTransId) for this payment. + """ + version: Optional[Literal["1.0.2", "2.1.0", "2.2.0"]] + """ + The version of 3D Secure that was used. + """ + + class Wallet(StripeObject): + class AmexExpressCheckout(StripeObject): + pass + + class ApplePay(StripeObject): + pass + + class GooglePay(StripeObject): + pass + + class Link(StripeObject): + pass + + class Masterpass(StripeObject): + class BillingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + billing_address: Optional[BillingAddress] + """ + Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + email: Optional[str] + """ + Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + shipping_address: Optional[ShippingAddress] + """ + Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + _inner_class_types = { + "billing_address": BillingAddress, + "shipping_address": ShippingAddress, + } + + class SamsungPay(StripeObject): + pass + + class VisaCheckout(StripeObject): + class BillingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + billing_address: Optional[BillingAddress] + """ + Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + email: Optional[str] + """ + Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + shipping_address: Optional[ShippingAddress] + """ + Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + _inner_class_types = { + "billing_address": BillingAddress, + "shipping_address": ShippingAddress, + } + + amex_express_checkout: Optional[AmexExpressCheckout] + apple_pay: Optional[ApplePay] + dynamic_last4: Optional[str] + """ + (For tokenized numbers only.) The last four digits of the device account number. + """ + google_pay: Optional[GooglePay] + link: Optional[Link] + masterpass: Optional[Masterpass] + samsung_pay: Optional[SamsungPay] + type: Literal[ + "amex_express_checkout", + "apple_pay", + "google_pay", + "link", + "masterpass", + "samsung_pay", + "visa_checkout", + ] + """ + The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type. + """ + visa_checkout: Optional[VisaCheckout] + _inner_class_types = { + "amex_express_checkout": AmexExpressCheckout, + "apple_pay": ApplePay, + "google_pay": GooglePay, + "link": Link, + "masterpass": Masterpass, + "samsung_pay": SamsungPay, + "visa_checkout": VisaCheckout, + } + + amount_authorized: Optional[int] + """ + The authorized amount. + """ + authorization_code: Optional[str] + """ + Authorization code on the charge. + """ + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp at which the charge will be automatically refunded if uncaptured. + """ + checks: Optional[Checks] + """ + Check results by Card networks on Card address and CVC at time of payment. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + extended_authorization: Optional[ExtendedAuthorization] + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + incremental_authorization: Optional[IncrementalAuthorization] + installments: Optional[Installments] + """ + Installment details for this payment. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment or created by it. + """ + moto: Optional[bool] + """ + True if this payment was marked as MOTO and out of scope for SCA. + """ + multicapture: Optional[Multicapture] + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_token: Optional[NetworkToken] + """ + If this card has network token credentials, this contains the details of the network token credentials. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + overcapture: Optional[Overcapture] + regulated_status: Optional[Literal["regulated", "unregulated"]] + """ + Status of a card based on the card issuer. + """ + three_d_secure: Optional[ThreeDSecure] + """ + Populated if this transaction used 3D Secure authentication. + """ + wallet: Optional[Wallet] + """ + If this Card is part of a card wallet, this contains the details of the card wallet. + """ + _inner_class_types = { + "checks": Checks, + "extended_authorization": ExtendedAuthorization, + "incremental_authorization": IncrementalAuthorization, + "installments": Installments, + "multicapture": Multicapture, + "network_token": NetworkToken, + "overcapture": Overcapture, + "three_d_secure": ThreeDSecure, + "wallet": Wallet, + } + + class CardPresent(StripeObject): + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + class Receipt(StripeObject): + account_type: Optional[ + Literal["checking", "credit", "prepaid", "unknown"] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + class Wallet(StripeObject): + type: Literal[ + "apple_pay", "google_pay", "samsung_pay", "unknown" + ] + """ + The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. + """ + + amount_authorized: Optional[int] + """ + The authorized amount + """ + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + brand_product: Optional[str] + """ + The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + incremental_authorization_supported: bool + """ + Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support). + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + offline: Optional[Offline] + """ + Details about payments collected offline. + """ + overcapture_supported: bool + """ + Defines whether the authorized amount can be over-captured or not + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + wallet: Optional[Wallet] + _inner_class_types = { + "offline": Offline, + "receipt": Receipt, + "wallet": Wallet, + } + + class Cashapp(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by Cash App to every buyer. + """ + cashtag: Optional[str] + """ + A public identifier for buyers using Cash App. + """ + transaction_id: Optional[str] + """ + A unique and immutable identifier of payments assigned by Cash App + """ + + class Crypto(StripeObject): + buyer_address: Optional[str] + """ + The wallet address of the customer. + """ + network: Optional[Literal["base", "ethereum", "polygon", "solana"]] + """ + The blockchain network that the transaction was sent on. + """ + token_currency: Optional[Literal["usdc", "usdg", "usdp"]] + """ + The token currency that the transaction was sent with. + """ + transaction_hash: Optional[str] + """ + The blockchain transaction hash of the crypto payment. + """ + + class CustomerBalance(StripeObject): + pass + + class Eps(StripeObject): + bank: Optional[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by EPS directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + EPS rarely provides this information so the attribute is usually empty. + """ + + class Fpx(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type, if provided. Can be one of `individual` or `company`. + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`. + """ + transaction_id: Optional[str] + """ + Unique transaction id generated by FPX for every request from the merchant + """ + + class Giropay(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Giropay directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + Giropay rarely provides this information so the attribute is usually empty. + """ + + class Grabpay(StripeObject): + transaction_id: Optional[str] + """ + Unique transaction id generated by GrabPay + """ + + class Ideal(StripeObject): + bank: Optional[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `buut`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`. + """ + bic: Optional[ + Literal[ + "ABNANL2A", + "ASNBNL21", + "BITSNL2A", + "BUNQNL2A", + "BUUTNL2A", + "FVLBNL22", + "HANDNL2A", + "INGBNL2A", + "KNABNL2H", + "MOYONL21", + "NNBANL2G", + "NTSBDEB1", + "RABONL2U", + "RBRBNL21", + "REVOIE23", + "REVOLT21", + "SNSBNL2A", + "TRIONL2U", + ] + ] + """ + The Bank Identifier Code of the customer's bank. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by iDEAL directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class InteracPresent(StripeObject): + class Receipt(StripeObject): + account_type: Optional[ + Literal["checking", "savings", "unknown"] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + brand: Optional[str] + """ + Card brand. Can be `interac`, `mastercard` or `visa`. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + _inner_class_types = {"receipt": Receipt} + + class KakaoPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Kakao Pay transaction ID associated with this payment. + """ + + class Klarna(StripeObject): + class PayerDetails(StripeObject): + class Address(StripeObject): + country: Optional[str] + """ + The payer address country + """ + + address: Optional[Address] + """ + The payer's address + """ + _inner_class_types = {"address": Address} + + payer_details: Optional[PayerDetails] + """ + The payer details for this transaction. + """ + payment_method_category: Optional[str] + """ + The Klarna payment method used for this transaction. + Can be one of `pay_later`, `pay_now`, `pay_with_financing`, or `pay_in_installments` + """ + preferred_locale: Optional[str] + """ + Preferred language of the Klarna authorization page that the customer is redirected to. + Can be one of `de-AT`, `en-AT`, `nl-BE`, `fr-BE`, `en-BE`, `de-DE`, `en-DE`, `da-DK`, `en-DK`, `es-ES`, `en-ES`, `fi-FI`, `sv-FI`, `en-FI`, `en-GB`, `en-IE`, `it-IT`, `en-IT`, `nl-NL`, `en-NL`, `nb-NO`, `en-NO`, `sv-SE`, `en-SE`, `en-US`, `es-US`, `fr-FR`, `en-FR`, `cs-CZ`, `en-CZ`, `ro-RO`, `en-RO`, `el-GR`, `en-GR`, `en-AU`, `en-NZ`, `en-CA`, `fr-CA`, `pl-PL`, `en-PL`, `pt-PT`, `en-PT`, `de-CH`, `fr-CH`, `it-CH`, or `en-CH` + """ + _inner_class_types = {"payer_details": PayerDetails} + + class Konbini(StripeObject): + class Store(StripeObject): + chain: Optional[ + Literal["familymart", "lawson", "ministop", "seicomart"] + ] + """ + The name of the convenience store chain where the payment was completed. + """ + + store: Optional[Store] + """ + If the payment succeeded, this contains the details of the convenience store where the payment was completed. + """ + _inner_class_types = {"store": Store} + + class KrCard(StripeObject): + brand: Optional[ + Literal[ + "bc", + "citi", + "hana", + "hyundai", + "jeju", + "jeonbuk", + "kakaobank", + "kbank", + "kdbbank", + "kookmin", + "kwangju", + "lotte", + "mg", + "nh", + "post", + "samsung", + "savingsbank", + "shinhan", + "shinhyup", + "suhyup", + "tossbank", + "woori", + ] + ] + """ + The local credit or debit card brand. + """ + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + last4: Optional[str] + """ + The last four digits of the card. This may not be present for American Express cards. + """ + transaction_id: Optional[str] + """ + The Korean Card transaction ID associated with this payment. + """ + + class Link(StripeObject): + country: Optional[str] + """ + Two-letter ISO code representing the funding source country beneath the Link payment. + You could use this attribute to get a sense of international fees. + """ + + class MbWay(StripeObject): + pass + + class Mobilepay(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Brand of the card used in the transaction + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card + """ + exp_month: Optional[int] + """ + Two digit number representing the card's expiration month + """ + exp_year: Optional[int] + """ + Two digit number representing the card's expiration year + """ + last4: Optional[str] + """ + The last 4 digits of the card + """ + + card: Optional[Card] + """ + Internal card details + """ + _inner_class_types = {"card": Card} + + class Multibanco(StripeObject): + entity: Optional[str] + """ + Entity number associated with this Multibanco payment. + """ + reference: Optional[str] + """ + Reference number associated with this Multibanco payment. + """ + + class NaverPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Naver Pay transaction ID associated with this payment. + """ + + class NzBankAccount(StripeObject): + account_holder_name: Optional[str] + """ + The name on the bank account. Only present if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + bank_name: str + """ + The name of the bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + last4: str + """ + Last four digits of the bank account number. + """ + suffix: Optional[str] + """ + The suffix of the bank account number. + """ + + class Oxxo(StripeObject): + number: Optional[str] + """ + OXXO reference number + """ + + class P24(StripeObject): + bank: Optional[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. Can be one of `ing`, `citi_handlowy`, `tmobile_usbugi_bankowe`, `plus_bank`, `etransfer_pocztowy24`, `banki_spbdzielcze`, `bank_nowy_bfg_sa`, `getin_bank`, `velobank`, `blik`, `noble_pay`, `ideabank`, `envelobank`, `santander_przelew24`, `nest_przelew`, `mbank_mtransfer`, `inteligo`, `pbac_z_ipko`, `bnp_paribas`, `credit_agricole`, `toyota_bank`, `bank_pekao_sa`, `volkswagen_bank`, `bank_millennium`, `alior_bank`, or `boz`. + """ + reference: Optional[str] + """ + Unique reference for this Przelewy24 payment. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Przelewy24 directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + Przelewy24 rarely provides this information so the attribute is usually empty. + """ + + class PayByBank(StripeObject): + pass + + class Payco(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Payco transaction ID associated with this payment. + """ + + class Paynow(StripeObject): + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + reference: Optional[str] + """ + Reference number associated with this PayNow payment + """ + + class Paypal(StripeObject): + class SellerProtection(StripeObject): + dispute_categories: Optional[ + List[Literal["fraudulent", "product_not_received"]] + ] + """ + An array of conditions that are covered for the transaction, if applicable. + """ + status: Literal[ + "eligible", "not_eligible", "partially_eligible" + ] + """ + Indicates whether the transaction is eligible for PayPal's seller protection. + """ + + country: Optional[str] + """ + Two-letter ISO code representing the buyer's country. Values are provided by PayPal directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_email: Optional[str] + """ + Owner's email. Values are provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_id: Optional[str] + """ + PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + """ + payer_name: Optional[str] + """ + Owner's full name. Values provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + seller_protection: Optional[SellerProtection] + """ + The level of protection offered as defined by PayPal Seller Protection for Merchants, for this transaction. + """ + transaction_id: Optional[str] + """ + A unique ID generated by PayPal for this transaction. + """ + _inner_class_types = {"seller_protection": SellerProtection} + + class Pix(StripeObject): + bank_transaction_id: Optional[str] + """ + Unique transaction id generated by BCB + """ + + class Promptpay(StripeObject): + reference: Optional[str] + """ + Bill reference generated by PromptPay + """ + + class RevolutPay(StripeObject): + class Funding(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: Optional[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: Optional[int] + """ + Four-digit number representing the card's expiration year. + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + + card: Optional[Card] + type: Optional[Literal["card"]] + """ + funding type of the underlying payment method. + """ + _inner_class_types = {"card": Card} + + funding: Optional[Funding] + transaction_id: Optional[str] + """ + The Revolut Pay transaction ID associated with this payment. + """ + _inner_class_types = {"funding": Funding} + + class SamsungPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Samsung Pay transaction ID associated with this payment. + """ + + class Satispay(StripeObject): + transaction_id: Optional[str] + """ + The Satispay transaction ID associated with this payment. + """ + + class SepaCreditTransfer(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + iban: Optional[str] + """ + IBAN of the bank account to transfer funds to. + """ + + class SepaDebit(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + branch_code: Optional[str] + """ + Branch code of bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four characters of the IBAN. + """ + mandate: Optional[str] + """ + Find the ID of the mandate used for this payment under the [payment_method_details.sepa_debit.mandate](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate) property on the Charge. Use this mandate ID to [retrieve the Mandate](https://stripe.com/docs/api/mandates/retrieve). + """ + + class Sofort(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[ + Literal["de", "en", "es", "fr", "it", "nl", "pl"] + ] + """ + Preferred language of the SOFORT authorization page that the customer is redirected to. + Can be one of `de`, `en`, `es`, `fr`, `it`, `nl`, or `pl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by SOFORT directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class StripeAccount(StripeObject): + pass + + class Swish(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies the payer's Swish account. You can use this attribute to check whether two Swish transactions were paid for by the same payer + """ + payment_reference: Optional[str] + """ + Payer bank reference number for the payment + """ + verified_phone_last4: Optional[str] + """ + The last four digits of the Swish account phone number + """ + + class Twint(StripeObject): + pass + + class UsBankAccount(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_type: Optional[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the mandate used to make this payment. + """ + payment_reference: Optional[str] + """ + Reference number to locate ACH payments with customer's bank. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + + class Wechat(StripeObject): + pass + + class WechatPay(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular WeChat Pay account. You can use this attribute to check whether two WeChat accounts are the same. + """ + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + transaction_id: Optional[str] + """ + Transaction ID of this particular WeChat Pay transaction. + """ + + class Zip(StripeObject): + pass + + ach_credit_transfer: Optional[AchCreditTransfer] + ach_debit: Optional[AchDebit] + acss_debit: Optional[AcssDebit] + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + blik: Optional[Blik] + boleto: Optional[Boleto] + card: Optional[Card] + card_present: Optional[CardPresent] + cashapp: Optional[Cashapp] + crypto: Optional[Crypto] + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + ideal: Optional[Ideal] + interac_present: Optional[InteracPresent] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + mb_way: Optional[MbWay] + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + oxxo: Optional[Oxxo] + p24: Optional[P24] + pay_by_bank: Optional[PayByBank] + payco: Optional[Payco] + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + promptpay: Optional[Promptpay] + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_credit_transfer: Optional[SepaCreditTransfer] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + stripe_account: Optional[StripeAccount] + swish: Optional[Swish] + twint: Optional[Twint] + type: str + """ + The type of transaction-specific details of the payment method used in the payment. See [PaymentMethod.type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type) for the full list of possible types. + An additional hash is included on `payment_method_details` with a name matching this value. + It contains information specific to the payment method. + """ + us_bank_account: Optional[UsBankAccount] + wechat: Optional[Wechat] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + _inner_class_types = { + "ach_credit_transfer": AchCreditTransfer, + "ach_debit": AchDebit, + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "blik": Blik, + "boleto": Boleto, + "card": Card, + "card_present": CardPresent, + "cashapp": Cashapp, + "crypto": Crypto, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "grabpay": Grabpay, + "ideal": Ideal, + "interac_present": InteracPresent, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mb_way": MbWay, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "oxxo": Oxxo, + "p24": P24, + "pay_by_bank": PayByBank, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "promptpay": Promptpay, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_credit_transfer": SepaCreditTransfer, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "stripe_account": StripeAccount, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + "wechat": Wechat, + "wechat_pay": WechatPay, + "zip": Zip, + } + + class PresentmentDetails(StripeObject): + presentment_amount: int + """ + Amount intended to be collected by this payment, denominated in `presentment_currency`. + """ + presentment_currency: str + """ + Currency presented to the customer during payment. + """ + + class RadarOptions(StripeObject): + session: Optional[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + class Shipping(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + carrier: Optional[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: Optional[str] + """ + Recipient name. + """ + phone: Optional[str] + """ + Recipient phone (including extension). + """ + tracking_number: Optional[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + _inner_class_types = {"address": Address} + + class TransferData(StripeObject): + amount: Optional[int] + """ + The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account. + """ + destination: ExpandableField["Account"] + """ + ID of an existing, connected Stripe account to transfer funds to if `transfer_data` was specified in the charge request. + """ + + amount: int + """ + Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + amount_captured: int + """ + Amount in cents (or local equivalent) captured (can be less than the amount attribute on the charge if a partial capture was made). + """ + amount_refunded: int + """ + Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the charge if a partial refund was issued). + """ + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect application that created the charge. + """ + application_fee: Optional[ExpandableField["ApplicationFee"]] + """ + The application fee (if any) for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collect-fees) for details. + """ + application_fee_amount: Optional[int] + """ + The amount of the application fee (if any) requested for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collect-fees) for details. + """ + authorization_code: Optional[str] + """ + Authorization code on the charge. + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes). + """ + billing_details: BillingDetails + calculated_statement_descriptor: Optional[str] + """ + The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined. This value only exists for card payments. + """ + captured: bool + """ + If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: Optional[ExpandableField["Customer"]] + """ + ID of the customer this charge is for if one exists. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + disputed: bool + """ + Whether the charge has been disputed. + """ + failure_balance_transaction: Optional[ + ExpandableField["BalanceTransaction"] + ] + """ + ID of the balance transaction that describes the reversal of the balance on your account due to payment failure. + """ + failure_code: Optional[str] + """ + Error code explaining reason for charge failure if available (see [the errors section](https://stripe.com/docs/error-codes) for a list of codes). + """ + failure_message: Optional[str] + """ + Message to user further explaining reason for charge failure if available. + """ + fraud_details: Optional[FraudDetails] + """ + Information on fraud assessments for the charge. + """ + id: str + """ + Unique identifier for the object. + """ + level3: Optional[Level3] + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["charge"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers) for details. + """ + outcome: Optional[Outcome] + """ + Details about whether the payment was accepted, and why. See [understanding declines](https://stripe.com/docs/declines) for details. + """ + paid: bool + """ + `true` if the charge succeeded, or was successfully authorized for later capture. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + ID of the PaymentIntent associated with this charge, if one exists. + """ + payment_method: Optional[str] + """ + ID of the payment method used in this charge. + """ + payment_method_details: Optional[PaymentMethodDetails] + """ + Details about the payment method at the time of the transaction. + """ + presentment_details: Optional[PresentmentDetails] + radar_options: Optional[RadarOptions] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + receipt_email: Optional[str] + """ + This is the email address that the receipt for this charge was sent to. + """ + receipt_number: Optional[str] + """ + This is the transaction number that appears on email receipts sent for this charge. This attribute will be `null` until a receipt has been sent. + """ + receipt_url: Optional[str] + """ + This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt. + """ + refunded: bool + """ + Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false. + """ + refunds: Optional[ListObject["Refund"]] + """ + A list of refunds that have been applied to the charge. + """ + review: Optional[ExpandableField["Review"]] + """ + ID of the review associated with this charge if one exists. + """ + shipping: Optional[Shipping] + """ + Shipping information for the charge. + """ + source: Optional[Union["Account", "BankAccount", "CardResource", "Source"]] + """ + This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to `payment_method` or `payment_method_details` instead. + """ + source_transfer: Optional[ExpandableField["Transfer"]] + """ + The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https://docs.stripe.com/connect/destination-charges) for details. + """ + statement_descriptor: Optional[str] + """ + For a non-card charge, text that appears on the customer's statement as the statement descriptor. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + For a card charge, this value is ignored unless you don't specify a `statement_descriptor_suffix`, in which case this value is used as the suffix. + """ + statement_descriptor_suffix: Optional[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. If the account has no prefix value, the suffix is concatenated to the account's statement descriptor. + """ + status: Literal["failed", "pending", "succeeded"] + """ + The status of the payment is either `succeeded`, `pending`, or `failed`. + """ + transfer: Optional[ExpandableField["Transfer"]] + """ + ID of the transfer to the `destination` account (only applicable if the charge was created using the `destination` parameter). + """ + transfer_data: Optional[TransferData] + """ + An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details. + """ + transfer_group: Optional[str] + """ + A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details. + """ + + @classmethod + def _cls_capture( + cls, charge: str, **params: Unpack["ChargeCaptureParams"] + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + return cast( + "Charge", + cls._static_request( + "post", + "/v1/charges/{charge}/capture".format( + charge=sanitize_id(charge) + ), + params=params, + ), + ) + + @overload + @staticmethod + def capture( + charge: str, **params: Unpack["ChargeCaptureParams"] + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + ... + + @overload + def capture(self, **params: Unpack["ChargeCaptureParams"]) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + ... + + @class_method_variant("_cls_capture") + def capture( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ChargeCaptureParams"] + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + return cast( + "Charge", + self._request( + "post", + "/v1/charges/{charge}/capture".format( + charge=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_capture_async( + cls, charge: str, **params: Unpack["ChargeCaptureParams"] + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + return cast( + "Charge", + await cls._static_request_async( + "post", + "/v1/charges/{charge}/capture".format( + charge=sanitize_id(charge) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def capture_async( + charge: str, **params: Unpack["ChargeCaptureParams"] + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + ... + + @overload + async def capture_async( + self, **params: Unpack["ChargeCaptureParams"] + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + ... + + @class_method_variant("_cls_capture_async") + async def capture_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ChargeCaptureParams"] + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + return cast( + "Charge", + await self._request_async( + "post", + "/v1/charges/{charge}/capture".format( + charge=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["ChargeCreateParams"]) -> "Charge": + """ + This method is no longer recommended—use the [Payment Intents API](https://docs.stripe.com/docs/api/payment_intents) + to initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge + object used to request payment. + """ + return cast( + "Charge", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ChargeCreateParams"] + ) -> "Charge": + """ + This method is no longer recommended—use the [Payment Intents API](https://docs.stripe.com/docs/api/payment_intents) + to initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge + object used to request payment. + """ + return cast( + "Charge", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["ChargeListParams"] + ) -> ListObject["Charge"]: + """ + Returns a list of charges you've previously created. The charges are returned in sorted order, with the most recent charges appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ChargeListParams"] + ) -> ListObject["Charge"]: + """ + Returns a list of charges you've previously created. The charges are returned in sorted order, with the most recent charges appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["ChargeModifyParams"] + ) -> "Charge": + """ + Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Charge", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["ChargeModifyParams"] + ) -> "Charge": + """ + Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Charge", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ChargeRetrieveParams"] + ) -> "Charge": + """ + Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ChargeRetrieveParams"] + ) -> "Charge": + """ + Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def search( + cls, *args, **kwargs: Unpack["ChargeSearchParams"] + ) -> SearchResultObject["Charge"]: + """ + Search for charges you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cls._search(search_url="/v1/charges/search", *args, **kwargs) + + @classmethod + async def search_async( + cls, *args, **kwargs: Unpack["ChargeSearchParams"] + ) -> SearchResultObject["Charge"]: + """ + Search for charges you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return await cls._search_async( + search_url="/v1/charges/search", *args, **kwargs + ) + + @classmethod + def search_auto_paging_iter( + cls, *args, **kwargs: Unpack["ChargeSearchParams"] + ) -> Iterator["Charge"]: + return cls.search(*args, **kwargs).auto_paging_iter() + + @classmethod + async def search_auto_paging_iter_async( + cls, *args, **kwargs: Unpack["ChargeSearchParams"] + ) -> AsyncIterator["Charge"]: + return (await cls.search_async(*args, **kwargs)).auto_paging_iter() + + def mark_as_fraudulent(self, idempotency_key=None) -> "Charge": + params = { + "fraud_details": {"user_report": "fraudulent"}, + "idempotency_key": idempotency_key, + } + url = self.instance_url() + self._request_and_refresh("post", url, params) + return self + + def mark_as_safe(self, idempotency_key=None) -> "Charge": + params = { + "fraud_details": {"user_report": "safe"}, + "idempotency_key": idempotency_key, + } + url = self.instance_url() + self._request_and_refresh("post", url, params) + return self + + @classmethod + def retrieve_refund( + cls, + charge: str, + refund: str, + **params: Unpack["ChargeRetrieveRefundParams"], + ) -> "Refund": + """ + Retrieves the details of an existing refund. + """ + return cast( + "Refund", + cls._static_request( + "get", + "/v1/charges/{charge}/refunds/{refund}".format( + charge=sanitize_id(charge), refund=sanitize_id(refund) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_refund_async( + cls, + charge: str, + refund: str, + **params: Unpack["ChargeRetrieveRefundParams"], + ) -> "Refund": + """ + Retrieves the details of an existing refund. + """ + return cast( + "Refund", + await cls._static_request_async( + "get", + "/v1/charges/{charge}/refunds/{refund}".format( + charge=sanitize_id(charge), refund=sanitize_id(refund) + ), + params=params, + ), + ) + + @classmethod + def list_refunds( + cls, charge: str, **params: Unpack["ChargeListRefundsParams"] + ) -> ListObject["Refund"]: + """ + You can see a list of the refunds belonging to a specific charge. Note that the 10 most recent refunds are always available by default on the charge object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds. + """ + return cast( + ListObject["Refund"], + cls._static_request( + "get", + "/v1/charges/{charge}/refunds".format( + charge=sanitize_id(charge) + ), + params=params, + ), + ) + + @classmethod + async def list_refunds_async( + cls, charge: str, **params: Unpack["ChargeListRefundsParams"] + ) -> ListObject["Refund"]: + """ + You can see a list of the refunds belonging to a specific charge. Note that the 10 most recent refunds are always available by default on the charge object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds. + """ + return cast( + ListObject["Refund"], + await cls._static_request_async( + "get", + "/v1/charges/{charge}/refunds".format( + charge=sanitize_id(charge) + ), + params=params, + ), + ) + + _inner_class_types = { + "billing_details": BillingDetails, + "fraud_details": FraudDetails, + "level3": Level3, + "outcome": Outcome, + "payment_method_details": PaymentMethodDetails, + "presentment_details": PresentmentDetails, + "radar_options": RadarOptions, + "shipping": Shipping, + "transfer_data": TransferData, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_charge_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_charge_service.py new file mode 100644 index 00000000..2fca7659 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_charge_service.py @@ -0,0 +1,276 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._charge import Charge + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._search_result_object import SearchResultObject + from stripe.params._charge_capture_params import ChargeCaptureParams + from stripe.params._charge_create_params import ChargeCreateParams + from stripe.params._charge_list_params import ChargeListParams + from stripe.params._charge_retrieve_params import ChargeRetrieveParams + from stripe.params._charge_search_params import ChargeSearchParams + from stripe.params._charge_update_params import ChargeUpdateParams + + +class ChargeService(StripeService): + def list( + self, + params: Optional["ChargeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Charge]": + """ + Returns a list of charges you've previously created. The charges are returned in sorted order, with the most recent charges appearing first. + """ + return cast( + "ListObject[Charge]", + self._request( + "get", + "/v1/charges", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ChargeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Charge]": + """ + Returns a list of charges you've previously created. The charges are returned in sorted order, with the most recent charges appearing first. + """ + return cast( + "ListObject[Charge]", + await self._request_async( + "get", + "/v1/charges", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["ChargeCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + This method is no longer recommended—use the [Payment Intents API](https://docs.stripe.com/docs/api/payment_intents) + to initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge + object used to request payment. + """ + return cast( + "Charge", + self._request( + "post", + "/v1/charges", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["ChargeCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + This method is no longer recommended—use the [Payment Intents API](https://docs.stripe.com/docs/api/payment_intents) + to initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge + object used to request payment. + """ + return cast( + "Charge", + await self._request_async( + "post", + "/v1/charges", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + charge: str, + params: Optional["ChargeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge. + """ + return cast( + "Charge", + self._request( + "get", + "/v1/charges/{charge}".format(charge=sanitize_id(charge)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + charge: str, + params: Optional["ChargeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge. + """ + return cast( + "Charge", + await self._request_async( + "get", + "/v1/charges/{charge}".format(charge=sanitize_id(charge)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + charge: str, + params: Optional["ChargeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Charge", + self._request( + "post", + "/v1/charges/{charge}".format(charge=sanitize_id(charge)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + charge: str, + params: Optional["ChargeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Charge", + await self._request_async( + "post", + "/v1/charges/{charge}".format(charge=sanitize_id(charge)), + base_address="api", + params=params, + options=options, + ), + ) + + def search( + self, + params: "ChargeSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Charge]": + """ + Search for charges you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Charge]", + self._request( + "get", + "/v1/charges/search", + base_address="api", + params=params, + options=options, + ), + ) + + async def search_async( + self, + params: "ChargeSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Charge]": + """ + Search for charges you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Charge]", + await self._request_async( + "get", + "/v1/charges/search", + base_address="api", + params=params, + options=options, + ), + ) + + def capture( + self, + charge: str, + params: Optional["ChargeCaptureParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + return cast( + "Charge", + self._request( + "post", + "/v1/charges/{charge}/capture".format( + charge=sanitize_id(charge), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def capture_async( + self, + charge: str, + params: Optional["ChargeCaptureParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Charge": + """ + Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. + + Uncaptured payments expire a set number of days after they are created ([7 by default](https://docs.stripe.com/docs/charges/placing-a-hold)), after which they are marked as refunded and capture attempts will fail. + + Don't use this method to capture a PaymentIntent-initiated charge. Use [Capture a PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/capture). + """ + return cast( + "Charge", + await self._request_async( + "post", + "/v1/charges/{charge}/capture".format( + charge=sanitize_id(charge), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_checkout_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_checkout_service.py new file mode 100644 index 00000000..92c36e18 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_checkout_service.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.checkout._session_service import SessionService + +_subservices = { + "sessions": ["stripe.checkout._session_service", "SessionService"], +} + + +class CheckoutService(StripeService): + sessions: "SessionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_client_options.py b/Backend/venv/lib/python3.12/site-packages/stripe/_client_options.py new file mode 100644 index 00000000..4a498b8c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_client_options.py @@ -0,0 +1,17 @@ +from typing import Optional + + +class _ClientOptions(object): + client_id: Optional[str] + proxy: Optional[str] + verify_ssl_certs: Optional[bool] + + def __init__( + self, + client_id: Optional[str] = None, + proxy: Optional[str] = None, + verify_ssl_certs: Optional[bool] = None, + ): + self.client_id = client_id + self.proxy = proxy + self.verify_ssl_certs = verify_ssl_certs diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_climate_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_climate_service.py new file mode 100644 index 00000000..5bf1b46c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_climate_service.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.climate._order_service import OrderService + from stripe.climate._product_service import ProductService + from stripe.climate._supplier_service import SupplierService + +_subservices = { + "orders": ["stripe.climate._order_service", "OrderService"], + "products": ["stripe.climate._product_service", "ProductService"], + "suppliers": ["stripe.climate._supplier_service", "SupplierService"], +} + + +class ClimateService(StripeService): + orders: "OrderService" + products: "ProductService" + suppliers: "SupplierService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_confirmation_token.py b/Backend/venv/lib/python3.12/site-packages/stripe/_confirmation_token.py new file mode 100644 index 00000000..78c93fd3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_confirmation_token.py @@ -0,0 +1,1747 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._api_resource import APIResource +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._charge import Charge + from stripe._customer import Customer + from stripe._setup_attempt import SetupAttempt + from stripe.params._confirmation_token_create_params import ( + ConfirmationTokenCreateParams, + ) + from stripe.params._confirmation_token_retrieve_params import ( + ConfirmationTokenRetrieveParams, + ) + + +class ConfirmationToken(APIResource["ConfirmationToken"]): + """ + ConfirmationTokens help transport client side data collected by Stripe JS over + to your server for confirming a PaymentIntent or SetupIntent. If the confirmation + is successful, values present on the ConfirmationToken are written onto the Intent. + + To learn more about how to use ConfirmationToken, visit the related guides: + - [Finalize payments on the server](https://stripe.com/docs/payments/finalize-payments-on-the-server) + - [Build two-step confirmation](https://stripe.com/docs/payments/build-a-two-step-confirmation). + """ + + OBJECT_NAME: ClassVar[Literal["confirmation_token"]] = "confirmation_token" + + class MandateData(StripeObject): + class CustomerAcceptance(StripeObject): + class Online(StripeObject): + ip_address: Optional[str] + """ + The IP address from which the Mandate was accepted by the customer. + """ + user_agent: Optional[str] + """ + The user agent of the browser from which the Mandate was accepted by the customer. + """ + + online: Optional[Online] + """ + If this is a Mandate accepted online, this hash contains details about the online acceptance. + """ + type: str + """ + The type of customer acceptance information included with the Mandate. + """ + _inner_class_types = {"online": Online} + + customer_acceptance: CustomerAcceptance + """ + This hash contains details about the customer acceptance of the Mandate. + """ + _inner_class_types = {"customer_acceptance": CustomerAcceptance} + + class PaymentMethodOptions(StripeObject): + class Card(StripeObject): + class Installments(StripeObject): + class Plan(StripeObject): + count: Optional[int] + """ + For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card. + """ + interval: Optional[Literal["month"]] + """ + For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + plan: Optional[Plan] + _inner_class_types = {"plan": Plan} + + cvc_token: Optional[str] + """ + The `cvc_update` Token collected from the Payment Element. + """ + installments: Optional[Installments] + """ + Installment configuration for payments. + """ + _inner_class_types = {"installments": Installments} + + card: Optional[Card] + """ + This hash contains the card payment method options. + """ + _inner_class_types = {"card": Card} + + class PaymentMethodPreview(StripeObject): + class AcssDebit(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + institution_number: Optional[str] + """ + Institution number of the bank account. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + transit_number: Optional[str] + """ + Transit number of the bank account. + """ + + class Affirm(StripeObject): + pass + + class AfterpayClearpay(StripeObject): + pass + + class Alipay(StripeObject): + pass + + class Alma(StripeObject): + pass + + class AmazonPay(StripeObject): + pass + + class AuBecsDebit(StripeObject): + bsb_number: Optional[str] + """ + Six-digit number identifying bank and branch associated with this bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + + class BacsDebit(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + sort_code: Optional[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + class Bancontact(StripeObject): + pass + + class Billie(StripeObject): + pass + + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + """ + Billing address. + """ + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + phone: Optional[str] + """ + Billing phone number (including extension). + """ + tax_id: Optional[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + _inner_class_types = {"address": Address} + + class Blik(StripeObject): + pass + + class Boleto(StripeObject): + tax_id: str + """ + Uniquely identifies the customer tax id (CNPJ or CPF) + """ + + class Card(StripeObject): + class Checks(StripeObject): + address_line1_check: Optional[str] + """ + If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + address_postal_code_check: Optional[str] + """ + If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + cvc_check: Optional[str] + """ + If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + + class GeneratedFrom(StripeObject): + class PaymentMethodDetails(StripeObject): + class CardPresent(StripeObject): + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + class Receipt(StripeObject): + account_type: Optional[ + Literal[ + "checking", "credit", "prepaid", "unknown" + ] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + class Wallet(StripeObject): + type: Literal[ + "apple_pay", + "google_pay", + "samsung_pay", + "unknown", + ] + """ + The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. + """ + + amount_authorized: Optional[int] + """ + The authorized amount + """ + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + brand_product: Optional[str] + """ + The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + incremental_authorization_supported: bool + """ + Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support). + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + offline: Optional[Offline] + """ + Details about payments collected offline. + """ + overcapture_supported: bool + """ + Defines whether the authorized amount can be over-captured or not + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + wallet: Optional[Wallet] + _inner_class_types = { + "offline": Offline, + "receipt": Receipt, + "wallet": Wallet, + } + + card_present: Optional[CardPresent] + type: str + """ + The type of payment method transaction-specific details from the transaction that generated this `card` payment method. Always `card_present`. + """ + _inner_class_types = {"card_present": CardPresent} + + charge: Optional[str] + """ + The charge that created this object. + """ + payment_method_details: Optional[PaymentMethodDetails] + """ + Transaction-specific details of the payment method used in the payment. + """ + setup_attempt: Optional[ExpandableField["SetupAttempt"]] + """ + The ID of the SetupAttempt that generated this PaymentMethod, if any. + """ + _inner_class_types = { + "payment_method_details": PaymentMethodDetails, + } + + class Networks(StripeObject): + available: List[str] + """ + All networks available for selection via [payment_method_options.card.network](https://docs.stripe.com/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). + """ + preferred: Optional[str] + """ + The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card. + """ + + class ThreeDSecureUsage(StripeObject): + supported: bool + """ + Whether 3D Secure is supported on this card. + """ + + class Wallet(StripeObject): + class AmexExpressCheckout(StripeObject): + pass + + class ApplePay(StripeObject): + pass + + class GooglePay(StripeObject): + pass + + class Link(StripeObject): + pass + + class Masterpass(StripeObject): + class BillingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + billing_address: Optional[BillingAddress] + """ + Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + email: Optional[str] + """ + Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + shipping_address: Optional[ShippingAddress] + """ + Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + _inner_class_types = { + "billing_address": BillingAddress, + "shipping_address": ShippingAddress, + } + + class SamsungPay(StripeObject): + pass + + class VisaCheckout(StripeObject): + class BillingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + billing_address: Optional[BillingAddress] + """ + Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + email: Optional[str] + """ + Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + shipping_address: Optional[ShippingAddress] + """ + Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + _inner_class_types = { + "billing_address": BillingAddress, + "shipping_address": ShippingAddress, + } + + amex_express_checkout: Optional[AmexExpressCheckout] + apple_pay: Optional[ApplePay] + dynamic_last4: Optional[str] + """ + (For tokenized numbers only.) The last four digits of the device account number. + """ + google_pay: Optional[GooglePay] + link: Optional[Link] + masterpass: Optional[Masterpass] + samsung_pay: Optional[SamsungPay] + type: Literal[ + "amex_express_checkout", + "apple_pay", + "google_pay", + "link", + "masterpass", + "samsung_pay", + "visa_checkout", + ] + """ + The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type. + """ + visa_checkout: Optional[VisaCheckout] + _inner_class_types = { + "amex_express_checkout": AmexExpressCheckout, + "apple_pay": ApplePay, + "google_pay": GooglePay, + "link": Link, + "masterpass": Masterpass, + "samsung_pay": SamsungPay, + "visa_checkout": VisaCheckout, + } + + brand: str + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + checks: Optional[Checks] + """ + Checks on Card address and CVC if provided. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + display_brand: Optional[str] + """ + The brand to use when displaying the card, this accounts for customer's brand choice on dual-branded cards. Can be `american_express`, `cartes_bancaires`, `diners_club`, `discover`, `eftpos_australia`, `interac`, `jcb`, `mastercard`, `union_pay`, `visa`, or `other` and may contain more values in the future. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: str + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_from: Optional[GeneratedFrom] + """ + Details of the original PaymentMethod that created this object. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: str + """ + The last four digits of the card. + """ + networks: Optional[Networks] + """ + Contains information about card networks that can be used to process the payment. + """ + regulated_status: Optional[Literal["regulated", "unregulated"]] + """ + Status of a card based on the card issuer. + """ + three_d_secure_usage: Optional[ThreeDSecureUsage] + """ + Contains details on how this Card may be used for 3D Secure authentication. + """ + wallet: Optional[Wallet] + """ + If this Card is part of a card wallet, this contains the details of the card wallet. + """ + _inner_class_types = { + "checks": Checks, + "generated_from": GeneratedFrom, + "networks": Networks, + "three_d_secure_usage": ThreeDSecureUsage, + "wallet": Wallet, + } + + class CardPresent(StripeObject): + class Networks(StripeObject): + available: List[str] + """ + All networks available for selection via [payment_method_options.card.network](https://docs.stripe.com/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). + """ + preferred: Optional[str] + """ + The preferred network for the card. + """ + + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + class Wallet(StripeObject): + type: Literal[ + "apple_pay", "google_pay", "samsung_pay", "unknown" + ] + """ + The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. + """ + + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + brand_product: Optional[str] + """ + The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + networks: Optional[Networks] + """ + Contains information about card networks that can be used to process the payment. + """ + offline: Optional[Offline] + """ + Details about payment methods collected offline. + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + wallet: Optional[Wallet] + _inner_class_types = { + "networks": Networks, + "offline": Offline, + "wallet": Wallet, + } + + class Cashapp(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by Cash App to every buyer. + """ + cashtag: Optional[str] + """ + A public identifier for buyers using Cash App. + """ + + class Crypto(StripeObject): + pass + + class CustomerBalance(StripeObject): + pass + + class Eps(StripeObject): + bank: Optional[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`. + """ + + class Fpx(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type, if provided. Can be one of `individual` or `company`. + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank, if provided. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`. + """ + + class Giropay(StripeObject): + pass + + class Grabpay(StripeObject): + pass + + class Ideal(StripeObject): + bank: Optional[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank, if provided. Can be one of `abn_amro`, `asn_bank`, `bunq`, `buut`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`. + """ + bic: Optional[ + Literal[ + "ABNANL2A", + "ASNBNL21", + "BITSNL2A", + "BUNQNL2A", + "BUUTNL2A", + "FVLBNL22", + "HANDNL2A", + "INGBNL2A", + "KNABNL2H", + "MOYONL21", + "NNBANL2G", + "NTSBDEB1", + "RABONL2U", + "RBRBNL21", + "REVOIE23", + "REVOLT21", + "SNSBNL2A", + "TRIONL2U", + ] + ] + """ + The Bank Identifier Code of the customer's bank, if the bank was provided. + """ + + class InteracPresent(StripeObject): + class Networks(StripeObject): + available: List[str] + """ + All networks available for selection via [payment_method_options.card.network](https://docs.stripe.com/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). + """ + preferred: Optional[str] + """ + The preferred network for the card. + """ + + brand: Optional[str] + """ + Card brand. Can be `interac`, `mastercard` or `visa`. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + networks: Optional[Networks] + """ + Contains information about card networks that can be used to process the payment. + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + _inner_class_types = {"networks": Networks} + + class KakaoPay(StripeObject): + pass + + class Klarna(StripeObject): + class Dob(StripeObject): + day: Optional[int] + """ + The day of birth, between 1 and 31. + """ + month: Optional[int] + """ + The month of birth, between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year of birth. + """ + + dob: Optional[Dob] + """ + The customer's date of birth, if provided. + """ + _inner_class_types = {"dob": Dob} + + class Konbini(StripeObject): + pass + + class KrCard(StripeObject): + brand: Optional[ + Literal[ + "bc", + "citi", + "hana", + "hyundai", + "jeju", + "jeonbuk", + "kakaobank", + "kbank", + "kdbbank", + "kookmin", + "kwangju", + "lotte", + "mg", + "nh", + "post", + "samsung", + "savingsbank", + "shinhan", + "shinhyup", + "suhyup", + "tossbank", + "woori", + ] + ] + """ + The local credit or debit card brand. + """ + last4: Optional[str] + """ + The last four digits of the card. This may not be present for American Express cards. + """ + + class Link(StripeObject): + email: Optional[str] + """ + Account owner's email address. + """ + persistent_token: Optional[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + + class MbWay(StripeObject): + pass + + class Mobilepay(StripeObject): + pass + + class Multibanco(StripeObject): + pass + + class NaverPay(StripeObject): + buyer_id: Optional[str] + """ + Uniquely identifies this particular Naver Pay account. You can use this attribute to check whether two Naver Pay accounts are the same. + """ + funding: Literal["card", "points"] + """ + Whether to fund this transaction with Naver Pay points or a card. + """ + + class NzBankAccount(StripeObject): + account_holder_name: Optional[str] + """ + The name on the bank account. Only present if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + bank_name: str + """ + The name of the bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + last4: str + """ + Last four digits of the bank account number. + """ + suffix: Optional[str] + """ + The suffix of the bank account number. + """ + + class Oxxo(StripeObject): + pass + + class P24(StripeObject): + bank: Optional[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank, if provided. + """ + + class PayByBank(StripeObject): + pass + + class Payco(StripeObject): + pass + + class Paynow(StripeObject): + pass + + class Paypal(StripeObject): + country: Optional[str] + """ + Two-letter ISO code representing the buyer's country. Values are provided by PayPal directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_email: Optional[str] + """ + Owner's email. Values are provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_id: Optional[str] + """ + PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + """ + + class Pix(StripeObject): + pass + + class Promptpay(StripeObject): + pass + + class RevolutPay(StripeObject): + pass + + class SamsungPay(StripeObject): + pass + + class Satispay(StripeObject): + pass + + class SepaDebit(StripeObject): + class GeneratedFrom(StripeObject): + charge: Optional[ExpandableField["Charge"]] + """ + The ID of the Charge that generated this PaymentMethod, if any. + """ + setup_attempt: Optional[ExpandableField["SetupAttempt"]] + """ + The ID of the SetupAttempt that generated this PaymentMethod, if any. + """ + + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + branch_code: Optional[str] + """ + Branch code of bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + generated_from: Optional[GeneratedFrom] + """ + Information about the object that generated this PaymentMethod. + """ + last4: Optional[str] + """ + Last four characters of the IBAN. + """ + _inner_class_types = {"generated_from": GeneratedFrom} + + class Sofort(StripeObject): + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + class Swish(StripeObject): + pass + + class Twint(StripeObject): + pass + + class UsBankAccount(StripeObject): + class Networks(StripeObject): + preferred: Optional[str] + """ + The preferred network. + """ + supported: List[Literal["ach", "us_domestic_wire"]] + """ + All supported networks. + """ + + class StatusDetails(StripeObject): + class Blocked(StripeObject): + network_code: Optional[ + Literal[ + "R02", + "R03", + "R04", + "R05", + "R07", + "R08", + "R10", + "R11", + "R16", + "R20", + "R29", + "R31", + ] + ] + """ + The ACH network code that resulted in this block. + """ + reason: Optional[ + Literal[ + "bank_account_closed", + "bank_account_frozen", + "bank_account_invalid_details", + "bank_account_restricted", + "bank_account_unusable", + "debit_not_authorized", + ] + ] + """ + The reason why this PaymentMethod's fingerprint has been blocked + """ + + blocked: Optional[Blocked] + _inner_class_types = {"blocked": Blocked} + + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_type: Optional[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + bank_name: Optional[str] + """ + The name of the bank. + """ + financial_connections_account: Optional[str] + """ + The ID of the Financial Connections Account used to create the payment method. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + networks: Optional[Networks] + """ + Contains information about US bank account networks that can be used. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + status_details: Optional[StatusDetails] + """ + Contains information about the future reusability of this PaymentMethod. + """ + _inner_class_types = { + "networks": Networks, + "status_details": StatusDetails, + } + + class WechatPay(StripeObject): + pass + + class Zip(StripeObject): + pass + + acss_debit: Optional[AcssDebit] + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + allow_redisplay: Optional[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. + """ + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + billing_details: BillingDetails + blik: Optional[Blik] + boleto: Optional[Boleto] + card: Optional[Card] + card_present: Optional[CardPresent] + cashapp: Optional[Cashapp] + crypto: Optional[Crypto] + customer: Optional[ExpandableField["Customer"]] + """ + The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer. + """ + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + ideal: Optional[Ideal] + interac_present: Optional[InteracPresent] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + mb_way: Optional[MbWay] + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + oxxo: Optional[Oxxo] + p24: Optional[P24] + pay_by_bank: Optional[PayByBank] + payco: Optional[Payco] + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + promptpay: Optional[Promptpay] + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + swish: Optional[Swish] + twint: Optional[Twint] + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "card_present", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "interac_present", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: Optional[UsBankAccount] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + _inner_class_types = { + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "billing_details": BillingDetails, + "blik": Blik, + "boleto": Boleto, + "card": Card, + "card_present": CardPresent, + "cashapp": Cashapp, + "crypto": Crypto, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "grabpay": Grabpay, + "ideal": Ideal, + "interac_present": InteracPresent, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mb_way": MbWay, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "oxxo": Oxxo, + "p24": P24, + "pay_by_bank": PayByBank, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "promptpay": Promptpay, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + "wechat_pay": WechatPay, + "zip": Zip, + } + + class Shipping(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + name: str + """ + Recipient name. + """ + phone: Optional[str] + """ + Recipient phone (including extension). + """ + _inner_class_types = {"address": Address} + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + expires_at: Optional[int] + """ + Time at which this ConfirmationToken expires and can no longer be used to confirm a PaymentIntent or SetupIntent. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + mandate_data: Optional[MandateData] + """ + Data used for generating a Mandate. + """ + object: Literal["confirmation_token"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_intent: Optional[str] + """ + ID of the PaymentIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used. + """ + payment_method_options: Optional[PaymentMethodOptions] + """ + Payment-method-specific configuration for this ConfirmationToken. + """ + payment_method_preview: Optional[PaymentMethodPreview] + """ + Payment details collected by the Payment Element, used to create a PaymentMethod when a PaymentIntent or SetupIntent is confirmed with this ConfirmationToken. + """ + return_url: Optional[str] + """ + Return URL used to confirm the Intent. + """ + setup_future_usage: Optional[Literal["off_session", "on_session"]] + """ + Indicates that you intend to make future payments with this ConfirmationToken's payment method. + + The presence of this property will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. + """ + setup_intent: Optional[str] + """ + ID of the SetupIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used. + """ + shipping: Optional[Shipping] + """ + Shipping information collected on this ConfirmationToken. + """ + use_stripe_sdk: bool + """ + Indicates whether the Stripe SDK is used to handle confirmation flow. Defaults to `true` on ConfirmationToken. + """ + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ConfirmationTokenRetrieveParams"] + ) -> "ConfirmationToken": + """ + Retrieves an existing ConfirmationToken object + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ConfirmationTokenRetrieveParams"] + ) -> "ConfirmationToken": + """ + Retrieves an existing ConfirmationToken object + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["ConfirmationToken"]): + _resource_cls: Type["ConfirmationToken"] + + @classmethod + def create( + cls, **params: Unpack["ConfirmationTokenCreateParams"] + ) -> "ConfirmationToken": + """ + Creates a test mode Confirmation Token server side for your integration tests. + """ + return cast( + "ConfirmationToken", + cls._static_request( + "post", + "/v1/test_helpers/confirmation_tokens", + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ConfirmationTokenCreateParams"] + ) -> "ConfirmationToken": + """ + Creates a test mode Confirmation Token server side for your integration tests. + """ + return cast( + "ConfirmationToken", + await cls._static_request_async( + "post", + "/v1/test_helpers/confirmation_tokens", + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "mandate_data": MandateData, + "payment_method_options": PaymentMethodOptions, + "payment_method_preview": PaymentMethodPreview, + "shipping": Shipping, + } + + +ConfirmationToken.TestHelpers._resource_cls = ConfirmationToken diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_confirmation_token_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_confirmation_token_service.py new file mode 100644 index 00000000..066b43fc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_confirmation_token_service.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._confirmation_token import ConfirmationToken + from stripe._request_options import RequestOptions + from stripe.params._confirmation_token_retrieve_params import ( + ConfirmationTokenRetrieveParams, + ) + + +class ConfirmationTokenService(StripeService): + def retrieve( + self, + confirmation_token: str, + params: Optional["ConfirmationTokenRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ConfirmationToken": + """ + Retrieves an existing ConfirmationToken object + """ + return cast( + "ConfirmationToken", + self._request( + "get", + "/v1/confirmation_tokens/{confirmation_token}".format( + confirmation_token=sanitize_id(confirmation_token), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + confirmation_token: str, + params: Optional["ConfirmationTokenRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ConfirmationToken": + """ + Retrieves an existing ConfirmationToken object + """ + return cast( + "ConfirmationToken", + await self._request_async( + "get", + "/v1/confirmation_tokens/{confirmation_token}".format( + confirmation_token=sanitize_id(confirmation_token), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_connect_collection_transfer.py b/Backend/venv/lib/python3.12/site-packages/stripe/_connect_collection_transfer.py new file mode 100644 index 00000000..397e20d1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_connect_collection_transfer.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + + +class ConnectCollectionTransfer(StripeObject): + OBJECT_NAME: ClassVar[Literal["connect_collection_transfer"]] = ( + "connect_collection_transfer" + ) + amount: int + """ + Amount transferred, in cents (or local equivalent). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + destination: ExpandableField["Account"] + """ + ID of the account that funds are being collected for. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["connect_collection_transfer"] + """ + String representing the object's type. Objects of the same type share the same value. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_country_spec.py b/Backend/venv/lib/python3.12/site-packages/stripe/_country_spec.py new file mode 100644 index 00000000..2b7f67ff --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_country_spec.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, List +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._country_spec_list_params import CountrySpecListParams + from stripe.params._country_spec_retrieve_params import ( + CountrySpecRetrieveParams, + ) + + +class CountrySpec(ListableAPIResource["CountrySpec"]): + """ + Stripe needs to collect certain pieces of information about each account + created. These requirements can differ depending on the account's country. The + Country Specs API makes these rules available to your integration. + + You can also view the information from this API call as [an online + guide](https://docs.stripe.com/docs/connect/required-verification-information). + """ + + OBJECT_NAME: ClassVar[Literal["country_spec"]] = "country_spec" + + class VerificationFields(StripeObject): + class Company(StripeObject): + additional: List[str] + """ + Additional fields which are only required for some users. + """ + minimum: List[str] + """ + Fields which every account must eventually provide. + """ + + class Individual(StripeObject): + additional: List[str] + """ + Additional fields which are only required for some users. + """ + minimum: List[str] + """ + Fields which every account must eventually provide. + """ + + company: Company + individual: Individual + _inner_class_types = {"company": Company, "individual": Individual} + + default_currency: str + """ + The default currency for this country. This applies to both payment methods and bank accounts. + """ + id: str + """ + Unique identifier for the object. Represented as the ISO country code for this country. + """ + object: Literal["country_spec"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + supported_bank_account_currencies: Dict[str, List[str]] + """ + Currencies that can be accepted in the specific country (for transfers). + """ + supported_payment_currencies: List[str] + """ + Currencies that can be accepted in the specified country (for payments). + """ + supported_payment_methods: List[str] + """ + Payment methods available in the specified country. You may need to enable some payment methods (e.g., [ACH](https://stripe.com/docs/ach)) on your account before they appear in this list. The `stripe` payment method refers to [charging through your platform](https://stripe.com/docs/connect/destination-charges). + """ + supported_transfer_countries: List[str] + """ + Countries that can accept transfers from the specified country. + """ + verification_fields: VerificationFields + + @classmethod + def list( + cls, **params: Unpack["CountrySpecListParams"] + ) -> ListObject["CountrySpec"]: + """ + Lists all Country Spec objects available in the API. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CountrySpecListParams"] + ) -> ListObject["CountrySpec"]: + """ + Lists all Country Spec objects available in the API. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CountrySpecRetrieveParams"] + ) -> "CountrySpec": + """ + Returns a Country Spec for a given Country code. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CountrySpecRetrieveParams"] + ) -> "CountrySpec": + """ + Returns a Country Spec for a given Country code. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"verification_fields": VerificationFields} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_country_spec_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_country_spec_service.py new file mode 100644 index 00000000..b5e14736 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_country_spec_service.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._country_spec import CountrySpec + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._country_spec_list_params import CountrySpecListParams + from stripe.params._country_spec_retrieve_params import ( + CountrySpecRetrieveParams, + ) + + +class CountrySpecService(StripeService): + def list( + self, + params: Optional["CountrySpecListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CountrySpec]": + """ + Lists all Country Spec objects available in the API. + """ + return cast( + "ListObject[CountrySpec]", + self._request( + "get", + "/v1/country_specs", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["CountrySpecListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CountrySpec]": + """ + Lists all Country Spec objects available in the API. + """ + return cast( + "ListObject[CountrySpec]", + await self._request_async( + "get", + "/v1/country_specs", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + country: str, + params: Optional["CountrySpecRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CountrySpec": + """ + Returns a Country Spec for a given Country code. + """ + return cast( + "CountrySpec", + self._request( + "get", + "/v1/country_specs/{country}".format( + country=sanitize_id(country), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + country: str, + params: Optional["CountrySpecRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CountrySpec": + """ + Returns a Country Spec for a given Country code. + """ + return cast( + "CountrySpec", + await self._request_async( + "get", + "/v1/country_specs/{country}".format( + country=sanitize_id(country), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_coupon.py b/Backend/venv/lib/python3.12/site-packages/stripe/_coupon.py new file mode 100644 index 00000000..92bf85b7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_coupon.py @@ -0,0 +1,344 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._coupon_create_params import CouponCreateParams + from stripe.params._coupon_delete_params import CouponDeleteParams + from stripe.params._coupon_list_params import CouponListParams + from stripe.params._coupon_modify_params import CouponModifyParams + from stripe.params._coupon_retrieve_params import CouponRetrieveParams + + +class Coupon( + CreateableAPIResource["Coupon"], + DeletableAPIResource["Coupon"], + ListableAPIResource["Coupon"], + UpdateableAPIResource["Coupon"], +): + """ + A coupon contains information about a percent-off or amount-off discount you + might want to apply to a customer. Coupons may be applied to [subscriptions](https://stripe.com/docs/api#subscriptions), [invoices](https://stripe.com/docs/api#invoices), + [checkout sessions](https://stripe.com/docs/api/checkout/sessions), [quotes](https://stripe.com/docs/api#quotes), and more. Coupons do not work with conventional one-off [charges](https://stripe.com/docs/api#create_charge) or [payment intents](https://stripe.com/docs/api/payment_intents). + """ + + OBJECT_NAME: ClassVar[Literal["coupon"]] = "coupon" + + class AppliesTo(StripeObject): + products: List[str] + """ + A list of product IDs this coupon applies to + """ + + class CurrencyOptions(StripeObject): + amount_off: int + """ + Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer. + """ + + amount_off: Optional[int] + """ + Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer. + """ + applies_to: Optional[AppliesTo] + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: Optional[str] + """ + If `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off. + """ + currency_options: Optional[Dict[str, CurrencyOptions]] + """ + Coupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + duration: Literal["forever", "once", "repeating"] + """ + One of `forever`, `once`, or `repeating`. Describes how long a customer who applies this coupon will get the discount. + """ + duration_in_months: Optional[int] + """ + If `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + max_redemptions: Optional[int] + """ + Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: Optional[str] + """ + Name of the coupon displayed to customers on for instance invoices or receipts. + """ + object: Literal["coupon"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + percent_off: Optional[float] + """ + Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead. + """ + redeem_by: Optional[int] + """ + Date after which the coupon can no longer be redeemed. + """ + times_redeemed: int + """ + Number of times this coupon has been applied to a customer. + """ + valid: bool + """ + Taking account of the above properties, whether this coupon can still be applied to a customer. + """ + + @classmethod + def create(cls, **params: Unpack["CouponCreateParams"]) -> "Coupon": + """ + You can create coupons easily via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly. + + A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice's subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it. + """ + return cast( + "Coupon", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CouponCreateParams"] + ) -> "Coupon": + """ + You can create coupons easily via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly. + + A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice's subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it. + """ + return cast( + "Coupon", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["CouponDeleteParams"] + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Coupon", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete(sid: str, **params: Unpack["CouponDeleteParams"]) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + ... + + @overload + def delete(self, **params: Unpack["CouponDeleteParams"]) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CouponDeleteParams"] + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["CouponDeleteParams"] + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Coupon", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["CouponDeleteParams"] + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["CouponDeleteParams"] + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CouponDeleteParams"] + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["CouponListParams"] + ) -> ListObject["Coupon"]: + """ + Returns a list of your coupons. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CouponListParams"] + ) -> ListObject["Coupon"]: + """ + Returns a list of your coupons. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["CouponModifyParams"] + ) -> "Coupon": + """ + Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Coupon", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["CouponModifyParams"] + ) -> "Coupon": + """ + Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Coupon", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CouponRetrieveParams"] + ) -> "Coupon": + """ + Retrieves the coupon with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CouponRetrieveParams"] + ) -> "Coupon": + """ + Retrieves the coupon with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "applies_to": AppliesTo, + "currency_options": CurrencyOptions, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_coupon_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_coupon_service.py new file mode 100644 index 00000000..c927d272 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_coupon_service.py @@ -0,0 +1,218 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._coupon import Coupon + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._coupon_create_params import CouponCreateParams + from stripe.params._coupon_delete_params import CouponDeleteParams + from stripe.params._coupon_list_params import CouponListParams + from stripe.params._coupon_retrieve_params import CouponRetrieveParams + from stripe.params._coupon_update_params import CouponUpdateParams + + +class CouponService(StripeService): + def delete( + self, + coupon: str, + params: Optional["CouponDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + return cast( + "Coupon", + self._request( + "delete", + "/v1/coupons/{coupon}".format(coupon=sanitize_id(coupon)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + coupon: str, + params: Optional["CouponDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + You can delete coupons via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can't redeem the coupon. You can also delete coupons via the API. + """ + return cast( + "Coupon", + await self._request_async( + "delete", + "/v1/coupons/{coupon}".format(coupon=sanitize_id(coupon)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + coupon: str, + params: Optional["CouponRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + Retrieves the coupon with the given ID. + """ + return cast( + "Coupon", + self._request( + "get", + "/v1/coupons/{coupon}".format(coupon=sanitize_id(coupon)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + coupon: str, + params: Optional["CouponRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + Retrieves the coupon with the given ID. + """ + return cast( + "Coupon", + await self._request_async( + "get", + "/v1/coupons/{coupon}".format(coupon=sanitize_id(coupon)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + coupon: str, + params: Optional["CouponUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable. + """ + return cast( + "Coupon", + self._request( + "post", + "/v1/coupons/{coupon}".format(coupon=sanitize_id(coupon)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + coupon: str, + params: Optional["CouponUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable. + """ + return cast( + "Coupon", + await self._request_async( + "post", + "/v1/coupons/{coupon}".format(coupon=sanitize_id(coupon)), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["CouponListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Coupon]": + """ + Returns a list of your coupons. + """ + return cast( + "ListObject[Coupon]", + self._request( + "get", + "/v1/coupons", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["CouponListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Coupon]": + """ + Returns a list of your coupons. + """ + return cast( + "ListObject[Coupon]", + await self._request_async( + "get", + "/v1/coupons", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["CouponCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + You can create coupons easily via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly. + + A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice's subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it. + """ + return cast( + "Coupon", + self._request( + "post", + "/v1/coupons", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["CouponCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Coupon": + """ + You can create coupons easily via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly. + + A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice's subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it. + """ + return cast( + "Coupon", + await self._request_async( + "post", + "/v1/coupons", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_createable_api_resource.py b/Backend/venv/lib/python3.12/site-packages/stripe/_createable_api_resource.py new file mode 100644 index 00000000..993a3261 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_createable_api_resource.py @@ -0,0 +1,14 @@ +from stripe._api_resource import APIResource +from typing import TypeVar, cast +from stripe._stripe_object import StripeObject + +T = TypeVar("T", bound=StripeObject) + + +class CreateableAPIResource(APIResource[T]): + @classmethod + def create(cls, **params) -> T: + return cast( + T, + cls._static_request("post", cls.class_url(), params=params), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note.py b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note.py new file mode 100644 index 00000000..2140bebd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note.py @@ -0,0 +1,730 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._credit_note_line_item import CreditNoteLineItem + from stripe._customer import Customer + from stripe._customer_balance_transaction import CustomerBalanceTransaction + from stripe._discount import Discount + from stripe._invoice import Invoice + from stripe._refund import Refund as RefundResource + from stripe._shipping_rate import ShippingRate + from stripe._tax_rate import TaxRate + from stripe.billing._credit_balance_transaction import ( + CreditBalanceTransaction, + ) + from stripe.params._credit_note_create_params import CreditNoteCreateParams + from stripe.params._credit_note_list_lines_params import ( + CreditNoteListLinesParams, + ) + from stripe.params._credit_note_list_params import CreditNoteListParams + from stripe.params._credit_note_modify_params import CreditNoteModifyParams + from stripe.params._credit_note_preview_lines_params import ( + CreditNotePreviewLinesParams, + ) + from stripe.params._credit_note_preview_params import ( + CreditNotePreviewParams, + ) + from stripe.params._credit_note_retrieve_params import ( + CreditNoteRetrieveParams, + ) + from stripe.params._credit_note_void_credit_note_params import ( + CreditNoteVoidCreditNoteParams, + ) + + +@nested_resource_class_methods("line") +class CreditNote( + CreateableAPIResource["CreditNote"], + ListableAPIResource["CreditNote"], + UpdateableAPIResource["CreditNote"], +): + """ + Issue a credit note to adjust an invoice's amount after the invoice is finalized. + + Related guide: [Credit notes](https://stripe.com/docs/billing/invoices/credit-notes) + """ + + OBJECT_NAME: ClassVar[Literal["credit_note"]] = "credit_note" + + class DiscountAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the discount. + """ + discount: ExpandableField["Discount"] + """ + The discount that was applied to get this discount amount. + """ + + class PretaxCreditAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the pretax credit amount. + """ + credit_balance_transaction: Optional[ + ExpandableField["CreditBalanceTransaction"] + ] + """ + The credit balance transaction that was applied to get this pretax credit amount. + """ + discount: Optional[ExpandableField["Discount"]] + """ + The discount that was applied to get this pretax credit amount. + """ + type: Literal["credit_balance_transaction", "discount"] + """ + Type of the pretax credit amount referenced. + """ + + class Refund(StripeObject): + class PaymentRecordRefund(StripeObject): + payment_record: str + """ + ID of the payment record. + """ + refund_group: str + """ + ID of the refund group. + """ + + amount_refunded: int + """ + Amount of the refund that applies to this credit note, in cents (or local equivalent). + """ + payment_record_refund: Optional[PaymentRecordRefund] + """ + The PaymentRecord refund details associated with this credit note refund. + """ + refund: ExpandableField["RefundResource"] + """ + ID of the refund. + """ + type: Optional[Literal["payment_record_refund", "refund"]] + """ + Type of the refund, one of `refund` or `payment_record_refund`. + """ + _inner_class_types = {"payment_record_refund": PaymentRecordRefund} + + class ShippingCost(StripeObject): + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + amount_subtotal: int + """ + Total shipping cost before any taxes are applied. + """ + amount_tax: int + """ + Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0. + """ + amount_total: int + """ + Total shipping cost after taxes are applied. + """ + shipping_rate: Optional[ExpandableField["ShippingRate"]] + """ + The ID of the ShippingRate for this invoice. + """ + taxes: Optional[List[Tax]] + """ + The taxes applied to the shipping rate. + """ + _inner_class_types = {"taxes": Tax} + + class TotalTax(StripeObject): + class TaxRateDetails(StripeObject): + tax_rate: str + + amount: int + """ + The amount of the tax, in cents (or local equivalent). + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Whether this tax is inclusive or exclusive. + """ + tax_rate_details: Optional[TaxRateDetails] + """ + Additional details about the tax rate. Only present when `type` is `tax_rate_details`. + """ + taxability_reason: Literal[ + "customer_exempt", + "not_available", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + type: Literal["tax_rate_details"] + """ + The type of tax information. + """ + _inner_class_types = {"tax_rate_details": TaxRateDetails} + + amount: int + """ + The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax. + """ + amount_shipping: int + """ + This is the sum of all the shipping amounts. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: ExpandableField["Customer"] + """ + ID of the customer. + """ + customer_balance_transaction: Optional[ + ExpandableField["CustomerBalanceTransaction"] + ] + """ + Customer balance transaction related to this credit note. + """ + discount_amount: int + """ + The integer amount in cents (or local equivalent) representing the total amount of discount that was credited. + """ + discount_amounts: List[DiscountAmount] + """ + The aggregate amounts calculated per discount for all line items. + """ + effective_at: Optional[int] + """ + The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF. + """ + id: str + """ + Unique identifier for the object. + """ + invoice: ExpandableField["Invoice"] + """ + ID of the invoice. + """ + lines: ListObject["CreditNoteLineItem"] + """ + Line items that make up the credit note + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + memo: Optional[str] + """ + Customer-facing text that appears on the credit note PDF. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + number: str + """ + A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice. + """ + object: Literal["credit_note"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + out_of_band_amount: Optional[int] + """ + Amount that was credited outside of Stripe. + """ + pdf: str + """ + The link to download the PDF of the credit note. + """ + post_payment_amount: int + """ + The amount of the credit note that was refunded to the customer, credited to the customer's balance, credited outside of Stripe, or any combination thereof. + """ + pre_payment_amount: int + """ + The amount of the credit note by which the invoice's `amount_remaining` and `amount_due` were reduced. + """ + pretax_credit_amounts: List[PretaxCreditAmount] + """ + The pretax credit amounts (ex: discount, credit grants, etc) for all line items. + """ + reason: Optional[ + Literal[ + "duplicate", "fraudulent", "order_change", "product_unsatisfactory" + ] + ] + """ + Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + """ + refunds: List[Refund] + """ + Refunds related to this credit note. + """ + shipping_cost: Optional[ShippingCost] + """ + The details of the cost of shipping, including the ShippingRate applied to the invoice. + """ + status: Literal["issued", "void"] + """ + Status of this credit note, one of `issued` or `void`. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + subtotal: int + """ + The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding exclusive tax and invoice level discounts. + """ + subtotal_excluding_tax: Optional[int] + """ + The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding all tax and invoice level discounts. + """ + total: int + """ + The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax and all discount. + """ + total_excluding_tax: Optional[int] + """ + The integer amount in cents (or local equivalent) representing the total amount of the credit note, excluding tax, but including discounts. + """ + total_taxes: Optional[List[TotalTax]] + """ + The aggregate tax information for all line items. + """ + type: Literal["mixed", "post_payment", "pre_payment"] + """ + Type of this credit note, one of `pre_payment` or `post_payment`. A `pre_payment` credit note means it was issued when the invoice was open. A `post_payment` credit note means it was issued when the invoice was paid. + """ + voided_at: Optional[int] + """ + The time that the credit note was voided. + """ + + @classmethod + def create( + cls, **params: Unpack["CreditNoteCreateParams"] + ) -> "CreditNote": + """ + Issue a credit note to adjust the amount of a finalized invoice. A credit note will first reduce the invoice's amount_remaining (and amount_due), but not below zero. + This amount is indicated by the credit note's pre_payment_amount. The excess amount is indicated by post_payment_amount, and it can result in any combination of the following: + + + Refunds: create a new refund (using refund_amount) or link existing refunds (using refunds). + Customer balance credit: credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when it's finalized. + Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount). + + + The sum of refunds, customer balance credits, and outside of Stripe credits must equal the post_payment_amount. + + You may issue multiple credit notes for an invoice. Each credit note may increment the invoice's pre_payment_credit_notes_amount, + post_payment_credit_notes_amount, or both, depending on the invoice's amount_remaining at the time of credit note creation. + """ + return cast( + "CreditNote", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CreditNoteCreateParams"] + ) -> "CreditNote": + """ + Issue a credit note to adjust the amount of a finalized invoice. A credit note will first reduce the invoice's amount_remaining (and amount_due), but not below zero. + This amount is indicated by the credit note's pre_payment_amount. The excess amount is indicated by post_payment_amount, and it can result in any combination of the following: + + + Refunds: create a new refund (using refund_amount) or link existing refunds (using refunds). + Customer balance credit: credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when it's finalized. + Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount). + + + The sum of refunds, customer balance credits, and outside of Stripe credits must equal the post_payment_amount. + + You may issue multiple credit notes for an invoice. Each credit note may increment the invoice's pre_payment_credit_notes_amount, + post_payment_credit_notes_amount, or both, depending on the invoice's amount_remaining at the time of credit note creation. + """ + return cast( + "CreditNote", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["CreditNoteListParams"] + ) -> ListObject["CreditNote"]: + """ + Returns a list of credit notes. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CreditNoteListParams"] + ) -> ListObject["CreditNote"]: + """ + Returns a list of credit notes. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["CreditNoteModifyParams"] + ) -> "CreditNote": + """ + Updates an existing credit note. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "CreditNote", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["CreditNoteModifyParams"] + ) -> "CreditNote": + """ + Updates an existing credit note. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "CreditNote", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def preview( + cls, **params: Unpack["CreditNotePreviewParams"] + ) -> "CreditNote": + """ + Get a preview of a credit note without creating it. + """ + return cast( + "CreditNote", + cls._static_request( + "get", + "/v1/credit_notes/preview", + params=params, + ), + ) + + @classmethod + async def preview_async( + cls, **params: Unpack["CreditNotePreviewParams"] + ) -> "CreditNote": + """ + Get a preview of a credit note without creating it. + """ + return cast( + "CreditNote", + await cls._static_request_async( + "get", + "/v1/credit_notes/preview", + params=params, + ), + ) + + @classmethod + def preview_lines( + cls, **params: Unpack["CreditNotePreviewLinesParams"] + ) -> ListObject["CreditNoteLineItem"]: + """ + When retrieving a credit note preview, you'll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["CreditNoteLineItem"], + cls._static_request( + "get", + "/v1/credit_notes/preview/lines", + params=params, + ), + ) + + @classmethod + async def preview_lines_async( + cls, **params: Unpack["CreditNotePreviewLinesParams"] + ) -> ListObject["CreditNoteLineItem"]: + """ + When retrieving a credit note preview, you'll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["CreditNoteLineItem"], + await cls._static_request_async( + "get", + "/v1/credit_notes/preview/lines", + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CreditNoteRetrieveParams"] + ) -> "CreditNote": + """ + Retrieves the credit note object with the given identifier. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CreditNoteRetrieveParams"] + ) -> "CreditNote": + """ + Retrieves the credit note object with the given identifier. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_void_credit_note( + cls, id: str, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + return cast( + "CreditNote", + cls._static_request( + "post", + "/v1/credit_notes/{id}/void".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + def void_credit_note( + id: str, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + ... + + @overload + def void_credit_note( + self, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + ... + + @class_method_variant("_cls_void_credit_note") + def void_credit_note( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + return cast( + "CreditNote", + self._request( + "post", + "/v1/credit_notes/{id}/void".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_void_credit_note_async( + cls, id: str, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + return cast( + "CreditNote", + await cls._static_request_async( + "post", + "/v1/credit_notes/{id}/void".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + async def void_credit_note_async( + id: str, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + ... + + @overload + async def void_credit_note_async( + self, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + ... + + @class_method_variant("_cls_void_credit_note_async") + async def void_credit_note_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CreditNoteVoidCreditNoteParams"] + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + return cast( + "CreditNote", + await self._request_async( + "post", + "/v1/credit_notes/{id}/void".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list_lines( + cls, credit_note: str, **params: Unpack["CreditNoteListLinesParams"] + ) -> ListObject["CreditNoteLineItem"]: + """ + When retrieving a credit note, you'll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["CreditNoteLineItem"], + cls._static_request( + "get", + "/v1/credit_notes/{credit_note}/lines".format( + credit_note=sanitize_id(credit_note) + ), + params=params, + ), + ) + + @classmethod + async def list_lines_async( + cls, credit_note: str, **params: Unpack["CreditNoteListLinesParams"] + ) -> ListObject["CreditNoteLineItem"]: + """ + When retrieving a credit note, you'll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["CreditNoteLineItem"], + await cls._static_request_async( + "get", + "/v1/credit_notes/{credit_note}/lines".format( + credit_note=sanitize_id(credit_note) + ), + params=params, + ), + ) + + _inner_class_types = { + "discount_amounts": DiscountAmount, + "pretax_credit_amounts": PretaxCreditAmount, + "refunds": Refund, + "shipping_cost": ShippingCost, + "total_taxes": TotalTax, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_line_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_line_item.py new file mode 100644 index 00000000..2fe47601 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_line_item.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._discount import Discount + from stripe._tax_rate import TaxRate + from stripe.billing._credit_balance_transaction import ( + CreditBalanceTransaction, + ) + + +class CreditNoteLineItem(StripeObject): + """ + The credit note line item object + """ + + OBJECT_NAME: ClassVar[Literal["credit_note_line_item"]] = ( + "credit_note_line_item" + ) + + class DiscountAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the discount. + """ + discount: ExpandableField["Discount"] + """ + The discount that was applied to get this discount amount. + """ + + class PretaxCreditAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the pretax credit amount. + """ + credit_balance_transaction: Optional[ + ExpandableField["CreditBalanceTransaction"] + ] + """ + The credit balance transaction that was applied to get this pretax credit amount. + """ + discount: Optional[ExpandableField["Discount"]] + """ + The discount that was applied to get this pretax credit amount. + """ + type: Literal["credit_balance_transaction", "discount"] + """ + Type of the pretax credit amount referenced. + """ + + class Tax(StripeObject): + class TaxRateDetails(StripeObject): + tax_rate: str + + amount: int + """ + The amount of the tax, in cents (or local equivalent). + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Whether this tax is inclusive or exclusive. + """ + tax_rate_details: Optional[TaxRateDetails] + """ + Additional details about the tax rate. Only present when `type` is `tax_rate_details`. + """ + taxability_reason: Literal[ + "customer_exempt", + "not_available", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + type: Literal["tax_rate_details"] + """ + The type of tax information. + """ + _inner_class_types = {"tax_rate_details": TaxRateDetails} + + amount: int + """ + The integer amount in cents (or local equivalent) representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts. + """ + description: Optional[str] + """ + Description of the item being credited. + """ + discount_amount: int + """ + The integer amount in cents (or local equivalent) representing the discount being credited for this line item. + """ + discount_amounts: List[DiscountAmount] + """ + The amount of discount calculated per discount for this line item + """ + id: str + """ + Unique identifier for the object. + """ + invoice_line_item: Optional[str] + """ + ID of the invoice line item being credited + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["credit_note_line_item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + pretax_credit_amounts: List[PretaxCreditAmount] + """ + The pretax credit amounts (ex: discount, credit grants, etc) for this line item. + """ + quantity: Optional[int] + """ + The number of units of product being credited. + """ + tax_rates: List["TaxRate"] + """ + The tax rates which apply to the line item. + """ + taxes: Optional[List[Tax]] + """ + The tax information of the line item. + """ + type: Literal["custom_line_item", "invoice_line_item"] + """ + The type of the credit note line item, one of `invoice_line_item` or `custom_line_item`. When the type is `invoice_line_item` there is an additional `invoice_line_item` property on the resource the value of which is the id of the credited line item on the invoice. + """ + unit_amount: Optional[int] + """ + The cost of each unit of product being credited. + """ + unit_amount_decimal: Optional[str] + """ + Same as `unit_amount`, but contains a decimal value with at most 12 decimal places. + """ + _inner_class_types = { + "discount_amounts": DiscountAmount, + "pretax_credit_amounts": PretaxCreditAmount, + "taxes": Tax, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_line_item_service.py new file mode 100644 index 00000000..e5b85b2d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_line_item_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._credit_note_line_item import CreditNoteLineItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._credit_note_line_item_list_params import ( + CreditNoteLineItemListParams, + ) + + +class CreditNoteLineItemService(StripeService): + def list( + self, + credit_note: str, + params: Optional["CreditNoteLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditNoteLineItem]": + """ + When retrieving a credit note, you'll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[CreditNoteLineItem]", + self._request( + "get", + "/v1/credit_notes/{credit_note}/lines".format( + credit_note=sanitize_id(credit_note), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + credit_note: str, + params: Optional["CreditNoteLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditNoteLineItem]": + """ + When retrieving a credit note, you'll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[CreditNoteLineItem]", + await self._request_async( + "get", + "/v1/credit_notes/{credit_note}/lines".format( + credit_note=sanitize_id(credit_note), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_preview_lines_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_preview_lines_service.py new file mode 100644 index 00000000..9c562309 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_preview_lines_service.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._credit_note_line_item import CreditNoteLineItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._credit_note_preview_lines_list_params import ( + CreditNotePreviewLinesListParams, + ) + + +class CreditNotePreviewLinesService(StripeService): + def list( + self, + params: "CreditNotePreviewLinesListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditNoteLineItem]": + """ + When retrieving a credit note preview, you'll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[CreditNoteLineItem]", + self._request( + "get", + "/v1/credit_notes/preview/lines", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "CreditNotePreviewLinesListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditNoteLineItem]": + """ + When retrieving a credit note preview, you'll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[CreditNoteLineItem]", + await self._request_async( + "get", + "/v1/credit_notes/preview/lines", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_service.py new file mode 100644 index 00000000..4d716f4c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_credit_note_service.py @@ -0,0 +1,321 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._credit_note import CreditNote + from stripe._credit_note_line_item_service import CreditNoteLineItemService + from stripe._credit_note_preview_lines_service import ( + CreditNotePreviewLinesService, + ) + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._credit_note_create_params import CreditNoteCreateParams + from stripe.params._credit_note_list_params import CreditNoteListParams + from stripe.params._credit_note_preview_params import ( + CreditNotePreviewParams, + ) + from stripe.params._credit_note_retrieve_params import ( + CreditNoteRetrieveParams, + ) + from stripe.params._credit_note_update_params import CreditNoteUpdateParams + from stripe.params._credit_note_void_credit_note_params import ( + CreditNoteVoidCreditNoteParams, + ) + +_subservices = { + "line_items": [ + "stripe._credit_note_line_item_service", + "CreditNoteLineItemService", + ], + "preview_lines": [ + "stripe._credit_note_preview_lines_service", + "CreditNotePreviewLinesService", + ], +} + + +class CreditNoteService(StripeService): + line_items: "CreditNoteLineItemService" + preview_lines: "CreditNotePreviewLinesService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["CreditNoteListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditNote]": + """ + Returns a list of credit notes. + """ + return cast( + "ListObject[CreditNote]", + self._request( + "get", + "/v1/credit_notes", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["CreditNoteListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditNote]": + """ + Returns a list of credit notes. + """ + return cast( + "ListObject[CreditNote]", + await self._request_async( + "get", + "/v1/credit_notes", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "CreditNoteCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Issue a credit note to adjust the amount of a finalized invoice. A credit note will first reduce the invoice's amount_remaining (and amount_due), but not below zero. + This amount is indicated by the credit note's pre_payment_amount. The excess amount is indicated by post_payment_amount, and it can result in any combination of the following: + + + Refunds: create a new refund (using refund_amount) or link existing refunds (using refunds). + Customer balance credit: credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when it's finalized. + Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount). + + + The sum of refunds, customer balance credits, and outside of Stripe credits must equal the post_payment_amount. + + You may issue multiple credit notes for an invoice. Each credit note may increment the invoice's pre_payment_credit_notes_amount, + post_payment_credit_notes_amount, or both, depending on the invoice's amount_remaining at the time of credit note creation. + """ + return cast( + "CreditNote", + self._request( + "post", + "/v1/credit_notes", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "CreditNoteCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Issue a credit note to adjust the amount of a finalized invoice. A credit note will first reduce the invoice's amount_remaining (and amount_due), but not below zero. + This amount is indicated by the credit note's pre_payment_amount. The excess amount is indicated by post_payment_amount, and it can result in any combination of the following: + + + Refunds: create a new refund (using refund_amount) or link existing refunds (using refunds). + Customer balance credit: credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when it's finalized. + Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount). + + + The sum of refunds, customer balance credits, and outside of Stripe credits must equal the post_payment_amount. + + You may issue multiple credit notes for an invoice. Each credit note may increment the invoice's pre_payment_credit_notes_amount, + post_payment_credit_notes_amount, or both, depending on the invoice's amount_remaining at the time of credit note creation. + """ + return cast( + "CreditNote", + await self._request_async( + "post", + "/v1/credit_notes", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["CreditNoteRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Retrieves the credit note object with the given identifier. + """ + return cast( + "CreditNote", + self._request( + "get", + "/v1/credit_notes/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["CreditNoteRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Retrieves the credit note object with the given identifier. + """ + return cast( + "CreditNote", + await self._request_async( + "get", + "/v1/credit_notes/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + id: str, + params: Optional["CreditNoteUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Updates an existing credit note. + """ + return cast( + "CreditNote", + self._request( + "post", + "/v1/credit_notes/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: Optional["CreditNoteUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Updates an existing credit note. + """ + return cast( + "CreditNote", + await self._request_async( + "post", + "/v1/credit_notes/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def preview( + self, + params: "CreditNotePreviewParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Get a preview of a credit note without creating it. + """ + return cast( + "CreditNote", + self._request( + "get", + "/v1/credit_notes/preview", + base_address="api", + params=params, + options=options, + ), + ) + + async def preview_async( + self, + params: "CreditNotePreviewParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Get a preview of a credit note without creating it. + """ + return cast( + "CreditNote", + await self._request_async( + "get", + "/v1/credit_notes/preview", + base_address="api", + params=params, + options=options, + ), + ) + + def void_credit_note( + self, + id: str, + params: Optional["CreditNoteVoidCreditNoteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + return cast( + "CreditNote", + self._request( + "post", + "/v1/credit_notes/{id}/void".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def void_credit_note_async( + self, + id: str, + params: Optional["CreditNoteVoidCreditNoteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditNote": + """ + Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding). + """ + return cast( + "CreditNote", + await self._request_async( + "post", + "/v1/credit_notes/{id}/void".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_custom_method.py b/Backend/venv/lib/python3.12/site-packages/stripe/_custom_method.py new file mode 100644 index 00000000..b2950f23 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_custom_method.py @@ -0,0 +1,71 @@ +from typing import Optional +from stripe import _util +from urllib.parse import quote_plus + + +# TODO(major): 1704. +@_util.deprecated( + "the custom_method class decorator will be removed in a future version of stripe-python. Define custom methods directly and use StripeObject._static_request within." +) +def custom_method( + name: str, + http_verb: str, + http_path: Optional[str] = None, + is_streaming=False, +): + if http_verb not in ["get", "post", "delete"]: + raise ValueError( + "Invalid http_verb: %s. Must be one of 'get', 'post' or 'delete'" + % http_verb + ) + if http_path is None: + http_path = name + + def wrapper(cls): + def custom_method_request(cls, sid, **params): + url = "%s/%s/%s" % ( + cls.class_url(), + quote_plus(sid), + http_path, + ) + obj = cls._static_request(http_verb, url, params=params) + + # For list objects, we have to attach the parameters so that they + # can be referenced in auto-pagination and ensure consistency. + if "object" in obj and obj.object == "list": + obj._retrieve_params = params + + return obj + + def custom_method_request_stream(cls, sid, **params): + url = "%s/%s/%s" % ( + cls.class_url(), + quote_plus(sid), + http_path, + ) + return cls._static_request_stream(http_verb, url, params=params) + + if is_streaming: + class_method_impl = classmethod(custom_method_request_stream) + else: + class_method_impl = classmethod(custom_method_request) + + existing_method = getattr(cls, name, None) + if existing_method is None: + setattr(cls, name, class_method_impl) + else: + # If a method with the same name we want to use already exists on + # the class, we assume it's an instance method. In this case, the + # new class method is prefixed with `_cls_`, and the original + # instance method is decorated with `util.class_method_variant` so + # that the new class method is called when the original method is + # called as a class method. + setattr(cls, "_cls_" + name, class_method_impl) + instance_method = _util.class_method_variant("_cls_" + name)( + existing_method + ) + setattr(cls, name, instance_method) + + return cls + + return wrapper diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer.py new file mode 100644 index 00000000..cdb343ef --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer.py @@ -0,0 +1,1990 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._search_result_object import SearchResultObject +from stripe._searchable_api_resource import SearchableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ( + AsyncIterator, + ClassVar, + Dict, + Iterator, + List, + Optional, + Union, + cast, + overload, +) +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._bank_account import BankAccount + from stripe._card import Card + from stripe._cash_balance import CashBalance + from stripe._customer_balance_transaction import CustomerBalanceTransaction + from stripe._customer_cash_balance_transaction import ( + CustomerCashBalanceTransaction, + ) + from stripe._discount import Discount + from stripe._funding_instructions import FundingInstructions + from stripe._payment_method import PaymentMethod + from stripe._source import Source + from stripe._subscription import Subscription + from stripe._tax_id import TaxId + from stripe.params._customer_create_balance_transaction_params import ( + CustomerCreateBalanceTransactionParams, + ) + from stripe.params._customer_create_funding_instructions_params import ( + CustomerCreateFundingInstructionsParams, + ) + from stripe.params._customer_create_params import CustomerCreateParams + from stripe.params._customer_create_source_params import ( + CustomerCreateSourceParams, + ) + from stripe.params._customer_create_tax_id_params import ( + CustomerCreateTaxIdParams, + ) + from stripe.params._customer_delete_discount_params import ( + CustomerDeleteDiscountParams, + ) + from stripe.params._customer_delete_params import CustomerDeleteParams + from stripe.params._customer_delete_source_params import ( + CustomerDeleteSourceParams, + ) + from stripe.params._customer_delete_tax_id_params import ( + CustomerDeleteTaxIdParams, + ) + from stripe.params._customer_fund_cash_balance_params import ( + CustomerFundCashBalanceParams, + ) + from stripe.params._customer_list_balance_transactions_params import ( + CustomerListBalanceTransactionsParams, + ) + from stripe.params._customer_list_cash_balance_transactions_params import ( + CustomerListCashBalanceTransactionsParams, + ) + from stripe.params._customer_list_params import CustomerListParams + from stripe.params._customer_list_payment_methods_params import ( + CustomerListPaymentMethodsParams, + ) + from stripe.params._customer_list_sources_params import ( + CustomerListSourcesParams, + ) + from stripe.params._customer_list_tax_ids_params import ( + CustomerListTaxIdsParams, + ) + from stripe.params._customer_modify_balance_transaction_params import ( + CustomerModifyBalanceTransactionParams, + ) + from stripe.params._customer_modify_cash_balance_params import ( + CustomerModifyCashBalanceParams, + ) + from stripe.params._customer_modify_params import CustomerModifyParams + from stripe.params._customer_modify_source_params import ( + CustomerModifySourceParams, + ) + from stripe.params._customer_retrieve_balance_transaction_params import ( + CustomerRetrieveBalanceTransactionParams, + ) + from stripe.params._customer_retrieve_cash_balance_params import ( + CustomerRetrieveCashBalanceParams, + ) + from stripe.params._customer_retrieve_cash_balance_transaction_params import ( + CustomerRetrieveCashBalanceTransactionParams, + ) + from stripe.params._customer_retrieve_params import CustomerRetrieveParams + from stripe.params._customer_retrieve_payment_method_params import ( + CustomerRetrievePaymentMethodParams, + ) + from stripe.params._customer_retrieve_source_params import ( + CustomerRetrieveSourceParams, + ) + from stripe.params._customer_retrieve_tax_id_params import ( + CustomerRetrieveTaxIdParams, + ) + from stripe.params._customer_search_params import CustomerSearchParams + from stripe.test_helpers._test_clock import TestClock + + +@nested_resource_class_methods("balance_transaction") +@nested_resource_class_methods("cash_balance_transaction") +@nested_resource_class_methods("source") +@nested_resource_class_methods("tax_id") +class Customer( + CreateableAPIResource["Customer"], + DeletableAPIResource["Customer"], + ListableAPIResource["Customer"], + SearchableAPIResource["Customer"], + UpdateableAPIResource["Customer"], +): + """ + This object represents a customer of your business. Use it to [create recurring charges](https://stripe.com/docs/invoicing/customer), [save payment](https://stripe.com/docs/payments/save-during-payment) and contact information, + and track payments that belong to the same customer. + """ + + OBJECT_NAME: ClassVar[Literal["customer"]] = "customer" + + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class InvoiceSettings(StripeObject): + class CustomField(StripeObject): + name: str + """ + The name of the custom field. + """ + value: str + """ + The value of the custom field. + """ + + class RenderingOptions(StripeObject): + amount_tax_display: Optional[str] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. + """ + template: Optional[str] + """ + ID of the invoice rendering template to be used for this customer's invoices. If set, the template will be used on all invoices for this customer unless a template is set directly on the invoice. + """ + + custom_fields: Optional[List[CustomField]] + """ + Default custom fields to be displayed on invoices for this customer. + """ + default_payment_method: Optional[ExpandableField["PaymentMethod"]] + """ + ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices. + """ + footer: Optional[str] + """ + Default footer to be displayed on invoices for this customer. + """ + rendering_options: Optional[RenderingOptions] + """ + Default options for invoice PDF rendering for this customer. + """ + _inner_class_types = { + "custom_fields": CustomField, + "rendering_options": RenderingOptions, + } + + class Shipping(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + carrier: Optional[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: Optional[str] + """ + Recipient name. + """ + phone: Optional[str] + """ + Recipient phone (including extension). + """ + tracking_number: Optional[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + _inner_class_types = {"address": Address} + + class Tax(StripeObject): + class Location(StripeObject): + country: str + """ + The identified tax country of the customer. + """ + source: Literal[ + "billing_address", + "ip_address", + "payment_method", + "shipping_destination", + ] + """ + The data source used to infer the customer's location. + """ + state: Optional[str] + """ + The identified tax state, county, province, or region of the customer. + """ + + automatic_tax: Literal[ + "failed", "not_collecting", "supported", "unrecognized_location" + ] + """ + Surfaces if automatic tax computation is possible given the current customer location information. + """ + ip_address: Optional[str] + """ + A recent IP address of the customer used for tax reporting and tax location inference. + """ + location: Optional[Location] + """ + The identified tax location of the customer. + """ + provider: Literal["anrok", "avalara", "sphere", "stripe"] + """ + The tax calculation provider used for location resolution. Defaults to `stripe` when not using a [third-party provider](https://docs.stripe.com/tax/third-party-apps). + """ + _inner_class_types = {"location": Location} + + address: Optional[Address] + """ + The customer's address. + """ + balance: Optional[int] + """ + The current balance, if any, that's stored on the customer in their default currency. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that's added to their next invoice. The balance only considers amounts that Stripe hasn't successfully applied to any invoice. It doesn't reflect unpaid invoices. This balance is only taken into account after invoices finalize. For multi-currency balances, see [invoice_credit_balance](https://stripe.com/docs/api/customers/object#customer_object-invoice_credit_balance). + """ + business_name: Optional[str] + """ + The customer's business name. + """ + cash_balance: Optional["CashBalance"] + """ + The current funds being held by Stripe on behalf of the customer. You can apply these funds towards payment intents when the source is "cash_balance". The `settings[reconciliation_mode]` field describes if these funds apply to these payment intents manually or automatically. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: Optional[str] + """ + Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) the customer can be charged in for recurring billing purposes. + """ + default_source: Optional[ + ExpandableField[Union["Account", "BankAccount", "Card", "Source"]] + ] + """ + ID of the default payment source for the customer. + + If you use payment methods created through the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) field instead. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + delinquent: Optional[bool] + """ + Tracks the most recent state change on any invoice belonging to the customer. Paying an invoice or marking it uncollectible via the API will set this field to false. An automatic payment failure or passing the `invoice.due_date` will set this field to `true`. + + If an invoice becomes uncollectible by [dunning](https://stripe.com/docs/billing/automatic-collection), `delinquent` doesn't reset to `false`. + + If you care whether the customer has paid their most recent subscription invoice, use `subscription.status` instead. Paying or marking uncollectible any customer invoice regardless of whether it is the latest invoice for a subscription will always set this field to `false`. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + discount: Optional["Discount"] + """ + Describes the current discount active on the customer, if there is one. + """ + email: Optional[str] + """ + The customer's email address. + """ + id: str + """ + Unique identifier for the object. + """ + individual_name: Optional[str] + """ + The customer's individual name. + """ + invoice_credit_balance: Optional[Dict[str, int]] + """ + The current multi-currency balances, if any, that's stored on the customer. If positive in a currency, the customer has a credit to apply to their next invoice denominated in that currency. If negative, the customer has an amount owed that's added to their next invoice denominated in that currency. These balances don't apply to unpaid invoices. They solely track amounts that Stripe hasn't successfully applied to any invoice. Stripe only applies a balance in a specific currency to an invoice after that invoice (which is in the same currency) finalizes. + """ + invoice_prefix: Optional[str] + """ + The prefix for the customer used to generate unique invoice numbers. + """ + invoice_settings: Optional[InvoiceSettings] + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: Optional[str] + """ + The customer's full name or business name. + """ + next_invoice_sequence: Optional[int] + """ + The suffix of the customer's next invoice number (for example, 0001). When the account uses account level sequencing, this parameter is ignored in API requests and the field omitted in API responses. + """ + object: Literal["customer"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + phone: Optional[str] + """ + The customer's phone number. + """ + preferred_locales: Optional[List[str]] + """ + The customer's preferred locales (languages), ordered by preference. + """ + shipping: Optional[Shipping] + """ + Mailing and shipping address for the customer. Appears on invoices emailed to this customer. + """ + sources: Optional[ + ListObject[Union["Account", "BankAccount", "Card", "Source"]] + ] + """ + The customer's payment sources, if any. + """ + subscriptions: Optional[ListObject["Subscription"]] + """ + The customer's current subscriptions, if any. + """ + tax: Optional[Tax] + tax_exempt: Optional[Literal["exempt", "none", "reverse"]] + """ + Describes the customer's tax exemption status, which is `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the following text: **"Reverse charge"**. + """ + tax_ids: Optional[ListObject["TaxId"]] + """ + The customer's tax IDs. + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock that this customer belongs to. + """ + + @classmethod + def create(cls, **params: Unpack["CustomerCreateParams"]) -> "Customer": + """ + Creates a new customer object. + """ + return cast( + "Customer", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CustomerCreateParams"] + ) -> "Customer": + """ + Creates a new customer object. + """ + return cast( + "Customer", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_create_funding_instructions( + cls, + customer: str, + **params: Unpack["CustomerCreateFundingInstructionsParams"], + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + return cast( + "FundingInstructions", + cls._static_request( + "post", + "/v1/customers/{customer}/funding_instructions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def create_funding_instructions( + customer: str, + **params: Unpack["CustomerCreateFundingInstructionsParams"], + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + ... + + @overload + def create_funding_instructions( + self, **params: Unpack["CustomerCreateFundingInstructionsParams"] + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + ... + + @class_method_variant("_cls_create_funding_instructions") + def create_funding_instructions( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerCreateFundingInstructionsParams"] + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + return cast( + "FundingInstructions", + self._request( + "post", + "/v1/customers/{customer}/funding_instructions".format( + customer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_create_funding_instructions_async( + cls, + customer: str, + **params: Unpack["CustomerCreateFundingInstructionsParams"], + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + return cast( + "FundingInstructions", + await cls._static_request_async( + "post", + "/v1/customers/{customer}/funding_instructions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def create_funding_instructions_async( + customer: str, + **params: Unpack["CustomerCreateFundingInstructionsParams"], + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + ... + + @overload + async def create_funding_instructions_async( + self, **params: Unpack["CustomerCreateFundingInstructionsParams"] + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + ... + + @class_method_variant("_cls_create_funding_instructions_async") + async def create_funding_instructions_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerCreateFundingInstructionsParams"] + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + return cast( + "FundingInstructions", + await self._request_async( + "post", + "/v1/customers/{customer}/funding_instructions".format( + customer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["CustomerDeleteParams"] + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Customer", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["CustomerDeleteParams"] + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + ... + + @overload + def delete(self, **params: Unpack["CustomerDeleteParams"]) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerDeleteParams"] + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["CustomerDeleteParams"] + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Customer", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["CustomerDeleteParams"] + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["CustomerDeleteParams"] + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerDeleteParams"] + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def _cls_delete_discount( + cls, customer: str, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + return cast( + "Discount", + cls._static_request( + "delete", + "/v1/customers/{customer}/discount".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def delete_discount( + customer: str, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + ... + + @overload + def delete_discount( + self, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + ... + + @class_method_variant("_cls_delete_discount") + def delete_discount( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + return cast( + "Discount", + self._request( + "delete", + "/v1/customers/{customer}/discount".format( + customer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_delete_discount_async( + cls, customer: str, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + return cast( + "Discount", + await cls._static_request_async( + "delete", + "/v1/customers/{customer}/discount".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def delete_discount_async( + customer: str, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + ... + + @overload + async def delete_discount_async( + self, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + ... + + @class_method_variant("_cls_delete_discount_async") + async def delete_discount_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + return cast( + "Discount", + await self._request_async( + "delete", + "/v1/customers/{customer}/discount".format( + customer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["CustomerListParams"] + ) -> ListObject["Customer"]: + """ + Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CustomerListParams"] + ) -> ListObject["Customer"]: + """ + Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_list_payment_methods( + cls, + customer: str, + **params: Unpack["CustomerListPaymentMethodsParams"], + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + return cast( + ListObject["PaymentMethod"], + cls._static_request( + "get", + "/v1/customers/{customer}/payment_methods".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_payment_methods( + customer: str, **params: Unpack["CustomerListPaymentMethodsParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + ... + + @overload + def list_payment_methods( + self, **params: Unpack["CustomerListPaymentMethodsParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + ... + + @class_method_variant("_cls_list_payment_methods") + def list_payment_methods( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerListPaymentMethodsParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + return cast( + ListObject["PaymentMethod"], + self._request( + "get", + "/v1/customers/{customer}/payment_methods".format( + customer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_payment_methods_async( + cls, + customer: str, + **params: Unpack["CustomerListPaymentMethodsParams"], + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + return cast( + ListObject["PaymentMethod"], + await cls._static_request_async( + "get", + "/v1/customers/{customer}/payment_methods".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_payment_methods_async( + customer: str, **params: Unpack["CustomerListPaymentMethodsParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + ... + + @overload + async def list_payment_methods_async( + self, **params: Unpack["CustomerListPaymentMethodsParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + ... + + @class_method_variant("_cls_list_payment_methods_async") + async def list_payment_methods_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerListPaymentMethodsParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for a given Customer + """ + return cast( + ListObject["PaymentMethod"], + await self._request_async( + "get", + "/v1/customers/{customer}/payment_methods".format( + customer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def modify( + cls, id: str, **params: Unpack["CustomerModifyParams"] + ) -> "Customer": + """ + Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer's active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer's current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior. + + This request accepts mostly the same arguments as the customer creation call. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Customer", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["CustomerModifyParams"] + ) -> "Customer": + """ + Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer's active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer's current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior. + + This request accepts mostly the same arguments as the customer creation call. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Customer", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CustomerRetrieveParams"] + ) -> "Customer": + """ + Retrieves a Customer object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CustomerRetrieveParams"] + ) -> "Customer": + """ + Retrieves a Customer object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_retrieve_payment_method( + cls, + customer: str, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + return cast( + "PaymentMethod", + cls._static_request( + "get", + "/v1/customers/{customer}/payment_methods/{payment_method}".format( + customer=sanitize_id(customer), + payment_method=sanitize_id(payment_method), + ), + params=params, + ), + ) + + @overload + @staticmethod + def retrieve_payment_method( + customer: str, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + ... + + @overload + def retrieve_payment_method( + self, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + ... + + @class_method_variant("_cls_retrieve_payment_method") + def retrieve_payment_method( # pyright: ignore[reportGeneralTypeIssues] + self, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + return cast( + "PaymentMethod", + self._request( + "get", + "/v1/customers/{customer}/payment_methods/{payment_method}".format( + customer=sanitize_id(self.get("id")), + payment_method=sanitize_id(payment_method), + ), + params=params, + ), + ) + + @classmethod + async def _cls_retrieve_payment_method_async( + cls, + customer: str, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + return cast( + "PaymentMethod", + await cls._static_request_async( + "get", + "/v1/customers/{customer}/payment_methods/{payment_method}".format( + customer=sanitize_id(customer), + payment_method=sanitize_id(payment_method), + ), + params=params, + ), + ) + + @overload + @staticmethod + async def retrieve_payment_method_async( + customer: str, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + ... + + @overload + async def retrieve_payment_method_async( + self, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + ... + + @class_method_variant("_cls_retrieve_payment_method_async") + async def retrieve_payment_method_async( # pyright: ignore[reportGeneralTypeIssues] + self, + payment_method: str, + **params: Unpack["CustomerRetrievePaymentMethodParams"], + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + return cast( + "PaymentMethod", + await self._request_async( + "get", + "/v1/customers/{customer}/payment_methods/{payment_method}".format( + customer=sanitize_id(self.get("id")), + payment_method=sanitize_id(payment_method), + ), + params=params, + ), + ) + + @classmethod + def search( + cls, *args, **kwargs: Unpack["CustomerSearchParams"] + ) -> SearchResultObject["Customer"]: + """ + Search for customers you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cls._search(search_url="/v1/customers/search", *args, **kwargs) + + @classmethod + async def search_async( + cls, *args, **kwargs: Unpack["CustomerSearchParams"] + ) -> SearchResultObject["Customer"]: + """ + Search for customers you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return await cls._search_async( + search_url="/v1/customers/search", *args, **kwargs + ) + + @classmethod + def search_auto_paging_iter( + cls, *args, **kwargs: Unpack["CustomerSearchParams"] + ) -> Iterator["Customer"]: + return cls.search(*args, **kwargs).auto_paging_iter() + + @classmethod + async def search_auto_paging_iter_async( + cls, *args, **kwargs: Unpack["CustomerSearchParams"] + ) -> AsyncIterator["Customer"]: + return (await cls.search_async(*args, **kwargs)).auto_paging_iter() + + @classmethod + def list_balance_transactions( + cls, + customer: str, + **params: Unpack["CustomerListBalanceTransactionsParams"], + ) -> ListObject["CustomerBalanceTransaction"]: + """ + Returns a list of transactions that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + ListObject["CustomerBalanceTransaction"], + cls._static_request( + "get", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def list_balance_transactions_async( + cls, + customer: str, + **params: Unpack["CustomerListBalanceTransactionsParams"], + ) -> ListObject["CustomerBalanceTransaction"]: + """ + Returns a list of transactions that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + ListObject["CustomerBalanceTransaction"], + await cls._static_request_async( + "get", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def create_balance_transaction( + cls, + customer: str, + **params: Unpack["CustomerCreateBalanceTransactionParams"], + ) -> "CustomerBalanceTransaction": + """ + Creates an immutable transaction that updates the customer's credit [balance](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + cls._static_request( + "post", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def create_balance_transaction_async( + cls, + customer: str, + **params: Unpack["CustomerCreateBalanceTransactionParams"], + ) -> "CustomerBalanceTransaction": + """ + Creates an immutable transaction that updates the customer's credit [balance](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + await cls._static_request_async( + "post", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def retrieve_balance_transaction( + cls, + customer: str, + transaction: str, + **params: Unpack["CustomerRetrieveBalanceTransactionParams"], + ) -> "CustomerBalanceTransaction": + """ + Retrieves a specific customer balance transaction that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + cls._static_request( + "get", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + params=params, + ), + ) + + @classmethod + async def retrieve_balance_transaction_async( + cls, + customer: str, + transaction: str, + **params: Unpack["CustomerRetrieveBalanceTransactionParams"], + ) -> "CustomerBalanceTransaction": + """ + Retrieves a specific customer balance transaction that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + await cls._static_request_async( + "get", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + params=params, + ), + ) + + @classmethod + def modify_balance_transaction( + cls, + customer: str, + transaction: str, + **params: Unpack["CustomerModifyBalanceTransactionParams"], + ) -> "CustomerBalanceTransaction": + """ + Most credit balance transaction fields are immutable, but you may update its description and metadata. + """ + return cast( + "CustomerBalanceTransaction", + cls._static_request( + "post", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + params=params, + ), + ) + + @classmethod + async def modify_balance_transaction_async( + cls, + customer: str, + transaction: str, + **params: Unpack["CustomerModifyBalanceTransactionParams"], + ) -> "CustomerBalanceTransaction": + """ + Most credit balance transaction fields are immutable, but you may update its description and metadata. + """ + return cast( + "CustomerBalanceTransaction", + await cls._static_request_async( + "post", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + params=params, + ), + ) + + @classmethod + def list_cash_balance_transactions( + cls, + customer: str, + **params: Unpack["CustomerListCashBalanceTransactionsParams"], + ) -> ListObject["CustomerCashBalanceTransaction"]: + """ + Returns a list of transactions that modified the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + ListObject["CustomerCashBalanceTransaction"], + cls._static_request( + "get", + "/v1/customers/{customer}/cash_balance_transactions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def list_cash_balance_transactions_async( + cls, + customer: str, + **params: Unpack["CustomerListCashBalanceTransactionsParams"], + ) -> ListObject["CustomerCashBalanceTransaction"]: + """ + Returns a list of transactions that modified the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + ListObject["CustomerCashBalanceTransaction"], + await cls._static_request_async( + "get", + "/v1/customers/{customer}/cash_balance_transactions".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def retrieve_cash_balance_transaction( + cls, + customer: str, + transaction: str, + **params: Unpack["CustomerRetrieveCashBalanceTransactionParams"], + ) -> "CustomerCashBalanceTransaction": + """ + Retrieves a specific cash balance transaction, which updated the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + "CustomerCashBalanceTransaction", + cls._static_request( + "get", + "/v1/customers/{customer}/cash_balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + params=params, + ), + ) + + @classmethod + async def retrieve_cash_balance_transaction_async( + cls, + customer: str, + transaction: str, + **params: Unpack["CustomerRetrieveCashBalanceTransactionParams"], + ) -> "CustomerCashBalanceTransaction": + """ + Retrieves a specific cash balance transaction, which updated the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + "CustomerCashBalanceTransaction", + await cls._static_request_async( + "get", + "/v1/customers/{customer}/cash_balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + params=params, + ), + ) + + @classmethod + def list_sources( + cls, customer: str, **params: Unpack["CustomerListSourcesParams"] + ) -> ListObject[Union["Account", "BankAccount", "Card", "Source"]]: + """ + List sources for a specified customer. + """ + return cast( + ListObject[Union["Account", "BankAccount", "Card", "Source"]], + cls._static_request( + "get", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def list_sources_async( + cls, customer: str, **params: Unpack["CustomerListSourcesParams"] + ) -> ListObject[Union["Account", "BankAccount", "Card", "Source"]]: + """ + List sources for a specified customer. + """ + return cast( + ListObject[Union["Account", "BankAccount", "Card", "Source"]], + await cls._static_request_async( + "get", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def create_source( + cls, customer: str, **params: Unpack["CustomerCreateSourceParams"] + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + When you create a new credit card, you must specify a customer or recipient on which to create it. + + If the card's owner has no default card, then the new card will become the default. + However, if the owner already has a default, then it will not change. + To change the default, you should [update the customer](https://docs.stripe.com/docs/api#update_customer) to have a new default_source. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + cls._static_request( + "post", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def create_source_async( + cls, customer: str, **params: Unpack["CustomerCreateSourceParams"] + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + When you create a new credit card, you must specify a customer or recipient on which to create it. + + If the card's owner has no default card, then the new card will become the default. + However, if the owner already has a default, then it will not change. + To change the default, you should [update the customer](https://docs.stripe.com/docs/api#update_customer) to have a new default_source. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + await cls._static_request_async( + "post", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def retrieve_source( + cls, + customer: str, + id: str, + **params: Unpack["CustomerRetrieveSourceParams"], + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + Retrieve a specified source for a given customer. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + cls._static_request( + "get", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_source_async( + cls, + customer: str, + id: str, + **params: Unpack["CustomerRetrieveSourceParams"], + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + Retrieve a specified source for a given customer. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + await cls._static_request_async( + "get", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def modify_source( + cls, + customer: str, + id: str, + **params: Unpack["CustomerModifySourceParams"], + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + Update a specified source for a given customer. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + cls._static_request( + "post", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def modify_source_async( + cls, + customer: str, + id: str, + **params: Unpack["CustomerModifySourceParams"], + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + Update a specified source for a given customer. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + await cls._static_request_async( + "post", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def delete_source( + cls, + customer: str, + id: str, + **params: Unpack["CustomerDeleteSourceParams"], + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + Delete a specified source for a given customer. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + cls._static_request( + "delete", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def delete_source_async( + cls, + customer: str, + id: str, + **params: Unpack["CustomerDeleteSourceParams"], + ) -> Union["Account", "BankAccount", "Card", "Source"]: + """ + Delete a specified source for a given customer. + """ + return cast( + Union["Account", "BankAccount", "Card", "Source"], + await cls._static_request_async( + "delete", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def create_tax_id( + cls, customer: str, **params: Unpack["CustomerCreateTaxIdParams"] + ) -> "TaxId": + """ + Creates a new tax_id object for a customer. + """ + return cast( + "TaxId", + cls._static_request( + "post", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def create_tax_id_async( + cls, customer: str, **params: Unpack["CustomerCreateTaxIdParams"] + ) -> "TaxId": + """ + Creates a new tax_id object for a customer. + """ + return cast( + "TaxId", + await cls._static_request_async( + "post", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def retrieve_tax_id( + cls, + customer: str, + id: str, + **params: Unpack["CustomerRetrieveTaxIdParams"], + ) -> "TaxId": + """ + Retrieves the tax_id object with the given identifier. + """ + return cast( + "TaxId", + cls._static_request( + "get", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_tax_id_async( + cls, + customer: str, + id: str, + **params: Unpack["CustomerRetrieveTaxIdParams"], + ) -> "TaxId": + """ + Retrieves the tax_id object with the given identifier. + """ + return cast( + "TaxId", + await cls._static_request_async( + "get", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def delete_tax_id( + cls, + customer: str, + id: str, + **params: Unpack["CustomerDeleteTaxIdParams"], + ) -> "TaxId": + """ + Deletes an existing tax_id object. + """ + return cast( + "TaxId", + cls._static_request( + "delete", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def delete_tax_id_async( + cls, + customer: str, + id: str, + **params: Unpack["CustomerDeleteTaxIdParams"], + ) -> "TaxId": + """ + Deletes an existing tax_id object. + """ + return cast( + "TaxId", + await cls._static_request_async( + "delete", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def list_tax_ids( + cls, customer: str, **params: Unpack["CustomerListTaxIdsParams"] + ) -> ListObject["TaxId"]: + """ + Returns a list of tax IDs for a customer. + """ + return cast( + ListObject["TaxId"], + cls._static_request( + "get", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def list_tax_ids_async( + cls, customer: str, **params: Unpack["CustomerListTaxIdsParams"] + ) -> ListObject["TaxId"]: + """ + Returns a list of tax IDs for a customer. + """ + return cast( + ListObject["TaxId"], + await cls._static_request_async( + "get", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def retrieve_cash_balance( + cls, + customer: str, + **params: Unpack["CustomerRetrieveCashBalanceParams"], + ) -> "CashBalance": + """ + Retrieves a customer's cash balance. + """ + return cast( + "CashBalance", + cls._static_request( + "get", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_cash_balance_async( + cls, + customer: str, + **params: Unpack["CustomerRetrieveCashBalanceParams"], + ) -> "CashBalance": + """ + Retrieves a customer's cash balance. + """ + return cast( + "CashBalance", + await cls._static_request_async( + "get", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + def modify_cash_balance( + cls, customer: str, **params: Unpack["CustomerModifyCashBalanceParams"] + ) -> "CashBalance": + """ + Changes the settings on a customer's cash balance. + """ + return cast( + "CashBalance", + cls._static_request( + "post", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @classmethod + async def modify_cash_balance_async( + cls, customer: str, **params: Unpack["CustomerModifyCashBalanceParams"] + ) -> "CashBalance": + """ + Changes the settings on a customer's cash balance. + """ + return cast( + "CashBalance", + await cls._static_request_async( + "post", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + class TestHelpers(APIResourceTestHelpers["Customer"]): + _resource_cls: Type["Customer"] + + @classmethod + def _cls_fund_cash_balance( + cls, + customer: str, + **params: Unpack["CustomerFundCashBalanceParams"], + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + return cast( + "CustomerCashBalanceTransaction", + cls._static_request( + "post", + "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def fund_cash_balance( + customer: str, **params: Unpack["CustomerFundCashBalanceParams"] + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + ... + + @overload + def fund_cash_balance( + self, **params: Unpack["CustomerFundCashBalanceParams"] + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + ... + + @class_method_variant("_cls_fund_cash_balance") + def fund_cash_balance( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerFundCashBalanceParams"] + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + return cast( + "CustomerCashBalanceTransaction", + self.resource._request( + "post", + "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( + customer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_fund_cash_balance_async( + cls, + customer: str, + **params: Unpack["CustomerFundCashBalanceParams"], + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + return cast( + "CustomerCashBalanceTransaction", + await cls._static_request_async( + "post", + "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( + customer=sanitize_id(customer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def fund_cash_balance_async( + customer: str, **params: Unpack["CustomerFundCashBalanceParams"] + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + ... + + @overload + async def fund_cash_balance_async( + self, **params: Unpack["CustomerFundCashBalanceParams"] + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + ... + + @class_method_variant("_cls_fund_cash_balance_async") + async def fund_cash_balance_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CustomerFundCashBalanceParams"] + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + return cast( + "CustomerCashBalanceTransaction", + await self.resource._request_async( + "post", + "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( + customer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "address": Address, + "invoice_settings": InvoiceSettings, + "shipping": Shipping, + "tax": Tax, + } + + +Customer.TestHelpers._resource_cls = Customer diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_balance_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_balance_transaction.py new file mode 100644 index 00000000..9ace2480 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_balance_transaction.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._api_resource import APIResource +from stripe._customer import Customer +from stripe._expandable_field import ExpandableField +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._credit_note import CreditNote + from stripe._invoice import Invoice + from stripe.checkout._session import Session + + +class CustomerBalanceTransaction(APIResource["CustomerBalanceTransaction"]): + """ + Each customer has a [Balance](https://stripe.com/docs/api/customers/object#customer_object-balance) value, + which denotes a debit or credit that's automatically applied to their next invoice upon finalization. + You may modify the value directly by using the [update customer API](https://stripe.com/docs/api/customers/update), + or by creating a Customer Balance Transaction, which increments or decrements the customer's `balance` by the specified `amount`. + + Related guide: [Customer balance](https://stripe.com/docs/billing/customer/balance) + """ + + OBJECT_NAME: ClassVar[Literal["customer_balance_transaction"]] = ( + "customer_balance_transaction" + ) + amount: int + """ + The amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's `balance`. + """ + checkout_session: Optional[ExpandableField["Session"]] + """ + The ID of the checkout session (if any) that created the transaction. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + credit_note: Optional[ExpandableField["CreditNote"]] + """ + The ID of the credit note (if any) related to the transaction. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: ExpandableField["Customer"] + """ + The ID of the customer the transaction belongs to. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + ending_balance: int + """ + The customer's `balance` after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice. + """ + id: str + """ + Unique identifier for the object. + """ + invoice: Optional[ExpandableField["Invoice"]] + """ + The ID of the invoice (if any) related to the transaction. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["customer_balance_transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + type: Literal[ + "adjustment", + "applied_to_invoice", + "checkout_session_subscription_payment", + "checkout_session_subscription_payment_canceled", + "credit_note", + "initial", + "invoice_overpaid", + "invoice_too_large", + "invoice_too_small", + "migration", + "unapplied_from_invoice", + "unspent_receiver_credit", + ] + """ + Transaction type: `adjustment`, `applied_to_invoice`, `credit_note`, `initial`, `invoice_overpaid`, `invoice_too_large`, `invoice_too_small`, `unspent_receiver_credit`, `unapplied_from_invoice`, `checkout_session_subscription_payment`, or `checkout_session_subscription_payment_canceled`. See the [Customer Balance page](https://stripe.com/docs/billing/customer/balance#types) to learn more about transaction types. + """ + + def instance_url(self): + token = self.id + customer = self.customer + if isinstance(customer, Customer): + customer = customer.id + base = Customer.class_url() + cust_extn = sanitize_id(customer) + extn = sanitize_id(token) + return "%s/%s/balance_transactions/%s" % (base, cust_extn, extn) + + @classmethod + def retrieve(cls, id, **params) -> "CustomerBalanceTransaction": + raise NotImplementedError( + "Can't retrieve a Customer Balance Transaction without a Customer ID. " + "Use Customer.retrieve_customer_balance_transaction('cus_123', 'cbtxn_123')" + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_balance_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_balance_transaction_service.py new file mode 100644 index 00000000..5a4feab8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_balance_transaction_service.py @@ -0,0 +1,209 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer_balance_transaction import CustomerBalanceTransaction + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._customer_balance_transaction_create_params import ( + CustomerBalanceTransactionCreateParams, + ) + from stripe.params._customer_balance_transaction_list_params import ( + CustomerBalanceTransactionListParams, + ) + from stripe.params._customer_balance_transaction_retrieve_params import ( + CustomerBalanceTransactionRetrieveParams, + ) + from stripe.params._customer_balance_transaction_update_params import ( + CustomerBalanceTransactionUpdateParams, + ) + + +class CustomerBalanceTransactionService(StripeService): + def list( + self, + customer: str, + params: Optional["CustomerBalanceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CustomerBalanceTransaction]": + """ + Returns a list of transactions that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "ListObject[CustomerBalanceTransaction]", + self._request( + "get", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + customer: str, + params: Optional["CustomerBalanceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CustomerBalanceTransaction]": + """ + Returns a list of transactions that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "ListObject[CustomerBalanceTransaction]", + await self._request_async( + "get", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + customer: str, + params: "CustomerBalanceTransactionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CustomerBalanceTransaction": + """ + Creates an immutable transaction that updates the customer's credit [balance](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + self._request( + "post", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + customer: str, + params: "CustomerBalanceTransactionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CustomerBalanceTransaction": + """ + Creates an immutable transaction that updates the customer's credit [balance](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + await self._request_async( + "post", + "/v1/customers/{customer}/balance_transactions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + customer: str, + transaction: str, + params: Optional["CustomerBalanceTransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CustomerBalanceTransaction": + """ + Retrieves a specific customer balance transaction that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + self._request( + "get", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + customer: str, + transaction: str, + params: Optional["CustomerBalanceTransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CustomerBalanceTransaction": + """ + Retrieves a specific customer balance transaction that updated the customer's [balances](https://docs.stripe.com/docs/billing/customer/balance). + """ + return cast( + "CustomerBalanceTransaction", + await self._request_async( + "get", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + customer: str, + transaction: str, + params: Optional["CustomerBalanceTransactionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CustomerBalanceTransaction": + """ + Most credit balance transaction fields are immutable, but you may update its description and metadata. + """ + return cast( + "CustomerBalanceTransaction", + self._request( + "post", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + customer: str, + transaction: str, + params: Optional["CustomerBalanceTransactionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CustomerBalanceTransaction": + """ + Most credit balance transaction fields are immutable, but you may update its description and metadata. + """ + return cast( + "CustomerBalanceTransaction", + await self._request_async( + "post", + "/v1/customers/{customer}/balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_service.py new file mode 100644 index 00000000..80ea75f1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_service.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._cash_balance import CashBalance + from stripe._request_options import RequestOptions + from stripe.params._customer_cash_balance_retrieve_params import ( + CustomerCashBalanceRetrieveParams, + ) + from stripe.params._customer_cash_balance_update_params import ( + CustomerCashBalanceUpdateParams, + ) + + +class CustomerCashBalanceService(StripeService): + def retrieve( + self, + customer: str, + params: Optional["CustomerCashBalanceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CashBalance": + """ + Retrieves a customer's cash balance. + """ + return cast( + "CashBalance", + self._request( + "get", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + customer: str, + params: Optional["CustomerCashBalanceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CashBalance": + """ + Retrieves a customer's cash balance. + """ + return cast( + "CashBalance", + await self._request_async( + "get", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + customer: str, + params: Optional["CustomerCashBalanceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CashBalance": + """ + Changes the settings on a customer's cash balance. + """ + return cast( + "CashBalance", + self._request( + "post", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + customer: str, + params: Optional["CustomerCashBalanceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CashBalance": + """ + Changes the settings on a customer's cash balance. + """ + return cast( + "CashBalance", + await self._request_async( + "post", + "/v1/customers/{customer}/cash_balance".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_transaction.py new file mode 100644 index 00000000..64db2470 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_transaction.py @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe._customer import Customer + from stripe._payment_intent import PaymentIntent + from stripe._refund import Refund + + +class CustomerCashBalanceTransaction(StripeObject): + """ + Customers with certain payments enabled have a cash balance, representing funds that were paid + by the customer to a merchant, but have not yet been allocated to a payment. Cash Balance Transactions + represent when funds are moved into or out of this balance. This includes funding by the customer, allocation + to payments, and refunds to the customer. + """ + + OBJECT_NAME: ClassVar[Literal["customer_cash_balance_transaction"]] = ( + "customer_cash_balance_transaction" + ) + + class AdjustedForOverdraft(StripeObject): + balance_transaction: ExpandableField["BalanceTransaction"] + """ + The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds taken out of your Stripe balance. + """ + linked_transaction: ExpandableField["CustomerCashBalanceTransaction"] + """ + The [Cash Balance Transaction](https://stripe.com/docs/api/cash_balance_transactions/object) that brought the customer balance negative, triggering the clawback of funds. + """ + + class AppliedToPayment(StripeObject): + payment_intent: ExpandableField["PaymentIntent"] + """ + The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were applied to. + """ + + class Funded(StripeObject): + class BankTransfer(StripeObject): + class EuBankTransfer(StripeObject): + bic: Optional[str] + """ + The BIC of the bank of the sender of the funding. + """ + iban_last4: Optional[str] + """ + The last 4 digits of the IBAN of the sender of the funding. + """ + sender_name: Optional[str] + """ + The full name of the sender, as supplied by the sending bank. + """ + + class GbBankTransfer(StripeObject): + account_number_last4: Optional[str] + """ + The last 4 digits of the account number of the sender of the funding. + """ + sender_name: Optional[str] + """ + The full name of the sender, as supplied by the sending bank. + """ + sort_code: Optional[str] + """ + The sort code of the bank of the sender of the funding + """ + + class JpBankTransfer(StripeObject): + sender_bank: Optional[str] + """ + The name of the bank of the sender of the funding. + """ + sender_branch: Optional[str] + """ + The name of the bank branch of the sender of the funding. + """ + sender_name: Optional[str] + """ + The full name of the sender, as supplied by the sending bank. + """ + + class UsBankTransfer(StripeObject): + network: Optional[Literal["ach", "domestic_wire_us", "swift"]] + """ + The banking network used for this funding. + """ + sender_name: Optional[str] + """ + The full name of the sender, as supplied by the sending bank. + """ + + eu_bank_transfer: Optional[EuBankTransfer] + gb_bank_transfer: Optional[GbBankTransfer] + jp_bank_transfer: Optional[JpBankTransfer] + reference: Optional[str] + """ + The user-supplied reference field on the bank transfer. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The funding method type used to fund the customer balance. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + us_bank_transfer: Optional[UsBankTransfer] + _inner_class_types = { + "eu_bank_transfer": EuBankTransfer, + "gb_bank_transfer": GbBankTransfer, + "jp_bank_transfer": JpBankTransfer, + "us_bank_transfer": UsBankTransfer, + } + + bank_transfer: BankTransfer + _inner_class_types = {"bank_transfer": BankTransfer} + + class RefundedFromPayment(StripeObject): + refund: ExpandableField["Refund"] + """ + The [Refund](https://stripe.com/docs/api/refunds/object) that moved these funds into the customer's cash balance. + """ + + class TransferredToBalance(StripeObject): + balance_transaction: ExpandableField["BalanceTransaction"] + """ + The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds transferred to your Stripe balance. + """ + + class UnappliedFromPayment(StripeObject): + payment_intent: ExpandableField["PaymentIntent"] + """ + The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were unapplied from. + """ + + adjusted_for_overdraft: Optional[AdjustedForOverdraft] + applied_to_payment: Optional[AppliedToPayment] + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: ExpandableField["Customer"] + """ + The customer whose available cash balance changed as a result of this transaction. + """ + ending_balance: int + """ + The total available cash balance for the specified currency after this transaction was applied. Represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + funded: Optional[Funded] + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + net_amount: int + """ + The amount by which the cash balance changed, represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). A positive value represents funds being added to the cash balance, a negative value represents funds being removed from the cash balance. + """ + object: Literal["customer_cash_balance_transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + refunded_from_payment: Optional[RefundedFromPayment] + transferred_to_balance: Optional[TransferredToBalance] + type: Literal[ + "adjusted_for_overdraft", + "applied_to_payment", + "funded", + "funding_reversed", + "refunded_from_payment", + "return_canceled", + "return_initiated", + "transferred_to_balance", + "unapplied_from_payment", + ] + """ + The type of the cash balance transaction. New types may be added in future. See [Customer Balance](https://stripe.com/docs/payments/customer-balance#types) to learn more about these types. + """ + unapplied_from_payment: Optional[UnappliedFromPayment] + _inner_class_types = { + "adjusted_for_overdraft": AdjustedForOverdraft, + "applied_to_payment": AppliedToPayment, + "funded": Funded, + "refunded_from_payment": RefundedFromPayment, + "transferred_to_balance": TransferredToBalance, + "unapplied_from_payment": UnappliedFromPayment, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_transaction_service.py new file mode 100644 index 00000000..e9ceb320 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_cash_balance_transaction_service.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer_cash_balance_transaction import ( + CustomerCashBalanceTransaction, + ) + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._customer_cash_balance_transaction_list_params import ( + CustomerCashBalanceTransactionListParams, + ) + from stripe.params._customer_cash_balance_transaction_retrieve_params import ( + CustomerCashBalanceTransactionRetrieveParams, + ) + + +class CustomerCashBalanceTransactionService(StripeService): + def list( + self, + customer: str, + params: Optional["CustomerCashBalanceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CustomerCashBalanceTransaction]": + """ + Returns a list of transactions that modified the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + "ListObject[CustomerCashBalanceTransaction]", + self._request( + "get", + "/v1/customers/{customer}/cash_balance_transactions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + customer: str, + params: Optional["CustomerCashBalanceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CustomerCashBalanceTransaction]": + """ + Returns a list of transactions that modified the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + "ListObject[CustomerCashBalanceTransaction]", + await self._request_async( + "get", + "/v1/customers/{customer}/cash_balance_transactions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + customer: str, + transaction: str, + params: Optional[ + "CustomerCashBalanceTransactionRetrieveParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "CustomerCashBalanceTransaction": + """ + Retrieves a specific cash balance transaction, which updated the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + "CustomerCashBalanceTransaction", + self._request( + "get", + "/v1/customers/{customer}/cash_balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + customer: str, + transaction: str, + params: Optional[ + "CustomerCashBalanceTransactionRetrieveParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "CustomerCashBalanceTransaction": + """ + Retrieves a specific cash balance transaction, which updated the customer's [cash balance](https://docs.stripe.com/docs/payments/customer-balance). + """ + return cast( + "CustomerCashBalanceTransaction", + await self._request_async( + "get", + "/v1/customers/{customer}/cash_balance_transactions/{transaction}".format( + customer=sanitize_id(customer), + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_funding_instructions_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_funding_instructions_service.py new file mode 100644 index 00000000..463434fe --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_funding_instructions_service.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._funding_instructions import FundingInstructions + from stripe._request_options import RequestOptions + from stripe.params._customer_funding_instructions_create_params import ( + CustomerFundingInstructionsCreateParams, + ) + + +class CustomerFundingInstructionsService(StripeService): + def create( + self, + customer: str, + params: "CustomerFundingInstructionsCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + return cast( + "FundingInstructions", + self._request( + "post", + "/v1/customers/{customer}/funding_instructions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + customer: str, + params: "CustomerFundingInstructionsCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "FundingInstructions": + """ + Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + funding instructions will be created. If funding instructions have already been created for a given customer, the same + funding instructions will be retrieved. In other words, we will return the same funding instructions each time. + """ + return cast( + "FundingInstructions", + await self._request_async( + "post", + "/v1/customers/{customer}/funding_instructions".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_payment_method_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_payment_method_service.py new file mode 100644 index 00000000..05d0e9b6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_payment_method_service.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_method import PaymentMethod + from stripe._request_options import RequestOptions + from stripe.params._customer_payment_method_list_params import ( + CustomerPaymentMethodListParams, + ) + from stripe.params._customer_payment_method_retrieve_params import ( + CustomerPaymentMethodRetrieveParams, + ) + + +class CustomerPaymentMethodService(StripeService): + def list( + self, + customer: str, + params: Optional["CustomerPaymentMethodListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethod]": + """ + Returns a list of PaymentMethods for a given Customer + """ + return cast( + "ListObject[PaymentMethod]", + self._request( + "get", + "/v1/customers/{customer}/payment_methods".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + customer: str, + params: Optional["CustomerPaymentMethodListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethod]": + """ + Returns a list of PaymentMethods for a given Customer + """ + return cast( + "ListObject[PaymentMethod]", + await self._request_async( + "get", + "/v1/customers/{customer}/payment_methods".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + customer: str, + payment_method: str, + params: Optional["CustomerPaymentMethodRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + return cast( + "PaymentMethod", + self._request( + "get", + "/v1/customers/{customer}/payment_methods/{payment_method}".format( + customer=sanitize_id(customer), + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + customer: str, + payment_method: str, + params: Optional["CustomerPaymentMethodRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object for a given Customer. + """ + return cast( + "PaymentMethod", + await self._request_async( + "get", + "/v1/customers/{customer}/payment_methods/{payment_method}".format( + customer=sanitize_id(customer), + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_payment_source_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_payment_source_service.py new file mode 100644 index 00000000..7ea89ac7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_payment_source_service.py @@ -0,0 +1,323 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._bank_account import BankAccount + from stripe._card import Card + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._source import Source + from stripe.params._customer_payment_source_create_params import ( + CustomerPaymentSourceCreateParams, + ) + from stripe.params._customer_payment_source_delete_params import ( + CustomerPaymentSourceDeleteParams, + ) + from stripe.params._customer_payment_source_list_params import ( + CustomerPaymentSourceListParams, + ) + from stripe.params._customer_payment_source_retrieve_params import ( + CustomerPaymentSourceRetrieveParams, + ) + from stripe.params._customer_payment_source_update_params import ( + CustomerPaymentSourceUpdateParams, + ) + from stripe.params._customer_payment_source_verify_params import ( + CustomerPaymentSourceVerifyParams, + ) + from typing import Union + + +class CustomerPaymentSourceService(StripeService): + def list( + self, + customer: str, + params: Optional["CustomerPaymentSourceListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Union[Account, BankAccount, Card, Source]]": + """ + List sources for a specified customer. + """ + return cast( + "ListObject[Union[Account, BankAccount, Card, Source]]", + self._request( + "get", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + customer: str, + params: Optional["CustomerPaymentSourceListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Union[Account, BankAccount, Card, Source]]": + """ + List sources for a specified customer. + """ + return cast( + "ListObject[Union[Account, BankAccount, Card, Source]]", + await self._request_async( + "get", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + customer: str, + params: "CustomerPaymentSourceCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + When you create a new credit card, you must specify a customer or recipient on which to create it. + + If the card's owner has no default card, then the new card will become the default. + However, if the owner already has a default, then it will not change. + To change the default, you should [update the customer](https://docs.stripe.com/docs/api#update_customer) to have a new default_source. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + self._request( + "post", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + customer: str, + params: "CustomerPaymentSourceCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + When you create a new credit card, you must specify a customer or recipient on which to create it. + + If the card's owner has no default card, then the new card will become the default. + However, if the owner already has a default, then it will not change. + To change the default, you should [update the customer](https://docs.stripe.com/docs/api#update_customer) to have a new default_source. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + await self._request_async( + "post", + "/v1/customers/{customer}/sources".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Retrieve a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + self._request( + "get", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Retrieve a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + await self._request_async( + "get", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Update a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + self._request( + "post", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Update a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + await self._request_async( + "post", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def delete( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Delete a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + self._request( + "delete", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Delete a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + await self._request_async( + "delete", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def verify( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceVerifyParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BankAccount": + """ + Verify a specified bank account for a given customer. + """ + return cast( + "BankAccount", + self._request( + "post", + "/v1/customers/{customer}/sources/{id}/verify".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def verify_async( + self, + customer: str, + id: str, + params: Optional["CustomerPaymentSourceVerifyParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "BankAccount": + """ + Verify a specified bank account for a given customer. + """ + return cast( + "BankAccount", + await self._request_async( + "post", + "/v1/customers/{customer}/sources/{id}/verify".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_service.py new file mode 100644 index 00000000..369841df --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_service.py @@ -0,0 +1,399 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer import Customer + from stripe._customer_balance_transaction_service import ( + CustomerBalanceTransactionService, + ) + from stripe._customer_cash_balance_service import ( + CustomerCashBalanceService, + ) + from stripe._customer_cash_balance_transaction_service import ( + CustomerCashBalanceTransactionService, + ) + from stripe._customer_funding_instructions_service import ( + CustomerFundingInstructionsService, + ) + from stripe._customer_payment_method_service import ( + CustomerPaymentMethodService, + ) + from stripe._customer_payment_source_service import ( + CustomerPaymentSourceService, + ) + from stripe._customer_tax_id_service import CustomerTaxIdService + from stripe._discount import Discount + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._search_result_object import SearchResultObject + from stripe.params._customer_create_params import CustomerCreateParams + from stripe.params._customer_delete_discount_params import ( + CustomerDeleteDiscountParams, + ) + from stripe.params._customer_delete_params import CustomerDeleteParams + from stripe.params._customer_list_params import CustomerListParams + from stripe.params._customer_retrieve_params import CustomerRetrieveParams + from stripe.params._customer_search_params import CustomerSearchParams + from stripe.params._customer_update_params import CustomerUpdateParams + +_subservices = { + "balance_transactions": [ + "stripe._customer_balance_transaction_service", + "CustomerBalanceTransactionService", + ], + "cash_balance": [ + "stripe._customer_cash_balance_service", + "CustomerCashBalanceService", + ], + "cash_balance_transactions": [ + "stripe._customer_cash_balance_transaction_service", + "CustomerCashBalanceTransactionService", + ], + "funding_instructions": [ + "stripe._customer_funding_instructions_service", + "CustomerFundingInstructionsService", + ], + "payment_methods": [ + "stripe._customer_payment_method_service", + "CustomerPaymentMethodService", + ], + "payment_sources": [ + "stripe._customer_payment_source_service", + "CustomerPaymentSourceService", + ], + "tax_ids": ["stripe._customer_tax_id_service", "CustomerTaxIdService"], +} + + +class CustomerService(StripeService): + balance_transactions: "CustomerBalanceTransactionService" + cash_balance: "CustomerCashBalanceService" + cash_balance_transactions: "CustomerCashBalanceTransactionService" + funding_instructions: "CustomerFundingInstructionsService" + payment_methods: "CustomerPaymentMethodService" + payment_sources: "CustomerPaymentSourceService" + tax_ids: "CustomerTaxIdService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def delete( + self, + customer: str, + params: Optional["CustomerDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + return cast( + "Customer", + self._request( + "delete", + "/v1/customers/{customer}".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + customer: str, + params: Optional["CustomerDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer. + """ + return cast( + "Customer", + await self._request_async( + "delete", + "/v1/customers/{customer}".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + customer: str, + params: Optional["CustomerRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Retrieves a Customer object. + """ + return cast( + "Customer", + self._request( + "get", + "/v1/customers/{customer}".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + customer: str, + params: Optional["CustomerRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Retrieves a Customer object. + """ + return cast( + "Customer", + await self._request_async( + "get", + "/v1/customers/{customer}".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + customer: str, + params: Optional["CustomerUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer's active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer's current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior. + + This request accepts mostly the same arguments as the customer creation call. + """ + return cast( + "Customer", + self._request( + "post", + "/v1/customers/{customer}".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + customer: str, + params: Optional["CustomerUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer's active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer's current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior. + + This request accepts mostly the same arguments as the customer creation call. + """ + return cast( + "Customer", + await self._request_async( + "post", + "/v1/customers/{customer}".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def delete_discount( + self, + customer: str, + params: Optional["CustomerDeleteDiscountParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + return cast( + "Discount", + self._request( + "delete", + "/v1/customers/{customer}/discount".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_discount_async( + self, + customer: str, + params: Optional["CustomerDeleteDiscountParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Discount": + """ + Removes the currently applied discount on a customer. + """ + return cast( + "Discount", + await self._request_async( + "delete", + "/v1/customers/{customer}/discount".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["CustomerListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Customer]": + """ + Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first. + """ + return cast( + "ListObject[Customer]", + self._request( + "get", + "/v1/customers", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["CustomerListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Customer]": + """ + Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first. + """ + return cast( + "ListObject[Customer]", + await self._request_async( + "get", + "/v1/customers", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["CustomerCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Creates a new customer object. + """ + return cast( + "Customer", + self._request( + "post", + "/v1/customers", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["CustomerCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Customer": + """ + Creates a new customer object. + """ + return cast( + "Customer", + await self._request_async( + "post", + "/v1/customers", + base_address="api", + params=params, + options=options, + ), + ) + + def search( + self, + params: "CustomerSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Customer]": + """ + Search for customers you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Customer]", + self._request( + "get", + "/v1/customers/search", + base_address="api", + params=params, + options=options, + ), + ) + + async def search_async( + self, + params: "CustomerSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Customer]": + """ + Search for customers you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Customer]", + await self._request_async( + "get", + "/v1/customers/search", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_session.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_session.py new file mode 100644 index 00000000..b73d0a29 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_session.py @@ -0,0 +1,255 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer import Customer + from stripe.params._customer_session_create_params import ( + CustomerSessionCreateParams, + ) + + +class CustomerSession(CreateableAPIResource["CustomerSession"]): + """ + A Customer Session allows you to grant Stripe's frontend SDKs (like Stripe.js) client-side access + control over a Customer. + + Related guides: [Customer Session with the Payment Element](https://docs.stripe.com/payments/accept-a-payment-deferred?platform=web&type=payment#save-payment-methods), + [Customer Session with the Pricing Table](https://docs.stripe.com/payments/checkout/pricing-table#customer-session), + [Customer Session with the Buy Button](https://docs.stripe.com/payment-links/buy-button#pass-an-existing-customer). + """ + + OBJECT_NAME: ClassVar[Literal["customer_session"]] = "customer_session" + + class Components(StripeObject): + class BuyButton(StripeObject): + enabled: bool + """ + Whether the buy button is enabled. + """ + + class CustomerSheet(StripeObject): + class Features(StripeObject): + payment_method_allow_redisplay_filters: Optional[ + List[Literal["always", "limited", "unspecified"]] + ] + """ + A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the customer sheet displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list. + + If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"]. + """ + payment_method_remove: Optional[Literal["disabled", "enabled"]] + """ + Controls whether the customer sheet displays the option to remove a saved payment method." + + Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods). + """ + + enabled: bool + """ + Whether the customer sheet is enabled. + """ + features: Optional[Features] + """ + This hash defines whether the customer sheet supports certain features. + """ + _inner_class_types = {"features": Features} + + class MobilePaymentElement(StripeObject): + class Features(StripeObject): + payment_method_allow_redisplay_filters: Optional[ + List[Literal["always", "limited", "unspecified"]] + ] + """ + A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the mobile payment element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list. + + If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"]. + """ + payment_method_redisplay: Optional[ + Literal["disabled", "enabled"] + ] + """ + Controls whether or not the mobile payment element shows saved payment methods. + """ + payment_method_remove: Optional[Literal["disabled", "enabled"]] + """ + Controls whether the mobile payment element displays the option to remove a saved payment method." + + Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods). + """ + payment_method_save: Optional[Literal["disabled", "enabled"]] + """ + Controls whether the mobile payment element displays a checkbox offering to save a new payment method. + + If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`. + """ + payment_method_save_allow_redisplay_override: Optional[ + Literal["always", "limited", "unspecified"] + ] + """ + Allows overriding the value of allow_override when saving a new payment method when payment_method_save is set to disabled. Use values: "always", "limited", or "unspecified". + + If not specified, defaults to `nil` (no override value). + """ + + enabled: bool + """ + Whether the mobile payment element is enabled. + """ + features: Optional[Features] + """ + This hash defines whether the mobile payment element supports certain features. + """ + _inner_class_types = {"features": Features} + + class PaymentElement(StripeObject): + class Features(StripeObject): + payment_method_allow_redisplay_filters: List[ + Literal["always", "limited", "unspecified"] + ] + """ + A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the Payment Element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list. + + If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"]. + """ + payment_method_redisplay: Literal["disabled", "enabled"] + """ + Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled`. + """ + payment_method_redisplay_limit: Optional[int] + """ + Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `3`. The maximum redisplay limit is `10`. + """ + payment_method_remove: Literal["disabled", "enabled"] + """ + Controls whether the Payment Element displays the option to remove a saved payment method. This parameter defaults to `disabled`. + + Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods). + """ + payment_method_save: Literal["disabled", "enabled"] + """ + Controls whether the Payment Element displays a checkbox offering to save a new payment method. This parameter defaults to `disabled`. + + If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`. + """ + payment_method_save_usage: Optional[ + Literal["off_session", "on_session"] + ] + """ + When using PaymentIntents and the customer checks the save checkbox, this field determines the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value used to confirm the PaymentIntent. + + When using SetupIntents, directly configure the [`usage`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-usage) value on SetupIntent creation. + """ + + enabled: bool + """ + Whether the Payment Element is enabled. + """ + features: Optional[Features] + """ + This hash defines whether the Payment Element supports certain features. + """ + _inner_class_types = {"features": Features} + + class PricingTable(StripeObject): + enabled: bool + """ + Whether the pricing table is enabled. + """ + + buy_button: BuyButton + """ + This hash contains whether the buy button is enabled. + """ + customer_sheet: CustomerSheet + """ + This hash contains whether the customer sheet is enabled and the features it supports. + """ + mobile_payment_element: MobilePaymentElement + """ + This hash contains whether the mobile payment element is enabled and the features it supports. + """ + payment_element: PaymentElement + """ + This hash contains whether the Payment Element is enabled and the features it supports. + """ + pricing_table: PricingTable + """ + This hash contains whether the pricing table is enabled. + """ + _inner_class_types = { + "buy_button": BuyButton, + "customer_sheet": CustomerSheet, + "mobile_payment_element": MobilePaymentElement, + "payment_element": PaymentElement, + "pricing_table": PricingTable, + } + + client_secret: str + """ + The client secret of this Customer Session. Used on the client to set up secure access to the given `customer`. + + The client secret can be used to provide access to `customer` from your frontend. It should not be stored, logged, or exposed to anyone other than the relevant customer. Make sure that you have TLS enabled on any page that includes the client secret. + """ + components: Optional[Components] + """ + Configuration for the components supported by this Customer Session. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: ExpandableField["Customer"] + """ + The Customer the Customer Session was created for. + """ + expires_at: int + """ + The timestamp at which this Customer Session will expire. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["customer_session"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def create( + cls, **params: Unpack["CustomerSessionCreateParams"] + ) -> "CustomerSession": + """ + Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources. + """ + return cast( + "CustomerSession", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CustomerSessionCreateParams"] + ) -> "CustomerSession": + """ + Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources. + """ + return cast( + "CustomerSession", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + _inner_class_types = {"components": Components} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_session_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_session_service.py new file mode 100644 index 00000000..83625862 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_session_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer_session import CustomerSession + from stripe._request_options import RequestOptions + from stripe.params._customer_session_create_params import ( + CustomerSessionCreateParams, + ) + + +class CustomerSessionService(StripeService): + def create( + self, + params: "CustomerSessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CustomerSession": + """ + Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources. + """ + return cast( + "CustomerSession", + self._request( + "post", + "/v1/customer_sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "CustomerSessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CustomerSession": + """ + Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources. + """ + return cast( + "CustomerSession", + await self._request_async( + "post", + "/v1/customer_sessions", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_customer_tax_id_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_tax_id_service.py new file mode 100644 index 00000000..617c1f89 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_customer_tax_id_service.py @@ -0,0 +1,209 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._tax_id import TaxId + from stripe.params._customer_tax_id_create_params import ( + CustomerTaxIdCreateParams, + ) + from stripe.params._customer_tax_id_delete_params import ( + CustomerTaxIdDeleteParams, + ) + from stripe.params._customer_tax_id_list_params import ( + CustomerTaxIdListParams, + ) + from stripe.params._customer_tax_id_retrieve_params import ( + CustomerTaxIdRetrieveParams, + ) + + +class CustomerTaxIdService(StripeService): + def delete( + self, + customer: str, + id: str, + params: Optional["CustomerTaxIdDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Deletes an existing tax_id object. + """ + return cast( + "TaxId", + self._request( + "delete", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + customer: str, + id: str, + params: Optional["CustomerTaxIdDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Deletes an existing tax_id object. + """ + return cast( + "TaxId", + await self._request_async( + "delete", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + customer: str, + id: str, + params: Optional["CustomerTaxIdRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Retrieves the tax_id object with the given identifier. + """ + return cast( + "TaxId", + self._request( + "get", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + customer: str, + id: str, + params: Optional["CustomerTaxIdRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Retrieves the tax_id object with the given identifier. + """ + return cast( + "TaxId", + await self._request_async( + "get", + "/v1/customers/{customer}/tax_ids/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + customer: str, + params: Optional["CustomerTaxIdListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxId]": + """ + Returns a list of tax IDs for a customer. + """ + return cast( + "ListObject[TaxId]", + self._request( + "get", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + customer: str, + params: Optional["CustomerTaxIdListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxId]": + """ + Returns a list of tax IDs for a customer. + """ + return cast( + "ListObject[TaxId]", + await self._request_async( + "get", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + customer: str, + params: "CustomerTaxIdCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Creates a new tax_id object for a customer. + """ + return cast( + "TaxId", + self._request( + "post", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + customer: str, + params: "CustomerTaxIdCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Creates a new tax_id object for a customer. + """ + return cast( + "TaxId", + await self._request_async( + "post", + "/v1/customers/{customer}/tax_ids".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_deletable_api_resource.py b/Backend/venv/lib/python3.12/site-packages/stripe/_deletable_api_resource.py new file mode 100644 index 00000000..ee23c742 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_deletable_api_resource.py @@ -0,0 +1,23 @@ +from stripe import _util +from stripe._api_resource import APIResource +from urllib.parse import quote_plus +from typing import TypeVar, cast +from stripe._stripe_object import StripeObject + +T = TypeVar("T", bound=StripeObject) + + +class DeletableAPIResource(APIResource[T]): + @classmethod + def _cls_delete(cls, sid, **params) -> T: + url = "%s/%s" % (cls.class_url(), quote_plus(sid)) + return cast(T, cls._static_request("delete", url, params=params)) + + @_util.class_method_variant("_cls_delete") + def delete(self, **params) -> T: + return cast( + T, + self._request_and_refresh( + "delete", self.instance_url(), params=params + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_discount.py b/Backend/venv/lib/python3.12/site-packages/stripe/_discount.py new file mode 100644 index 00000000..1cd39b58 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_discount.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._coupon import Coupon + from stripe._customer import Customer + from stripe._promotion_code import PromotionCode + + +class Discount(StripeObject): + """ + A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes). + It contains information about when the discount began, when it will end, and what it is applied to. + + Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) + """ + + OBJECT_NAME: ClassVar[Literal["discount"]] = "discount" + + class Source(StripeObject): + coupon: Optional[ExpandableField["Coupon"]] + """ + The coupon that was redeemed to create this discount. + """ + type: Literal["coupon"] + """ + The source type of the discount. + """ + + checkout_session: Optional[str] + """ + The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode. + """ + customer: Optional[ExpandableField["Customer"]] + """ + The ID of the customer associated with this discount. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + end: Optional[int] + """ + If the coupon has a duration of `repeating`, the date that this discount will end. If the coupon has a duration of `once` or `forever`, this attribute will be null. + """ + id: str + """ + The ID of the discount object. Discounts cannot be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array. + """ + invoice: Optional[str] + """ + The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice. + """ + invoice_item: Optional[str] + """ + The invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item. + """ + object: Literal["discount"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + promotion_code: Optional[ExpandableField["PromotionCode"]] + """ + The promotion code applied to create this discount. + """ + source: Source + start: int + """ + Date that the coupon was applied. + """ + subscription: Optional[str] + """ + The subscription that this coupon is applied to, if it is applied to a particular subscription. + """ + subscription_item: Optional[str] + """ + The subscription item that this coupon is applied to, if it is applied to a particular subscription item. + """ + _inner_class_types = {"source": Source} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_dispute.py b/Backend/venv/lib/python3.12/site-packages/stripe/_dispute.py new file mode 100644 index 00000000..9c519b4a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_dispute.py @@ -0,0 +1,717 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe._charge import Charge + from stripe._file import File + from stripe._payment_intent import PaymentIntent + from stripe.params._dispute_close_params import DisputeCloseParams + from stripe.params._dispute_list_params import DisputeListParams + from stripe.params._dispute_modify_params import DisputeModifyParams + from stripe.params._dispute_retrieve_params import DisputeRetrieveParams + + +class Dispute( + ListableAPIResource["Dispute"], UpdateableAPIResource["Dispute"] +): + """ + A dispute occurs when a customer questions your charge with their card issuer. + When this happens, you have the opportunity to respond to the dispute with + evidence that shows that the charge is legitimate. + + Related guide: [Disputes and fraud](https://stripe.com/docs/disputes) + """ + + OBJECT_NAME: ClassVar[Literal["dispute"]] = "dispute" + + class Evidence(StripeObject): + class EnhancedEvidence(StripeObject): + class VisaCompellingEvidence3(StripeObject): + class DisputedTransaction(StripeObject): + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + customer_account_id: Optional[str] + """ + User Account ID used to log into business platform. Must be recognizable by the user. + """ + customer_device_fingerprint: Optional[str] + """ + Unique identifier of the cardholder's device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters. + """ + customer_device_id: Optional[str] + """ + Unique identifier of the cardholder's device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters. + """ + customer_email_address: Optional[str] + """ + The email address of the customer. + """ + customer_purchase_ip: Optional[str] + """ + The IP address that the customer used when making the purchase. + """ + merchandise_or_services: Optional[ + Literal["merchandise", "services"] + ] + """ + Categorization of disputed payment. + """ + product_description: Optional[str] + """ + A description of the product or service that was sold. + """ + shipping_address: Optional[ShippingAddress] + """ + The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission. + """ + _inner_class_types = {"shipping_address": ShippingAddress} + + class PriorUndisputedTransaction(StripeObject): + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + charge: str + """ + Stripe charge ID for the Visa Compelling Evidence 3.0 eligible prior charge. + """ + customer_account_id: Optional[str] + """ + User Account ID used to log into business platform. Must be recognizable by the user. + """ + customer_device_fingerprint: Optional[str] + """ + Unique identifier of the cardholder's device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters. + """ + customer_device_id: Optional[str] + """ + Unique identifier of the cardholder's device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters. + """ + customer_email_address: Optional[str] + """ + The email address of the customer. + """ + customer_purchase_ip: Optional[str] + """ + The IP address that the customer used when making the purchase. + """ + product_description: Optional[str] + """ + A description of the product or service that was sold. + """ + shipping_address: Optional[ShippingAddress] + """ + The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission. + """ + _inner_class_types = {"shipping_address": ShippingAddress} + + disputed_transaction: Optional[DisputedTransaction] + """ + Disputed transaction details for Visa Compelling Evidence 3.0 evidence submission. + """ + prior_undisputed_transactions: List[PriorUndisputedTransaction] + """ + List of exactly two prior undisputed transaction objects for Visa Compelling Evidence 3.0 evidence submission. + """ + _inner_class_types = { + "disputed_transaction": DisputedTransaction, + "prior_undisputed_transactions": PriorUndisputedTransaction, + } + + class VisaCompliance(StripeObject): + fee_acknowledged: bool + """ + A field acknowledging the fee incurred when countering a Visa compliance dispute. If this field is set to true, evidence can be submitted for the compliance dispute. Stripe collects a 500 USD (or local equivalent) amount to cover the network costs associated with resolving compliance disputes. Stripe refunds the 500 USD network fee if you win the dispute. + """ + + visa_compelling_evidence_3: Optional[VisaCompellingEvidence3] + visa_compliance: Optional[VisaCompliance] + _inner_class_types = { + "visa_compelling_evidence_3": VisaCompellingEvidence3, + "visa_compliance": VisaCompliance, + } + + access_activity_log: Optional[str] + """ + Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. + """ + billing_address: Optional[str] + """ + The billing address provided by the customer. + """ + cancellation_policy: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer. + """ + cancellation_policy_disclosure: Optional[str] + """ + An explanation of how and when the customer was shown your refund policy prior to purchase. + """ + cancellation_rebuttal: Optional[str] + """ + A justification for why the customer's subscription was not canceled. + """ + customer_communication: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service. + """ + customer_email_address: Optional[str] + """ + The email address of the customer. + """ + customer_name: Optional[str] + """ + The name of the customer. + """ + customer_purchase_ip: Optional[str] + """ + The IP address that the customer used when making the purchase. + """ + customer_signature: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature. + """ + duplicate_charge_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate. + """ + duplicate_charge_explanation: Optional[str] + """ + An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. + """ + duplicate_charge_id: Optional[str] + """ + The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge. + """ + enhanced_evidence: EnhancedEvidence + product_description: Optional[str] + """ + A description of the product or service that was sold. + """ + receipt: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge. + """ + refund_policy: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer. + """ + refund_policy_disclosure: Optional[str] + """ + Documentation demonstrating that the customer was shown your refund policy prior to purchase. + """ + refund_refusal_explanation: Optional[str] + """ + A justification for why the customer is not entitled to a refund. + """ + service_date: Optional[str] + """ + The date on which the customer received or began receiving the purchased service, in a clear human-readable format. + """ + service_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement. + """ + shipping_address: Optional[str] + """ + The address to which a physical product was shipped. You should try to include as complete address information as possible. + """ + shipping_carrier: Optional[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas. + """ + shipping_date: Optional[str] + """ + The date on which a physical product began its route to the shipping address, in a clear human-readable format. + """ + shipping_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible. + """ + shipping_tracking_number: Optional[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + uncategorized_file: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements. + """ + uncategorized_text: Optional[str] + """ + Any additional evidence or statements. + """ + _inner_class_types = {"enhanced_evidence": EnhancedEvidence} + + class EvidenceDetails(StripeObject): + class EnhancedEligibility(StripeObject): + class VisaCompellingEvidence3(StripeObject): + required_actions: List[ + Literal[ + "missing_customer_identifiers", + "missing_disputed_transaction_description", + "missing_merchandise_or_services", + "missing_prior_undisputed_transaction_description", + "missing_prior_undisputed_transactions", + ] + ] + """ + List of actions required to qualify dispute for Visa Compelling Evidence 3.0 evidence submission. + """ + status: Literal[ + "not_qualified", "qualified", "requires_action" + ] + """ + Visa Compelling Evidence 3.0 eligibility status. + """ + + class VisaCompliance(StripeObject): + status: Literal[ + "fee_acknowledged", "requires_fee_acknowledgement" + ] + """ + Visa compliance eligibility status. + """ + + visa_compelling_evidence_3: Optional[VisaCompellingEvidence3] + visa_compliance: Optional[VisaCompliance] + _inner_class_types = { + "visa_compelling_evidence_3": VisaCompellingEvidence3, + "visa_compliance": VisaCompliance, + } + + due_by: Optional[int] + """ + Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer's bank or credit card company doesn't allow a response for this particular dispute. + """ + enhanced_eligibility: EnhancedEligibility + has_evidence: bool + """ + Whether evidence has been staged for this dispute. + """ + past_due: bool + """ + Whether the last evidence submission was submitted past the due date. Defaults to `false` if no evidence submissions have occurred. If `true`, then delivery of the latest evidence is *not* guaranteed. + """ + submission_count: int + """ + The number of times evidence has been submitted. Typically, you may only submit evidence once. + """ + _inner_class_types = {"enhanced_eligibility": EnhancedEligibility} + + class PaymentMethodDetails(StripeObject): + class AmazonPay(StripeObject): + dispute_type: Optional[Literal["chargeback", "claim"]] + """ + The AmazonPay dispute type, chargeback or claim + """ + + class Card(StripeObject): + brand: str + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + case_type: Literal[ + "block", "chargeback", "compliance", "inquiry", "resolution" + ] + """ + The type of dispute opened. Different case types may have varying fees and financial impact. + """ + network_reason_code: Optional[str] + """ + The card network's specific dispute reason code, which maps to one of Stripe's primary dispute categories to simplify response guidance. The [Network code map](https://stripe.com/docs/disputes/categories#network-code-map) lists all available dispute reason codes by network. + """ + + class Klarna(StripeObject): + chargeback_loss_reason_code: Optional[str] + """ + Chargeback loss reason mapped by Stripe from Klarna's chargeback loss reason + """ + reason_code: Optional[str] + """ + The reason for the dispute as defined by Klarna + """ + + class Paypal(StripeObject): + case_id: Optional[str] + """ + The ID of the dispute in PayPal. + """ + reason_code: Optional[str] + """ + The reason for the dispute as defined by PayPal + """ + + amazon_pay: Optional[AmazonPay] + card: Optional[Card] + klarna: Optional[Klarna] + paypal: Optional[Paypal] + type: Literal["amazon_pay", "card", "klarna", "paypal"] + """ + Payment method type. + """ + _inner_class_types = { + "amazon_pay": AmazonPay, + "card": Card, + "klarna": Klarna, + "paypal": Paypal, + } + + amount: int + """ + Disputed amount. Usually the amount of the charge, but it can differ (usually because of currency fluctuation or because only part of the order is disputed). + """ + balance_transactions: List["BalanceTransaction"] + """ + List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute. + """ + charge: ExpandableField["Charge"] + """ + ID of the charge that's disputed. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + enhanced_eligibility_types: List[ + Literal["visa_compelling_evidence_3", "visa_compliance"] + ] + """ + List of eligibility types that are included in `enhanced_evidence`. + """ + evidence: Evidence + evidence_details: EvidenceDetails + id: str + """ + Unique identifier for the object. + """ + is_charge_refundable: bool + """ + If true, it's still possible to refund the disputed payment. After the payment has been fully refunded, no further funds are withdrawn from your Stripe account as a result of this dispute. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + network_reason_code: Optional[str] + """ + Network-dependent reason code for the dispute. + """ + object: Literal["dispute"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + ID of the PaymentIntent that's disputed. + """ + payment_method_details: Optional[PaymentMethodDetails] + reason: str + """ + Reason given by cardholder for dispute. Possible values are `bank_cannot_process`, `check_returned`, `credit_not_processed`, `customer_initiated`, `debit_not_authorized`, `duplicate`, `fraudulent`, `general`, `incorrect_account_details`, `insufficient_funds`, `noncompliant`, `product_not_received`, `product_unacceptable`, `subscription_canceled`, or `unrecognized`. Learn more about [dispute reasons](https://stripe.com/docs/disputes/categories). + """ + status: Literal[ + "lost", + "needs_response", + "prevented", + "under_review", + "warning_closed", + "warning_needs_response", + "warning_under_review", + "won", + ] + """ + The current status of a dispute. Possible values include:`warning_needs_response`, `warning_under_review`, `warning_closed`, `needs_response`, `under_review`, `won`, `lost`, or `prevented`. + """ + + @classmethod + def _cls_close( + cls, dispute: str, **params: Unpack["DisputeCloseParams"] + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + return cast( + "Dispute", + cls._static_request( + "post", + "/v1/disputes/{dispute}/close".format( + dispute=sanitize_id(dispute) + ), + params=params, + ), + ) + + @overload + @staticmethod + def close( + dispute: str, **params: Unpack["DisputeCloseParams"] + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + ... + + @overload + def close(self, **params: Unpack["DisputeCloseParams"]) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + ... + + @class_method_variant("_cls_close") + def close( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["DisputeCloseParams"] + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + return cast( + "Dispute", + self._request( + "post", + "/v1/disputes/{dispute}/close".format( + dispute=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_close_async( + cls, dispute: str, **params: Unpack["DisputeCloseParams"] + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + return cast( + "Dispute", + await cls._static_request_async( + "post", + "/v1/disputes/{dispute}/close".format( + dispute=sanitize_id(dispute) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def close_async( + dispute: str, **params: Unpack["DisputeCloseParams"] + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + ... + + @overload + async def close_async( + self, **params: Unpack["DisputeCloseParams"] + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + ... + + @class_method_variant("_cls_close_async") + async def close_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["DisputeCloseParams"] + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + return cast( + "Dispute", + await self._request_async( + "post", + "/v1/disputes/{dispute}/close".format( + dispute=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["DisputeListParams"] + ) -> ListObject["Dispute"]: + """ + Returns a list of your disputes. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["DisputeListParams"] + ) -> ListObject["Dispute"]: + """ + Returns a list of your disputes. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["DisputeModifyParams"] + ) -> "Dispute": + """ + When you get a dispute, contacting your customer is always the best first step. If that doesn't work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your [dashboard](https://dashboard.stripe.com/disputes), but if you prefer, you can use the API to submit evidence programmatically. + + Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our [guide to dispute types](https://docs.stripe.com/docs/disputes/categories). + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Dispute", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["DisputeModifyParams"] + ) -> "Dispute": + """ + When you get a dispute, contacting your customer is always the best first step. If that doesn't work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your [dashboard](https://dashboard.stripe.com/disputes), but if you prefer, you can use the API to submit evidence programmatically. + + Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our [guide to dispute types](https://docs.stripe.com/docs/disputes/categories). + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Dispute", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["DisputeRetrieveParams"] + ) -> "Dispute": + """ + Retrieves the dispute with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["DisputeRetrieveParams"] + ) -> "Dispute": + """ + Retrieves the dispute with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "evidence": Evidence, + "evidence_details": EvidenceDetails, + "payment_method_details": PaymentMethodDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_dispute_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_dispute_service.py new file mode 100644 index 00000000..a6d2a8ce --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_dispute_service.py @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._dispute import Dispute + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._dispute_close_params import DisputeCloseParams + from stripe.params._dispute_list_params import DisputeListParams + from stripe.params._dispute_retrieve_params import DisputeRetrieveParams + from stripe.params._dispute_update_params import DisputeUpdateParams + + +class DisputeService(StripeService): + def list( + self, + params: Optional["DisputeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Dispute]": + """ + Returns a list of your disputes. + """ + return cast( + "ListObject[Dispute]", + self._request( + "get", + "/v1/disputes", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["DisputeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Dispute]": + """ + Returns a list of your disputes. + """ + return cast( + "ListObject[Dispute]", + await self._request_async( + "get", + "/v1/disputes", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + dispute: str, + params: Optional["DisputeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Retrieves the dispute with the given ID. + """ + return cast( + "Dispute", + self._request( + "get", + "/v1/disputes/{dispute}".format(dispute=sanitize_id(dispute)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + dispute: str, + params: Optional["DisputeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Retrieves the dispute with the given ID. + """ + return cast( + "Dispute", + await self._request_async( + "get", + "/v1/disputes/{dispute}".format(dispute=sanitize_id(dispute)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + dispute: str, + params: Optional["DisputeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + When you get a dispute, contacting your customer is always the best first step. If that doesn't work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your [dashboard](https://dashboard.stripe.com/disputes), but if you prefer, you can use the API to submit evidence programmatically. + + Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our [guide to dispute types](https://docs.stripe.com/docs/disputes/categories). + """ + return cast( + "Dispute", + self._request( + "post", + "/v1/disputes/{dispute}".format(dispute=sanitize_id(dispute)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + dispute: str, + params: Optional["DisputeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + When you get a dispute, contacting your customer is always the best first step. If that doesn't work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your [dashboard](https://dashboard.stripe.com/disputes), but if you prefer, you can use the API to submit evidence programmatically. + + Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our [guide to dispute types](https://docs.stripe.com/docs/disputes/categories). + """ + return cast( + "Dispute", + await self._request_async( + "post", + "/v1/disputes/{dispute}".format(dispute=sanitize_id(dispute)), + base_address="api", + params=params, + options=options, + ), + ) + + def close( + self, + dispute: str, + params: Optional["DisputeCloseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + return cast( + "Dispute", + self._request( + "post", + "/v1/disputes/{dispute}/close".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def close_async( + self, + dispute: str, + params: Optional["DisputeCloseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. + + The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible. + """ + return cast( + "Dispute", + await self._request_async( + "post", + "/v1/disputes/{dispute}/close".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_encode.py b/Backend/venv/lib/python3.12/site-packages/stripe/_encode.py new file mode 100644 index 00000000..8ad5f484 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_encode.py @@ -0,0 +1,56 @@ +import calendar +import datetime +import time +from collections import OrderedDict +from typing import Generator, Optional, Tuple, Any + + +def _encode_datetime(dttime: datetime.datetime): + if dttime.tzinfo and dttime.tzinfo.utcoffset(dttime) is not None: + utc_timestamp = calendar.timegm(dttime.utctimetuple()) + else: + utc_timestamp = time.mktime(dttime.timetuple()) + + return int(utc_timestamp) + + +def _encode_nested_dict(key, data, fmt="%s[%s]"): + d = OrderedDict() + for subkey, subvalue in data.items(): + d[fmt % (key, subkey)] = subvalue + return d + + +def _json_encode_date_callback(value): + if isinstance(value, datetime.datetime): + return _encode_datetime(value) + return value + + +def _api_encode( + data, api_mode: Optional[str] +) -> Generator[Tuple[str, Any], None, None]: + for key, value in data.items(): + if value is None: + continue + elif hasattr(value, "stripe_id"): + yield (key, value.stripe_id) + elif isinstance(value, list) or isinstance(value, tuple): + for i, sv in enumerate(value): + encoded_key = key if api_mode == "V2" else "%s[%d]" % (key, i) + if isinstance(sv, dict): + subdict = _encode_nested_dict(encoded_key, sv) + for k, v in _api_encode(subdict, api_mode): + yield (k, v) + else: + yield (encoded_key, sv) + elif isinstance(value, dict): + subdict = _encode_nested_dict(key, value) + for subkey, subvalue in _api_encode(subdict, api_mode): + yield (subkey, subvalue) + elif isinstance(value, datetime.datetime): + yield (key, _encode_datetime(value)) + elif isinstance(value, bool): + yield (key, str(value).lower()) + else: + yield (key, value) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_entitlements_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_entitlements_service.py new file mode 100644 index 00000000..634a73fc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_entitlements_service.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.entitlements._active_entitlement_service import ( + ActiveEntitlementService, + ) + from stripe.entitlements._feature_service import FeatureService + +_subservices = { + "active_entitlements": [ + "stripe.entitlements._active_entitlement_service", + "ActiveEntitlementService", + ], + "features": ["stripe.entitlements._feature_service", "FeatureService"], +} + + +class EntitlementsService(StripeService): + active_entitlements: "ActiveEntitlementService" + features: "FeatureService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_ephemeral_key.py b/Backend/venv/lib/python3.12/site-packages/stripe/_ephemeral_key.py new file mode 100644 index 00000000..830e86b5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_ephemeral_key.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._ephemeral_key_delete_params import ( + EphemeralKeyDeleteParams, + ) + + +class EphemeralKey( + CreateableAPIResource["EphemeralKey"], + DeletableAPIResource["EphemeralKey"], +): + OBJECT_NAME: ClassVar[Literal["ephemeral_key"]] = "ephemeral_key" + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + expires: int + """ + Time at which the key will expire. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["ephemeral_key"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + secret: Optional[str] + """ + The key's secret. You can use this value to make authorized requests to the Stripe API. + """ + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "EphemeralKey", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + ... + + @overload + def delete( + self, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "EphemeralKey", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["EphemeralKeyDeleteParams"] + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def create(cls, **params): + if params.get("stripe_version") is None: + raise ValueError( + "stripe_version must be specified to create an ephemeral key" + ) + + url = cls.class_url() + return cls._static_request( + "post", + url, + params=params, + base_address="api", + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_ephemeral_key_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_ephemeral_key_service.py new file mode 100644 index 00000000..a8d45b08 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_ephemeral_key_service.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._ephemeral_key import EphemeralKey + from stripe._request_options import RequestOptions + from stripe.params._ephemeral_key_create_params import ( + EphemeralKeyCreateParams, + ) + from stripe.params._ephemeral_key_delete_params import ( + EphemeralKeyDeleteParams, + ) + + +class EphemeralKeyService(StripeService): + def delete( + self, + key: str, + params: Optional["EphemeralKeyDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + return cast( + "EphemeralKey", + self._request( + "delete", + "/v1/ephemeral_keys/{key}".format(key=sanitize_id(key)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + key: str, + params: Optional["EphemeralKeyDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EphemeralKey": + """ + Invalidates a short-lived API key for a given resource. + """ + return cast( + "EphemeralKey", + await self._request_async( + "delete", + "/v1/ephemeral_keys/{key}".format(key=sanitize_id(key)), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["EphemeralKeyCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EphemeralKey": + """ + Creates a short-lived API key for a given resource. + """ + return cast( + "EphemeralKey", + self._request( + "post", + "/v1/ephemeral_keys", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["EphemeralKeyCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EphemeralKey": + """ + Creates a short-lived API key for a given resource. + """ + return cast( + "EphemeralKey", + await self._request_async( + "post", + "/v1/ephemeral_keys", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_error.py b/Backend/venv/lib/python3.12/site-packages/stripe/_error.py new file mode 100644 index 00000000..76e26bb4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_error.py @@ -0,0 +1,195 @@ +from typing import Dict, Optional, Union, cast + +from stripe._error_object import ErrorObject + + +class StripeError(Exception): + _message: Optional[str] + http_body: Optional[str] + http_status: Optional[int] + json_body: Optional[object] + headers: Optional[Dict[str, str]] + code: Optional[str] + request_id: Optional[str] + error: Optional["ErrorObject"] + + def __init__( + self, + message: Optional[str] = None, + http_body: Optional[Union[bytes, str]] = None, + http_status: Optional[int] = None, + json_body: Optional[object] = None, + headers: Optional[Dict[str, str]] = None, + code: Optional[str] = None, + ): + super(StripeError, self).__init__(message) + + body: Optional[str] = None + if http_body: + # http_body can sometimes be a memoryview which must be cast + # to a "bytes" before calling decode, so we check for the + # decode attribute and then cast + if hasattr(http_body, "decode"): + try: + body = cast(bytes, http_body).decode("utf-8") + except BaseException: + body = ( + "" + ) + elif isinstance(http_body, str): + body = http_body + + self._message = message + self.http_body = body + self.http_status = http_status + self.json_body = json_body + self.headers = headers or {} + self.code = code + self.request_id = self.headers.get("request-id", None) + self.error = self._construct_error_object() + + def __str__(self): + msg = self._message or "" + if self.request_id is not None: + return "Request {0}: {1}".format(self.request_id, msg) + else: + return msg + + # Returns the underlying `Exception` (base class) message, which is usually + # the raw message returned by Stripe's API. This was previously available + # in python2 via `error.message`. Unlike `str(error)`, it omits "Request + # req_..." from the beginning of the string. + @property + def user_message(self): + return self._message + + def __repr__(self): + return "%s(message=%r, http_status=%r, request_id=%r)" % ( + self.__class__.__name__, + self._message, + self.http_status, + self.request_id, + ) + + def _construct_error_object(self) -> Optional[ErrorObject]: + if ( + self.json_body is None + or not isinstance(self.json_body, dict) + or "error" not in self.json_body + or not isinstance(self.json_body["error"], dict) + ): + return None + from stripe._error_object import ErrorObject + from stripe._api_requestor import _APIRequestor + + return ErrorObject._construct_from( + values=self.json_body["error"], + requestor=_APIRequestor._global_instance(), + # We pass in API mode as "V1" here because it's required, + # but ErrorObject is reused for both V1 and V2 errors. + api_mode="V1", + ) + + +class APIError(StripeError): + pass + + +class APIConnectionError(StripeError): + should_retry: bool + + def __init__( + self, + message, + http_body=None, + http_status=None, + json_body=None, + headers=None, + code=None, + should_retry=False, + ): + super(APIConnectionError, self).__init__( + message, http_body, http_status, json_body, headers, code + ) + self.should_retry = should_retry + + +class StripeErrorWithParamCode(StripeError): + def __repr__(self): + return ( + "%s(message=%r, param=%r, code=%r, http_status=%r, " + "request_id=%r)" + % ( + self.__class__.__name__, + self._message, + self.param, # pyright: ignore + self.code, + self.http_status, + self.request_id, + ) + ) + + +class CardError(StripeErrorWithParamCode): + def __init__( + self, + message, + param, + code, + http_body=None, + http_status=None, + json_body=None, + headers=None, + ): + super(CardError, self).__init__( + message, http_body, http_status, json_body, headers, code + ) + self.param = param + + +class IdempotencyError(StripeError): + pass + + +class InvalidRequestError(StripeErrorWithParamCode): + def __init__( + self, + message, + param, + code=None, + http_body=None, + http_status=None, + json_body=None, + headers=None, + ): + super(InvalidRequestError, self).__init__( + message, http_body, http_status, json_body, headers, code + ) + self.param = param + + +class AuthenticationError(StripeError): + pass + + +class PermissionError(StripeError): + pass + + +class RateLimitError(StripeError): + pass + + +class SignatureVerificationError(StripeError): + def __init__(self, message, sig_header, http_body=None): + super(SignatureVerificationError, self).__init__(message, http_body) + self.sig_header = sig_header + + +# classDefinitions: The beginning of the section generated from our OpenAPI spec +class TemporarySessionExpiredError(StripeError): + pass + + +# classDefinitions: The end of the section generated from our OpenAPI spec diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_error_object.py b/Backend/venv/lib/python3.12/site-packages/stripe/_error_object.py new file mode 100644 index 00000000..9221218b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_error_object.py @@ -0,0 +1,136 @@ +from typing import Optional +from typing_extensions import TYPE_CHECKING +from stripe._util import merge_dicts +from stripe._stripe_object import StripeObject +from stripe._api_mode import ApiMode + +if TYPE_CHECKING: + from stripe._payment_intent import PaymentIntent + from stripe._setup_intent import SetupIntent + from stripe._source import Source + from stripe._payment_method import PaymentMethod + + +class ErrorObject(StripeObject): + charge: Optional[str] + code: Optional[str] + decline_code: Optional[str] + doc_url: Optional[str] + message: Optional[str] + param: Optional[str] + payment_intent: Optional["PaymentIntent"] + payment_method: Optional["PaymentMethod"] + setup_intent: Optional["SetupIntent"] + source: Optional["Source"] + type: str + + def refresh_from( + self, + values, + api_key=None, + partial=False, + stripe_version=None, + stripe_account=None, + last_response=None, + *, + api_mode: ApiMode = "V1", + ): + return self._refresh_from( + values=values, + partial=partial, + last_response=last_response, + requestor=self._requestor._new_requestor_with_options( + { + "api_key": api_key, + "stripe_version": stripe_version, + "stripe_account": stripe_account, + } + ), + api_mode=api_mode, + ) + + def _refresh_from( + self, + *, + values, + partial=False, + last_response=None, + requestor, + api_mode: ApiMode, + ) -> None: + # Unlike most other API resources, the API will omit attributes in + # error objects when they have a null value. We manually set default + # values here to facilitate generic error handling. + values = merge_dicts( + { + "charge": None, + "code": None, + "decline_code": None, + "doc_url": None, + "message": None, + "param": None, + "payment_intent": None, + "payment_method": None, + "setup_intent": None, + "source": None, + "type": None, + }, + values, + ) + return super(ErrorObject, self)._refresh_from( + values=values, + partial=partial, + last_response=last_response, + requestor=requestor, + api_mode=api_mode, + ) + + +class OAuthErrorObject(StripeObject): + def refresh_from( + self, + values, + api_key=None, + partial=False, + stripe_version=None, + stripe_account=None, + last_response=None, + *, + api_mode: ApiMode = "V1", + ): + return self._refresh_from( + values=values, + partial=partial, + last_response=last_response, + requestor=self._requestor._new_requestor_with_options( + { + "api_key": api_key, + "stripe_version": stripe_version, + "stripe_account": stripe_account, + } + ), + api_mode=api_mode, + ) + + def _refresh_from( + self, + *, + values, + partial=False, + last_response=None, + requestor, + api_mode: ApiMode, + ) -> None: + # Unlike most other API resources, the API will omit attributes in + # error objects when they have a null value. We manually set default + # values here to facilitate generic error handling. + values = merge_dicts( + {"error": None, "error_description": None}, values + ) + return super(OAuthErrorObject, self)._refresh_from( + values=values, + partial=partial, + last_response=last_response, + requestor=requestor, + api_mode=api_mode, + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_event.py b/Backend/venv/lib/python3.12/site-packages/stripe/_event.py new file mode 100644 index 00000000..3ba4cbdf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_event.py @@ -0,0 +1,413 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._event_list_params import EventListParams + from stripe.params._event_retrieve_params import EventRetrieveParams + from typing import Any + + +class Event(ListableAPIResource["Event"]): + """ + Snapshot events allow you to track and react to activity in your Stripe integration. When + the state of another API resource changes, Stripe creates an `Event` object that contains + all the relevant information associated with that action, including the affected API + resource. For example, a successful payment triggers a `charge.succeeded` event, which + contains the `Charge` in the event's data property. Some actions trigger multiple events. + For example, if you create a new subscription for a customer, it triggers both a + `customer.subscription.created` event and a `charge.succeeded` event. + + Configure an event destination in your account to listen for events that represent actions + your integration needs to respond to. Additionally, you can retrieve an individual event or + a list of events from the API. + + [Connect](https://docs.stripe.com/connect) platforms can also receive event notifications + that occur in their connected accounts. These events include an account attribute that + identifies the relevant connected account. + + You can access events through the [Retrieve Event API](https://docs.stripe.com/api/events#retrieve_event) + for 30 days. + """ + + OBJECT_NAME: ClassVar[Literal["event"]] = "event" + + class Data(StripeObject): + object: Dict[str, "Any"] + """ + Object containing the API resource relevant to the event. For example, an `invoice.created` event will have a full [invoice object](https://stripe.com/docs/api#invoice_object) as the value of the object key. + """ + previous_attributes: Optional[Dict[str, "Any"]] + """ + Object containing the names of the updated attributes and their values prior to the event (only included in events of type `*.updated`). If an array attribute has any updated elements, this object contains the entire array. In Stripe API versions 2017-04-06 or earlier, an updated array attribute in this object includes only the updated array elements. + """ + + class Request(StripeObject): + id: Optional[str] + """ + ID of the API request that caused the event. If null, the event was automatic (e.g., Stripe's automatic subscription handling). Request logs are available in the [dashboard](https://dashboard.stripe.com/logs), but currently not in the API. + """ + idempotency_key: Optional[str] + """ + The idempotency key transmitted during the request, if any. *Note: This property is populated only for events on or after May 23, 2017*. + """ + + account: Optional[str] + """ + The connected account that originates the event. + """ + api_version: Optional[str] + """ + The Stripe API version used to render `data` when the event was created. The contents of `data` never change, so this value remains static regardless of the API version currently in use. This property is populated only for events created on or after October 31, 2014. + """ + context: Optional[str] + """ + Authentication context needed to fetch the event or related object. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + data: Data + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["event"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + pending_webhooks: int + """ + Number of webhooks that haven't been successfully delivered (for example, to return a 20x response) to the URLs you specify. + """ + request: Optional[Request] + """ + Information on the API request that triggers the event. + """ + type: Literal[ + "account.application.authorized", + "account.application.deauthorized", + "account.external_account.created", + "account.external_account.deleted", + "account.external_account.updated", + "account.updated", + "application_fee.created", + "application_fee.refund.updated", + "application_fee.refunded", + "balance.available", + "balance_settings.updated", + "billing.alert.triggered", + "billing_portal.configuration.created", + "billing_portal.configuration.updated", + "billing_portal.session.created", + "capability.updated", + "cash_balance.funds_available", + "charge.captured", + "charge.dispute.closed", + "charge.dispute.created", + "charge.dispute.funds_reinstated", + "charge.dispute.funds_withdrawn", + "charge.dispute.updated", + "charge.expired", + "charge.failed", + "charge.pending", + "charge.refund.updated", + "charge.refunded", + "charge.succeeded", + "charge.updated", + "checkout.session.async_payment_failed", + "checkout.session.async_payment_succeeded", + "checkout.session.completed", + "checkout.session.expired", + "climate.order.canceled", + "climate.order.created", + "climate.order.delayed", + "climate.order.delivered", + "climate.order.product_substituted", + "climate.product.created", + "climate.product.pricing_updated", + "coupon.created", + "coupon.deleted", + "coupon.updated", + "credit_note.created", + "credit_note.updated", + "credit_note.voided", + "customer.created", + "customer.deleted", + "customer.discount.created", + "customer.discount.deleted", + "customer.discount.updated", + "customer.source.created", + "customer.source.deleted", + "customer.source.expiring", + "customer.source.updated", + "customer.subscription.created", + "customer.subscription.deleted", + "customer.subscription.paused", + "customer.subscription.pending_update_applied", + "customer.subscription.pending_update_expired", + "customer.subscription.resumed", + "customer.subscription.trial_will_end", + "customer.subscription.updated", + "customer.tax_id.created", + "customer.tax_id.deleted", + "customer.tax_id.updated", + "customer.updated", + "customer_cash_balance_transaction.created", + "entitlements.active_entitlement_summary.updated", + "file.created", + "financial_connections.account.created", + "financial_connections.account.deactivated", + "financial_connections.account.disconnected", + "financial_connections.account.reactivated", + "financial_connections.account.refreshed_balance", + "financial_connections.account.refreshed_ownership", + "financial_connections.account.refreshed_transactions", + "identity.verification_session.canceled", + "identity.verification_session.created", + "identity.verification_session.processing", + "identity.verification_session.redacted", + "identity.verification_session.requires_input", + "identity.verification_session.verified", + "invoice.created", + "invoice.deleted", + "invoice.finalization_failed", + "invoice.finalized", + "invoice.marked_uncollectible", + "invoice.overdue", + "invoice.overpaid", + "invoice.paid", + "invoice.payment_action_required", + "invoice.payment_attempt_required", + "invoice.payment_failed", + "invoice.payment_succeeded", + "invoice.sent", + "invoice.upcoming", + "invoice.updated", + "invoice.voided", + "invoice.will_be_due", + "invoice_payment.paid", + "invoiceitem.created", + "invoiceitem.deleted", + "issuing_authorization.created", + "issuing_authorization.request", + "issuing_authorization.updated", + "issuing_card.created", + "issuing_card.updated", + "issuing_cardholder.created", + "issuing_cardholder.updated", + "issuing_dispute.closed", + "issuing_dispute.created", + "issuing_dispute.funds_reinstated", + "issuing_dispute.funds_rescinded", + "issuing_dispute.submitted", + "issuing_dispute.updated", + "issuing_personalization_design.activated", + "issuing_personalization_design.deactivated", + "issuing_personalization_design.rejected", + "issuing_personalization_design.updated", + "issuing_token.created", + "issuing_token.updated", + "issuing_transaction.created", + "issuing_transaction.purchase_details_receipt_updated", + "issuing_transaction.updated", + "mandate.updated", + "payment_intent.amount_capturable_updated", + "payment_intent.canceled", + "payment_intent.created", + "payment_intent.partially_funded", + "payment_intent.payment_failed", + "payment_intent.processing", + "payment_intent.requires_action", + "payment_intent.succeeded", + "payment_link.created", + "payment_link.updated", + "payment_method.attached", + "payment_method.automatically_updated", + "payment_method.detached", + "payment_method.updated", + "payout.canceled", + "payout.created", + "payout.failed", + "payout.paid", + "payout.reconciliation_completed", + "payout.updated", + "person.created", + "person.deleted", + "person.updated", + "plan.created", + "plan.deleted", + "plan.updated", + "price.created", + "price.deleted", + "price.updated", + "product.created", + "product.deleted", + "product.updated", + "promotion_code.created", + "promotion_code.updated", + "quote.accepted", + "quote.canceled", + "quote.created", + "quote.finalized", + "radar.early_fraud_warning.created", + "radar.early_fraud_warning.updated", + "refund.created", + "refund.failed", + "refund.updated", + "reporting.report_run.failed", + "reporting.report_run.succeeded", + "reporting.report_type.updated", + "review.closed", + "review.opened", + "setup_intent.canceled", + "setup_intent.created", + "setup_intent.requires_action", + "setup_intent.setup_failed", + "setup_intent.succeeded", + "sigma.scheduled_query_run.created", + "source.canceled", + "source.chargeable", + "source.failed", + "source.mandate_notification", + "source.refund_attributes_required", + "source.transaction.created", + "source.transaction.updated", + "subscription_schedule.aborted", + "subscription_schedule.canceled", + "subscription_schedule.completed", + "subscription_schedule.created", + "subscription_schedule.expiring", + "subscription_schedule.released", + "subscription_schedule.updated", + "tax.settings.updated", + "tax_rate.created", + "tax_rate.updated", + "terminal.reader.action_failed", + "terminal.reader.action_succeeded", + "terminal.reader.action_updated", + "test_helpers.test_clock.advancing", + "test_helpers.test_clock.created", + "test_helpers.test_clock.deleted", + "test_helpers.test_clock.internal_failure", + "test_helpers.test_clock.ready", + "topup.canceled", + "topup.created", + "topup.failed", + "topup.reversed", + "topup.succeeded", + "transfer.created", + "transfer.reversed", + "transfer.updated", + "treasury.credit_reversal.created", + "treasury.credit_reversal.posted", + "treasury.debit_reversal.completed", + "treasury.debit_reversal.created", + "treasury.debit_reversal.initial_credit_granted", + "treasury.financial_account.closed", + "treasury.financial_account.created", + "treasury.financial_account.features_status_updated", + "treasury.inbound_transfer.canceled", + "treasury.inbound_transfer.created", + "treasury.inbound_transfer.failed", + "treasury.inbound_transfer.succeeded", + "treasury.outbound_payment.canceled", + "treasury.outbound_payment.created", + "treasury.outbound_payment.expected_arrival_date_updated", + "treasury.outbound_payment.failed", + "treasury.outbound_payment.posted", + "treasury.outbound_payment.returned", + "treasury.outbound_payment.tracking_details_updated", + "treasury.outbound_transfer.canceled", + "treasury.outbound_transfer.created", + "treasury.outbound_transfer.expected_arrival_date_updated", + "treasury.outbound_transfer.failed", + "treasury.outbound_transfer.posted", + "treasury.outbound_transfer.returned", + "treasury.outbound_transfer.tracking_details_updated", + "treasury.received_credit.created", + "treasury.received_credit.failed", + "treasury.received_credit.succeeded", + "treasury.received_debit.created", + "billing.credit_balance_transaction.created", + "billing.credit_grant.created", + "billing.credit_grant.updated", + "billing.meter.created", + "billing.meter.deactivated", + "billing.meter.reactivated", + "billing.meter.updated", + ] + """ + Description of the event (for example, `invoice.created` or `charge.refunded`). + """ + + @classmethod + def list(cls, **params: Unpack["EventListParams"]) -> ListObject["Event"]: + """ + List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in [event object](https://docs.stripe.com/api/events/object) api_version attribute (not according to your current Stripe API version or Stripe-Version header). + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["EventListParams"] + ) -> ListObject["Event"]: + """ + List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in [event object](https://docs.stripe.com/api/events/object) api_version attribute (not according to your current Stripe API version or Stripe-Version header). + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["EventRetrieveParams"] + ) -> "Event": + """ + Retrieves the details of an event if it was created in the last 30 days. Supply the unique identifier of the event, which you might have received in a webhook. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["EventRetrieveParams"] + ) -> "Event": + """ + Retrieves the details of an event if it was created in the last 30 days. Supply the unique identifier of the event, which you might have received in a webhook. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"data": Data, "request": Request} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_event_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_event_service.py new file mode 100644 index 00000000..f11a9e1e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_event_service.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._event import Event + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._event_list_params import EventListParams + from stripe.params._event_retrieve_params import EventRetrieveParams + + +class EventService(StripeService): + def list( + self, + params: Optional["EventListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Event]": + """ + List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in [event object](https://docs.stripe.com/api/events/object) api_version attribute (not according to your current Stripe API version or Stripe-Version header). + """ + return cast( + "ListObject[Event]", + self._request( + "get", + "/v1/events", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["EventListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Event]": + """ + List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in [event object](https://docs.stripe.com/api/events/object) api_version attribute (not according to your current Stripe API version or Stripe-Version header). + """ + return cast( + "ListObject[Event]", + await self._request_async( + "get", + "/v1/events", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["EventRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Event": + """ + Retrieves the details of an event if it was created in the last 30 days. Supply the unique identifier of the event, which you might have received in a webhook. + """ + return cast( + "Event", + self._request( + "get", + "/v1/events/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["EventRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Event": + """ + Retrieves the details of an event if it was created in the last 30 days. Supply the unique identifier of the event, which you might have received in a webhook. + """ + return cast( + "Event", + await self._request_async( + "get", + "/v1/events/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_exchange_rate.py b/Backend/venv/lib/python3.12/site-packages/stripe/_exchange_rate.py new file mode 100644 index 00000000..4e7bdfff --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_exchange_rate.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._util import deprecated +from typing import ClassVar, Dict +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._exchange_rate_list_params import ExchangeRateListParams + from stripe.params._exchange_rate_retrieve_params import ( + ExchangeRateRetrieveParams, + ) + + +class ExchangeRate(ListableAPIResource["ExchangeRate"]): + """ + [Deprecated] The `ExchangeRate` APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + `ExchangeRate` objects allow you to determine the rates that Stripe is currently + using to convert from one currency to another. Since this number is variable + throughout the day, there are various reasons why you might want to know the current + rate (for example, to dynamically price an item for a user with a default + payment in a foreign currency). + + Please refer to our [Exchange Rates API](https://stripe.com/docs/fx-rates) guide for more details. + + *[Note: this integration path is supported but no longer recommended]* Additionally, + you can guarantee that a charge is made with an exchange rate that you expect is + current. To do so, you must pass in the exchange_rate to charges endpoints. If the + value is no longer up to date, the charge won't go through. Please refer to our + [Using with charges](https://stripe.com/docs/exchange-rates) guide for more details. + + ----- + +   + + *This Exchange Rates API is a Beta Service and is subject to Stripe's terms of service. You may use the API solely for the purpose of transacting on Stripe. For example, the API may be queried in order to:* + + - *localize prices for processing payments on Stripe* + - *reconcile Stripe transactions* + - *determine how much money to send to a connected account* + - *determine app fees to charge a connected account* + + *Using this Exchange Rates API beta for any purpose other than to transact on Stripe is strictly prohibited and constitutes a violation of Stripe's terms of service.* + """ + + OBJECT_NAME: ClassVar[Literal["exchange_rate"]] = "exchange_rate" + id: str + """ + Unique identifier for the object. Represented as the three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) in lowercase. + """ + object: Literal["exchange_rate"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + rates: Dict[str, float] + """ + Hash where the keys are supported currencies and the values are the exchange rate at which the base id currency converts to the key currency. + """ + + @classmethod + @deprecated( + "This method is deprecated, please refer to the description for details.", + ) + def list( + cls, **params: Unpack["ExchangeRateListParams"] + ) -> ListObject["ExchangeRate"]: + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + @deprecated( + "This method is deprecated, please refer to the description for details.", + ) + async def list_async( + cls, **params: Unpack["ExchangeRateListParams"] + ) -> ListObject["ExchangeRate"]: + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + @deprecated( + "This method is deprecated, please refer to the description for details.", + ) + def retrieve( + cls, id: str, **params: Unpack["ExchangeRateRetrieveParams"] + ) -> "ExchangeRate": + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Retrieves the exchange rates from the given currency to every supported currency. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + @deprecated( + "This method is deprecated, please refer to the description for details.", + ) + async def retrieve_async( + cls, id: str, **params: Unpack["ExchangeRateRetrieveParams"] + ) -> "ExchangeRate": + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Retrieves the exchange rates from the given currency to every supported currency. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_exchange_rate_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_exchange_rate_service.py new file mode 100644 index 00000000..16675be0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_exchange_rate_service.py @@ -0,0 +1,107 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._exchange_rate import ExchangeRate + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._exchange_rate_list_params import ExchangeRateListParams + from stripe.params._exchange_rate_retrieve_params import ( + ExchangeRateRetrieveParams, + ) + + +class ExchangeRateService(StripeService): + def list( + self, + params: Optional["ExchangeRateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ExchangeRate]": + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports. + """ + return cast( + "ListObject[ExchangeRate]", + self._request( + "get", + "/v1/exchange_rates", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ExchangeRateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ExchangeRate]": + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports. + """ + return cast( + "ListObject[ExchangeRate]", + await self._request_async( + "get", + "/v1/exchange_rates", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + rate_id: str, + params: Optional["ExchangeRateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ExchangeRate": + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Retrieves the exchange rates from the given currency to every supported currency. + """ + return cast( + "ExchangeRate", + self._request( + "get", + "/v1/exchange_rates/{rate_id}".format( + rate_id=sanitize_id(rate_id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + rate_id: str, + params: Optional["ExchangeRateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ExchangeRate": + """ + [Deprecated] The ExchangeRate APIs are deprecated. Please use the [FX Quotes API](https://docs.stripe.com/payments/currencies/localize-prices/fx-quotes-api) instead. + + Retrieves the exchange rates from the given currency to every supported currency. + """ + return cast( + "ExchangeRate", + await self._request_async( + "get", + "/v1/exchange_rates/{rate_id}".format( + rate_id=sanitize_id(rate_id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_expandable_field.py b/Backend/venv/lib/python3.12/site-packages/stripe/_expandable_field.py new file mode 100644 index 00000000..6ef126fe --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_expandable_field.py @@ -0,0 +1,4 @@ +from typing import Union, TypeVar + +T = TypeVar("T") +ExpandableField = Union[str, T] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_file.py b/Backend/venv/lib/python3.12/site-packages/stripe/_file.py new file mode 100644 index 00000000..78a81763 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_file.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file_link import FileLink + from stripe.params._file_create_params import FileCreateParams + from stripe.params._file_list_params import FileListParams + from stripe.params._file_retrieve_params import FileRetrieveParams + + +class File(CreateableAPIResource["File"], ListableAPIResource["File"]): + """ + This object represents files hosted on Stripe's servers. You can upload + files with the [create file](https://stripe.com/docs/api#create_file) request + (for example, when uploading dispute evidence). Stripe also + creates files independently (for example, the results of a [Sigma scheduled + query](https://docs.stripe.com/api#scheduled_queries)). + + Related guide: [File upload guide](https://stripe.com/docs/file-upload) + """ + + OBJECT_NAME: ClassVar[Literal["file"]] = "file" + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + expires_at: Optional[int] + """ + The file expires and isn't available at this time in epoch seconds. + """ + filename: Optional[str] + """ + The suitable name for saving the file to a filesystem. + """ + id: str + """ + Unique identifier for the object. + """ + links: Optional[ListObject["FileLink"]] + """ + A list of [file links](https://stripe.com/docs/api#file_links) that point at this file. + """ + object: Literal["file"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + purpose: Literal[ + "account_requirement", + "additional_verification", + "business_icon", + "business_logo", + "customer_signature", + "dispute_evidence", + "document_provider_identity_document", + "finance_report_run", + "financial_account_statement", + "identity_document", + "identity_document_downloadable", + "issuing_regulatory_reporting", + "pci_document", + "platform_terms_of_service", + "selfie", + "sigma_scheduled_query", + "tax_document_user_upload", + "terminal_android_apk", + "terminal_reader_splashscreen", + ] + """ + The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file. + """ + size: int + """ + The size of the file object in bytes. + """ + title: Optional[str] + """ + A suitable title for the document. + """ + type: Optional[str] + """ + The returned file type (for example, `csv`, `pdf`, `jpg`, or `png`). + """ + url: Optional[str] + """ + Use your live secret API key to download the file from this URL. + """ + + @classmethod + def create(cls, **params: Unpack["FileCreateParams"]) -> "File": + """ + To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file. + + All of Stripe's officially supported Client libraries support sending multipart/form-data. + """ + params["content_type"] = "multipart/form-data" + + return cast( + "File", + cls._static_request( + "post", + cls.class_url(), + params=params, + base_address="files", + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["FileCreateParams"] + ) -> "File": + """ + To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file. + + All of Stripe's officially supported Client libraries support sending multipart/form-data. + """ + params["content_type"] = "multipart/form-data" + + return cast( + "File", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + base_address="files", + ), + ) + + @classmethod + def list(cls, **params: Unpack["FileListParams"]) -> ListObject["File"]: + """ + Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["FileListParams"] + ) -> ListObject["File"]: + """ + Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["FileRetrieveParams"] + ) -> "File": + """ + Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to [access file contents](https://docs.stripe.com/docs/file-upload#download-file-contents). + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["FileRetrieveParams"] + ) -> "File": + """ + Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to [access file contents](https://docs.stripe.com/docs/file-upload#download-file-contents). + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + # This resource can have two different object names. In latter API + # versions, only `file` is used, but since stripe-python may be used with + # any API version, we need to support deserializing the older + # `file_upload` object into the same class. + OBJECT_NAME_ALT = "file_upload" + + @classmethod + def class_url(cls): + return "/v1/files" + + +# For backwards compatibility, the `File` class is aliased to `FileUpload`. +FileUpload = File diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_file_link.py b/Backend/venv/lib/python3.12/site-packages/stripe/_file_link.py new file mode 100644 index 00000000..d72e1489 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_file_link.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + from stripe.params._file_link_create_params import FileLinkCreateParams + from stripe.params._file_link_list_params import FileLinkListParams + from stripe.params._file_link_modify_params import FileLinkModifyParams + from stripe.params._file_link_retrieve_params import FileLinkRetrieveParams + + +class FileLink( + CreateableAPIResource["FileLink"], + ListableAPIResource["FileLink"], + UpdateableAPIResource["FileLink"], +): + """ + To share the contents of a `File` object with non-Stripe users, you can + create a `FileLink`. `FileLink`s contain a URL that you can use to + retrieve the contents of the file without authentication. + """ + + OBJECT_NAME: ClassVar[Literal["file_link"]] = "file_link" + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + expired: bool + """ + Returns if the link is already expired. + """ + expires_at: Optional[int] + """ + Time that the link expires. + """ + file: ExpandableField["File"] + """ + The file object this link points to. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["file_link"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + url: Optional[str] + """ + The publicly accessible URL to download the file. + """ + + @classmethod + def create(cls, **params: Unpack["FileLinkCreateParams"]) -> "FileLink": + """ + Creates a new file link object. + """ + return cast( + "FileLink", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["FileLinkCreateParams"] + ) -> "FileLink": + """ + Creates a new file link object. + """ + return cast( + "FileLink", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["FileLinkListParams"] + ) -> ListObject["FileLink"]: + """ + Returns a list of file links. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["FileLinkListParams"] + ) -> ListObject["FileLink"]: + """ + Returns a list of file links. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["FileLinkModifyParams"] + ) -> "FileLink": + """ + Updates an existing file link object. Expired links can no longer be updated. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "FileLink", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["FileLinkModifyParams"] + ) -> "FileLink": + """ + Updates an existing file link object. Expired links can no longer be updated. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "FileLink", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["FileLinkRetrieveParams"] + ) -> "FileLink": + """ + Retrieves the file link with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["FileLinkRetrieveParams"] + ) -> "FileLink": + """ + Retrieves the file link with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_file_link_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_file_link_service.py new file mode 100644 index 00000000..8a965380 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_file_link_service.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file_link import FileLink + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._file_link_create_params import FileLinkCreateParams + from stripe.params._file_link_list_params import FileLinkListParams + from stripe.params._file_link_retrieve_params import FileLinkRetrieveParams + from stripe.params._file_link_update_params import FileLinkUpdateParams + + +class FileLinkService(StripeService): + def list( + self, + params: Optional["FileLinkListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[FileLink]": + """ + Returns a list of file links. + """ + return cast( + "ListObject[FileLink]", + self._request( + "get", + "/v1/file_links", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["FileLinkListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[FileLink]": + """ + Returns a list of file links. + """ + return cast( + "ListObject[FileLink]", + await self._request_async( + "get", + "/v1/file_links", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "FileLinkCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "FileLink": + """ + Creates a new file link object. + """ + return cast( + "FileLink", + self._request( + "post", + "/v1/file_links", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "FileLinkCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "FileLink": + """ + Creates a new file link object. + """ + return cast( + "FileLink", + await self._request_async( + "post", + "/v1/file_links", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + link: str, + params: Optional["FileLinkRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FileLink": + """ + Retrieves the file link with the given ID. + """ + return cast( + "FileLink", + self._request( + "get", + "/v1/file_links/{link}".format(link=sanitize_id(link)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + link: str, + params: Optional["FileLinkRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FileLink": + """ + Retrieves the file link with the given ID. + """ + return cast( + "FileLink", + await self._request_async( + "get", + "/v1/file_links/{link}".format(link=sanitize_id(link)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + link: str, + params: Optional["FileLinkUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FileLink": + """ + Updates an existing file link object. Expired links can no longer be updated. + """ + return cast( + "FileLink", + self._request( + "post", + "/v1/file_links/{link}".format(link=sanitize_id(link)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + link: str, + params: Optional["FileLinkUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FileLink": + """ + Updates an existing file link object. Expired links can no longer be updated. + """ + return cast( + "FileLink", + await self._request_async( + "post", + "/v1/file_links/{link}".format(link=sanitize_id(link)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_file_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_file_service.py new file mode 100644 index 00000000..7822f15e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_file_service.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._file_create_params import FileCreateParams + from stripe.params._file_list_params import FileListParams + from stripe.params._file_retrieve_params import FileRetrieveParams + + +class FileService(StripeService): + def list( + self, + params: Optional["FileListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[File]": + """ + Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top. + """ + return cast( + "ListObject[File]", + self._request( + "get", + "/v1/files", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["FileListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[File]": + """ + Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top. + """ + return cast( + "ListObject[File]", + await self._request_async( + "get", + "/v1/files", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "FileCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "File": + """ + To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file. + + All of Stripe's officially supported Client libraries support sending multipart/form-data. + """ + if options is None: + options = {} + options["content_type"] = "multipart/form-data" + return cast( + "File", + self._request( + "post", + "/v1/files", + base_address="files", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "FileCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "File": + """ + To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file. + + All of Stripe's officially supported Client libraries support sending multipart/form-data. + """ + if options is None: + options = {} + options["content_type"] = "multipart/form-data" + return cast( + "File", + await self._request_async( + "post", + "/v1/files", + base_address="files", + params=params, + options=options, + ), + ) + + def retrieve( + self, + file: str, + params: Optional["FileRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "File": + """ + Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to [access file contents](https://docs.stripe.com/docs/file-upload#download-file-contents). + """ + return cast( + "File", + self._request( + "get", + "/v1/files/{file}".format(file=sanitize_id(file)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + file: str, + params: Optional["FileRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "File": + """ + Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to [access file contents](https://docs.stripe.com/docs/file-upload#download-file-contents). + """ + return cast( + "File", + await self._request_async( + "get", + "/v1/files/{file}".format(file=sanitize_id(file)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_financial_connections_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_financial_connections_service.py new file mode 100644 index 00000000..4be4c3be --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_financial_connections_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.financial_connections._account_service import AccountService + from stripe.financial_connections._session_service import SessionService + from stripe.financial_connections._transaction_service import ( + TransactionService, + ) + +_subservices = { + "accounts": [ + "stripe.financial_connections._account_service", + "AccountService", + ], + "sessions": [ + "stripe.financial_connections._session_service", + "SessionService", + ], + "transactions": [ + "stripe.financial_connections._transaction_service", + "TransactionService", + ], +} + + +class FinancialConnectionsService(StripeService): + accounts: "AccountService" + sessions: "SessionService" + transactions: "TransactionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_forwarding_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_forwarding_service.py new file mode 100644 index 00000000..fa6a34ae --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_forwarding_service.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.forwarding._request_service import RequestService + +_subservices = { + "requests": ["stripe.forwarding._request_service", "RequestService"], +} + + +class ForwardingService(StripeService): + requests: "RequestService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_funding_instructions.py b/Backend/venv/lib/python3.12/site-packages/stripe/_funding_instructions.py new file mode 100644 index 00000000..2ca103b7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_funding_instructions.py @@ -0,0 +1,582 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal + + +class FundingInstructions(StripeObject): + """ + Each customer has a [`balance`](https://stripe.com/docs/api/customers/object#customer_object-balance) that is + automatically applied to future invoices and payments using the `customer_balance` payment method. + Customers can fund this balance by initiating a bank transfer to any account in the + `financial_addresses` field. + Related guide: [Customer balance funding instructions](https://stripe.com/docs/payments/customer-balance/funding-instructions) + """ + + OBJECT_NAME: ClassVar[Literal["funding_instructions"]] = ( + "funding_instructions" + ) + + class BankTransfer(StripeObject): + class FinancialAddress(StripeObject): + class Aba(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The account holder name + """ + account_number: str + """ + The ABA account number + """ + account_type: str + """ + The account type + """ + bank_address: BankAddress + bank_name: str + """ + The bank name + """ + routing_number: str + """ + The ABA routing number + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Iban(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The name of the person or business that owns the bank account + """ + bank_address: BankAddress + bic: str + """ + The BIC/SWIFT code of the account. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + iban: str + """ + The IBAN of the account. + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class SortCode(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The name of the person or business that owns the bank account + """ + account_number: str + """ + The account number + """ + bank_address: BankAddress + sort_code: str + """ + The six-digit sort code + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Spei(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The account holder name + """ + bank_address: BankAddress + bank_code: str + """ + The three-digit bank code + """ + bank_name: str + """ + The short banking institution name + """ + clabe: str + """ + The CLABE number + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Swift(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The account holder name + """ + account_number: str + """ + The account number + """ + account_type: str + """ + The account type + """ + bank_address: BankAddress + bank_name: str + """ + The bank name + """ + swift_code: str + """ + The SWIFT code + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Zengin(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: Optional[str] + """ + The account holder name + """ + account_number: Optional[str] + """ + The account number + """ + account_type: Optional[str] + """ + The bank account type. In Japan, this can only be `futsu` or `toza`. + """ + bank_address: BankAddress + bank_code: Optional[str] + """ + The bank code of the account + """ + bank_name: Optional[str] + """ + The bank name of the account + """ + branch_code: Optional[str] + """ + The branch code of the account + """ + branch_name: Optional[str] + """ + The branch name of the account + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + aba: Optional[Aba] + """ + ABA Records contain U.S. bank account details per the ABA format. + """ + iban: Optional[Iban] + """ + Iban Records contain E.U. bank account details per the SEPA format. + """ + sort_code: Optional[SortCode] + """ + Sort Code Records contain U.K. bank account details per the sort code format. + """ + spei: Optional[Spei] + """ + SPEI Records contain Mexico bank account details per the SPEI format. + """ + supported_networks: Optional[ + List[ + Literal[ + "ach", + "bacs", + "domestic_wire_us", + "fps", + "sepa", + "spei", + "swift", + "zengin", + ] + ] + ] + """ + The payment networks supported by this FinancialAddress + """ + swift: Optional[Swift] + """ + SWIFT Records contain U.S. bank account details per the SWIFT format. + """ + type: Literal[ + "aba", "iban", "sort_code", "spei", "swift", "zengin" + ] + """ + The type of financial address + """ + zengin: Optional[Zengin] + """ + Zengin Records contain Japan bank account details per the Zengin format. + """ + _inner_class_types = { + "aba": Aba, + "iban": Iban, + "sort_code": SortCode, + "spei": Spei, + "swift": Swift, + "zengin": Zengin, + } + + country: str + """ + The country of the bank account to fund + """ + financial_addresses: List[FinancialAddress] + """ + A list of financial addresses that can be used to fund a particular balance + """ + type: Literal["eu_bank_transfer", "jp_bank_transfer"] + """ + The bank_transfer type + """ + _inner_class_types = {"financial_addresses": FinancialAddress} + + bank_transfer: BankTransfer + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + funding_type: Literal["bank_transfer"] + """ + The `funding_type` of the returned instructions + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["funding_instructions"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + _inner_class_types = {"bank_transfer": BankTransfer} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_http_client.py b/Backend/venv/lib/python3.12/site-packages/stripe/_http_client.py new file mode 100644 index 00000000..62fae3eb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_http_client.py @@ -0,0 +1,1546 @@ +from io import BytesIO +import textwrap +import email +import time +import random +import threading +import json +import asyncio +import ssl +from http.client import HTTPResponse + +# Used for global variables +import stripe # noqa: IMP101 +from stripe import _util +from stripe._request_metrics import RequestMetrics +from stripe._error import APIConnectionError + +from typing import ( + Any, + Dict, + Iterable, + List, + Mapping, + MutableMapping, + Optional, + Tuple, + ClassVar, + Union, + cast, + overload, + AsyncIterable, +) +from typing_extensions import ( + TYPE_CHECKING, + Literal, + NoReturn, + TypedDict, + Awaitable, + Never, +) + +if TYPE_CHECKING: + from urllib.parse import ParseResult + + try: + from requests import Session as RequestsSession + except ImportError: + pass + + try: + from httpx import Timeout as HTTPXTimeout + from httpx import Client as HTTPXClientType + except ImportError: + pass + + try: + from aiohttp import ClientTimeout as AIOHTTPTimeout + from aiohttp import StreamReader as AIOHTTPStreamReader + except ImportError: + pass + + +def _now_ms(): + return int(round(time.time() * 1000)) + + +def new_default_http_client(*args: Any, **kwargs: Any) -> "HTTPClient": + """ + This method creates and returns a new HTTPClient based on what libraries are available. It uses the following precedence rules: + + 1. Urlfetch (this is provided by Google App Engine, so if it's present you probably want it) + 2. Requests (popular library, the top priority for all environments outside Google App Engine, but not always present) + 3. Pycurl (another library, not always present, not as preferred as Requests but at least it verifies SSL certs) + 4. urllib with a warning (basically always present, a reasonable final default) + + For performance, it only imports what it's actually going to use. But, it re-calculates every time its called, so probably save its result instead of calling it multiple times. + """ + try: + from google.appengine.api import urlfetch # type: ignore # noqa: F401 + except ImportError: + pass + else: + return UrlFetchClient(*args, **kwargs) + + try: + import requests # noqa: F401 + except ImportError: + pass + else: + return RequestsClient(*args, **kwargs) + + try: + import pycurl # type: ignore # noqa: F401 + except ImportError: + pass + else: + return PycurlClient(*args, **kwargs) + + return UrllibClient(*args, **kwargs) + + +def new_http_client_async_fallback(*args: Any, **kwargs: Any) -> "HTTPClient": + """ + Similar to `new_default_http_client` above, this returns a client that can handle async HTTP requests, if available. + """ + + try: + import httpx # noqa: F401 + import anyio # noqa: F401 + except ImportError: + pass + else: + return HTTPXClient(*args, **kwargs) + + try: + import aiohttp # noqa: F401 + except ImportError: + pass + else: + return AIOHTTPClient(*args, **kwargs) + + return NoImportFoundAsyncClient(*args, **kwargs) + + +class HTTPClient(object): + """ + Base HTTP client that custom clients can inherit from. + """ + + name: ClassVar[str] + + class _Proxy(TypedDict): + http: Optional[str] + https: Optional[str] + + MAX_DELAY = 5 + INITIAL_DELAY = 0.5 + MAX_RETRY_AFTER = 60 + _proxy: Optional[_Proxy] + _verify_ssl_certs: bool + + def __init__( + self, + verify_ssl_certs: bool = True, + proxy: Optional[Union[str, _Proxy]] = None, + async_fallback_client: Optional["HTTPClient"] = None, + _lib=None, # used for internal unit testing + ): + self._verify_ssl_certs = verify_ssl_certs + if proxy: + if isinstance(proxy, str): + proxy = {"http": proxy, "https": proxy} + if not isinstance(proxy, dict): # pyright: ignore[reportUnnecessaryIsInstance] + raise ValueError( + "Proxy(ies) must be specified as either a string " + "URL or a dict() with string URL under the" + " " + "https" + " and/or " + "http" + " keys." + ) + self._proxy = proxy.copy() if proxy else None + self._async_fallback_client = async_fallback_client + + self._thread_local = threading.local() + + def _should_retry( + self, + response: Optional[Tuple[Any, int, Optional[Mapping[str, str]]]], + api_connection_error: Optional[APIConnectionError], + num_retries: int, + max_network_retries: Optional[int], + ): + max_network_retries = ( + max_network_retries if max_network_retries is not None else 0 + ) + if num_retries >= max_network_retries: + return False + + if response is None: + # We generally want to retry on timeout and connection + # exceptions, but defer this decision to underlying subclass + # implementations. They should evaluate the driver-specific + # errors worthy of retries, and set flag on the error returned. + assert api_connection_error is not None + return api_connection_error.should_retry + + _, status_code, rheaders = response + + # The API may ask us not to retry (eg; if doing so would be a no-op) + # or advise us to retry (eg; in cases of lock timeouts); we defer to that. + # + # Note that we expect the headers object to be a CaseInsensitiveDict, as is the case with the requests library. + if rheaders is not None and "stripe-should-retry" in rheaders: + if rheaders["stripe-should-retry"] == "false": + return False + if rheaders["stripe-should-retry"] == "true": + return True + + # Retry on conflict errors. + if status_code == 409: + return True + + # Retry on 500, 503, and other internal errors. + # + # Note that we expect the stripe-should-retry header to be false + # in most cases when a 500 is returned, since our idempotency framework + # would typically replay it anyway. + if status_code >= 500: + return True + + return False + + def _retry_after_header( + self, response: Optional[Tuple[Any, Any, Mapping[str, str]]] = None + ): + if response is None: + return None + _, _, rheaders = response + + try: + return int(rheaders["retry-after"]) + except (KeyError, ValueError): + return None + + def _sleep_time_seconds( + self, + num_retries: int, + response: Optional[Tuple[Any, Any, Mapping[str, str]]] = None, + ) -> float: + """ + Apply exponential backoff with initial_network_retry_delay on the number of num_retries so far as inputs. + Do not allow the number to exceed `max_network_retry_delay`. + """ + sleep_seconds = min( + HTTPClient.INITIAL_DELAY * (2 ** (num_retries - 1)), + HTTPClient.MAX_DELAY, + ) + + sleep_seconds = self._add_jitter_time(sleep_seconds) + + # But never sleep less than the base sleep seconds. + sleep_seconds = max(HTTPClient.INITIAL_DELAY, sleep_seconds) + + # And never sleep less than the time the API asks us to wait, assuming it's a reasonable ask. + retry_after = self._retry_after_header(response) or 0 + if retry_after <= HTTPClient.MAX_RETRY_AFTER: + sleep_seconds = max(retry_after, sleep_seconds) + + return sleep_seconds + + def _add_jitter_time(self, sleep_seconds: float) -> float: + """ + Randomize the value in `[(sleep_seconds/ 2) to (sleep_seconds)]`. + Also separated method here to isolate randomness for tests + """ + sleep_seconds *= 0.5 * (1 + random.uniform(0, 1)) + return sleep_seconds + + def _add_telemetry_header( + self, headers: Mapping[str, str] + ) -> Mapping[str, str]: + last_request_metrics = getattr( + self._thread_local, "last_request_metrics", None + ) + if stripe.enable_telemetry and last_request_metrics: + telemetry = { + "last_request_metrics": last_request_metrics.payload() + } + ret = dict(headers) + ret["X-Stripe-Client-Telemetry"] = json.dumps(telemetry) + return ret + return headers + + def _record_request_metrics(self, response, request_start, usage): + _, _, rheaders = response + if "Request-Id" in rheaders and stripe.enable_telemetry: + request_id = rheaders["Request-Id"] + request_duration_ms = _now_ms() - request_start + self._thread_local.last_request_metrics = RequestMetrics( + request_id, request_duration_ms, usage=usage + ) + + def request_with_retries( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data: Any = None, + max_network_retries: Optional[int] = None, + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[str, int, Mapping[str, str]]: + return self._request_with_retries_internal( + method, + url, + headers, + post_data, + is_streaming=False, + max_network_retries=max_network_retries, + _usage=_usage, + ) + + def request_stream_with_retries( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data=None, + max_network_retries=None, + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[Any, int, Mapping[str, str]]: + return self._request_with_retries_internal( + method, + url, + headers, + post_data, + is_streaming=True, + max_network_retries=max_network_retries, + _usage=_usage, + ) + + def _request_with_retries_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data: Any, + is_streaming: bool, + max_network_retries: Optional[int], + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[Any, int, Mapping[str, str]]: + headers = self._add_telemetry_header(headers) + + num_retries = 0 + + while True: + request_start = _now_ms() + + try: + if is_streaming: + response = self.request_stream( + method, url, headers, post_data + ) + else: + response = self.request(method, url, headers, post_data) + connection_error = None + except APIConnectionError as e: + connection_error = e + response = None + + if self._should_retry( + response, connection_error, num_retries, max_network_retries + ): + if connection_error: + _util.log_info( + "Encountered a retryable error %s" + % connection_error.user_message + ) + num_retries += 1 + sleep_time = self._sleep_time_seconds(num_retries, response) + _util.log_info( + ( + "Initiating retry %i for request %s %s after " + "sleeping %.2f seconds." + % (num_retries, method, url, sleep_time) + ) + ) + time.sleep(sleep_time) + else: + if response is not None: + self._record_request_metrics( + response, request_start, usage=_usage + ) + + return response + else: + assert connection_error is not None + raise connection_error + + def request( + self, + method: str, + url: str, + headers: Optional[Mapping[str, str]], + post_data: Any = None, + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[str, int, Mapping[str, str]]: + raise NotImplementedError( + "HTTPClient subclasses must implement `request`" + ) + + def request_stream( + self, + method: str, + url: str, + headers: Optional[Mapping[str, str]], + post_data: Any = None, + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[Any, int, Mapping[str, str]]: + raise NotImplementedError( + "HTTPClient subclasses must implement `request_stream`" + ) + + def close(self): + raise NotImplementedError( + "HTTPClient subclasses must implement `close`" + ) + + async def request_with_retries_async( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data=None, + max_network_retries: Optional[int] = None, + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[Any, int, Any]: + return await self._request_with_retries_internal_async( + method, + url, + headers, + post_data, + is_streaming=False, + max_network_retries=max_network_retries, + _usage=_usage, + ) + + async def request_stream_with_retries_async( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data=None, + max_network_retries=None, + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[AsyncIterable[bytes], int, Any]: + return await self._request_with_retries_internal_async( + method, + url, + headers, + post_data, + is_streaming=True, + max_network_retries=max_network_retries, + _usage=_usage, + ) + + @overload + async def _request_with_retries_internal_async( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[False], + max_network_retries: Optional[int], + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[Any, int, Mapping[str, str]]: ... + + @overload + async def _request_with_retries_internal_async( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[True], + max_network_retries: Optional[int], + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[AsyncIterable[bytes], int, Mapping[str, str]]: ... + + async def _request_with_retries_internal_async( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: bool, + max_network_retries: Optional[int], + *, + _usage: Optional[List[str]] = None, + ) -> Tuple[Any, int, Mapping[str, str]]: + headers = self._add_telemetry_header(headers) + + num_retries = 0 + + while True: + request_start = _now_ms() + + try: + if is_streaming: + response = await self.request_stream_async( + method, url, headers, post_data + ) + else: + response = await self.request_async( + method, url, headers, post_data + ) + connection_error = None + except APIConnectionError as e: + connection_error = e + response = None + + if self._should_retry( + response, connection_error, num_retries, max_network_retries + ): + if connection_error: + _util.log_info( + "Encountered a retryable error %s" + % connection_error.user_message + ) + num_retries += 1 + sleep_time = self._sleep_time_seconds(num_retries, response) + _util.log_info( + ( + "Initiating retry %i for request %s %s after " + "sleeping %.2f seconds." + % (num_retries, method, url, sleep_time) + ) + ) + await self.sleep_async(sleep_time) + else: + if response is not None: + self._record_request_metrics( + response, request_start, usage=_usage + ) + + return response + else: + assert connection_error is not None + raise connection_error + + async def request_async( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[bytes, int, Mapping[str, str]]: + if self._async_fallback_client is not None: + return await self._async_fallback_client.request_async( + method, url, headers, post_data + ) + raise NotImplementedError( + "HTTPClient subclasses must implement `request_async`" + ) + + async def request_stream_async( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[AsyncIterable[bytes], int, Mapping[str, str]]: + if self._async_fallback_client is not None: + return await self._async_fallback_client.request_stream_async( + method, url, headers, post_data + ) + raise NotImplementedError( + "HTTPClient subclasses must implement `request_stream_async`" + ) + + async def close_async(self): + if self._async_fallback_client is not None: + return await self._async_fallback_client.close_async() + raise NotImplementedError( + "HTTPClient subclasses must implement `close_async`" + ) + + def sleep_async(self, secs: float) -> Awaitable[None]: + if self._async_fallback_client is not None: + return self._async_fallback_client.sleep_async(secs) + raise NotImplementedError( + "HTTPClient subclasses must implement `sleep`" + ) + + +class RequestsClient(HTTPClient): + name = "requests" + + def __init__( + self, + timeout: Union[float, Tuple[float, float]] = 80, + session: Optional["RequestsSession"] = None, + verify_ssl_certs: bool = True, + proxy: Optional[Union[str, HTTPClient._Proxy]] = None, + async_fallback_client: Optional[HTTPClient] = None, + _lib=None, # used for internal unit testing + **kwargs, + ): + super(RequestsClient, self).__init__( + verify_ssl_certs=verify_ssl_certs, + proxy=proxy, + async_fallback_client=async_fallback_client, + ) + self._session = session + self._timeout = timeout + + if _lib is None: + import requests + + _lib = requests + + self.requests = _lib + + def request( + self, + method: str, + url: str, + headers: Optional[Mapping[str, str]], + post_data=None, + ) -> Tuple[bytes, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=False + ) + + def request_stream( + self, + method: str, + url: str, + headers: Optional[Mapping[str, str]], + post_data=None, + ) -> Tuple[Any, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=True + ) + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Optional[Mapping[str, str]], + post_data, + is_streaming: Literal[True], + ) -> Tuple[Any, int, Mapping[str, str]]: ... + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Optional[Mapping[str, str]], + post_data, + is_streaming: Literal[False], + ) -> Tuple[bytes, int, Mapping[str, str]]: ... + + def _request_internal( + self, + method: str, + url: str, + headers: Optional[Mapping[str, str]], + post_data, + is_streaming: bool, + ) -> Tuple[Union[bytes, Any], int, Mapping[str, str]]: + kwargs = {} + if self._verify_ssl_certs: + kwargs["verify"] = stripe.ca_bundle_path + else: + kwargs["verify"] = False + + if self._proxy: + kwargs["proxies"] = self._proxy + + if is_streaming: + kwargs["stream"] = True + + if getattr(self._thread_local, "session", None) is None: + self._thread_local.session = ( + self._session or self.requests.Session() + ) + + try: + try: + result = cast( + "RequestsSession", self._thread_local.session + ).request( + method, + url, + headers=headers, + data=post_data, + timeout=self._timeout, + **kwargs, + ) + except TypeError as e: + raise TypeError( + "Warning: It looks like your installed version of the " + '"requests" library is not compatible with Stripe\'s ' + "usage thereof. (HINT: The most likely cause is that " + 'your "requests" library is out of date. You can fix ' + 'that by running "pip install -U requests".) The ' + "underlying error was: %s" % (e,) + ) + + if is_streaming: + content = result.raw + else: + # This causes the content to actually be read, which could cause + # e.g. a socket timeout. TODO: The other fetch methods probably + # are susceptible to the same and should be updated. + content = result.content + + status_code = result.status_code + except Exception as e: + # Would catch just requests.exceptions.RequestException, but can + # also raise ValueError, RuntimeError, etc. + self._handle_request_error(e) + + return content, status_code, result.headers + + def _handle_request_error(self, e: Exception) -> NoReturn: + # Catch SSL error first as it belongs to ConnectionError, + # but we don't want to retry + if isinstance(e, self.requests.exceptions.SSLError): + msg = ( + "Could not verify Stripe's SSL certificate. Please make " + "sure that your network is not intercepting certificates. " + "If this problem persists, let us know at " + "support@stripe.com." + ) + err = "%s: %s" % (type(e).__name__, str(e)) + should_retry = False + # Retry only timeout and connect errors; similar to urllib3 Retry + elif isinstance( + e, + ( + self.requests.exceptions.Timeout, + self.requests.exceptions.ConnectionError, + ), + ): + msg = ( + "Unexpected error communicating with Stripe. " + "If this problem persists, let us know at " + "support@stripe.com." + ) + err = "%s: %s" % (type(e).__name__, str(e)) + should_retry = True + # Catch remaining request exceptions + elif isinstance(e, self.requests.exceptions.RequestException): + msg = ( + "Unexpected error communicating with Stripe. " + "If this problem persists, let us know at " + "support@stripe.com." + ) + err = "%s: %s" % (type(e).__name__, str(e)) + should_retry = False + else: + msg = ( + "Unexpected error communicating with Stripe. " + "It looks like there's probably a configuration " + "issue locally. If this problem persists, let us " + "know at support@stripe.com." + ) + err = "A %s was raised" % (type(e).__name__,) + if str(e): + err += " with error message %s" % (str(e),) + else: + err += " with no error message" + should_retry = False + + msg = textwrap.fill(msg) + "\n\n(Network error: %s)" % (err,) + raise APIConnectionError(msg, should_retry=should_retry) from e + + def close(self): + if getattr(self._thread_local, "session", None) is not None: + self._thread_local.session.close() + + +class UrlFetchClient(HTTPClient): + name = "urlfetch" + + def __init__( + self, + verify_ssl_certs: bool = True, + proxy: Optional[HTTPClient._Proxy] = None, + deadline: int = 55, + async_fallback_client: Optional[HTTPClient] = None, + _lib=None, # used for internal unit testing + ): + super(UrlFetchClient, self).__init__( + verify_ssl_certs=verify_ssl_certs, + proxy=proxy, + async_fallback_client=async_fallback_client, + ) + + # no proxy support in urlfetch. for a patch, see: + # https://code.google.com/p/googleappengine/issues/detail?id=544 + if proxy: + raise ValueError( + "No proxy support in urlfetch library. " + "Set stripe.default_http_client to either RequestsClient, " + "PycurlClient, or UrllibClient instance to use a proxy." + ) + + self._verify_ssl_certs = verify_ssl_certs + # GAE requests time out after 60 seconds, so make sure to default + # to 55 seconds to allow for a slow Stripe + self._deadline = deadline + + if _lib is None: + from google.appengine.api import urlfetch # pyright: ignore + + _lib = urlfetch + + self.urlfetch = _lib + + def request( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[str, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=False + ) + + def request_stream( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[BytesIO, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=True + ) + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[True], + ) -> Tuple[BytesIO, int, Any]: ... + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[False], + ) -> Tuple[str, int, Any]: ... + + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming, + ): + try: + result = self.urlfetch.fetch( + url=url, + method=method, + headers=headers, + # Google App Engine doesn't let us specify our own cert bundle. + # However, that's ok because the CA bundle they use recognizes + # api.stripe.com. + validate_certificate=self._verify_ssl_certs, + deadline=self._deadline, + payload=post_data, + ) + except self.urlfetch.Error as e: + self._handle_request_error(e, url) + + if is_streaming: + # This doesn't really stream. + content = BytesIO(str.encode(result.content)) + else: + content = result.content + + return content, result.status_code, result.headers + + def _handle_request_error(self, e: Exception, url: str) -> NoReturn: + if isinstance(e, self.urlfetch.InvalidURLError): + msg = ( + "The Stripe library attempted to fetch an " + "invalid URL (%r). This is likely due to a bug " + "in the Stripe Python bindings. Please let us know " + "at support@stripe.com." % (url,) + ) + elif isinstance(e, self.urlfetch.DownloadError): + msg = "There was a problem retrieving data from Stripe." + elif isinstance(e, self.urlfetch.ResponseTooLargeError): + msg = ( + "There was a problem receiving all of your data from " + "Stripe. This is likely due to a bug in Stripe. " + "Please let us know at support@stripe.com." + ) + else: + msg = ( + "Unexpected error communicating with Stripe. If this " + "problem persists, let us know at support@stripe.com." + ) + + msg = textwrap.fill(msg) + "\n\n(Network error: " + str(e) + ")" + raise APIConnectionError(msg) from e + + def close(self): + pass + + +class _Proxy(TypedDict): + http: Optional["ParseResult"] + https: Optional["ParseResult"] + + +class PycurlClient(HTTPClient): + class _ParsedProxy(TypedDict, total=False): + http: Optional["ParseResult"] + https: Optional["ParseResult"] + + name = "pycurl" + _parsed_proxy: Optional[_ParsedProxy] + + def __init__( + self, + verify_ssl_certs: bool = True, + proxy: Optional[HTTPClient._Proxy] = None, + async_fallback_client: Optional[HTTPClient] = None, + _lib=None, # used for internal unit testing + ): + super(PycurlClient, self).__init__( + verify_ssl_certs=verify_ssl_certs, + proxy=proxy, + async_fallback_client=async_fallback_client, + ) + + if _lib is None: + import pycurl # pyright: ignore[reportMissingModuleSource] + + _lib = pycurl + + self.pycurl = _lib + # Initialize this within the object so that we can reuse connections. + self._curl = _lib.Curl() + + self._parsed_proxy = {} + # need to urlparse the proxy, since PyCurl + # consumes the proxy url in small pieces + if self._proxy: + from urllib.parse import urlparse + + proxy_ = self._proxy + for scheme, value in proxy_.items(): + # In general, TypedDict.items() gives you (key: str, value: object) + # but we know value to be a string because all the value types on Proxy_ are strings. + self._parsed_proxy[scheme] = urlparse(cast(str, value)) + + def parse_headers(self, data): + if "\r\n" not in data: + return {} + raw_headers = data.split("\r\n", 1)[1] + headers = email.message_from_string(raw_headers) + return dict((k.lower(), v) for k, v in dict(headers).items()) + + def request( + self, method, url, headers: Mapping[str, str], post_data=None + ) -> Tuple[str, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=False + ) + + def request_stream( + self, method, url, headers: Mapping[str, str], post_data=None + ) -> Tuple[BytesIO, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=True + ) + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[True], + ) -> Tuple[BytesIO, int, Any]: ... + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[False], + ) -> Tuple[str, int, Mapping[str, str]]: ... + + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming, + ) -> Tuple[Union[str, BytesIO], int, Mapping[str, str]]: + b = BytesIO() + rheaders = BytesIO() + + # Pycurl's design is a little weird: although we set per-request + # options on this object, it's also capable of maintaining established + # connections. Here we call reset() between uses to make sure it's in a + # pristine state, but notably reset() doesn't reset connections, so we + # still get to take advantage of those by virtue of re-using the same + # object. + self._curl.reset() + + proxy = self._get_proxy(url) + if proxy: + if proxy.hostname: + self._curl.setopt(self.pycurl.PROXY, proxy.hostname) + if proxy.port: + self._curl.setopt(self.pycurl.PROXYPORT, proxy.port) + if proxy.username or proxy.password: + self._curl.setopt( + self.pycurl.PROXYUSERPWD, + "%s:%s" % (proxy.username, proxy.password), + ) + + if method == "get": + self._curl.setopt(self.pycurl.HTTPGET, 1) + elif method == "post": + self._curl.setopt(self.pycurl.POST, 1) + self._curl.setopt(self.pycurl.POSTFIELDS, post_data) + else: + self._curl.setopt(self.pycurl.CUSTOMREQUEST, method.upper()) + + # pycurl doesn't like unicode URLs + self._curl.setopt(self.pycurl.URL, url) + + self._curl.setopt(self.pycurl.WRITEFUNCTION, b.write) + self._curl.setopt(self.pycurl.HEADERFUNCTION, rheaders.write) + self._curl.setopt(self.pycurl.NOSIGNAL, 1) + self._curl.setopt(self.pycurl.CONNECTTIMEOUT, 30) + self._curl.setopt(self.pycurl.TIMEOUT, 80) + self._curl.setopt( + self.pycurl.HTTPHEADER, + ["%s: %s" % (k, v) for k, v in dict(headers).items()], + ) + if self._verify_ssl_certs: + self._curl.setopt(self.pycurl.CAINFO, stripe.ca_bundle_path) + else: + self._curl.setopt(self.pycurl.SSL_VERIFYHOST, False) + + try: + self._curl.perform() + except self.pycurl.error as e: + self._handle_request_error(e) + + if is_streaming: + b.seek(0) + rcontent = b + else: + rcontent = b.getvalue().decode("utf-8") + + rcode = self._curl.getinfo(self.pycurl.RESPONSE_CODE) + headers = self.parse_headers(rheaders.getvalue().decode("utf-8")) + + return rcontent, rcode, headers + + def _handle_request_error(self, e: Exception) -> NoReturn: + if e.args[0] in [ + self.pycurl.E_COULDNT_CONNECT, + self.pycurl.E_COULDNT_RESOLVE_HOST, + self.pycurl.E_OPERATION_TIMEOUTED, + ]: + msg = ( + "Could not connect to Stripe. Please check your " + "internet connection and try again. If this problem " + "persists, you should check Stripe's service status at " + "https://twitter.com/stripestatus, or let us know at " + "support@stripe.com." + ) + should_retry = True + elif e.args[0] in [ + self.pycurl.E_SSL_CACERT, + self.pycurl.E_SSL_PEER_CERTIFICATE, + ]: + msg = ( + "Could not verify Stripe's SSL certificate. Please make " + "sure that your network is not intercepting certificates. " + "If this problem persists, let us know at " + "support@stripe.com." + ) + should_retry = False + else: + msg = ( + "Unexpected error communicating with Stripe. If this " + "problem persists, let us know at support@stripe.com." + ) + should_retry = False + + msg = textwrap.fill(msg) + "\n\n(Network error: " + e.args[1] + ")" + raise APIConnectionError(msg, should_retry=should_retry) from e + + def _get_proxy(self, url) -> Optional["ParseResult"]: + if self._parsed_proxy: + proxy = self._parsed_proxy + scheme = url.split(":")[0] if url else None + if scheme: + return proxy.get(scheme, proxy.get(scheme[0:-1])) + return None + + def close(self): + pass + + +class UrllibClient(HTTPClient): + name = "urllib.request" + + def __init__( + self, + verify_ssl_certs: bool = True, + proxy: Optional[HTTPClient._Proxy] = None, + async_fallback_client: Optional[HTTPClient] = None, + _lib=None, # used for internal unit testing + ): + super(UrllibClient, self).__init__( + verify_ssl_certs=verify_ssl_certs, + proxy=proxy, + async_fallback_client=async_fallback_client, + ) + + if _lib is None: + import urllib.request as urllibrequest + + _lib = urllibrequest + self.urllibrequest = _lib + + import urllib.error as urlliberror + + self.urlliberror = urlliberror + + # prepare and cache proxy tied opener here + self._opener = None + if self._proxy: + # We have to cast _Proxy to Dict[str, str] because pyright is not smart enough to + # realize that all the value types are str. + proxy_handler = self.urllibrequest.ProxyHandler( + cast(Dict[str, str], self._proxy) + ) + self._opener = self.urllibrequest.build_opener(proxy_handler) + + def request( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[str, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=False + ) + + def request_stream( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[HTTPResponse, int, Mapping[str, str]]: + return self._request_internal( + method, url, headers, post_data, is_streaming=True + ) + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[False], + ) -> Tuple[str, int, Any]: ... + + @overload + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming: Literal[True], + ) -> Tuple[HTTPResponse, int, Any]: ... + + def _request_internal( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data, + is_streaming, + ): + if isinstance(post_data, str): + post_data = post_data.encode("utf-8") + + req = self.urllibrequest.Request( + url, post_data, cast(MutableMapping[str, str], headers) + ) + + if method not in ("get", "post"): + req.get_method = lambda: method.upper() + + try: + # use the custom proxy tied opener, if any. + # otherwise, fall to the default urllib opener. + response = ( + self._opener.open(req) + if self._opener + else self.urllibrequest.urlopen(req) + ) + + if is_streaming: + rcontent = response + else: + rcontent = response.read() + + rcode = response.code + headers = dict(response.info()) + except self.urlliberror.HTTPError as e: + rcode = e.code + rcontent = e.read() + headers = dict(e.info()) + except (self.urlliberror.URLError, ValueError) as e: + self._handle_request_error(e) + lh = dict((k.lower(), v) for k, v in iter(dict(headers).items())) + return rcontent, rcode, lh + + def _handle_request_error(self, e: Exception) -> NoReturn: + msg = ( + "Unexpected error communicating with Stripe. " + "If this problem persists, let us know at support@stripe.com." + ) + msg = textwrap.fill(msg) + "\n\n(Network error: " + str(e) + ")" + raise APIConnectionError(msg) from e + + def close(self): + pass + + +class HTTPXClient(HTTPClient): + name = "httpx" + + _client: Optional["HTTPXClientType"] + + def __init__( + self, + timeout: Optional[Union[float, "HTTPXTimeout"]] = 80, + allow_sync_methods=False, + _lib=None, # used for internal unit testing + **kwargs, + ): + super(HTTPXClient, self).__init__(**kwargs) + + if _lib is None: + import httpx + + _lib = httpx + self.httpx = _lib + + import anyio + + self.anyio = anyio + + kwargs = {} + if self._verify_ssl_certs: + kwargs["verify"] = ssl.create_default_context( + cafile=stripe.ca_bundle_path + ) + else: + kwargs["verify"] = False + + self._client_async = self.httpx.AsyncClient(**kwargs) + self._client = None + if allow_sync_methods: + self._client = self.httpx.Client(**kwargs) + self._timeout = timeout + + def sleep_async(self, secs): + return self.anyio.sleep(secs) + + def _get_request_args_kwargs( + self, method: str, url: str, headers: Mapping[str, str], post_data + ): + kwargs = {} + + if self._proxy: + kwargs["proxies"] = self._proxy + + if self._timeout: + kwargs["timeout"] = self._timeout + return [ + (method, url), + {"headers": headers, "data": post_data or {}, **kwargs}, + ] + + def request( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data=None, + ) -> Tuple[bytes, int, Mapping[str, str]]: + if self._client is None: + raise RuntimeError( + "Stripe: HTTPXClient was initialized with allow_sync_methods=False, " + "so it cannot be used for synchronous requests." + ) + args, kwargs = self._get_request_args_kwargs( + method, url, headers, post_data + ) + try: + response = self._client.request(*args, **kwargs) + except Exception as e: + self._handle_request_error(e) + + content = response.content + status_code = response.status_code + response_headers = response.headers + return content, status_code, response_headers + + async def request_async( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data=None, + ) -> Tuple[bytes, int, Mapping[str, str]]: + args, kwargs = self._get_request_args_kwargs( + method, url, headers, post_data + ) + try: + response = await self._client_async.request(*args, **kwargs) + except Exception as e: + self._handle_request_error(e) + + content = response.content + status_code = response.status_code + response_headers = response.headers + return content, status_code, response_headers + + def _handle_request_error(self, e: Exception) -> NoReturn: + msg = ( + "Unexpected error communicating with Stripe. If this " + "problem persists, let us know at support@stripe.com." + ) + err = "A %s was raised" % (type(e).__name__,) + should_retry = True + + msg = textwrap.fill(msg) + "\n\n(Network error: %s)" % (err,) + raise APIConnectionError(msg, should_retry=should_retry) from e + + def request_stream( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[Iterable[bytes], int, Mapping[str, str]]: + if self._client is None: + raise RuntimeError( + "Stripe: HTTPXClient was not initialized with allow_sync_methods=True, " + "so it cannot be used for synchronous requests." + ) + args, kwargs = self._get_request_args_kwargs( + method, url, headers, post_data + ) + try: + response = self._client.send( + request=self._client_async.build_request(*args, **kwargs), + stream=True, + ) + except Exception as e: + self._handle_request_error(e) + content = response.iter_bytes() + status_code = response.status_code + headers = response.headers + + return content, status_code, headers + + async def request_stream_async( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[AsyncIterable[bytes], int, Mapping[str, str]]: + args, kwargs = self._get_request_args_kwargs( + method, url, headers, post_data + ) + try: + response = await self._client_async.send( + request=self._client_async.build_request(*args, **kwargs), + stream=True, + ) + except Exception as e: + self._handle_request_error(e) + content = response.aiter_bytes() + status_code = response.status_code + headers = response.headers + + return content, status_code, headers + + def close(self): + if self._client is not None: + self._client.close() + + async def close_async(self): + await self._client_async.aclose() + + +class AIOHTTPClient(HTTPClient): + name = "aiohttp" + + def __init__( + self, + timeout: Optional[Union[float, "AIOHTTPTimeout"]] = 80, + _lib=None, # used for internal unit testing + **kwargs, + ): + super(AIOHTTPClient, self).__init__(**kwargs) + + if _lib is None: + import aiohttp + + _lib = aiohttp + + self.aiohttp = _lib + + self._timeout = timeout + self._cached_session = None + + @property + def _session(self): + if self._cached_session is None: + kwargs = {} + if self._verify_ssl_certs: + ssl_context = ssl.create_default_context( + cafile=stripe.ca_bundle_path + ) + kwargs["connector"] = self.aiohttp.TCPConnector( + ssl=ssl_context + ) + else: + kwargs["connector"] = self.aiohttp.TCPConnector( + verify_ssl=False + ) + + self._cached_session = self.aiohttp.ClientSession(**kwargs) + + return self._cached_session + + def sleep_async(self, secs): + return asyncio.sleep(secs) + + def request(self) -> Tuple[bytes, int, Mapping[str, str]]: + raise NotImplementedError( + "AIOHTTPClient does not support synchronous requests." + ) + + def _get_request_args_kwargs( + self, method: str, url: str, headers: Mapping[str, str], post_data + ): + args = (method, url) + kwargs = {} + if self._proxy: + if self._proxy["http"] != self._proxy["https"]: + raise ValueError( + "AIOHTTPClient does not support different proxies for HTTP and HTTPS." + ) + kwargs["proxy"] = self._proxy["https"] + if self._timeout: + kwargs["timeout"] = self._timeout + + kwargs["headers"] = headers + kwargs["data"] = post_data + return args, kwargs + + async def request_async( + self, + method: str, + url: str, + headers: Mapping[str, str], + post_data=None, + ) -> Tuple[bytes, int, Mapping[str, str]]: + ( + content, + status_code, + response_headers, + ) = await self.request_stream_async( + method, url, headers, post_data=post_data + ) + + return (await content.read()), status_code, response_headers + + def _handle_request_error(self, e: Exception) -> NoReturn: + msg = ( + "Unexpected error communicating with Stripe. If this " + "problem persists, let us know at support@stripe.com." + ) + err = "A %s was raised" % (type(e).__name__,) + should_retry = True + + msg = textwrap.fill(msg) + "\n\n(Network error: %s)" % (err,) + raise APIConnectionError(msg, should_retry=should_retry) from e + + def request_stream(self) -> Tuple[Iterable[bytes], int, Mapping[str, str]]: + raise NotImplementedError( + "AIOHTTPClient does not support synchronous requests." + ) + + async def request_stream_async( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple["AIOHTTPStreamReader", int, Mapping[str, str]]: + args, kwargs = self._get_request_args_kwargs( + method, url, headers, post_data + ) + try: + response = await self._session.request(*args, **kwargs) + except Exception as e: + self._handle_request_error(e) + + content = response.content + status_code = response.status + response_headers = response.headers + return content, status_code, response_headers + + def close(self): + pass + + async def close_async(self): + await self._session.close() + + +class NoImportFoundAsyncClient(HTTPClient): + def __init__(self, **kwargs): + super(NoImportFoundAsyncClient, self).__init__(**kwargs) + + @staticmethod + def raise_async_client_import_error() -> Never: + raise ImportError( + ( + "Import httpx not found. To make async http requests," + "You must either install httpx or define your own" + "async http client by subclassing stripe.HTTPClient" + "and setting stripe.default_http_client to an instance of it." + ) + ) + + async def request_async( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ) -> Tuple[bytes, int, Mapping[str, str]]: + self.raise_async_client_import_error() + + async def request_stream_async( + self, method: str, url: str, headers: Mapping[str, str], post_data=None + ): + self.raise_async_client_import_error() + + async def close_async(self): + self.raise_async_client_import_error() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_identity_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_identity_service.py new file mode 100644 index 00000000..3e67a906 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_identity_service.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.identity._verification_report_service import ( + VerificationReportService, + ) + from stripe.identity._verification_session_service import ( + VerificationSessionService, + ) + +_subservices = { + "verification_reports": [ + "stripe.identity._verification_report_service", + "VerificationReportService", + ], + "verification_sessions": [ + "stripe.identity._verification_session_service", + "VerificationSessionService", + ], +} + + +class IdentityService(StripeService): + verification_reports: "VerificationReportService" + verification_sessions: "VerificationSessionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice.py new file mode 100644 index 00000000..8bb7ed6a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice.py @@ -0,0 +1,2965 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._search_result_object import SearchResultObject +from stripe._searchable_api_resource import SearchableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ( + AsyncIterator, + ClassVar, + Dict, + Iterator, + List, + Optional, + Union, + cast, + overload, +) +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._bank_account import BankAccount + from stripe._card import Card as CardResource + from stripe._customer import Customer + from stripe._discount import Discount + from stripe._invoice_line_item import InvoiceLineItem + from stripe._invoice_payment import InvoicePayment + from stripe._payment_intent import PaymentIntent + from stripe._payment_method import PaymentMethod + from stripe._setup_intent import SetupIntent + from stripe._shipping_rate import ShippingRate + from stripe._source import Source + from stripe._subscription import Subscription + from stripe._tax_id import TaxId + from stripe._tax_rate import TaxRate + from stripe.billing._credit_balance_transaction import ( + CreditBalanceTransaction, + ) + from stripe.params._invoice_add_lines_params import InvoiceAddLinesParams + from stripe.params._invoice_attach_payment_params import ( + InvoiceAttachPaymentParams, + ) + from stripe.params._invoice_create_params import InvoiceCreateParams + from stripe.params._invoice_create_preview_params import ( + InvoiceCreatePreviewParams, + ) + from stripe.params._invoice_delete_params import InvoiceDeleteParams + from stripe.params._invoice_finalize_invoice_params import ( + InvoiceFinalizeInvoiceParams, + ) + from stripe.params._invoice_list_lines_params import InvoiceListLinesParams + from stripe.params._invoice_list_params import InvoiceListParams + from stripe.params._invoice_mark_uncollectible_params import ( + InvoiceMarkUncollectibleParams, + ) + from stripe.params._invoice_modify_params import InvoiceModifyParams + from stripe.params._invoice_pay_params import InvoicePayParams + from stripe.params._invoice_remove_lines_params import ( + InvoiceRemoveLinesParams, + ) + from stripe.params._invoice_retrieve_params import InvoiceRetrieveParams + from stripe.params._invoice_search_params import InvoiceSearchParams + from stripe.params._invoice_send_invoice_params import ( + InvoiceSendInvoiceParams, + ) + from stripe.params._invoice_update_lines_params import ( + InvoiceUpdateLinesParams, + ) + from stripe.params._invoice_void_invoice_params import ( + InvoiceVoidInvoiceParams, + ) + from stripe.test_helpers._test_clock import TestClock + + +@nested_resource_class_methods("line") +class Invoice( + CreateableAPIResource["Invoice"], + DeletableAPIResource["Invoice"], + ListableAPIResource["Invoice"], + SearchableAPIResource["Invoice"], + UpdateableAPIResource["Invoice"], +): + """ + Invoices are statements of amounts owed by a customer, and are either + generated one-off, or generated periodically from a subscription. + + They contain [invoice items](https://stripe.com/docs/api#invoiceitems), and proration adjustments + that may be caused by subscription upgrades/downgrades (if necessary). + + If your invoice is configured to be billed through automatic charges, + Stripe automatically finalizes your invoice and attempts payment. Note + that finalizing the invoice, + [when automatic](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection), does + not happen immediately as the invoice is created. Stripe waits + until one hour after the last webhook was successfully sent (or the last + webhook timed out after failing). If you (and the platforms you may have + connected to) have no webhooks configured, Stripe waits one hour after + creation to finalize the invoice. + + If your invoice is configured to be billed by sending an email, then based on your + [email settings](https://dashboard.stripe.com/account/billing/automatic), + Stripe will email the invoice to your customer and await payment. These + emails can contain a link to a hosted page to pay the invoice. + + Stripe applies any customer credit on the account before determining the + amount due for the invoice (i.e., the amount that will be actually + charged). If the amount due for the invoice is less than Stripe's [minimum allowed charge + per currency](https://docs.stripe.com/docs/currencies#minimum-and-maximum-charge-amounts), the + invoice is automatically marked paid, and we add the amount due to the + customer's credit balance which is applied to the next invoice. + + More details on the customer's credit balance are + [here](https://stripe.com/docs/billing/customer/balance). + + Related guide: [Send invoices to customers](https://stripe.com/docs/billing/invoices/sending) + """ + + OBJECT_NAME: ClassVar[Literal["invoice"]] = "invoice" + + class AutomaticTax(StripeObject): + class Liability(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + disabled_reason: Optional[ + Literal[ + "finalization_requires_location_inputs", + "finalization_system_error", + ] + ] + """ + If Stripe disabled automatic tax, this enum describes why. + """ + enabled: bool + """ + Whether Stripe automatically computes tax on this invoice. Note that incompatible invoice items (invoice items with manually specified [tax rates](https://stripe.com/docs/api/tax_rates), negative amounts, or `tax_behavior=unspecified`) cannot be added to automatic tax invoices. + """ + liability: Optional[Liability] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + provider: Optional[str] + """ + The tax provider powering automatic tax. + """ + status: Optional[ + Literal["complete", "failed", "requires_location_inputs"] + ] + """ + The status of the most recent automated tax calculation for this invoice. + """ + _inner_class_types = {"liability": Liability} + + class ConfirmationSecret(StripeObject): + client_secret: str + """ + The client_secret of the payment that Stripe creates for the invoice after finalization. + """ + type: str + """ + The type of client_secret. Currently this is always payment_intent, referencing the default payment_intent that Stripe creates during invoice finalization + """ + + class CustomField(StripeObject): + name: str + """ + The name of the custom field. + """ + value: str + """ + The value of the custom field. + """ + + class CustomerAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class CustomerShipping(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + carrier: Optional[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: Optional[str] + """ + Recipient name. + """ + phone: Optional[str] + """ + Recipient phone (including extension). + """ + tracking_number: Optional[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + _inner_class_types = {"address": Address} + + class CustomerTaxId(StripeObject): + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "unknown", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, `aw_tin`, `az_tin`, `bd_bin`, `bj_ifu`, `et_tin`, `kg_tin`, `la_tin`, `cm_niu`, `cv_nif`, `bf_ifu`, or `unknown` + """ + value: Optional[str] + """ + The value of the tax ID. + """ + + class FromInvoice(StripeObject): + action: str + """ + The relation between this invoice and the cloned invoice + """ + invoice: ExpandableField["Invoice"] + """ + The invoice that was cloned. + """ + + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + class LastFinalizationError(StripeObject): + advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating [how to proceed with an error](https://stripe.com/docs/declines#retrying-issuer-declines) if they provide one. + """ + charge: Optional[str] + """ + For card errors, the ID of the failed charge. + """ + code: Optional[ + Literal[ + "account_closed", + "account_country_invalid_address", + "account_error_country_change_requires_additional_steps", + "account_information_mismatch", + "account_invalid", + "account_number_invalid", + "acss_debit_session_incomplete", + "alipay_upgrade_required", + "amount_too_large", + "amount_too_small", + "api_key_expired", + "application_fees_not_allowed", + "authentication_required", + "balance_insufficient", + "balance_invalid_parameter", + "bank_account_bad_routing_numbers", + "bank_account_declined", + "bank_account_exists", + "bank_account_restricted", + "bank_account_unusable", + "bank_account_unverified", + "bank_account_verification_failed", + "billing_invalid_mandate", + "bitcoin_upgrade_required", + "capture_charge_authorization_expired", + "capture_unauthorized_payment", + "card_decline_rate_limit_exceeded", + "card_declined", + "cardholder_phone_number_required", + "charge_already_captured", + "charge_already_refunded", + "charge_disputed", + "charge_exceeds_source_limit", + "charge_exceeds_transaction_limit", + "charge_expired_for_capture", + "charge_invalid_parameter", + "charge_not_refundable", + "clearing_code_unsupported", + "country_code_invalid", + "country_unsupported", + "coupon_expired", + "customer_max_payment_methods", + "customer_max_subscriptions", + "customer_session_expired", + "customer_tax_location_invalid", + "debit_not_authorized", + "email_invalid", + "expired_card", + "financial_connections_account_inactive", + "financial_connections_account_pending_account_numbers", + "financial_connections_account_unavailable_account_numbers", + "financial_connections_no_successful_transaction_refresh", + "forwarding_api_inactive", + "forwarding_api_invalid_parameter", + "forwarding_api_retryable_upstream_error", + "forwarding_api_upstream_connection_error", + "forwarding_api_upstream_connection_timeout", + "forwarding_api_upstream_error", + "idempotency_key_in_use", + "incorrect_address", + "incorrect_cvc", + "incorrect_number", + "incorrect_zip", + "india_recurring_payment_mandate_canceled", + "instant_payouts_config_disabled", + "instant_payouts_currency_disabled", + "instant_payouts_limit_exceeded", + "instant_payouts_unsupported", + "insufficient_funds", + "intent_invalid_state", + "intent_verification_method_missing", + "invalid_card_type", + "invalid_characters", + "invalid_charge_amount", + "invalid_cvc", + "invalid_expiry_month", + "invalid_expiry_year", + "invalid_mandate_reference_prefix_format", + "invalid_number", + "invalid_source_usage", + "invalid_tax_location", + "invoice_no_customer_line_items", + "invoice_no_payment_method_types", + "invoice_no_subscription_line_items", + "invoice_not_editable", + "invoice_on_behalf_of_not_editable", + "invoice_payment_intent_requires_action", + "invoice_upcoming_none", + "livemode_mismatch", + "lock_timeout", + "missing", + "no_account", + "not_allowed_on_standard_account", + "out_of_inventory", + "ownership_declaration_not_allowed", + "parameter_invalid_empty", + "parameter_invalid_integer", + "parameter_invalid_string_blank", + "parameter_invalid_string_empty", + "parameter_missing", + "parameter_unknown", + "parameters_exclusive", + "payment_intent_action_required", + "payment_intent_authentication_failure", + "payment_intent_incompatible_payment_method", + "payment_intent_invalid_parameter", + "payment_intent_konbini_rejected_confirmation_number", + "payment_intent_mandate_invalid", + "payment_intent_payment_attempt_expired", + "payment_intent_payment_attempt_failed", + "payment_intent_rate_limit_exceeded", + "payment_intent_unexpected_state", + "payment_method_bank_account_already_verified", + "payment_method_bank_account_blocked", + "payment_method_billing_details_address_missing", + "payment_method_configuration_failures", + "payment_method_currency_mismatch", + "payment_method_customer_decline", + "payment_method_invalid_parameter", + "payment_method_invalid_parameter_testmode", + "payment_method_microdeposit_failed", + "payment_method_microdeposit_verification_amounts_invalid", + "payment_method_microdeposit_verification_amounts_mismatch", + "payment_method_microdeposit_verification_attempts_exceeded", + "payment_method_microdeposit_verification_descriptor_code_mismatch", + "payment_method_microdeposit_verification_timeout", + "payment_method_not_available", + "payment_method_provider_decline", + "payment_method_provider_timeout", + "payment_method_unactivated", + "payment_method_unexpected_state", + "payment_method_unsupported_type", + "payout_reconciliation_not_ready", + "payouts_limit_exceeded", + "payouts_not_allowed", + "platform_account_required", + "platform_api_key_expired", + "postal_code_invalid", + "processing_error", + "product_inactive", + "progressive_onboarding_limit_exceeded", + "rate_limit", + "refer_to_customer", + "refund_disputed_payment", + "resource_already_exists", + "resource_missing", + "return_intent_already_processed", + "routing_number_invalid", + "secret_key_required", + "sepa_unsupported_account", + "setup_attempt_failed", + "setup_intent_authentication_failure", + "setup_intent_invalid_parameter", + "setup_intent_mandate_invalid", + "setup_intent_mobile_wallet_unsupported", + "setup_intent_setup_attempt_expired", + "setup_intent_unexpected_state", + "shipping_address_invalid", + "shipping_calculation_failed", + "sku_inactive", + "state_unsupported", + "status_transition_invalid", + "stripe_tax_inactive", + "tax_id_invalid", + "tax_id_prohibited", + "taxes_calculation_failed", + "terminal_location_country_unsupported", + "terminal_reader_busy", + "terminal_reader_hardware_fault", + "terminal_reader_invalid_location_for_activation", + "terminal_reader_invalid_location_for_payment", + "terminal_reader_offline", + "terminal_reader_timeout", + "testmode_charges_only", + "tls_version_unsupported", + "token_already_used", + "token_card_network_invalid", + "token_in_use", + "transfer_source_balance_parameters_mismatch", + "transfers_not_allowed", + "url_invalid", + ] + ] + """ + For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported. + """ + decline_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one. + """ + doc_url: Optional[str] + """ + A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported. + """ + message: Optional[str] + """ + A human-readable message providing more details about the error. For card errors, these messages can be shown to your users. + """ + network_advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a 2 digit code which indicates the advice given to merchant by the card network on how to proceed with an error. + """ + network_decline_code: Optional[str] + """ + For payments declined by the network, an alphanumeric code which indicates the reason the payment failed. + """ + param: Optional[str] + """ + If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field. + """ + payment_intent: Optional["PaymentIntent"] + """ + A PaymentIntent guides you through the process of collecting a payment from your customer. + We recommend that you create exactly one PaymentIntent for each order or + customer session in your system. You can reference the PaymentIntent later to + see the history of payment attempts for a particular session. + + A PaymentIntent transitions through + [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) + throughout its lifetime as it interfaces with Stripe.js to perform + authentication flows and ultimately creates at most one successful charge. + + Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents) + """ + payment_method: Optional["PaymentMethod"] + """ + PaymentMethod objects represent your customer's payment instruments. + You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to + Customer objects to store instrument details for future payments. + + Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios). + """ + payment_method_type: Optional[str] + """ + If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors. + """ + request_log_url: Optional[str] + """ + A URL to the request log entry in your dashboard. + """ + setup_intent: Optional["SetupIntent"] + """ + A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. + For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. + Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow. + + Create a SetupIntent when you're ready to collect your customer's payment credentials. + Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. + The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides + you through the setup process. + + Successful SetupIntents result in payment credentials that are optimized for future payments. + For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through + [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection + to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents). + If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer), + it automatically attaches the resulting payment method to that Customer after successful setup. + We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on + PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. + + By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. + + Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents) + """ + source: Optional[ + Union["Account", "BankAccount", "CardResource", "Source"] + ] + type: Literal[ + "api_error", + "card_error", + "idempotency_error", + "invalid_request_error", + ] + """ + The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error` + """ + + class Parent(StripeObject): + class QuoteDetails(StripeObject): + quote: str + """ + The quote that generated this invoice + """ + + class SubscriptionDetails(StripeObject): + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) defined as subscription metadata when an invoice is created. Becomes an immutable snapshot of the subscription metadata at the time of invoice finalization. + *Note: This attribute is populated only for invoices created on or after June 29, 2023.* + """ + subscription: ExpandableField["Subscription"] + """ + The subscription that generated this invoice + """ + subscription_proration_date: Optional[int] + """ + Only set for upcoming invoices that preview prorations. The time used to calculate prorations. + """ + + quote_details: Optional[QuoteDetails] + """ + Details about the quote that generated this invoice + """ + subscription_details: Optional[SubscriptionDetails] + """ + Details about the subscription that generated this invoice + """ + type: Literal["quote_details", "subscription_details"] + """ + The type of parent that generated this invoice + """ + _inner_class_types = { + "quote_details": QuoteDetails, + "subscription_details": SubscriptionDetails, + } + + class PaymentSettings(StripeObject): + class PaymentMethodOptions(StripeObject): + class AcssDebit(StripeObject): + class MandateOptions(StripeObject): + transaction_type: Optional[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + mandate_options: Optional[MandateOptions] + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Bancontact(StripeObject): + preferred_language: Literal["de", "en", "fr", "nl"] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + class Card(StripeObject): + class Installments(StripeObject): + enabled: Optional[bool] + """ + Whether Installments are enabled for this Invoice. + """ + + installments: Optional[Installments] + request_three_d_secure: Optional[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + _inner_class_types = {"installments": Installments} + + class CustomerBalance(StripeObject): + class BankTransfer(StripeObject): + class EuBankTransfer(StripeObject): + country: Literal["BE", "DE", "ES", "FR", "IE", "NL"] + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + eu_bank_transfer: Optional[EuBankTransfer] + type: Optional[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + _inner_class_types = {"eu_bank_transfer": EuBankTransfer} + + bank_transfer: Optional[BankTransfer] + funding_type: Optional[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + _inner_class_types = {"bank_transfer": BankTransfer} + + class Konbini(StripeObject): + pass + + class SepaDebit(StripeObject): + pass + + class UsBankAccount(StripeObject): + class FinancialConnections(StripeObject): + class Filters(StripeObject): + account_subcategories: Optional[ + List[Literal["checking", "savings"]] + ] + """ + The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`. + """ + + filters: Optional[Filters] + permissions: Optional[ + List[ + Literal[ + "balances", + "ownership", + "payment_method", + "transactions", + ] + ] + ] + """ + The list of permissions to request. The `payment_method` permission must be included. + """ + prefetch: Optional[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + Data features requested to be retrieved upon account creation. + """ + _inner_class_types = {"filters": Filters} + + financial_connections: Optional[FinancialConnections] + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = { + "financial_connections": FinancialConnections, + } + + acss_debit: Optional[AcssDebit] + """ + If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent. + """ + bancontact: Optional[Bancontact] + """ + If paying by `bancontact`, this sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent. + """ + card: Optional[Card] + """ + If paying by `card`, this sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent. + """ + customer_balance: Optional[CustomerBalance] + """ + If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice's PaymentIntent. + """ + konbini: Optional[Konbini] + """ + If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice's PaymentIntent. + """ + sepa_debit: Optional[SepaDebit] + """ + If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice's PaymentIntent. + """ + us_bank_account: Optional[UsBankAccount] + """ + If paying by `us_bank_account`, this sub-hash contains details about the ACH direct debit payment method options to pass to the invoice's PaymentIntent. + """ + _inner_class_types = { + "acss_debit": AcssDebit, + "bancontact": Bancontact, + "card": Card, + "customer_balance": CustomerBalance, + "konbini": Konbini, + "sepa_debit": SepaDebit, + "us_bank_account": UsBankAccount, + } + + default_mandate: Optional[str] + """ + ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the invoice's default_payment_method or default_source, if set. + """ + payment_method_options: Optional[PaymentMethodOptions] + """ + Payment-method-specific configuration to provide to the invoice's PaymentIntent. + """ + payment_method_types: Optional[ + List[ + Literal[ + "ach_credit_transfer", + "ach_debit", + "acss_debit", + "affirm", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "boleto", + "card", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "jp_credit_transfer", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "multibanco", + "naver_pay", + "nz_bank_account", + "p24", + "payco", + "paynow", + "paypal", + "promptpay", + "revolut_pay", + "sepa_credit_transfer", + "sepa_debit", + "sofort", + "swish", + "us_bank_account", + "wechat_pay", + ] + ] + ] + """ + The list of payment method types (e.g. card) to provide to the invoice's PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). + """ + _inner_class_types = {"payment_method_options": PaymentMethodOptions} + + class Rendering(StripeObject): + class Pdf(StripeObject): + page_size: Optional[Literal["a4", "auto", "letter"]] + """ + Page size of invoice pdf. Options include a4, letter, and auto. If set to auto, page size will be switched to a4 or letter based on customer locale. + """ + + amount_tax_display: Optional[str] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. + """ + pdf: Optional[Pdf] + """ + Invoice pdf rendering options + """ + template: Optional[str] + """ + ID of the rendering template that the invoice is formatted by. + """ + template_version: Optional[int] + """ + Version of the rendering template that the invoice is using. + """ + _inner_class_types = {"pdf": Pdf} + + class ShippingCost(StripeObject): + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + amount_subtotal: int + """ + Total shipping cost before any taxes are applied. + """ + amount_tax: int + """ + Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0. + """ + amount_total: int + """ + Total shipping cost after taxes are applied. + """ + shipping_rate: Optional[ExpandableField["ShippingRate"]] + """ + The ID of the ShippingRate for this invoice. + """ + taxes: Optional[List[Tax]] + """ + The taxes applied to the shipping rate. + """ + _inner_class_types = {"taxes": Tax} + + class ShippingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + carrier: Optional[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: Optional[str] + """ + Recipient name. + """ + phone: Optional[str] + """ + Recipient phone (including extension). + """ + tracking_number: Optional[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + _inner_class_types = {"address": Address} + + class StatusTransitions(StripeObject): + finalized_at: Optional[int] + """ + The time that the invoice draft was finalized. + """ + marked_uncollectible_at: Optional[int] + """ + The time that the invoice was marked uncollectible. + """ + paid_at: Optional[int] + """ + The time that the invoice was paid. + """ + voided_at: Optional[int] + """ + The time that the invoice was voided. + """ + + class ThresholdReason(StripeObject): + class ItemReason(StripeObject): + line_item_ids: List[str] + """ + The IDs of the line items that triggered the threshold invoice. + """ + usage_gte: int + """ + The quantity threshold boundary that applied to the given line item. + """ + + amount_gte: Optional[int] + """ + The total invoice amount threshold boundary if it triggered the threshold invoice. + """ + item_reasons: List[ItemReason] + """ + Indicates which line items triggered a threshold invoice. + """ + _inner_class_types = {"item_reasons": ItemReason} + + class TotalDiscountAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the discount. + """ + discount: ExpandableField["Discount"] + """ + The discount that was applied to get this discount amount. + """ + + class TotalPretaxCreditAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the pretax credit amount. + """ + credit_balance_transaction: Optional[ + ExpandableField["CreditBalanceTransaction"] + ] + """ + The credit balance transaction that was applied to get this pretax credit amount. + """ + discount: Optional[ExpandableField["Discount"]] + """ + The discount that was applied to get this pretax credit amount. + """ + type: Literal["credit_balance_transaction", "discount"] + """ + Type of the pretax credit amount referenced. + """ + + class TotalTax(StripeObject): + class TaxRateDetails(StripeObject): + tax_rate: str + + amount: int + """ + The amount of the tax, in cents (or local equivalent). + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Whether this tax is inclusive or exclusive. + """ + tax_rate_details: Optional[TaxRateDetails] + """ + Additional details about the tax rate. Only present when `type` is `tax_rate_details`. + """ + taxability_reason: Literal[ + "customer_exempt", + "not_available", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + type: Literal["tax_rate_details"] + """ + The type of tax information. + """ + _inner_class_types = {"tax_rate_details": TaxRateDetails} + + account_country: Optional[str] + """ + The country of the business associated with this invoice, most often the business creating the invoice. + """ + account_name: Optional[str] + """ + The public name of the business associated with this invoice, most often the business creating the invoice. + """ + account_tax_ids: Optional[List[ExpandableField["TaxId"]]] + """ + The account tax IDs associated with the invoice. Only editable when the invoice is a draft. + """ + amount_due: int + """ + Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`. + """ + amount_overpaid: int + """ + Amount that was overpaid on the invoice. The amount overpaid is credited to the customer's credit balance. + """ + amount_paid: int + """ + The amount, in cents (or local equivalent), that was paid. + """ + amount_remaining: int + """ + The difference between amount_due and amount_paid, in cents (or local equivalent). + """ + amount_shipping: int + """ + This is the sum of all the shipping amounts. + """ + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect Application that created the invoice. + """ + attempt_count: int + """ + Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule. If a failure is returned with a non-retryable return code, the invoice can no longer be retried unless a new payment method is obtained. Retries will continue to be scheduled, and attempt_count will continue to increment, but retries will only be executed if a new payment method is obtained. + """ + attempted: bool + """ + Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the `invoice.created` webhook, for example, so you might not want to display that invoice as unpaid to your users. + """ + auto_advance: Optional[bool] + """ + Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action. + """ + automatic_tax: AutomaticTax + automatically_finalizes_at: Optional[int] + """ + The time when this invoice is currently scheduled to be automatically finalized. The field will be `null` if the invoice is not scheduled to finalize in the future. If the invoice is not in the draft state, this field will always be `null` - see `finalized_at` for the time when an already-finalized invoice was finalized. + """ + billing_reason: Optional[ + Literal[ + "automatic_pending_invoice_item_invoice", + "manual", + "quote_accept", + "subscription", + "subscription_create", + "subscription_cycle", + "subscription_threshold", + "subscription_update", + "upcoming", + ] + ] + """ + Indicates the reason why the invoice was created. + + * `manual`: Unrelated to a subscription, for example, created via the invoice editor. + * `subscription`: No longer in use. Applies to subscriptions from before May 2018 where no distinction was made between updates, cycles, and thresholds. + * `subscription_create`: A new subscription was created. + * `subscription_cycle`: A subscription advanced into a new period. + * `subscription_threshold`: A subscription reached a billing threshold. + * `subscription_update`: A subscription was updated. + * `upcoming`: Reserved for upcoming invoices created through the Create Preview Invoice API or when an `invoice.upcoming` event is generated for an upcoming invoice on a subscription. + """ + collection_method: Literal["charge_automatically", "send_invoice"] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions. + """ + confirmation_secret: Optional[ConfirmationSecret] + """ + The confirmation secret associated with this invoice. Currently, this contains the client_secret of the PaymentIntent that Stripe creates during invoice finalization. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + custom_fields: Optional[List[CustomField]] + """ + Custom fields displayed on the invoice. + """ + customer: Optional[ExpandableField["Customer"]] + """ + The ID of the customer who will be billed. + """ + customer_address: Optional[CustomerAddress] + """ + The customer's address. Until the invoice is finalized, this field will equal `customer.address`. Once the invoice is finalized, this field will no longer be updated. + """ + customer_email: Optional[str] + """ + The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated. + """ + customer_name: Optional[str] + """ + The customer's name. Until the invoice is finalized, this field will equal `customer.name`. Once the invoice is finalized, this field will no longer be updated. + """ + customer_phone: Optional[str] + """ + The customer's phone number. Until the invoice is finalized, this field will equal `customer.phone`. Once the invoice is finalized, this field will no longer be updated. + """ + customer_shipping: Optional[CustomerShipping] + """ + The customer's shipping information. Until the invoice is finalized, this field will equal `customer.shipping`. Once the invoice is finalized, this field will no longer be updated. + """ + customer_tax_exempt: Optional[Literal["exempt", "none", "reverse"]] + """ + The customer's tax exempt status. Until the invoice is finalized, this field will equal `customer.tax_exempt`. Once the invoice is finalized, this field will no longer be updated. + """ + customer_tax_ids: Optional[List[CustomerTaxId]] + """ + The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as `customer.tax_ids`. Once the invoice is finalized, this field will no longer be updated. + """ + default_payment_method: Optional[ExpandableField["PaymentMethod"]] + """ + ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings. + """ + default_source: Optional[ + ExpandableField[ + Union["Account", "BankAccount", "CardResource", "Source"] + ] + ] + """ + ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source. + """ + default_tax_rates: List["TaxRate"] + """ + The tax rates applied to this invoice, if any. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard. + """ + discounts: List[ExpandableField["Discount"]] + """ + The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount. + """ + due_date: Optional[int] + """ + The date on which payment for this invoice is due. This value will be `null` for invoices where `collection_method=charge_automatically`. + """ + effective_at: Optional[int] + """ + The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt. + """ + ending_balance: Optional[int] + """ + Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null. + """ + footer: Optional[str] + """ + Footer displayed on the invoice. + """ + from_invoice: Optional[FromInvoice] + """ + Details of the invoice that was cloned. See the [revision documentation](https://stripe.com/docs/invoicing/invoice-revisions) for more details. + """ + hosted_invoice_url: Optional[str] + """ + The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null. + """ + id: str + """ + Unique identifier for the object. For preview invoices created using the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint, this id will be prefixed with `upcoming_in`. + """ + invoice_pdf: Optional[str] + """ + The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null. + """ + issuer: Issuer + last_finalization_error: Optional[LastFinalizationError] + """ + The error encountered during the previous attempt to finalize the invoice. This field is cleared when the invoice is successfully finalized. + """ + latest_revision: Optional[ExpandableField["Invoice"]] + """ + The ID of the most recent non-draft revision of this invoice + """ + lines: ListObject["InvoiceLineItem"] + """ + The individual line items that make up the invoice. `lines` is sorted as follows: (1) pending invoice items (including prorations) in reverse chronological order, (2) subscription items in reverse chronological order, and (3) invoice items added after invoice creation in chronological order. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + next_payment_attempt: Optional[int] + """ + The time at which payment will next be attempted. This value will be `null` for invoices where `collection_method=send_invoice`. + """ + number: Optional[str] + """ + A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified. + """ + object: Literal["invoice"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details. + """ + parent: Optional[Parent] + """ + The parent that generated this invoice + """ + payment_settings: PaymentSettings + payments: Optional[ListObject["InvoicePayment"]] + """ + Payments for this invoice + """ + period_end: int + """ + End of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the [line item period](https://docs.stripe.com/api/invoices/line_item#invoice_line_item_object-period) to get the service period for each price. + """ + period_start: int + """ + Start of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the [line item period](https://docs.stripe.com/api/invoices/line_item#invoice_line_item_object-period) to get the service period for each price. + """ + post_payment_credit_notes_amount: int + """ + Total amount of all post-payment credit notes issued for this invoice. + """ + pre_payment_credit_notes_amount: int + """ + Total amount of all pre-payment credit notes issued for this invoice. + """ + receipt_number: Optional[str] + """ + This is the transaction number that appears on email receipts sent for this invoice. + """ + rendering: Optional[Rendering] + """ + The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page. + """ + shipping_cost: Optional[ShippingCost] + """ + The details of the cost of shipping, including the ShippingRate applied on the invoice. + """ + shipping_details: Optional[ShippingDetails] + """ + Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer. + """ + starting_balance: int + """ + Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance. For revision invoices, this also includes any customer balance that was applied to the original invoice. + """ + statement_descriptor: Optional[str] + """ + Extra information about an invoice for the customer's credit card statement. + """ + status: Optional[Literal["draft", "open", "paid", "uncollectible", "void"]] + """ + The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. [Learn more](https://stripe.com/docs/billing/invoices/workflow#workflow-overview) + """ + status_transitions: StatusTransitions + subtotal: int + """ + Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or exclusive tax is applied. Item discounts are already incorporated + """ + subtotal_excluding_tax: Optional[int] + """ + The integer amount in cents (or local equivalent) representing the subtotal of the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock this invoice belongs to. + """ + threshold_reason: Optional[ThresholdReason] + total: int + """ + Total after discounts and taxes. + """ + total_discount_amounts: Optional[List[TotalDiscountAmount]] + """ + The aggregate amounts calculated per discount across all line items. + """ + total_excluding_tax: Optional[int] + """ + The integer amount in cents (or local equivalent) representing the total amount of the invoice including all discounts but excluding all tax. + """ + total_pretax_credit_amounts: Optional[List[TotalPretaxCreditAmount]] + """ + Contains pretax credit amounts (ex: discount, credit grants, etc) that apply to this invoice. This is a combined list of total_pretax_credit_amounts across all invoice line items. + """ + total_taxes: Optional[List[TotalTax]] + """ + The aggregate tax information of all line items. + """ + webhooks_delivered_at: Optional[int] + """ + Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have [been exhausted](https://stripe.com/docs/billing/webhooks#understand). This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created. + """ + + @classmethod + def _cls_add_lines( + cls, invoice: str, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/add_lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def add_lines( + invoice: str, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @overload + def add_lines( + self, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @class_method_variant("_cls_add_lines") + def add_lines( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/add_lines".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_add_lines_async( + cls, invoice: str, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/add_lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def add_lines_async( + invoice: str, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @overload + async def add_lines_async( + self, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @class_method_variant("_cls_add_lines_async") + async def add_lines_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceAddLinesParams"] + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/add_lines".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_attach_payment( + cls, invoice: str, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/attach_payment".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def attach_payment( + invoice: str, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + ... + + @overload + def attach_payment( + self, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + ... + + @class_method_variant("_cls_attach_payment") + def attach_payment( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/attach_payment".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_attach_payment_async( + cls, invoice: str, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/attach_payment".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def attach_payment_async( + invoice: str, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + ... + + @overload + async def attach_payment_async( + self, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + ... + + @class_method_variant("_cls_attach_payment_async") + async def attach_payment_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceAttachPaymentParams"] + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/attach_payment".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["InvoiceCreateParams"]) -> "Invoice": + """ + This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or send](https://docs.stripe.com/api#finalize_invoice) the invoice to your customers. + """ + return cast( + "Invoice", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["InvoiceCreateParams"] + ) -> "Invoice": + """ + This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or send](https://docs.stripe.com/api#finalize_invoice) the invoice to your customers. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def create_preview( + cls, **params: Unpack["InvoiceCreatePreviewParams"] + ) -> "Invoice": + """ + At any time, you can preview the upcoming invoice for a subscription or subscription schedule. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice. + + You can also preview the effects of creating or updating a subscription or subscription schedule, including a preview of any prorations that will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. + + The recommended way to get only the prorations being previewed on the invoice is to consider line items where parent.subscription_item_details.proration is true. + + Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount. + + Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. [Learn more](https://docs.stripe.com/currencies/conversions) + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/create_preview", + params=params, + ), + ) + + @classmethod + async def create_preview_async( + cls, **params: Unpack["InvoiceCreatePreviewParams"] + ) -> "Invoice": + """ + At any time, you can preview the upcoming invoice for a subscription or subscription schedule. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice. + + You can also preview the effects of creating or updating a subscription or subscription schedule, including a preview of any prorations that will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. + + The recommended way to get only the prorations being previewed on the invoice is to consider line items where parent.subscription_item_details.proration is true. + + Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount. + + Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. [Learn more](https://docs.stripe.com/currencies/conversions) + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/create_preview", + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["InvoiceDeleteParams"] + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Invoice", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete(sid: str, **params: Unpack["InvoiceDeleteParams"]) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + ... + + @overload + def delete(self, **params: Unpack["InvoiceDeleteParams"]) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceDeleteParams"] + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["InvoiceDeleteParams"] + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Invoice", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["InvoiceDeleteParams"] + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["InvoiceDeleteParams"] + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceDeleteParams"] + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def _cls_finalize_invoice( + cls, invoice: str, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/finalize".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def finalize_invoice( + invoice: str, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + ... + + @overload + def finalize_invoice( + self, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + ... + + @class_method_variant("_cls_finalize_invoice") + def finalize_invoice( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/finalize".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_finalize_invoice_async( + cls, invoice: str, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/finalize".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def finalize_invoice_async( + invoice: str, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + ... + + @overload + async def finalize_invoice_async( + self, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + ... + + @class_method_variant("_cls_finalize_invoice_async") + async def finalize_invoice_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceFinalizeInvoiceParams"] + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/finalize".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["InvoiceListParams"] + ) -> ListObject["Invoice"]: + """ + You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["InvoiceListParams"] + ) -> ListObject["Invoice"]: + """ + You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_mark_uncollectible( + cls, invoice: str, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/mark_uncollectible".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def mark_uncollectible( + invoice: str, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + ... + + @overload + def mark_uncollectible( + self, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + ... + + @class_method_variant("_cls_mark_uncollectible") + def mark_uncollectible( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/mark_uncollectible".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_mark_uncollectible_async( + cls, invoice: str, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/mark_uncollectible".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def mark_uncollectible_async( + invoice: str, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + ... + + @overload + async def mark_uncollectible_async( + self, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + ... + + @class_method_variant("_cls_mark_uncollectible_async") + async def mark_uncollectible_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceMarkUncollectibleParams"] + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/mark_uncollectible".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def modify( + cls, id: str, **params: Unpack["InvoiceModifyParams"] + ) -> "Invoice": + """ + Draft invoices are fully editable. Once an invoice is [finalized](https://docs.stripe.com/docs/billing/invoices/workflow#finalized), + monetary values, as well as collection_method, become uneditable. + + If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on, + sending reminders for, or [automatically reconciling](https://docs.stripe.com/docs/billing/invoices/reconciliation) invoices, pass + auto_advance=false. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Invoice", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["InvoiceModifyParams"] + ) -> "Invoice": + """ + Draft invoices are fully editable. Once an invoice is [finalized](https://docs.stripe.com/docs/billing/invoices/workflow#finalized), + monetary values, as well as collection_method, become uneditable. + + If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on, + sending reminders for, or [automatically reconciling](https://docs.stripe.com/docs/billing/invoices/reconciliation) invoices, pass + auto_advance=false. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Invoice", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def _cls_pay( + cls, invoice: str, **params: Unpack["InvoicePayParams"] + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/pay".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def pay(invoice: str, **params: Unpack["InvoicePayParams"]) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + ... + + @overload + def pay(self, **params: Unpack["InvoicePayParams"]) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + ... + + @class_method_variant("_cls_pay") + def pay( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoicePayParams"] + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/pay".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_pay_async( + cls, invoice: str, **params: Unpack["InvoicePayParams"] + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/pay".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def pay_async( + invoice: str, **params: Unpack["InvoicePayParams"] + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + ... + + @overload + async def pay_async( + self, **params: Unpack["InvoicePayParams"] + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + ... + + @class_method_variant("_cls_pay_async") + async def pay_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoicePayParams"] + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/pay".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_remove_lines( + cls, invoice: str, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/remove_lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def remove_lines( + invoice: str, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @overload + def remove_lines( + self, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @class_method_variant("_cls_remove_lines") + def remove_lines( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/remove_lines".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_remove_lines_async( + cls, invoice: str, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/remove_lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def remove_lines_async( + invoice: str, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @overload + async def remove_lines_async( + self, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @class_method_variant("_cls_remove_lines_async") + async def remove_lines_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceRemoveLinesParams"] + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/remove_lines".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["InvoiceRetrieveParams"] + ) -> "Invoice": + """ + Retrieves the invoice with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["InvoiceRetrieveParams"] + ) -> "Invoice": + """ + Retrieves the invoice with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_send_invoice( + cls, invoice: str, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/send".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def send_invoice( + invoice: str, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + ... + + @overload + def send_invoice( + self, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + ... + + @class_method_variant("_cls_send_invoice") + def send_invoice( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/send".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_send_invoice_async( + cls, invoice: str, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/send".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def send_invoice_async( + invoice: str, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + ... + + @overload + async def send_invoice_async( + self, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + ... + + @class_method_variant("_cls_send_invoice_async") + async def send_invoice_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceSendInvoiceParams"] + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/send".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_update_lines( + cls, invoice: str, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/update_lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def update_lines( + invoice: str, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @overload + def update_lines( + self, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @class_method_variant("_cls_update_lines") + def update_lines( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/update_lines".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_update_lines_async( + cls, invoice: str, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/update_lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def update_lines_async( + invoice: str, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @overload + async def update_lines_async( + self, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + ... + + @class_method_variant("_cls_update_lines_async") + async def update_lines_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceUpdateLinesParams"] + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/update_lines".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_void_invoice( + cls, invoice: str, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + return cast( + "Invoice", + cls._static_request( + "post", + "/v1/invoices/{invoice}/void".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + def void_invoice( + invoice: str, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + ... + + @overload + def void_invoice( + self, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + ... + + @class_method_variant("_cls_void_invoice") + def void_invoice( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/void".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_void_invoice_async( + cls, invoice: str, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + return cast( + "Invoice", + await cls._static_request_async( + "post", + "/v1/invoices/{invoice}/void".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def void_invoice_async( + invoice: str, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + ... + + @overload + async def void_invoice_async( + self, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + ... + + @class_method_variant("_cls_void_invoice_async") + async def void_invoice_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceVoidInvoiceParams"] + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/void".format( + invoice=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def search( + cls, *args, **kwargs: Unpack["InvoiceSearchParams"] + ) -> SearchResultObject["Invoice"]: + """ + Search for invoices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cls._search(search_url="/v1/invoices/search", *args, **kwargs) + + @classmethod + async def search_async( + cls, *args, **kwargs: Unpack["InvoiceSearchParams"] + ) -> SearchResultObject["Invoice"]: + """ + Search for invoices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return await cls._search_async( + search_url="/v1/invoices/search", *args, **kwargs + ) + + @classmethod + def search_auto_paging_iter( + cls, *args, **kwargs: Unpack["InvoiceSearchParams"] + ) -> Iterator["Invoice"]: + return cls.search(*args, **kwargs).auto_paging_iter() + + @classmethod + async def search_auto_paging_iter_async( + cls, *args, **kwargs: Unpack["InvoiceSearchParams"] + ) -> AsyncIterator["Invoice"]: + return (await cls.search_async(*args, **kwargs)).auto_paging_iter() + + @classmethod + def list_lines( + cls, invoice: str, **params: Unpack["InvoiceListLinesParams"] + ) -> ListObject["InvoiceLineItem"]: + """ + When retrieving an invoice, you'll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["InvoiceLineItem"], + cls._static_request( + "get", + "/v1/invoices/{invoice}/lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + @classmethod + async def list_lines_async( + cls, invoice: str, **params: Unpack["InvoiceListLinesParams"] + ) -> ListObject["InvoiceLineItem"]: + """ + When retrieving an invoice, you'll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["InvoiceLineItem"], + await cls._static_request_async( + "get", + "/v1/invoices/{invoice}/lines".format( + invoice=sanitize_id(invoice) + ), + params=params, + ), + ) + + _inner_class_types = { + "automatic_tax": AutomaticTax, + "confirmation_secret": ConfirmationSecret, + "custom_fields": CustomField, + "customer_address": CustomerAddress, + "customer_shipping": CustomerShipping, + "customer_tax_ids": CustomerTaxId, + "from_invoice": FromInvoice, + "issuer": Issuer, + "last_finalization_error": LastFinalizationError, + "parent": Parent, + "payment_settings": PaymentSettings, + "rendering": Rendering, + "shipping_cost": ShippingCost, + "shipping_details": ShippingDetails, + "status_transitions": StatusTransitions, + "threshold_reason": ThresholdReason, + "total_discount_amounts": TotalDiscountAmount, + "total_pretax_credit_amounts": TotalPretaxCreditAmount, + "total_taxes": TotalTax, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_item.py new file mode 100644 index 00000000..ab1b503e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_item.py @@ -0,0 +1,438 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer import Customer + from stripe._discount import Discount + from stripe._invoice import Invoice + from stripe._tax_rate import TaxRate + from stripe.params._invoice_item_create_params import ( + InvoiceItemCreateParams, + ) + from stripe.params._invoice_item_delete_params import ( + InvoiceItemDeleteParams, + ) + from stripe.params._invoice_item_list_params import InvoiceItemListParams + from stripe.params._invoice_item_modify_params import ( + InvoiceItemModifyParams, + ) + from stripe.params._invoice_item_retrieve_params import ( + InvoiceItemRetrieveParams, + ) + from stripe.test_helpers._test_clock import TestClock + + +class InvoiceItem( + CreateableAPIResource["InvoiceItem"], + DeletableAPIResource["InvoiceItem"], + ListableAPIResource["InvoiceItem"], + UpdateableAPIResource["InvoiceItem"], +): + """ + Invoice Items represent the component lines of an [invoice](https://stripe.com/docs/api/invoices). When you create an invoice item with an `invoice` field, it is attached to the specified invoice and included as [an invoice line item](https://stripe.com/docs/api/invoices/line_item) within [invoice.lines](https://stripe.com/docs/api/invoices/object#invoice_object-lines). + + Invoice Items can be created before you are ready to actually send the invoice. This can be particularly useful when combined + with a [subscription](https://stripe.com/docs/api/subscriptions). Sometimes you want to add a charge or credit to a customer, but actually charge + or credit the customer's card only at the end of a regular billing cycle. This is useful for combining several charges + (to minimize per-transaction fees), or for having Stripe tabulate your usage-based billing totals. + + Related guides: [Integrate with the Invoicing API](https://stripe.com/docs/invoicing/integration), [Subscription Invoices](https://stripe.com/docs/billing/invoices/subscription#adding-upcoming-invoice-items). + """ + + OBJECT_NAME: ClassVar[Literal["invoiceitem"]] = "invoiceitem" + + class Parent(StripeObject): + class SubscriptionDetails(StripeObject): + subscription: str + """ + The subscription that generated this invoice item + """ + subscription_item: Optional[str] + """ + The subscription item that generated this invoice item + """ + + subscription_details: Optional[SubscriptionDetails] + """ + Details about the subscription that generated this invoice item + """ + type: Literal["subscription_details"] + """ + The type of parent that generated this invoice item + """ + _inner_class_types = {"subscription_details": SubscriptionDetails} + + class Period(StripeObject): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + class Pricing(StripeObject): + class PriceDetails(StripeObject): + price: str + """ + The ID of the price this item is associated with. + """ + product: str + """ + The ID of the product this item is associated with. + """ + + price_details: Optional[PriceDetails] + type: Literal["price_details"] + """ + The type of the pricing details. + """ + unit_amount_decimal: Optional[str] + """ + The unit amount (in the `currency` specified) of the item which contains a decimal value with at most 12 decimal places. + """ + _inner_class_types = {"price_details": PriceDetails} + + class ProrationDetails(StripeObject): + class DiscountAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the discount. + """ + discount: ExpandableField["Discount"] + """ + The discount that was applied to get this discount amount. + """ + + discount_amounts: List[DiscountAmount] + """ + Discount amounts applied when the proration was created. + """ + _inner_class_types = {"discount_amounts": DiscountAmount} + + amount: int + """ + Amount (in the `currency` specified) of the invoice item. This should always be equal to `unit_amount * quantity`. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: ExpandableField["Customer"] + """ + The ID of the customer who will be billed when this invoice item is billed. + """ + date: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + discountable: bool + """ + If true, discounts will apply to this invoice item. Always false for prorations. + """ + discounts: Optional[List[ExpandableField["Discount"]]] + """ + The discounts which apply to the invoice item. Item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount. + """ + id: str + """ + Unique identifier for the object. + """ + invoice: Optional[ExpandableField["Invoice"]] + """ + The ID of the invoice this invoice item belongs to. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + net_amount: Optional[int] + """ + The amount after discounts, but before credits and taxes. This field is `null` for `discountable=true` items. + """ + object: Literal["invoiceitem"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + parent: Optional[Parent] + """ + The parent that generated this invoice item. + """ + period: Period + pricing: Optional[Pricing] + """ + The pricing information of the invoice item. + """ + proration: bool + """ + Whether the invoice item was created automatically as a proration adjustment when the customer switched plans. + """ + proration_details: Optional[ProrationDetails] + quantity: int + """ + Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for. + """ + tax_rates: Optional[List["TaxRate"]] + """ + The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item. + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock this invoice item belongs to. + """ + + @classmethod + def create( + cls, **params: Unpack["InvoiceItemCreateParams"] + ) -> "InvoiceItem": + """ + Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified. + """ + return cast( + "InvoiceItem", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["InvoiceItemCreateParams"] + ) -> "InvoiceItem": + """ + Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified. + """ + return cast( + "InvoiceItem", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "InvoiceItem", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + ... + + @overload + def delete( + self, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "InvoiceItem", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceItemDeleteParams"] + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["InvoiceItemListParams"] + ) -> ListObject["InvoiceItem"]: + """ + Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["InvoiceItemListParams"] + ) -> ListObject["InvoiceItem"]: + """ + Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["InvoiceItemModifyParams"] + ) -> "InvoiceItem": + """ + Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it's attached to is closed. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "InvoiceItem", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["InvoiceItemModifyParams"] + ) -> "InvoiceItem": + """ + Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it's attached to is closed. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "InvoiceItem", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["InvoiceItemRetrieveParams"] + ) -> "InvoiceItem": + """ + Retrieves the invoice item with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["InvoiceItemRetrieveParams"] + ) -> "InvoiceItem": + """ + Retrieves the invoice item with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "parent": Parent, + "period": Period, + "pricing": Pricing, + "proration_details": ProrationDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_item_service.py new file mode 100644 index 00000000..1b8a8098 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_item_service.py @@ -0,0 +1,234 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._invoice_item import InvoiceItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._invoice_item_create_params import ( + InvoiceItemCreateParams, + ) + from stripe.params._invoice_item_delete_params import ( + InvoiceItemDeleteParams, + ) + from stripe.params._invoice_item_list_params import InvoiceItemListParams + from stripe.params._invoice_item_retrieve_params import ( + InvoiceItemRetrieveParams, + ) + from stripe.params._invoice_item_update_params import ( + InvoiceItemUpdateParams, + ) + + +class InvoiceItemService(StripeService): + def delete( + self, + invoiceitem: str, + params: Optional["InvoiceItemDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + return cast( + "InvoiceItem", + self._request( + "delete", + "/v1/invoiceitems/{invoiceitem}".format( + invoiceitem=sanitize_id(invoiceitem), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + invoiceitem: str, + params: Optional["InvoiceItemDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice. + """ + return cast( + "InvoiceItem", + await self._request_async( + "delete", + "/v1/invoiceitems/{invoiceitem}".format( + invoiceitem=sanitize_id(invoiceitem), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + invoiceitem: str, + params: Optional["InvoiceItemRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Retrieves the invoice item with the given ID. + """ + return cast( + "InvoiceItem", + self._request( + "get", + "/v1/invoiceitems/{invoiceitem}".format( + invoiceitem=sanitize_id(invoiceitem), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + invoiceitem: str, + params: Optional["InvoiceItemRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Retrieves the invoice item with the given ID. + """ + return cast( + "InvoiceItem", + await self._request_async( + "get", + "/v1/invoiceitems/{invoiceitem}".format( + invoiceitem=sanitize_id(invoiceitem), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + invoiceitem: str, + params: Optional["InvoiceItemUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it's attached to is closed. + """ + return cast( + "InvoiceItem", + self._request( + "post", + "/v1/invoiceitems/{invoiceitem}".format( + invoiceitem=sanitize_id(invoiceitem), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + invoiceitem: str, + params: Optional["InvoiceItemUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it's attached to is closed. + """ + return cast( + "InvoiceItem", + await self._request_async( + "post", + "/v1/invoiceitems/{invoiceitem}".format( + invoiceitem=sanitize_id(invoiceitem), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["InvoiceItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoiceItem]": + """ + Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first. + """ + return cast( + "ListObject[InvoiceItem]", + self._request( + "get", + "/v1/invoiceitems", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["InvoiceItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoiceItem]": + """ + Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first. + """ + return cast( + "ListObject[InvoiceItem]", + await self._request_async( + "get", + "/v1/invoiceitems", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "InvoiceItemCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified. + """ + return cast( + "InvoiceItem", + self._request( + "post", + "/v1/invoiceitems", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "InvoiceItemCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "InvoiceItem": + """ + Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified. + """ + return cast( + "InvoiceItem", + await self._request_async( + "post", + "/v1/invoiceitems", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_line_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_line_item.py new file mode 100644 index 00000000..b1462723 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_line_item.py @@ -0,0 +1,350 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, List, Optional, cast +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._discount import Discount + from stripe._subscription import Subscription + from stripe.billing._credit_balance_transaction import ( + CreditBalanceTransaction, + ) + + +class InvoiceLineItem(UpdateableAPIResource["InvoiceLineItem"]): + """ + Invoice Line Items represent the individual lines within an [invoice](https://stripe.com/docs/api/invoices) and only exist within the context of an invoice. + + Each line item is backed by either an [invoice item](https://stripe.com/docs/api/invoiceitems) or a [subscription item](https://stripe.com/docs/api/subscription_items). + """ + + OBJECT_NAME: ClassVar[Literal["line_item"]] = "line_item" + + class DiscountAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the discount. + """ + discount: ExpandableField["Discount"] + """ + The discount that was applied to get this discount amount. + """ + + class Parent(StripeObject): + class InvoiceItemDetails(StripeObject): + class ProrationDetails(StripeObject): + class CreditedItems(StripeObject): + invoice: str + """ + Invoice containing the credited invoice line items + """ + invoice_line_items: List[str] + """ + Credited invoice line items + """ + + credited_items: Optional[CreditedItems] + """ + For a credit proration `line_item`, the original debit line_items to which the credit proration applies. + """ + _inner_class_types = {"credited_items": CreditedItems} + + invoice_item: str + """ + The invoice item that generated this line item + """ + proration: bool + """ + Whether this is a proration + """ + proration_details: Optional[ProrationDetails] + """ + Additional details for proration line items + """ + subscription: Optional[str] + """ + The subscription that the invoice item belongs to + """ + _inner_class_types = {"proration_details": ProrationDetails} + + class SubscriptionItemDetails(StripeObject): + class ProrationDetails(StripeObject): + class CreditedItems(StripeObject): + invoice: str + """ + Invoice containing the credited invoice line items + """ + invoice_line_items: List[str] + """ + Credited invoice line items + """ + + credited_items: Optional[CreditedItems] + """ + For a credit proration `line_item`, the original debit line_items to which the credit proration applies. + """ + _inner_class_types = {"credited_items": CreditedItems} + + invoice_item: Optional[str] + """ + The invoice item that generated this line item + """ + proration: bool + """ + Whether this is a proration + """ + proration_details: Optional[ProrationDetails] + """ + Additional details for proration line items + """ + subscription: Optional[str] + """ + The subscription that the subscription item belongs to + """ + subscription_item: str + """ + The subscription item that generated this line item + """ + _inner_class_types = {"proration_details": ProrationDetails} + + invoice_item_details: Optional[InvoiceItemDetails] + """ + Details about the invoice item that generated this line item + """ + subscription_item_details: Optional[SubscriptionItemDetails] + """ + Details about the subscription item that generated this line item + """ + type: Literal["invoice_item_details", "subscription_item_details"] + """ + The type of parent that generated this line item + """ + _inner_class_types = { + "invoice_item_details": InvoiceItemDetails, + "subscription_item_details": SubscriptionItemDetails, + } + + class Period(StripeObject): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + class PretaxCreditAmount(StripeObject): + amount: int + """ + The amount, in cents (or local equivalent), of the pretax credit amount. + """ + credit_balance_transaction: Optional[ + ExpandableField["CreditBalanceTransaction"] + ] + """ + The credit balance transaction that was applied to get this pretax credit amount. + """ + discount: Optional[ExpandableField["Discount"]] + """ + The discount that was applied to get this pretax credit amount. + """ + type: Literal["credit_balance_transaction", "discount"] + """ + Type of the pretax credit amount referenced. + """ + + class Pricing(StripeObject): + class PriceDetails(StripeObject): + price: str + """ + The ID of the price this item is associated with. + """ + product: str + """ + The ID of the product this item is associated with. + """ + + price_details: Optional[PriceDetails] + type: Literal["price_details"] + """ + The type of the pricing details. + """ + unit_amount_decimal: Optional[str] + """ + The unit amount (in the `currency` specified) of the item which contains a decimal value with at most 12 decimal places. + """ + _inner_class_types = {"price_details": PriceDetails} + + class Tax(StripeObject): + class TaxRateDetails(StripeObject): + tax_rate: str + + amount: int + """ + The amount of the tax, in cents (or local equivalent). + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Whether this tax is inclusive or exclusive. + """ + tax_rate_details: Optional[TaxRateDetails] + """ + Additional details about the tax rate. Only present when `type` is `tax_rate_details`. + """ + taxability_reason: Literal[ + "customer_exempt", + "not_available", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + type: Literal["tax_rate_details"] + """ + The type of tax information. + """ + _inner_class_types = {"tax_rate_details": TaxRateDetails} + + amount: int + """ + The amount, in cents (or local equivalent). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + discount_amounts: Optional[List[DiscountAmount]] + """ + The amount of discount calculated per discount for this line item. + """ + discountable: bool + """ + If true, discounts will apply to this line item. Always false for prorations. + """ + discounts: List[ExpandableField["Discount"]] + """ + The discounts applied to the invoice line item. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount. + """ + id: str + """ + Unique identifier for the object. + """ + invoice: Optional[str] + """ + The ID of the invoice that contains this line item. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription`, `metadata` reflects the current metadata from the subscription associated with the line item, unless the invoice line was directly updated with different metadata after creation. + """ + object: Literal["line_item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + parent: Optional[Parent] + """ + The parent that generated this line item. + """ + period: Period + pretax_credit_amounts: Optional[List[PretaxCreditAmount]] + """ + Contains pretax credit amounts (ex: discount, credit grants, etc) that apply to this line item. + """ + pricing: Optional[Pricing] + """ + The pricing information of the line item. + """ + quantity: Optional[int] + """ + The quantity of the subscription, if the line item is a subscription or a proration. + """ + subscription: Optional[ExpandableField["Subscription"]] + taxes: Optional[List[Tax]] + """ + The tax information of the line item. + """ + + @classmethod + def modify( + cls, invoice: str, line_item_id: str, **params + ) -> "InvoiceLineItem": + """ + Updates an invoice's line item. Some fields, such as tax_amounts, only live on the invoice line item, + so they can only be updated through this endpoint. Other fields, such as amount, live on both the invoice + item and the invoice line item, so updates on this endpoint will propagate to the invoice item as well. + Updating an invoice's line item is only possible before the invoice is finalized. + """ + url = "/v1/invoices/%s/lines/%s" % ( + sanitize_id(invoice), + sanitize_id(line_item_id), + ) + return cast( + "InvoiceLineItem", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, invoice: str, line_item_id: str, **params + ) -> "InvoiceLineItem": + """ + Updates an invoice's line item. Some fields, such as tax_amounts, only live on the invoice line item, + so they can only be updated through this endpoint. Other fields, such as amount, live on both the invoice + item and the invoice line item, so updates on this endpoint will propagate to the invoice item as well. + Updating an invoice's line item is only possible before the invoice is finalized. + """ + url = "/v1/invoices/%s/lines/%s" % ( + sanitize_id(invoice), + sanitize_id(line_item_id), + ) + return cast( + "InvoiceLineItem", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + _inner_class_types = { + "discount_amounts": DiscountAmount, + "parent": Parent, + "period": Period, + "pretax_credit_amounts": PretaxCreditAmount, + "pricing": Pricing, + "taxes": Tax, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_line_item_service.py new file mode 100644 index 00000000..fde1d01d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_line_item_service.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._invoice_line_item import InvoiceLineItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._invoice_line_item_list_params import ( + InvoiceLineItemListParams, + ) + from stripe.params._invoice_line_item_update_params import ( + InvoiceLineItemUpdateParams, + ) + + +class InvoiceLineItemService(StripeService): + def list( + self, + invoice: str, + params: Optional["InvoiceLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoiceLineItem]": + """ + When retrieving an invoice, you'll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[InvoiceLineItem]", + self._request( + "get", + "/v1/invoices/{invoice}/lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + invoice: str, + params: Optional["InvoiceLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoiceLineItem]": + """ + When retrieving an invoice, you'll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[InvoiceLineItem]", + await self._request_async( + "get", + "/v1/invoices/{invoice}/lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + invoice: str, + line_item_id: str, + params: Optional["InvoiceLineItemUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceLineItem": + """ + Updates an invoice's line item. Some fields, such as tax_amounts, only live on the invoice line item, + so they can only be updated through this endpoint. Other fields, such as amount, live on both the invoice + item and the invoice line item, so updates on this endpoint will propagate to the invoice item as well. + Updating an invoice's line item is only possible before the invoice is finalized. + """ + return cast( + "InvoiceLineItem", + self._request( + "post", + "/v1/invoices/{invoice}/lines/{line_item_id}".format( + invoice=sanitize_id(invoice), + line_item_id=sanitize_id(line_item_id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + invoice: str, + line_item_id: str, + params: Optional["InvoiceLineItemUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceLineItem": + """ + Updates an invoice's line item. Some fields, such as tax_amounts, only live on the invoice line item, + so they can only be updated through this endpoint. Other fields, such as amount, live on both the invoice + item and the invoice line item, so updates on this endpoint will propagate to the invoice item as well. + Updating an invoice's line item is only possible before the invoice is finalized. + """ + return cast( + "InvoiceLineItem", + await self._request_async( + "post", + "/v1/invoices/{invoice}/lines/{line_item_id}".format( + invoice=sanitize_id(invoice), + line_item_id=sanitize_id(line_item_id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_payment.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_payment.py new file mode 100644 index 00000000..a66e0806 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_payment.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._charge import Charge + from stripe._invoice import Invoice + from stripe._payment_intent import PaymentIntent + from stripe._payment_record import PaymentRecord + from stripe.params._invoice_payment_list_params import ( + InvoicePaymentListParams, + ) + from stripe.params._invoice_payment_retrieve_params import ( + InvoicePaymentRetrieveParams, + ) + + +class InvoicePayment(ListableAPIResource["InvoicePayment"]): + """ + Invoice Payments represent payments made against invoices. Invoice Payments can + be accessed in two ways: + 1. By expanding the `payments` field on the [Invoice](https://stripe.com/docs/api#invoice) resource. + 2. By using the Invoice Payment retrieve and list endpoints. + + Invoice Payments include the mapping between payment objects, such as Payment Intent, and Invoices. + This resource and its endpoints allows you to easily track if a payment is associated with a specific invoice and + monitor the allocation details of the payments. + """ + + OBJECT_NAME: ClassVar[Literal["invoice_payment"]] = "invoice_payment" + + class Payment(StripeObject): + charge: Optional[ExpandableField["Charge"]] + """ + ID of the successful charge for this payment when `type` is `charge`.Note: charge is only surfaced if the charge object is not associated with a payment intent. If the charge object does have a payment intent, the Invoice Payment surfaces the payment intent instead. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + ID of the PaymentIntent associated with this payment when `type` is `payment_intent`. Note: This property is only populated for invoices finalized on or after March 15th, 2019. + """ + payment_record: Optional[ExpandableField["PaymentRecord"]] + """ + ID of the PaymentRecord associated with this payment when `type` is `payment_record`. + """ + type: Literal["charge", "payment_intent", "payment_record"] + """ + Type of payment object associated with this invoice payment. + """ + + class StatusTransitions(StripeObject): + canceled_at: Optional[int] + """ + The time that the payment was canceled. + """ + paid_at: Optional[int] + """ + The time that the payment succeeded. + """ + + amount_paid: Optional[int] + """ + Amount that was actually paid for this invoice, in cents (or local equivalent). This field is null until the payment is `paid`. This amount can be less than the `amount_requested` if the PaymentIntent's `amount_received` is not sufficient to pay all of the invoices that it is attached to. + """ + amount_requested: int + """ + Amount intended to be paid toward this invoice, in cents (or local equivalent) + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + id: str + """ + Unique identifier for the object. + """ + invoice: ExpandableField["Invoice"] + """ + The invoice that was paid. + """ + is_default: bool + """ + Stripe automatically creates a default InvoicePayment when the invoice is finalized, and keeps it synchronized with the invoice's `amount_remaining`. The PaymentIntent associated with the default payment can't be edited or canceled directly. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["invoice_payment"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment: Payment + status: str + """ + The status of the payment, one of `open`, `paid`, or `canceled`. + """ + status_transitions: StatusTransitions + + @classmethod + def list( + cls, **params: Unpack["InvoicePaymentListParams"] + ) -> ListObject["InvoicePayment"]: + """ + When retrieving an invoice, there is an includable payments property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of payments. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["InvoicePaymentListParams"] + ) -> ListObject["InvoicePayment"]: + """ + When retrieving an invoice, there is an includable payments property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of payments. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["InvoicePaymentRetrieveParams"] + ) -> "InvoicePayment": + """ + Retrieves the invoice payment with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["InvoicePaymentRetrieveParams"] + ) -> "InvoicePayment": + """ + Retrieves the invoice payment with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "payment": Payment, + "status_transitions": StatusTransitions, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_payment_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_payment_service.py new file mode 100644 index 00000000..c7e998e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_payment_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._invoice_payment import InvoicePayment + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._invoice_payment_list_params import ( + InvoicePaymentListParams, + ) + from stripe.params._invoice_payment_retrieve_params import ( + InvoicePaymentRetrieveParams, + ) + + +class InvoicePaymentService(StripeService): + def list( + self, + params: Optional["InvoicePaymentListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoicePayment]": + """ + When retrieving an invoice, there is an includable payments property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of payments. + """ + return cast( + "ListObject[InvoicePayment]", + self._request( + "get", + "/v1/invoice_payments", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["InvoicePaymentListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoicePayment]": + """ + When retrieving an invoice, there is an includable payments property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of payments. + """ + return cast( + "ListObject[InvoicePayment]", + await self._request_async( + "get", + "/v1/invoice_payments", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + invoice_payment: str, + params: Optional["InvoicePaymentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoicePayment": + """ + Retrieves the invoice payment with the given ID. + """ + return cast( + "InvoicePayment", + self._request( + "get", + "/v1/invoice_payments/{invoice_payment}".format( + invoice_payment=sanitize_id(invoice_payment), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + invoice_payment: str, + params: Optional["InvoicePaymentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoicePayment": + """ + Retrieves the invoice payment with the given ID. + """ + return cast( + "InvoicePayment", + await self._request_async( + "get", + "/v1/invoice_payments/{invoice_payment}".format( + invoice_payment=sanitize_id(invoice_payment), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_rendering_template.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_rendering_template.py new file mode 100644 index 00000000..93965201 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_rendering_template.py @@ -0,0 +1,364 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._invoice_rendering_template_archive_params import ( + InvoiceRenderingTemplateArchiveParams, + ) + from stripe.params._invoice_rendering_template_list_params import ( + InvoiceRenderingTemplateListParams, + ) + from stripe.params._invoice_rendering_template_retrieve_params import ( + InvoiceRenderingTemplateRetrieveParams, + ) + from stripe.params._invoice_rendering_template_unarchive_params import ( + InvoiceRenderingTemplateUnarchiveParams, + ) + + +class InvoiceRenderingTemplate( + ListableAPIResource["InvoiceRenderingTemplate"] +): + """ + Invoice Rendering Templates are used to configure how invoices are rendered on surfaces like the PDF. Invoice Rendering Templates + can be created from within the Dashboard, and they can be used over the API when creating invoices. + """ + + OBJECT_NAME: ClassVar[Literal["invoice_rendering_template"]] = ( + "invoice_rendering_template" + ) + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + nickname: Optional[str] + """ + A brief description of the template, hidden from customers + """ + object: Literal["invoice_rendering_template"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["active", "archived"] + """ + The status of the template, one of `active` or `archived`. + """ + version: int + """ + Version of this template; version increases by one when an update on the template changes any field that controls invoice rendering + """ + + @classmethod + def _cls_archive( + cls, + template: str, + **params: Unpack["InvoiceRenderingTemplateArchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + return cast( + "InvoiceRenderingTemplate", + cls._static_request( + "post", + "/v1/invoice_rendering_templates/{template}/archive".format( + template=sanitize_id(template) + ), + params=params, + ), + ) + + @overload + @staticmethod + def archive( + template: str, + **params: Unpack["InvoiceRenderingTemplateArchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + ... + + @overload + def archive( + self, **params: Unpack["InvoiceRenderingTemplateArchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + ... + + @class_method_variant("_cls_archive") + def archive( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceRenderingTemplateArchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + return cast( + "InvoiceRenderingTemplate", + self._request( + "post", + "/v1/invoice_rendering_templates/{template}/archive".format( + template=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_archive_async( + cls, + template: str, + **params: Unpack["InvoiceRenderingTemplateArchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + return cast( + "InvoiceRenderingTemplate", + await cls._static_request_async( + "post", + "/v1/invoice_rendering_templates/{template}/archive".format( + template=sanitize_id(template) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def archive_async( + template: str, + **params: Unpack["InvoiceRenderingTemplateArchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + ... + + @overload + async def archive_async( + self, **params: Unpack["InvoiceRenderingTemplateArchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + ... + + @class_method_variant("_cls_archive_async") + async def archive_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceRenderingTemplateArchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + return cast( + "InvoiceRenderingTemplate", + await self._request_async( + "post", + "/v1/invoice_rendering_templates/{template}/archive".format( + template=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["InvoiceRenderingTemplateListParams"] + ) -> ListObject["InvoiceRenderingTemplate"]: + """ + List all templates, ordered by creation date, with the most recently created template appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["InvoiceRenderingTemplateListParams"] + ) -> ListObject["InvoiceRenderingTemplate"]: + """ + List all templates, ordered by creation date, with the most recently created template appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, + id: str, + **params: Unpack["InvoiceRenderingTemplateRetrieveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Retrieves an invoice rendering template with the given ID. It by default returns the latest version of the template. Optionally, specify a version to see previous versions. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, + id: str, + **params: Unpack["InvoiceRenderingTemplateRetrieveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Retrieves an invoice rendering template with the given ID. It by default returns the latest version of the template. Optionally, specify a version to see previous versions. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_unarchive( + cls, + template: str, + **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + return cast( + "InvoiceRenderingTemplate", + cls._static_request( + "post", + "/v1/invoice_rendering_templates/{template}/unarchive".format( + template=sanitize_id(template) + ), + params=params, + ), + ) + + @overload + @staticmethod + def unarchive( + template: str, + **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + ... + + @overload + def unarchive( + self, **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + ... + + @class_method_variant("_cls_unarchive") + def unarchive( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + return cast( + "InvoiceRenderingTemplate", + self._request( + "post", + "/v1/invoice_rendering_templates/{template}/unarchive".format( + template=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_unarchive_async( + cls, + template: str, + **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + return cast( + "InvoiceRenderingTemplate", + await cls._static_request_async( + "post", + "/v1/invoice_rendering_templates/{template}/unarchive".format( + template=sanitize_id(template) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def unarchive_async( + template: str, + **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"], + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + ... + + @overload + async def unarchive_async( + self, **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + ... + + @class_method_variant("_cls_unarchive_async") + async def unarchive_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InvoiceRenderingTemplateUnarchiveParams"] + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + return cast( + "InvoiceRenderingTemplate", + await self._request_async( + "post", + "/v1/invoice_rendering_templates/{template}/unarchive".format( + template=sanitize_id(self.get("id")) + ), + params=params, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_rendering_template_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_rendering_template_service.py new file mode 100644 index 00000000..674bc2b5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_rendering_template_service.py @@ -0,0 +1,195 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._invoice_rendering_template import InvoiceRenderingTemplate + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._invoice_rendering_template_archive_params import ( + InvoiceRenderingTemplateArchiveParams, + ) + from stripe.params._invoice_rendering_template_list_params import ( + InvoiceRenderingTemplateListParams, + ) + from stripe.params._invoice_rendering_template_retrieve_params import ( + InvoiceRenderingTemplateRetrieveParams, + ) + from stripe.params._invoice_rendering_template_unarchive_params import ( + InvoiceRenderingTemplateUnarchiveParams, + ) + + +class InvoiceRenderingTemplateService(StripeService): + def list( + self, + params: Optional["InvoiceRenderingTemplateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoiceRenderingTemplate]": + """ + List all templates, ordered by creation date, with the most recently created template appearing first. + """ + return cast( + "ListObject[InvoiceRenderingTemplate]", + self._request( + "get", + "/v1/invoice_rendering_templates", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["InvoiceRenderingTemplateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InvoiceRenderingTemplate]": + """ + List all templates, ordered by creation date, with the most recently created template appearing first. + """ + return cast( + "ListObject[InvoiceRenderingTemplate]", + await self._request_async( + "get", + "/v1/invoice_rendering_templates", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + template: str, + params: Optional["InvoiceRenderingTemplateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceRenderingTemplate": + """ + Retrieves an invoice rendering template with the given ID. It by default returns the latest version of the template. Optionally, specify a version to see previous versions. + """ + return cast( + "InvoiceRenderingTemplate", + self._request( + "get", + "/v1/invoice_rendering_templates/{template}".format( + template=sanitize_id(template), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + template: str, + params: Optional["InvoiceRenderingTemplateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceRenderingTemplate": + """ + Retrieves an invoice rendering template with the given ID. It by default returns the latest version of the template. Optionally, specify a version to see previous versions. + """ + return cast( + "InvoiceRenderingTemplate", + await self._request_async( + "get", + "/v1/invoice_rendering_templates/{template}".format( + template=sanitize_id(template), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def archive( + self, + template: str, + params: Optional["InvoiceRenderingTemplateArchiveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + return cast( + "InvoiceRenderingTemplate", + self._request( + "post", + "/v1/invoice_rendering_templates/{template}/archive".format( + template=sanitize_id(template), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def archive_async( + self, + template: str, + params: Optional["InvoiceRenderingTemplateArchiveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceRenderingTemplate": + """ + Updates the status of an invoice rendering template to ‘archived' so no new Stripe objects (customers, invoices, etc.) can reference it. The template can also no longer be updated. However, if the template is already set on a Stripe object, it will continue to be applied on invoices generated by it. + """ + return cast( + "InvoiceRenderingTemplate", + await self._request_async( + "post", + "/v1/invoice_rendering_templates/{template}/archive".format( + template=sanitize_id(template), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def unarchive( + self, + template: str, + params: Optional["InvoiceRenderingTemplateUnarchiveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + return cast( + "InvoiceRenderingTemplate", + self._request( + "post", + "/v1/invoice_rendering_templates/{template}/unarchive".format( + template=sanitize_id(template), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def unarchive_async( + self, + template: str, + params: Optional["InvoiceRenderingTemplateUnarchiveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InvoiceRenderingTemplate": + """ + Unarchive an invoice rendering template so it can be used on new Stripe objects again. + """ + return cast( + "InvoiceRenderingTemplate", + await self._request_async( + "post", + "/v1/invoice_rendering_templates/{template}/unarchive".format( + template=sanitize_id(template), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_service.py new file mode 100644 index 00000000..e77cf596 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_invoice_service.py @@ -0,0 +1,802 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._invoice import Invoice + from stripe._invoice_line_item_service import InvoiceLineItemService + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._search_result_object import SearchResultObject + from stripe.params._invoice_add_lines_params import InvoiceAddLinesParams + from stripe.params._invoice_attach_payment_params import ( + InvoiceAttachPaymentParams, + ) + from stripe.params._invoice_create_params import InvoiceCreateParams + from stripe.params._invoice_create_preview_params import ( + InvoiceCreatePreviewParams, + ) + from stripe.params._invoice_delete_params import InvoiceDeleteParams + from stripe.params._invoice_finalize_invoice_params import ( + InvoiceFinalizeInvoiceParams, + ) + from stripe.params._invoice_list_params import InvoiceListParams + from stripe.params._invoice_mark_uncollectible_params import ( + InvoiceMarkUncollectibleParams, + ) + from stripe.params._invoice_pay_params import InvoicePayParams + from stripe.params._invoice_remove_lines_params import ( + InvoiceRemoveLinesParams, + ) + from stripe.params._invoice_retrieve_params import InvoiceRetrieveParams + from stripe.params._invoice_search_params import InvoiceSearchParams + from stripe.params._invoice_send_invoice_params import ( + InvoiceSendInvoiceParams, + ) + from stripe.params._invoice_update_lines_params import ( + InvoiceUpdateLinesParams, + ) + from stripe.params._invoice_update_params import InvoiceUpdateParams + from stripe.params._invoice_void_invoice_params import ( + InvoiceVoidInvoiceParams, + ) + +_subservices = { + "line_items": [ + "stripe._invoice_line_item_service", + "InvoiceLineItemService", + ], +} + + +class InvoiceService(StripeService): + line_items: "InvoiceLineItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def delete( + self, + invoice: str, + params: Optional["InvoiceDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + return cast( + "Invoice", + self._request( + "delete", + "/v1/invoices/{invoice}".format(invoice=sanitize_id(invoice)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + invoice: str, + params: Optional["InvoiceDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice). + """ + return cast( + "Invoice", + await self._request_async( + "delete", + "/v1/invoices/{invoice}".format(invoice=sanitize_id(invoice)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + invoice: str, + params: Optional["InvoiceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Retrieves the invoice with the given ID. + """ + return cast( + "Invoice", + self._request( + "get", + "/v1/invoices/{invoice}".format(invoice=sanitize_id(invoice)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + invoice: str, + params: Optional["InvoiceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Retrieves the invoice with the given ID. + """ + return cast( + "Invoice", + await self._request_async( + "get", + "/v1/invoices/{invoice}".format(invoice=sanitize_id(invoice)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + invoice: str, + params: Optional["InvoiceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Draft invoices are fully editable. Once an invoice is [finalized](https://docs.stripe.com/docs/billing/invoices/workflow#finalized), + monetary values, as well as collection_method, become uneditable. + + If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on, + sending reminders for, or [automatically reconciling](https://docs.stripe.com/docs/billing/invoices/reconciliation) invoices, pass + auto_advance=false. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}".format(invoice=sanitize_id(invoice)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + invoice: str, + params: Optional["InvoiceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Draft invoices are fully editable. Once an invoice is [finalized](https://docs.stripe.com/docs/billing/invoices/workflow#finalized), + monetary values, as well as collection_method, become uneditable. + + If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on, + sending reminders for, or [automatically reconciling](https://docs.stripe.com/docs/billing/invoices/reconciliation) invoices, pass + auto_advance=false. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}".format(invoice=sanitize_id(invoice)), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["InvoiceListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Invoice]": + """ + You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first. + """ + return cast( + "ListObject[Invoice]", + self._request( + "get", + "/v1/invoices", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["InvoiceListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Invoice]": + """ + You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first. + """ + return cast( + "ListObject[Invoice]", + await self._request_async( + "get", + "/v1/invoices", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["InvoiceCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or send](https://docs.stripe.com/api#finalize_invoice) the invoice to your customers. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["InvoiceCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or send](https://docs.stripe.com/api#finalize_invoice) the invoice to your customers. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices", + base_address="api", + params=params, + options=options, + ), + ) + + def search( + self, + params: "InvoiceSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Invoice]": + """ + Search for invoices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Invoice]", + self._request( + "get", + "/v1/invoices/search", + base_address="api", + params=params, + options=options, + ), + ) + + async def search_async( + self, + params: "InvoiceSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Invoice]": + """ + Search for invoices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Invoice]", + await self._request_async( + "get", + "/v1/invoices/search", + base_address="api", + params=params, + options=options, + ), + ) + + def add_lines( + self, + invoice: str, + params: "InvoiceAddLinesParams", + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/add_lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def add_lines_async( + self, + invoice: str, + params: "InvoiceAddLinesParams", + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/add_lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def attach_payment( + self, + invoice: str, + params: Optional["InvoiceAttachPaymentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/attach_payment".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def attach_payment_async( + self, + invoice: str, + params: Optional["InvoiceAttachPaymentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments. + + For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited + to the invoice, increasing its amount_paid. When the invoice is fully paid, the + invoice's status becomes paid. + + If the PaymentIntent's status is already succeeded when it's attached, it's + credited to the invoice immediately. + + See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/attach_payment".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def finalize_invoice( + self, + invoice: str, + params: Optional["InvoiceFinalizeInvoiceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/finalize".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def finalize_invoice_async( + self, + invoice: str, + params: Optional["InvoiceFinalizeInvoiceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/finalize".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def mark_uncollectible( + self, + invoice: str, + params: Optional["InvoiceMarkUncollectibleParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/mark_uncollectible".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def mark_uncollectible_async( + self, + invoice: str, + params: Optional["InvoiceMarkUncollectibleParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/mark_uncollectible".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def pay( + self, + invoice: str, + params: Optional["InvoicePayParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/pay".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def pay_async( + self, + invoice: str, + params: Optional["InvoicePayParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/pay".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def remove_lines( + self, + invoice: str, + params: "InvoiceRemoveLinesParams", + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/remove_lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def remove_lines_async( + self, + invoice: str, + params: "InvoiceRemoveLinesParams", + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/remove_lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def send_invoice( + self, + invoice: str, + params: Optional["InvoiceSendInvoiceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/send".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def send_invoice_async( + self, + invoice: str, + params: Optional["InvoiceSendInvoiceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Stripe will automatically send invoices to customers according to your [subscriptions settings](https://dashboard.stripe.com/account/billing/automatic). However, if you'd like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email. + + Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/send".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update_lines( + self, + invoice: str, + params: "InvoiceUpdateLinesParams", + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/update_lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_lines_async( + self, + invoice: str, + params: "InvoiceUpdateLinesParams", + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/update_lines".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def void_invoice( + self, + invoice: str, + params: Optional["InvoiceVoidInvoiceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/{invoice}/void".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def void_invoice_async( + self, + invoice: str, + params: Optional["InvoiceVoidInvoiceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found. + + Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business. + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/{invoice}/void".format( + invoice=sanitize_id(invoice), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create_preview( + self, + params: Optional["InvoiceCreatePreviewParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + At any time, you can preview the upcoming invoice for a subscription or subscription schedule. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice. + + You can also preview the effects of creating or updating a subscription or subscription schedule, including a preview of any prorations that will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. + + The recommended way to get only the prorations being previewed on the invoice is to consider line items where parent.subscription_item_details.proration is true. + + Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount. + + Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. [Learn more](https://docs.stripe.com/currencies/conversions) + """ + return cast( + "Invoice", + self._request( + "post", + "/v1/invoices/create_preview", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_preview_async( + self, + params: Optional["InvoiceCreatePreviewParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Invoice": + """ + At any time, you can preview the upcoming invoice for a subscription or subscription schedule. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice. + + You can also preview the effects of creating or updating a subscription or subscription schedule, including a preview of any prorations that will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. + + The recommended way to get only the prorations being previewed on the invoice is to consider line items where parent.subscription_item_details.proration is true. + + Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount. + + Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. [Learn more](https://docs.stripe.com/currencies/conversions) + """ + return cast( + "Invoice", + await self._request_async( + "post", + "/v1/invoices/create_preview", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_issuing_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_issuing_service.py new file mode 100644 index 00000000..50539d21 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_issuing_service.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.issuing._authorization_service import AuthorizationService + from stripe.issuing._card_service import CardService + from stripe.issuing._cardholder_service import CardholderService + from stripe.issuing._dispute_service import DisputeService + from stripe.issuing._personalization_design_service import ( + PersonalizationDesignService, + ) + from stripe.issuing._physical_bundle_service import PhysicalBundleService + from stripe.issuing._token_service import TokenService + from stripe.issuing._transaction_service import TransactionService + +_subservices = { + "authorizations": [ + "stripe.issuing._authorization_service", + "AuthorizationService", + ], + "cards": ["stripe.issuing._card_service", "CardService"], + "cardholders": ["stripe.issuing._cardholder_service", "CardholderService"], + "disputes": ["stripe.issuing._dispute_service", "DisputeService"], + "personalization_designs": [ + "stripe.issuing._personalization_design_service", + "PersonalizationDesignService", + ], + "physical_bundles": [ + "stripe.issuing._physical_bundle_service", + "PhysicalBundleService", + ], + "tokens": ["stripe.issuing._token_service", "TokenService"], + "transactions": [ + "stripe.issuing._transaction_service", + "TransactionService", + ], +} + + +class IssuingService(StripeService): + authorizations: "AuthorizationService" + cards: "CardService" + cardholders: "CardholderService" + disputes: "DisputeService" + personalization_designs: "PersonalizationDesignService" + physical_bundles: "PhysicalBundleService" + tokens: "TokenService" + transactions: "TransactionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_line_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/_line_item.py new file mode 100644 index 00000000..1df60f0a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_line_item.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._discount import Discount as DiscountResource + from stripe._price import Price + from stripe._tax_rate import TaxRate + + +class LineItem(StripeObject): + """ + A line item. + """ + + OBJECT_NAME: ClassVar[Literal["item"]] = "item" + + class Discount(StripeObject): + amount: int + """ + The amount discounted. + """ + discount: "DiscountResource" + """ + A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes). + It contains information about when the discount began, when it will end, and what it is applied to. + + Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) + """ + + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + amount_discount: int + """ + Total discount amount applied. If no discounts were applied, defaults to 0. + """ + amount_subtotal: int + """ + Total before any discounts or taxes are applied. + """ + amount_tax: int + """ + Total tax amount applied. If no tax was applied, defaults to 0. + """ + amount_total: int + """ + Total after discounts and taxes. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name. + """ + discounts: Optional[List[Discount]] + """ + The discounts applied to the line item. + """ + id: str + """ + Unique identifier for the object. + """ + object: Literal["item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + price: Optional["Price"] + """ + The price used to generate the line item. + """ + quantity: Optional[int] + """ + The quantity of products being purchased. + """ + taxes: Optional[List[Tax]] + """ + The taxes applied to the line item. + """ + _inner_class_types = {"discounts": Discount, "taxes": Tax} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_list_object.py b/Backend/venv/lib/python3.12/site-packages/stripe/_list_object.py new file mode 100644 index 00000000..d2daa3b5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_list_object.py @@ -0,0 +1,257 @@ +# pyright: strict, reportUnnecessaryTypeIgnoreComment=false +# reportUnnecessaryTypeIgnoreComment is set to false because some type ignores are required in some +# python versions but not the others +from typing_extensions import Self, Unpack + +from typing import ( + Any, + AsyncIterator, + Iterator, + List, + Generic, + TypeVar, + cast, + Mapping, +) +from stripe._api_requestor import ( + _APIRequestor, # pyright: ignore[reportPrivateUsage] +) +from stripe._any_iterator import AnyIterator +from stripe._stripe_object import StripeObject +from stripe._request_options import RequestOptions, extract_options_from_dict + +from urllib.parse import quote_plus + + +T = TypeVar("T", bound=StripeObject) + + +class ListObject(StripeObject, Generic[T]): + OBJECT_NAME = "list" + data: List[T] + has_more: bool + url: str + + def _get_url_for_list(self) -> str: + url = self.get("url") + if not isinstance(url, str): + raise ValueError( + 'Cannot call .list on a list object without a string "url" property' + ) + return url + + def list(self, **params: Mapping[str, Any]) -> Self: + return cast( + Self, + self._request( + "get", + self._get_url_for_list(), + params=params, + base_address="api", + ), + ) + + async def list_async(self, **params: Mapping[str, Any]) -> Self: + return cast( + Self, + await self._request_async( + "get", + self._get_url_for_list(), + params=params, + base_address="api", + ), + ) + + def create(self, **params: Mapping[str, Any]) -> T: + url = self.get("url") + if not isinstance(url, str): + raise ValueError( + 'Cannot call .create on a list object for the collection of an object without a string "url" property' + ) + return cast( + T, + self._request( + "post", + url, + params=params, + base_address="api", + ), + ) + + def retrieve(self, id: str, **params: Mapping[str, Any]): + url = self.get("url") + if not isinstance(url, str): + raise ValueError( + 'Cannot call .retrieve on a list object for the collection of an object without a string "url" property' + ) + + url = "%s/%s" % (self.get("url"), quote_plus(id)) + return cast( + T, + self._request( + "get", + url, + params=params, + base_address="api", + ), + ) + + def __getitem__(self, k: str) -> T: + if isinstance(k, str): # pyright: ignore + return super(ListObject, self).__getitem__(k) + else: + raise KeyError( + "You tried to access the %s index, but ListObject types only " + "support string keys. (HINT: List calls return an object with " + "a 'data' (which is the data array). You likely want to call " + ".data[%s])" % (repr(k), repr(k)) + ) + + # Pyright doesn't like this because ListObject inherits from StripeObject inherits from Dict[str, Any] + # and so it wants the type of __iter__ to agree with __iter__ from Dict[str, Any] + # But we are iterating through "data", which is a List[T]. + def __iter__( # pyright: ignore + self, + ) -> Iterator[T]: + return getattr(self, "data", []).__iter__() + + def __len__(self) -> int: + return getattr(self, "data", []).__len__() + + def __reversed__(self) -> Iterator[T]: # pyright: ignore (see above) + return getattr(self, "data", []).__reversed__() + + def auto_paging_iter(self) -> AnyIterator[T]: + return AnyIterator( + self._auto_paging_iter(), + self._auto_paging_iter_async(), + ) + + def _auto_paging_iter(self) -> Iterator[T]: + page = self + + while True: + if ( + self._retrieve_params.get("ending_before") is not None + and self._retrieve_params.get("starting_after") is None + ): + for item in reversed(page): + yield item + page = page.previous_page() + else: + for item in page: + yield item + page = page.next_page() + + if page.is_empty: + break + + async def _auto_paging_iter_async(self) -> AsyncIterator[T]: + page = self + + while True: + if ( + self._retrieve_params.get("ending_before") is not None + and self._retrieve_params.get("starting_after") is None + ): + for item in reversed(page): + yield item + page = await page.previous_page_async() + else: + for item in page: + yield item + page = await page.next_page_async() + + if page.is_empty: + break + + @classmethod + def _empty_list( + cls, + **params: Unpack[RequestOptions], + ) -> Self: + return cls._construct_from( + values={"data": []}, + last_response=None, + requestor=_APIRequestor._global_with_options( # pyright: ignore[reportPrivateUsage] + **params, + ), + api_mode="V1", + ) + + @property + def is_empty(self) -> bool: + return not self.data + + def _get_filters_for_next_page( + self, params: RequestOptions + ) -> Mapping[str, Any]: + last_id = getattr(self.data[-1], "id") + if not last_id: + raise ValueError( + "Unexpected: element in .data of list object had no id" + ) + + params_with_filters = dict(self._retrieve_params) + params_with_filters.update({"starting_after": last_id}) + params_with_filters.update(params) + return params_with_filters + + def next_page(self, **params: Unpack[RequestOptions]) -> Self: + if not self.has_more: + request_options, _ = extract_options_from_dict(params) + return self._empty_list( + **request_options, + ) + return self.list( + **self._get_filters_for_next_page(params), + ) + + async def next_page_async(self, **params: Unpack[RequestOptions]) -> Self: + if not self.has_more: + request_options, _ = extract_options_from_dict(params) + return self._empty_list( + **request_options, + ) + + return await self.list_async(**self._get_filters_for_next_page(params)) + + def _get_filters_for_previous_page( + self, params: RequestOptions + ) -> Mapping[str, Any]: + first_id = getattr(self.data[0], "id") + if not first_id: + raise ValueError( + "Unexpected: element in .data of list object had no id" + ) + + params_with_filters = dict(self._retrieve_params) + params_with_filters.update({"ending_before": first_id}) + params_with_filters.update(params) + return params_with_filters + + def previous_page(self, **params: Unpack[RequestOptions]) -> Self: + if not self.has_more: + request_options, _ = extract_options_from_dict(params) + return self._empty_list( + **request_options, + ) + + result = self.list( + **self._get_filters_for_previous_page(params), + ) + return result + + async def previous_page_async( + self, **params: Unpack[RequestOptions] + ) -> Self: + if not self.has_more: + request_options, _ = extract_options_from_dict(params) + return self._empty_list( + **request_options, + ) + + result = await self.list_async( + **self._get_filters_for_previous_page(params) + ) + return result diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_listable_api_resource.py b/Backend/venv/lib/python3.12/site-packages/stripe/_listable_api_resource.py new file mode 100644 index 00000000..ea2b4b8b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_listable_api_resource.py @@ -0,0 +1,31 @@ +from stripe._api_resource import APIResource +from stripe._list_object import ListObject +from stripe._stripe_object import StripeObject +from typing import TypeVar + +T = TypeVar("T", bound=StripeObject) + +# TODO(major): 1704 - remove this class and all internal usages. `.list` is already inlined into the resource classes. +# Although we should inline .auto_paging_iter into the resource classes as well. + + +class ListableAPIResource(APIResource[T]): + @classmethod + def auto_paging_iter(cls, **params): + return cls.list(**params).auto_paging_iter() + + @classmethod + def list(cls, **params) -> ListObject[T]: + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__,) + ) + + return result diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_login_link.py b/Backend/venv/lib/python3.12/site-packages/stripe/_login_link.py new file mode 100644 index 00000000..d3cc679d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_login_link.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal + + +class LoginLink(StripeObject): + """ + Login Links are single-use URLs that takes an Express account to the login page for their Stripe dashboard. + A Login Link differs from an [Account Link](https://stripe.com/docs/api/account_links) in that it takes the user directly to their [Express dashboard for the specified account](https://stripe.com/docs/connect/integrate-express-dashboard#create-login-link) + """ + + OBJECT_NAME: ClassVar[Literal["login_link"]] = "login_link" + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + object: Literal["login_link"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + url: str + """ + The URL for the login link. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_mandate.py b/Backend/venv/lib/python3.12/site-packages/stripe/_mandate.py new file mode 100644 index 00000000..41cdf5f6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_mandate.py @@ -0,0 +1,268 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._api_resource import APIResource +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._payment_method import PaymentMethod + from stripe.params._mandate_retrieve_params import MandateRetrieveParams + + +class Mandate(APIResource["Mandate"]): + """ + A Mandate is a record of the permission that your customer gives you to debit their payment method. + """ + + OBJECT_NAME: ClassVar[Literal["mandate"]] = "mandate" + + class CustomerAcceptance(StripeObject): + class Offline(StripeObject): + pass + + class Online(StripeObject): + ip_address: Optional[str] + """ + The customer accepts the mandate from this IP address. + """ + user_agent: Optional[str] + """ + The customer accepts the mandate using the user agent of the browser. + """ + + accepted_at: Optional[int] + """ + The time that the customer accepts the mandate. + """ + offline: Optional[Offline] + online: Optional[Online] + type: Literal["offline", "online"] + """ + The mandate includes the type of customer acceptance information, such as: `online` or `offline`. + """ + _inner_class_types = {"offline": Offline, "online": Online} + + class MultiUse(StripeObject): + pass + + class PaymentMethodDetails(StripeObject): + class AcssDebit(StripeObject): + default_for: Optional[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. + """ + interval_description: Optional[str] + """ + Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: Literal["combined", "interval", "sporadic"] + """ + Payment schedule for the mandate. + """ + transaction_type: Literal["business", "personal"] + """ + Transaction type of the mandate. + """ + + class AmazonPay(StripeObject): + pass + + class AuBecsDebit(StripeObject): + url: str + """ + The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively. + """ + + class BacsDebit(StripeObject): + network_status: Literal[ + "accepted", "pending", "refused", "revoked" + ] + """ + The status of the mandate on the Bacs network. Can be one of `pending`, `revoked`, `refused`, or `accepted`. + """ + reference: str + """ + The unique reference identifying the mandate on the Bacs network. + """ + revocation_reason: Optional[ + Literal[ + "account_closed", + "bank_account_restricted", + "bank_ownership_changed", + "could_not_process", + "debit_not_authorized", + ] + ] + """ + When the mandate is revoked on the Bacs network this field displays the reason for the revocation. + """ + url: str + """ + The URL that will contain the mandate that the customer has signed. + """ + + class Card(StripeObject): + pass + + class Cashapp(StripeObject): + pass + + class KakaoPay(StripeObject): + pass + + class Klarna(StripeObject): + pass + + class KrCard(StripeObject): + pass + + class Link(StripeObject): + pass + + class NaverPay(StripeObject): + pass + + class NzBankAccount(StripeObject): + pass + + class Paypal(StripeObject): + billing_agreement_id: Optional[str] + """ + The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. + """ + payer_id: Optional[str] + """ + PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + """ + + class RevolutPay(StripeObject): + pass + + class SepaDebit(StripeObject): + reference: str + """ + The unique reference of the mandate. + """ + url: str + """ + The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively. + """ + + class UsBankAccount(StripeObject): + collection_method: Optional[Literal["paper"]] + """ + Mandate collection method + """ + + acss_debit: Optional[AcssDebit] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + card: Optional[Card] + cashapp: Optional[Cashapp] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + kr_card: Optional[KrCard] + link: Optional[Link] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + paypal: Optional[Paypal] + revolut_pay: Optional[RevolutPay] + sepa_debit: Optional[SepaDebit] + type: str + """ + This mandate corresponds with a specific payment method type. The `payment_method_details` includes an additional hash with the same name and contains mandate information that's specific to that payment method. + """ + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "acss_debit": AcssDebit, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "card": Card, + "cashapp": Cashapp, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "kr_card": KrCard, + "link": Link, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "paypal": Paypal, + "revolut_pay": RevolutPay, + "sepa_debit": SepaDebit, + "us_bank_account": UsBankAccount, + } + + class SingleUse(StripeObject): + amount: int + """ + The amount of the payment on a single use mandate. + """ + currency: str + """ + The currency of the payment on a single use mandate. + """ + + customer_acceptance: CustomerAcceptance + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + multi_use: Optional[MultiUse] + object: Literal["mandate"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[str] + """ + The account (if any) that the mandate is intended for. + """ + payment_method: ExpandableField["PaymentMethod"] + """ + ID of the payment method associated with this mandate. + """ + payment_method_details: PaymentMethodDetails + single_use: Optional[SingleUse] + status: Literal["active", "inactive", "pending"] + """ + The mandate status indicates whether or not you can use it to initiate a payment. + """ + type: Literal["multi_use", "single_use"] + """ + The type of the mandate. + """ + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["MandateRetrieveParams"] + ) -> "Mandate": + """ + Retrieves a Mandate object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["MandateRetrieveParams"] + ) -> "Mandate": + """ + Retrieves a Mandate object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "customer_acceptance": CustomerAcceptance, + "multi_use": MultiUse, + "payment_method_details": PaymentMethodDetails, + "single_use": SingleUse, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_mandate_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_mandate_service.py new file mode 100644 index 00000000..265674ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_mandate_service.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._mandate import Mandate + from stripe._request_options import RequestOptions + from stripe.params._mandate_retrieve_params import MandateRetrieveParams + + +class MandateService(StripeService): + def retrieve( + self, + mandate: str, + params: Optional["MandateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Mandate": + """ + Retrieves a Mandate object. + """ + return cast( + "Mandate", + self._request( + "get", + "/v1/mandates/{mandate}".format(mandate=sanitize_id(mandate)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + mandate: str, + params: Optional["MandateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Mandate": + """ + Retrieves a Mandate object. + """ + return cast( + "Mandate", + await self._request_async( + "get", + "/v1/mandates/{mandate}".format(mandate=sanitize_id(mandate)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_multipart_data_generator.py b/Backend/venv/lib/python3.12/site-packages/stripe/_multipart_data_generator.py new file mode 100644 index 00000000..1e0be2ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_multipart_data_generator.py @@ -0,0 +1,87 @@ +import random +import io + +from stripe._encode import _api_encode + + +class MultipartDataGenerator(object): + data: io.BytesIO + line_break: str + boundary: int + chunk_size: int + + def __init__(self, chunk_size: int = 1028): + self.data = io.BytesIO() + self.line_break = "\r\n" + self.boundary = self._initialize_boundary() + self.chunk_size = chunk_size + + def add_params(self, params): + # Flatten parameters first + + params = dict(_api_encode(params, "V1")) + + for key, value in params.items(): + if value is None: + continue + + self._write(self.param_header()) + self._write(self.line_break) + if hasattr(value, "read"): + filename = "blob" + if hasattr(value, "name"): + # Convert the filename to string, just in case it's not + # already one. E.g. `tempfile.TemporaryFile` has a `name` + # attribute but it's an `int`. + filename = str(value.name) + + self._write('Content-Disposition: form-data; name="') + self._write(key) + self._write('"; filename="') + self._write(filename) + self._write('"') + self._write(self.line_break) + self._write("Content-Type: application/octet-stream") + self._write(self.line_break) + self._write(self.line_break) + + self._write_file(value) + else: + self._write('Content-Disposition: form-data; name="') + self._write(key) + self._write('"') + self._write(self.line_break) + self._write(self.line_break) + self._write(str(value)) + + self._write(self.line_break) + + def param_header(self): + return "--%s" % self.boundary + + def get_post_data(self): + self._write("--%s--" % (self.boundary,)) + self._write(self.line_break) + return self.data.getvalue() + + def _write(self, value): + if isinstance(value, bytes): + array = bytearray(value) + elif isinstance(value, str): + array = bytearray(value, encoding="utf-8") + else: + raise TypeError( + "unexpected type: {value_type}".format(value_type=type(value)) + ) + + self.data.write(array) + + def _write_file(self, f): + while True: + file_contents = f.read(self.chunk_size) + if not file_contents: + break + self._write(file_contents) + + def _initialize_boundary(self): + return random.randint(0, 2**63) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_nested_resource_class_methods.py b/Backend/venv/lib/python3.12/site-packages/stripe/_nested_resource_class_methods.py new file mode 100644 index 00000000..5eeea6c4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_nested_resource_class_methods.py @@ -0,0 +1,118 @@ +from typing import List, Optional +from urllib.parse import quote_plus + +from stripe._api_resource import APIResource + + +# TODO(major): 1704. Remove this. It is no longer used except for "nested_resource_url" and "nested_resource_request", +# which are unnecessary and deprecated and should also be removed. +def nested_resource_class_methods( + resource: str, + path: Optional[str] = None, + operations: Optional[List[str]] = None, + resource_plural: Optional[str] = None, +): + if resource_plural is None: + resource_plural = "%ss" % resource + if path is None: + path = resource_plural + + def wrapper(cls): + def nested_resource_url(cls, id, nested_id=None): + url = "%s/%s/%s" % ( + cls.class_url(), + quote_plus(id), + quote_plus(path), + ) + if nested_id is not None: + url += "/%s" % quote_plus(nested_id) + return url + + resource_url_method = "%ss_url" % resource + setattr(cls, resource_url_method, classmethod(nested_resource_url)) + + def nested_resource_request(cls, method, url, **params): + return APIResource._static_request( + method, + url, + params=params, + ) + + resource_request_method = "%ss_request" % resource + setattr( + cls, resource_request_method, classmethod(nested_resource_request) + ) + + if operations is None: + return cls + + for operation in operations: + if operation == "create": + + def create_nested_resource(cls, id, **params): + url = getattr(cls, resource_url_method)(id) + return getattr(cls, resource_request_method)( + "post", url, **params + ) + + create_method = "create_%s" % resource + setattr( + cls, create_method, classmethod(create_nested_resource) + ) + + elif operation == "retrieve": + + def retrieve_nested_resource(cls, id, nested_id, **params): + url = getattr(cls, resource_url_method)(id, nested_id) + return getattr(cls, resource_request_method)( + "get", url, **params + ) + + retrieve_method = "retrieve_%s" % resource + setattr( + cls, retrieve_method, classmethod(retrieve_nested_resource) + ) + + elif operation == "update": + + def modify_nested_resource(cls, id, nested_id, **params): + url = getattr(cls, resource_url_method)(id, nested_id) + return getattr(cls, resource_request_method)( + "post", url, **params + ) + + modify_method = "modify_%s" % resource + setattr( + cls, modify_method, classmethod(modify_nested_resource) + ) + + elif operation == "delete": + + def delete_nested_resource(cls, id, nested_id, **params): + url = getattr(cls, resource_url_method)(id, nested_id) + return getattr(cls, resource_request_method)( + "delete", url, **params + ) + + delete_method = "delete_%s" % resource + setattr( + cls, delete_method, classmethod(delete_nested_resource) + ) + + elif operation == "list": + + def list_nested_resources(cls, id, **params): + url = getattr(cls, resource_url_method)(id) + return getattr(cls, resource_request_method)( + "get", url, **params + ) + + list_method = "list_%s" % resource_plural + setattr(cls, list_method, classmethod(list_nested_resources)) + + else: + raise ValueError("Unknown operation: %s" % operation) + + return cls + + return wrapper diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_oauth.py b/Backend/venv/lib/python3.12/site-packages/stripe/_oauth.py new file mode 100644 index 00000000..8f6b9d5d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_oauth.py @@ -0,0 +1,363 @@ +# Used for global variables +from stripe import connect_api_base +from stripe._error import AuthenticationError +from stripe._api_requestor import _APIRequestor +from stripe._encode import _api_encode +from urllib.parse import urlencode +from stripe._stripe_object import StripeObject + +from typing import List, cast, Optional +from typing_extensions import ( + Literal, + NotRequired, + TypedDict, + Unpack, + TYPE_CHECKING, +) + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + + +class OAuth(object): + class OAuthToken(StripeObject): + access_token: Optional[str] + """ + The access token you can use to make requests on behalf of this Stripe account. Use it as you would any Stripe secret API key. + This key does not expire, but may be revoked by the user at any time (you'll get a account.application.deauthorized webhook event when this happens). + """ + scope: Optional[str] + """ + The scope granted to the access token, depending on the scope of the authorization code and scope parameter. + """ + livemode: Optional[bool] + """ + The live mode indicator for the token. If true, the access_token can be used as a live secret key. If false, the access_token can be used as a test secret key. + Depends on the mode of the secret API key used to make the request. + """ + token_type: Optional[Literal["bearer"]] + """ + Will always have a value of bearer. + """ + refresh_token: Optional[str] + """ + Can be used to get a new access token of an equal or lesser scope, or of a different live mode (where applicable). + """ + stripe_user_id: Optional[str] + """ + The unique id of the account you have been granted access to, as a string. + """ + stripe_publishable_key: Optional[str] + """ + A publishable key that can be used with this account. Matches the mode—live or test—of the token. + """ + + class OAuthDeauthorization(StripeObject): + stripe_user_id: str + """ + The unique id of the account you have revoked access to, as a string. + This is the same as the stripe_user_id you passed in. + If this is returned, the revocation was successful. + """ + + class OAuthAuthorizeUrlParams(TypedDict): + client_id: NotRequired[str] + """ + The unique identifier provided to your application, found in your application settings. + """ + response_type: NotRequired[Literal["code"]] + """ + The only option at the moment is `'code'`. + """ + redirect_uri: NotRequired[str] + """ + The URL for the authorize response redirect. If provided, this must exactly match one of the comma-separated redirect_uri values in your application settings. + To protect yourself from certain forms of man-in-the-middle attacks, the live mode redirect_uri must use a secure HTTPS connection. + Defaults to the redirect_uri in your application settings if not provided. + """ + scope: NotRequired[str] + """ + read_write or read_only, depending on the level of access you need. + Defaults to read_only. + """ + state: NotRequired[str] + """ + An arbitrary string value we will pass back to you, useful for CSRF protection. + """ + stripe_landing: NotRequired[str] + """ + login or register, depending on what type of screen you want your users to see. Only override this to be login if you expect all your users to have Stripe accounts already (e.g., most read-only applications, like analytics dashboards or accounting software). + Defaults to login for scope read_only and register for scope read_write. + """ + always_prompt: NotRequired[bool] + """ + Boolean to indicate that the user should always be asked to connect, even if they're already connected. + Defaults to false. + """ + suggested_capabilities: NotRequired[List[str]] + """ + Express only + An array of capabilities to apply to the connected account. + """ + stripe_user: NotRequired["OAuth.OAuthAuthorizeUrlParamsStripeUser"] + """ + Stripe will use these to prefill details in the account form for new users. + Some prefilled fields (e.g., URL or product category) may be automatically hidden from the user's view. + Any parameters with invalid values will be silently ignored. + """ + + class OAuthAuthorizeUrlParamsStripeUser(TypedDict): + """ + A more detailed explanation of what it means for a field to be + required or optional can be found in our API documentation. + See `Account Creation (Overview)` and `Account Update` + """ + + email: NotRequired[str] + """ + Recommended + The user's email address. Must be a valid email format. + """ + url: NotRequired[str] + """ + Recommended + The URL for the user's business. This may be the user's website, a profile page within your application, or another publicly available profile for the business, such as a LinkedIn or Facebook profile. + Must be URL-encoded and include a scheme (http or https). + If you will be prefilling this field, we highly recommend that the linked page contain a description of the user's products or services and their contact information. If we don't have enough information, we'll have to reach out to the user directly before initiating payouts. + """ + country: NotRequired[str] + """ + Two-letter country code (e.g., US or CA). + Must be a country that Stripe currently supports. + """ + phone_number: NotRequired[str] + """ + The business phone number. Must be 10 digits only. + Must also prefill stripe_user[country] with the corresponding country. + """ + business_name: NotRequired[str] + """ + The legal name of the business, also used for the statement descriptor. + """ + business_type: NotRequired[str] + """ + The type of the business. + Must be one of sole_prop, corporation, non_profit, partnership, or llc. + """ + first_name: NotRequired[str] + """ + First name of the person who will be filling out a Stripe application. + """ + last_name: NotRequired[str] + """ + Last name of the person who will be filling out a Stripe application. + """ + dob_day: NotRequired[str] + """ + Day (0-31), month (1-12), and year (YYYY, greater than 1900) for the birth date of the person who will be filling out a Stripe application. + If you choose to pass these parameters, you must pass all three. + """ + dob_month: NotRequired[str] + """ + Day (0-31), month (1-12), and year (YYYY, greater than 1900) for the birth date of the person who will be filling out a Stripe application. + If you choose to pass these parameters, you must pass all three. + """ + dob_year: NotRequired[str] + """ + Day (0-31), month (1-12), and year (YYYY, greater than 1900) for the birth date of the person who will be filling out a Stripe application. + If you choose to pass these parameters, you must pass all three. + """ + street_address: NotRequired[str] + """ + Standard only + Street address of the business. + """ + city: NotRequired[str] + """ + Address city of the business. + We highly recommend that you also prefill stripe_user[country] with the corresponding country. + """ + state: NotRequired[str] + """ + Standard only + Address state of the business, must be the two-letter state or province code (e.g., NY for a U.S. business or AB for a Canadian one). + Must also prefill stripe_user[country] with the corresponding country. + """ + zip: NotRequired[str] + """ + Standard only + Address ZIP code of the business, must be a string. + We highly recommend that you also prefill stripe_user[country] with the corresponding country. + """ + physical_product: NotRequired[str] + """ + Standard only + A string: true if the user sells a physical product, false otherwise. + """ + product_description: NotRequired[str] + """ + A description of what the business is accepting payments for. + """ + currency: NotRequired[str] + """ + Standard only + Three-letter ISO code representing currency, in lowercase (e.g., usd or cad). + Must be a valid country and currency combination that Stripe supports. + Must prefill stripe_user[country] with the corresponding country. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the first name of the person who will be filling out a Stripe application. + Must prefill stripe_user[country] with JP, as this parameter is only relevant for Japan. + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the first name of the person who will be filling out a Stripe application. + Must prefill stripe_user[country] with JP, as this parameter is only relevant for Japan. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the last name of the person who will be filling out a Stripe application. + Must prefill stripe_user[country] with JP, as this parameter is only relevant for Japan. + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the last name of the person who will be filling out a Stripe application. + Must prefill stripe_user[country] with JP, as this parameter is only relevant for Japan. + """ + gender: NotRequired[str] + """ + The gender of the person who will be filling out a Stripe application. (International regulations require either male or female.) + Must prefill stripe_user[country] with JP, as this parameter is only relevant for Japan. + """ + block_kana: NotRequired[str] + """ + Standard only + The Kana variation of the address block. + This parameter is only relevant for Japan. You must prefill stripe_user[country] with JP and stripe_user[zip] with a valid Japanese postal code to use this parameter. + """ + block_kanji: NotRequired[str] + """ + Standard only + The Kanji variation of the address block. + This parameter is only relevant for Japan. You must prefill stripe_user[country] with JP and stripe_user[zip] with a valid Japanese postal code to use this parameter. + """ + building_kana: NotRequired[str] + """ + Standard only + The Kana variation of the address building. + This parameter is only relevant for Japan. You must prefill stripe_user[country] with JP and stripe_user[zip] with a valid Japanese postal code to use this parameter. + """ + building_kanji: NotRequired[str] + """ + Standard only + The Kanji variation of the address building. + This parameter is only relevant for Japan. You must prefill stripe_user[country] with JP and stripe_user[zip] with a valid Japanese postal code to use this parameter. + """ + + class OAuthTokenParams(TypedDict): + grant_type: Literal["authorization_code", "refresh_token"] + """ + `'authorization_code'` when turning an authorization code into an access token, or `'refresh_token'` when using a refresh token to get a new access token. + """ + code: NotRequired[str] + """ + The value of the code or refresh_token, depending on the grant_type. + """ + refresh_token: NotRequired[str] + """ + The value of the code or refresh_token, depending on the grant_type. + """ + scope: NotRequired[str] + """ + When requesting a new access token from a refresh token, any scope that has an equal or lesser scope as the refresh token. Has no effect when requesting an access token from an authorization code. + Defaults to the scope of the refresh token. + """ + assert_capabilities: NotRequired[List[str]] + """ + Express only + Check whether the suggested_capabilities were applied to the connected account. + """ + + class OAuthDeauthorizeParams(TypedDict): + client_id: NotRequired[str] + """ + The client_id of the application that you'd like to disconnect the account from. + The account must be connected to this application. + """ + stripe_user_id: str + """ + The account you'd like to disconnect from. + """ + + @staticmethod + def _set_client_id(params): + if "client_id" in params: + return + + from stripe import client_id + + if client_id: + params["client_id"] = client_id + return + + raise AuthenticationError( + "No client_id provided. (HINT: set your client_id using " + '"stripe.client_id = "). You can find your client_ids ' + "in your Stripe dashboard at " + "https://dashboard.stripe.com/account/applications/settings, " + "after registering your account as a platform. See " + "https://stripe.com/docs/connect/standalone-accounts for details, " + "or email support@stripe.com if you have any questions." + ) + + @staticmethod + def authorize_url( + express: bool = False, **params: Unpack[OAuthAuthorizeUrlParams] + ) -> str: + if express is False: + path = "/oauth/authorize" + else: + path = "/express/oauth/authorize" + + OAuth._set_client_id(params) + if "response_type" not in params: + params["response_type"] = "code" + query = urlencode(list(_api_encode(params, "V1"))) + url = connect_api_base + path + "?" + query + return url + + @staticmethod + def token( + api_key: Optional[str] = None, **params: Unpack[OAuthTokenParams] + ) -> OAuthToken: + options: "RequestOptions" = {"api_key": api_key} + requestor = _APIRequestor._global_instance() + return cast( + "OAuth.OAuthToken", + requestor.request( + "post", + "/oauth/token", + params=params, + options=options, + base_address="connect", + ), + ) + + @staticmethod + def deauthorize( + api_key: Optional[str] = None, **params: Unpack[OAuthDeauthorizeParams] + ) -> OAuthDeauthorization: + options: "RequestOptions" = {"api_key": api_key} + requestor = _APIRequestor._global_instance() + OAuth._set_client_id(params) + return cast( + "OAuth.OAuthDeauthorization", + requestor.request( + "post", + "/oauth/deauthorize", + params=params, + options=options, + base_address="connect", + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_oauth_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_oauth_service.py new file mode 100644 index 00000000..3744f953 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_oauth_service.py @@ -0,0 +1,112 @@ +from stripe._stripe_service import StripeService +from stripe._error import AuthenticationError +from stripe._encode import _api_encode +from urllib.parse import urlencode + +from typing import cast, Optional +from typing_extensions import NotRequired, TypedDict, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._client_options import _ClientOptions + from stripe._request_options import RequestOptions + from stripe._oauth import OAuth + + +class OAuthService(StripeService): + _options: Optional["_ClientOptions"] + + def __init__(self, client, options=None): + super(OAuthService, self).__init__(client) + self._options = options + + class OAuthAuthorizeUrlOptions(TypedDict): + express: NotRequired[bool] + """ + Express only + Boolean to indicate that the user should be sent to the express onboarding flow instead of the standard onboarding flow. + """ + + def _set_client_id(self, params): + if "client_id" in params: + return + + client_id = self._options and self._options.client_id + + if client_id: + params["client_id"] = client_id + return + + raise AuthenticationError( + "No client_id provided. (HINT: set your client_id when configuring " + 'your StripeClient: "stripe.StripeClient(..., client_id=)"). ' + "You can find your client_ids in your Stripe dashboard at " + "https://dashboard.stripe.com/account/applications/settings, " + "after registering your account as a platform. See " + "https://stripe.com/docs/connect/standalone-accounts for details, " + "or email support@stripe.com if you have any questions." + ) + + def authorize_url( + self, + params: Optional["OAuth.OAuthAuthorizeUrlParams"] = None, + options: Optional[OAuthAuthorizeUrlOptions] = None, + ) -> str: + if params is None: + params = {} + if options is None: + options = {} + + if options.get("express"): + path = "/express/oauth/authorize" + else: + path = "/oauth/authorize" + + self._set_client_id(params) + if "response_type" not in params: + params["response_type"] = "code" + query = urlencode(list(_api_encode(params, "V1"))) + + # connect_api_base will be always set to stripe.DEFAULT_CONNECT_API_BASE + # if it is not overridden on the client explicitly. + connect_api_base = self._requestor.base_addresses.get("connect") + assert connect_api_base is not None + + url = connect_api_base + path + "?" + query + return url + + def token( + self, + params: "OAuth.OAuthTokenParams", + options: Optional["RequestOptions"] = None, + ) -> "OAuth.OAuthToken": + if options is None: + options = {} + return cast( + "OAuth.OAuthToken", + self._requestor.request( + "post", + "/oauth/token", + params=params, + options=options, + base_address="connect", + ), + ) + + def deauthorize( + self, + params: "OAuth.OAuthDeauthorizeParams", + options: Optional["RequestOptions"] = None, + ) -> "OAuth.OAuthDeauthorization": + if options is None: + options = {} + self._set_client_id(params) + return cast( + "OAuth.OAuthDeauthorization", + self._requestor.request( + "post", + "/oauth/deauthorize", + params=params, + options=options, + base_address="connect", + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_object_classes.py b/Backend/venv/lib/python3.12/site-packages/stripe/_object_classes.py new file mode 100644 index 00000000..a6b062dd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_object_classes.py @@ -0,0 +1,348 @@ +# -*- coding: utf-8 -*- +from importlib import import_module +from typing import Dict, Tuple +from typing_extensions import TYPE_CHECKING, Type + +from stripe._stripe_object import StripeObject + +if TYPE_CHECKING: + from stripe._api_mode import ApiMode + +OBJECT_CLASSES: Dict[str, Tuple[str, str]] = { + # data structures + "list": ("stripe._list_object", "ListObject"), + "search_result": ("stripe._search_result_object", "SearchResultObject"), + "file": ("stripe._file", "File"), + # there's also an alt name for compatibility + "file_upload": ("stripe._file", "File"), + # Object classes: The beginning of the section generated from our OpenAPI spec + "account": ("stripe._account", "Account"), + "account_link": ("stripe._account_link", "AccountLink"), + "account_session": ("stripe._account_session", "AccountSession"), + "apple_pay_domain": ("stripe._apple_pay_domain", "ApplePayDomain"), + "application": ("stripe._application", "Application"), + "application_fee": ("stripe._application_fee", "ApplicationFee"), + "fee_refund": ("stripe._application_fee_refund", "ApplicationFeeRefund"), + "apps.secret": ("stripe.apps._secret", "Secret"), + "balance": ("stripe._balance", "Balance"), + "balance_settings": ("stripe._balance_settings", "BalanceSettings"), + "balance_transaction": ( + "stripe._balance_transaction", + "BalanceTransaction", + ), + "bank_account": ("stripe._bank_account", "BankAccount"), + "billing_portal.configuration": ( + "stripe.billing_portal._configuration", + "Configuration", + ), + "billing_portal.session": ("stripe.billing_portal._session", "Session"), + "billing.alert": ("stripe.billing._alert", "Alert"), + "billing.alert_triggered": ( + "stripe.billing._alert_triggered", + "AlertTriggered", + ), + "billing.credit_balance_summary": ( + "stripe.billing._credit_balance_summary", + "CreditBalanceSummary", + ), + "billing.credit_balance_transaction": ( + "stripe.billing._credit_balance_transaction", + "CreditBalanceTransaction", + ), + "billing.credit_grant": ("stripe.billing._credit_grant", "CreditGrant"), + "billing.meter": ("stripe.billing._meter", "Meter"), + "billing.meter_event": ("stripe.billing._meter_event", "MeterEvent"), + "billing.meter_event_adjustment": ( + "stripe.billing._meter_event_adjustment", + "MeterEventAdjustment", + ), + "billing.meter_event_summary": ( + "stripe.billing._meter_event_summary", + "MeterEventSummary", + ), + "capability": ("stripe._capability", "Capability"), + "card": ("stripe._card", "Card"), + "cash_balance": ("stripe._cash_balance", "CashBalance"), + "charge": ("stripe._charge", "Charge"), + "checkout.session": ("stripe.checkout._session", "Session"), + "climate.order": ("stripe.climate._order", "Order"), + "climate.product": ("stripe.climate._product", "Product"), + "climate.supplier": ("stripe.climate._supplier", "Supplier"), + "confirmation_token": ("stripe._confirmation_token", "ConfirmationToken"), + "connect_collection_transfer": ( + "stripe._connect_collection_transfer", + "ConnectCollectionTransfer", + ), + "country_spec": ("stripe._country_spec", "CountrySpec"), + "coupon": ("stripe._coupon", "Coupon"), + "credit_note": ("stripe._credit_note", "CreditNote"), + "credit_note_line_item": ( + "stripe._credit_note_line_item", + "CreditNoteLineItem", + ), + "customer": ("stripe._customer", "Customer"), + "customer_balance_transaction": ( + "stripe._customer_balance_transaction", + "CustomerBalanceTransaction", + ), + "customer_cash_balance_transaction": ( + "stripe._customer_cash_balance_transaction", + "CustomerCashBalanceTransaction", + ), + "customer_session": ("stripe._customer_session", "CustomerSession"), + "discount": ("stripe._discount", "Discount"), + "dispute": ("stripe._dispute", "Dispute"), + "entitlements.active_entitlement": ( + "stripe.entitlements._active_entitlement", + "ActiveEntitlement", + ), + "entitlements.active_entitlement_summary": ( + "stripe.entitlements._active_entitlement_summary", + "ActiveEntitlementSummary", + ), + "entitlements.feature": ("stripe.entitlements._feature", "Feature"), + "ephemeral_key": ("stripe._ephemeral_key", "EphemeralKey"), + "event": ("stripe._event", "Event"), + "exchange_rate": ("stripe._exchange_rate", "ExchangeRate"), + "file": ("stripe._file", "File"), + "file_link": ("stripe._file_link", "FileLink"), + "financial_connections.account": ( + "stripe.financial_connections._account", + "Account", + ), + "financial_connections.account_owner": ( + "stripe.financial_connections._account_owner", + "AccountOwner", + ), + "financial_connections.account_ownership": ( + "stripe.financial_connections._account_ownership", + "AccountOwnership", + ), + "financial_connections.session": ( + "stripe.financial_connections._session", + "Session", + ), + "financial_connections.transaction": ( + "stripe.financial_connections._transaction", + "Transaction", + ), + "forwarding.request": ("stripe.forwarding._request", "Request"), + "funding_instructions": ( + "stripe._funding_instructions", + "FundingInstructions", + ), + "identity.verification_report": ( + "stripe.identity._verification_report", + "VerificationReport", + ), + "identity.verification_session": ( + "stripe.identity._verification_session", + "VerificationSession", + ), + "invoice": ("stripe._invoice", "Invoice"), + "invoiceitem": ("stripe._invoice_item", "InvoiceItem"), + "line_item": ("stripe._invoice_line_item", "InvoiceLineItem"), + "invoice_payment": ("stripe._invoice_payment", "InvoicePayment"), + "invoice_rendering_template": ( + "stripe._invoice_rendering_template", + "InvoiceRenderingTemplate", + ), + "issuing.authorization": ( + "stripe.issuing._authorization", + "Authorization", + ), + "issuing.card": ("stripe.issuing._card", "Card"), + "issuing.cardholder": ("stripe.issuing._cardholder", "Cardholder"), + "issuing.dispute": ("stripe.issuing._dispute", "Dispute"), + "issuing.personalization_design": ( + "stripe.issuing._personalization_design", + "PersonalizationDesign", + ), + "issuing.physical_bundle": ( + "stripe.issuing._physical_bundle", + "PhysicalBundle", + ), + "issuing.token": ("stripe.issuing._token", "Token"), + "issuing.transaction": ("stripe.issuing._transaction", "Transaction"), + "item": ("stripe._line_item", "LineItem"), + "login_link": ("stripe._login_link", "LoginLink"), + "mandate": ("stripe._mandate", "Mandate"), + "payment_attempt_record": ( + "stripe._payment_attempt_record", + "PaymentAttemptRecord", + ), + "payment_intent": ("stripe._payment_intent", "PaymentIntent"), + "payment_intent_amount_details_line_item": ( + "stripe._payment_intent_amount_details_line_item", + "PaymentIntentAmountDetailsLineItem", + ), + "payment_link": ("stripe._payment_link", "PaymentLink"), + "payment_method": ("stripe._payment_method", "PaymentMethod"), + "payment_method_configuration": ( + "stripe._payment_method_configuration", + "PaymentMethodConfiguration", + ), + "payment_method_domain": ( + "stripe._payment_method_domain", + "PaymentMethodDomain", + ), + "payment_record": ("stripe._payment_record", "PaymentRecord"), + "payout": ("stripe._payout", "Payout"), + "person": ("stripe._person", "Person"), + "plan": ("stripe._plan", "Plan"), + "price": ("stripe._price", "Price"), + "product": ("stripe._product", "Product"), + "product_feature": ("stripe._product_feature", "ProductFeature"), + "promotion_code": ("stripe._promotion_code", "PromotionCode"), + "quote": ("stripe._quote", "Quote"), + "radar.early_fraud_warning": ( + "stripe.radar._early_fraud_warning", + "EarlyFraudWarning", + ), + "radar.value_list": ("stripe.radar._value_list", "ValueList"), + "radar.value_list_item": ( + "stripe.radar._value_list_item", + "ValueListItem", + ), + "refund": ("stripe._refund", "Refund"), + "reporting.report_run": ("stripe.reporting._report_run", "ReportRun"), + "reporting.report_type": ("stripe.reporting._report_type", "ReportType"), + "reserve_transaction": ( + "stripe._reserve_transaction", + "ReserveTransaction", + ), + "transfer_reversal": ("stripe._reversal", "Reversal"), + "review": ("stripe._review", "Review"), + "setup_attempt": ("stripe._setup_attempt", "SetupAttempt"), + "setup_intent": ("stripe._setup_intent", "SetupIntent"), + "shipping_rate": ("stripe._shipping_rate", "ShippingRate"), + "scheduled_query_run": ( + "stripe.sigma._scheduled_query_run", + "ScheduledQueryRun", + ), + "source": ("stripe._source", "Source"), + "source_mandate_notification": ( + "stripe._source_mandate_notification", + "SourceMandateNotification", + ), + "source_transaction": ("stripe._source_transaction", "SourceTransaction"), + "subscription": ("stripe._subscription", "Subscription"), + "subscription_item": ("stripe._subscription_item", "SubscriptionItem"), + "subscription_schedule": ( + "stripe._subscription_schedule", + "SubscriptionSchedule", + ), + "tax.calculation": ("stripe.tax._calculation", "Calculation"), + "tax.calculation_line_item": ( + "stripe.tax._calculation_line_item", + "CalculationLineItem", + ), + "tax.registration": ("stripe.tax._registration", "Registration"), + "tax.settings": ("stripe.tax._settings", "Settings"), + "tax.transaction": ("stripe.tax._transaction", "Transaction"), + "tax.transaction_line_item": ( + "stripe.tax._transaction_line_item", + "TransactionLineItem", + ), + "tax_code": ("stripe._tax_code", "TaxCode"), + "tax_deducted_at_source": ( + "stripe._tax_deducted_at_source", + "TaxDeductedAtSource", + ), + "tax_id": ("stripe._tax_id", "TaxId"), + "tax_rate": ("stripe._tax_rate", "TaxRate"), + "terminal.configuration": ( + "stripe.terminal._configuration", + "Configuration", + ), + "terminal.connection_token": ( + "stripe.terminal._connection_token", + "ConnectionToken", + ), + "terminal.location": ("stripe.terminal._location", "Location"), + "terminal.reader": ("stripe.terminal._reader", "Reader"), + "test_helpers.test_clock": ( + "stripe.test_helpers._test_clock", + "TestClock", + ), + "token": ("stripe._token", "Token"), + "topup": ("stripe._topup", "Topup"), + "transfer": ("stripe._transfer", "Transfer"), + "treasury.credit_reversal": ( + "stripe.treasury._credit_reversal", + "CreditReversal", + ), + "treasury.debit_reversal": ( + "stripe.treasury._debit_reversal", + "DebitReversal", + ), + "treasury.financial_account": ( + "stripe.treasury._financial_account", + "FinancialAccount", + ), + "treasury.financial_account_features": ( + "stripe.treasury._financial_account_features", + "FinancialAccountFeatures", + ), + "treasury.inbound_transfer": ( + "stripe.treasury._inbound_transfer", + "InboundTransfer", + ), + "treasury.outbound_payment": ( + "stripe.treasury._outbound_payment", + "OutboundPayment", + ), + "treasury.outbound_transfer": ( + "stripe.treasury._outbound_transfer", + "OutboundTransfer", + ), + "treasury.received_credit": ( + "stripe.treasury._received_credit", + "ReceivedCredit", + ), + "treasury.received_debit": ( + "stripe.treasury._received_debit", + "ReceivedDebit", + ), + "treasury.transaction": ("stripe.treasury._transaction", "Transaction"), + "treasury.transaction_entry": ( + "stripe.treasury._transaction_entry", + "TransactionEntry", + ), + "webhook_endpoint": ("stripe._webhook_endpoint", "WebhookEndpoint"), + # Object classes: The end of the section generated from our OpenAPI spec +} + +V2_OBJECT_CLASSES: Dict[str, Tuple[str, str]] = { + # V2 Object classes: The beginning of the section generated from our OpenAPI spec + "v2.billing.meter_event": ("stripe.v2.billing._meter_event", "MeterEvent"), + "v2.billing.meter_event_adjustment": ( + "stripe.v2.billing._meter_event_adjustment", + "MeterEventAdjustment", + ), + "v2.billing.meter_event_session": ( + "stripe.v2.billing._meter_event_session", + "MeterEventSession", + ), + "v2.core.event": ("stripe.v2.core._event", "Event"), + "v2.core.event_destination": ( + "stripe.v2.core._event_destination", + "EventDestination", + ), + # V2 Object classes: The end of the section generated from our OpenAPI spec +} + + +def get_object_class( + api_mode: "ApiMode", object_name: str +) -> Type[StripeObject]: + mapping = OBJECT_CLASSES if api_mode == "V1" else V2_OBJECT_CLASSES + + if object_name not in mapping: + return StripeObject + + import_path, class_name = mapping[object_name] + return getattr( + import_module(import_path), + class_name, + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_attempt_record.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_attempt_record.py new file mode 100644 index 00000000..c323e329 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_attempt_record.py @@ -0,0 +1,1994 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._mandate import Mandate + from stripe._payment_method import PaymentMethod + from stripe.params._payment_attempt_record_list_params import ( + PaymentAttemptRecordListParams, + ) + from stripe.params._payment_attempt_record_retrieve_params import ( + PaymentAttemptRecordRetrieveParams, + ) + + +class PaymentAttemptRecord(ListableAPIResource["PaymentAttemptRecord"]): + """ + A Payment Attempt Record represents an individual attempt at making a payment, on or off Stripe. + Each payment attempt tries to collect a fixed amount of money from a fixed customer and payment + method. Payment Attempt Records are attached to Payment Records. Only one attempt per Payment Record + can have guaranteed funds. + """ + + OBJECT_NAME: ClassVar[Literal["payment_attempt_record"]] = ( + "payment_attempt_record" + ) + + class Amount(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountAuthorized(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountCanceled(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountFailed(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountGuaranteed(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountRefunded(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountRequested(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class CustomerDetails(StripeObject): + customer: Optional[str] + """ + ID of the Stripe Customer associated with this payment. + """ + email: Optional[str] + """ + The customer's email address. + """ + name: Optional[str] + """ + The customer's name. + """ + phone: Optional[str] + """ + The customer's phone number. + """ + + class PaymentMethodDetails(StripeObject): + class AchCreditTransfer(StripeObject): + account_number: Optional[str] + """ + Account number to transfer funds to. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the routing number. + """ + routing_number: Optional[str] + """ + Routing transit number for the bank account to transfer funds to. + """ + swift_code: Optional[str] + """ + SWIFT code of the bank associated with the routing number. + """ + + class AchDebit(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Type of entity that holds the account. This can be either `individual` or `company`. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + routing_number: Optional[str] + """ + Routing transit number of the bank account. + """ + + class AcssDebit(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + institution_number: Optional[str] + """ + Institution number of the bank account + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + transit_number: Optional[str] + """ + Transit number of the bank account. + """ + + class Affirm(StripeObject): + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + transaction_id: Optional[str] + """ + The Affirm transaction ID associated with this payment. + """ + + class AfterpayClearpay(StripeObject): + order_id: Optional[str] + """ + The Afterpay order ID associated with this payment intent. + """ + reference: Optional[str] + """ + Order identifier shown to the merchant in Afterpay's online portal. + """ + + class Alipay(StripeObject): + buyer_id: Optional[str] + """ + Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same. + """ + transaction_id: Optional[str] + """ + Transaction ID of this particular Alipay transaction. + """ + + class Alma(StripeObject): + class Installments(StripeObject): + count: int + """ + The number of installments. + """ + + installments: Optional[Installments] + transaction_id: Optional[str] + """ + The Alma transaction ID associated with this payment. + """ + _inner_class_types = {"installments": Installments} + + class AmazonPay(StripeObject): + class Funding(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: Optional[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: Optional[int] + """ + Four-digit number representing the card's expiration year. + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + + card: Optional[Card] + type: Optional[Literal["card"]] + """ + funding type of the underlying payment method. + """ + _inner_class_types = {"card": Card} + + funding: Optional[Funding] + transaction_id: Optional[str] + """ + The Amazon Pay transaction ID associated with this payment. + """ + _inner_class_types = {"funding": Funding} + + class AuBecsDebit(StripeObject): + bsb_number: Optional[str] + """ + Bank-State-Branch number of the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + + class BacsDebit(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + sort_code: Optional[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + class Bancontact(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + Can be one of `en`, `de`, `fr`, or `nl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Bancontact directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class Billie(StripeObject): + transaction_id: Optional[str] + """ + The Billie transaction ID associated with this payment. + """ + + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + """ + A representation of a physical address. + """ + email: Optional[str] + """ + The billing email associated with the method of payment. + """ + name: Optional[str] + """ + The billing name associated with the method of payment. + """ + phone: Optional[str] + """ + The billing phone number associated with the method of payment. + """ + _inner_class_types = {"address": Address} + + class Blik(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by BLIK to every buyer. + """ + + class Boleto(StripeObject): + tax_id: str + """ + The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses consumers) + """ + + class Card(StripeObject): + class Checks(StripeObject): + address_line1_check: Optional[ + Literal["fail", "pass", "unavailable", "unchecked"] + ] + address_postal_code_check: Optional[ + Literal["fail", "pass", "unavailable", "unchecked"] + ] + cvc_check: Optional[ + Literal["fail", "pass", "unavailable", "unchecked"] + ] + + class NetworkToken(StripeObject): + used: bool + """ + Indicates if Stripe used a network token, either user provided or Stripe managed when processing the transaction. + """ + + class ThreeDSecure(StripeObject): + authentication_flow: Optional[ + Literal["challenge", "frictionless"] + ] + result: Optional[ + Literal[ + "attempt_acknowledged", + "authenticated", + "exempted", + "failed", + "not_supported", + "processing_error", + ] + ] + result_reason: Optional[ + Literal[ + "abandoned", + "bypassed", + "canceled", + "card_not_enrolled", + "network_not_supported", + "protocol_error", + "rejected", + ] + ] + version: Optional[Literal["1.0.2", "2.1.0", "2.2.0"]] + + class Wallet(StripeObject): + class ApplePay(StripeObject): + type: str + """ + Type of the apple_pay transaction, one of `apple_pay` or `apple_pay_later`. + """ + + class GooglePay(StripeObject): + pass + + apple_pay: Optional[ApplePay] + dynamic_last4: Optional[str] + """ + (For tokenized numbers only.) The last four digits of the device account number. + """ + google_pay: Optional[GooglePay] + type: str + """ + The type of the card wallet, one of `apple_pay` or `google_pay`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type. + """ + _inner_class_types = { + "apple_pay": ApplePay, + "google_pay": GooglePay, + } + + brand: Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp at which the charge will be automatically refunded if uncaptured. + """ + checks: Optional[Checks] + """ + Check results by Card networks on Card address and CVC at time of payment. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Literal["credit", "debit", "prepaid", "unknown"] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: str + """ + The last four digits of the card. + """ + moto: Optional[bool] + """ + True if this payment was marked as MOTO and out of scope for SCA. + """ + network: Optional[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_token: Optional[NetworkToken] + """ + If this card has network token credentials, this contains the details of the network token credentials. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + three_d_secure: Optional[ThreeDSecure] + """ + Populated if this transaction used 3D Secure authentication. + """ + wallet: Optional[Wallet] + """ + If this Card is part of a card wallet, this contains the details of the card wallet. + """ + _inner_class_types = { + "checks": Checks, + "network_token": NetworkToken, + "three_d_secure": ThreeDSecure, + "wallet": Wallet, + } + + class CardPresent(StripeObject): + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + class Receipt(StripeObject): + account_type: Optional[ + Literal["checking", "credit", "prepaid", "unknown"] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + class Wallet(StripeObject): + type: Literal[ + "apple_pay", "google_pay", "samsung_pay", "unknown" + ] + """ + The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. + """ + + amount_authorized: Optional[int] + """ + The authorized amount + """ + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + brand_product: Optional[str] + """ + The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + incremental_authorization_supported: bool + """ + Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support). + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + offline: Optional[Offline] + """ + Details about payments collected offline. + """ + overcapture_supported: bool + """ + Defines whether the authorized amount can be over-captured or not + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + wallet: Optional[Wallet] + _inner_class_types = { + "offline": Offline, + "receipt": Receipt, + "wallet": Wallet, + } + + class Cashapp(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by Cash App to every buyer. + """ + cashtag: Optional[str] + """ + A public identifier for buyers using Cash App. + """ + transaction_id: Optional[str] + """ + A unique and immutable identifier of payments assigned by Cash App + """ + + class Crypto(StripeObject): + buyer_address: Optional[str] + """ + The wallet address of the customer. + """ + network: Optional[Literal["base", "ethereum", "polygon", "solana"]] + """ + The blockchain network that the transaction was sent on. + """ + token_currency: Optional[Literal["usdc", "usdg", "usdp"]] + """ + The token currency that the transaction was sent with. + """ + transaction_hash: Optional[str] + """ + The blockchain transaction hash of the crypto payment. + """ + + class Custom(StripeObject): + display_name: str + """ + Display name for the custom (user-defined) payment method type used to make this payment. + """ + type: Optional[str] + """ + The custom payment method type associated with this payment. + """ + + class CustomerBalance(StripeObject): + pass + + class Eps(StripeObject): + bank: Optional[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by EPS directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + EPS rarely provides this information so the attribute is usually empty. + """ + + class Fpx(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type, if provided. Can be one of `individual` or `company`. + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`. + """ + transaction_id: Optional[str] + """ + Unique transaction id generated by FPX for every request from the merchant + """ + + class Giropay(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Giropay directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + Giropay rarely provides this information so the attribute is usually empty. + """ + + class Grabpay(StripeObject): + transaction_id: Optional[str] + """ + Unique transaction id generated by GrabPay + """ + + class Ideal(StripeObject): + bank: Optional[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `buut`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`. + """ + bic: Optional[ + Literal[ + "ABNANL2A", + "ASNBNL21", + "BITSNL2A", + "BUNQNL2A", + "BUUTNL2A", + "FVLBNL22", + "HANDNL2A", + "INGBNL2A", + "KNABNL2H", + "MOYONL21", + "NNBANL2G", + "NTSBDEB1", + "RABONL2U", + "RBRBNL21", + "REVOIE23", + "REVOLT21", + "SNSBNL2A", + "TRIONL2U", + ] + ] + """ + The Bank Identifier Code of the customer's bank. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by iDEAL directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class InteracPresent(StripeObject): + class Receipt(StripeObject): + account_type: Optional[ + Literal["checking", "savings", "unknown"] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + brand: Optional[str] + """ + Card brand. Can be `interac`, `mastercard` or `visa`. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + _inner_class_types = {"receipt": Receipt} + + class KakaoPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Kakao Pay transaction ID associated with this payment. + """ + + class Klarna(StripeObject): + class PayerDetails(StripeObject): + class Address(StripeObject): + country: Optional[str] + """ + The payer address country + """ + + address: Optional[Address] + """ + The payer's address + """ + _inner_class_types = {"address": Address} + + payer_details: Optional[PayerDetails] + """ + The payer details for this transaction. + """ + payment_method_category: Optional[str] + """ + The Klarna payment method used for this transaction. + Can be one of `pay_later`, `pay_now`, `pay_with_financing`, or `pay_in_installments` + """ + preferred_locale: Optional[str] + """ + Preferred language of the Klarna authorization page that the customer is redirected to. + Can be one of `de-AT`, `en-AT`, `nl-BE`, `fr-BE`, `en-BE`, `de-DE`, `en-DE`, `da-DK`, `en-DK`, `es-ES`, `en-ES`, `fi-FI`, `sv-FI`, `en-FI`, `en-GB`, `en-IE`, `it-IT`, `en-IT`, `nl-NL`, `en-NL`, `nb-NO`, `en-NO`, `sv-SE`, `en-SE`, `en-US`, `es-US`, `fr-FR`, `en-FR`, `cs-CZ`, `en-CZ`, `ro-RO`, `en-RO`, `el-GR`, `en-GR`, `en-AU`, `en-NZ`, `en-CA`, `fr-CA`, `pl-PL`, `en-PL`, `pt-PT`, `en-PT`, `de-CH`, `fr-CH`, `it-CH`, or `en-CH` + """ + _inner_class_types = {"payer_details": PayerDetails} + + class Konbini(StripeObject): + class Store(StripeObject): + chain: Optional[ + Literal["familymart", "lawson", "ministop", "seicomart"] + ] + """ + The name of the convenience store chain where the payment was completed. + """ + + store: Optional[Store] + """ + If the payment succeeded, this contains the details of the convenience store where the payment was completed. + """ + _inner_class_types = {"store": Store} + + class KrCard(StripeObject): + brand: Optional[ + Literal[ + "bc", + "citi", + "hana", + "hyundai", + "jeju", + "jeonbuk", + "kakaobank", + "kbank", + "kdbbank", + "kookmin", + "kwangju", + "lotte", + "mg", + "nh", + "post", + "samsung", + "savingsbank", + "shinhan", + "shinhyup", + "suhyup", + "tossbank", + "woori", + ] + ] + """ + The local credit or debit card brand. + """ + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + last4: Optional[str] + """ + The last four digits of the card. This may not be present for American Express cards. + """ + transaction_id: Optional[str] + """ + The Korean Card transaction ID associated with this payment. + """ + + class Link(StripeObject): + country: Optional[str] + """ + Two-letter ISO code representing the funding source country beneath the Link payment. + You could use this attribute to get a sense of international fees. + """ + + class MbWay(StripeObject): + pass + + class Mobilepay(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Brand of the card used in the transaction + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card + """ + exp_month: Optional[int] + """ + Two digit number representing the card's expiration month + """ + exp_year: Optional[int] + """ + Two digit number representing the card's expiration year + """ + last4: Optional[str] + """ + The last 4 digits of the card + """ + + card: Optional[Card] + """ + Internal card details + """ + _inner_class_types = {"card": Card} + + class Multibanco(StripeObject): + entity: Optional[str] + """ + Entity number associated with this Multibanco payment. + """ + reference: Optional[str] + """ + Reference number associated with this Multibanco payment. + """ + + class NaverPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Naver Pay transaction ID associated with this payment. + """ + + class NzBankAccount(StripeObject): + account_holder_name: Optional[str] + """ + The name on the bank account. Only present if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + bank_name: str + """ + The name of the bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + last4: str + """ + Last four digits of the bank account number. + """ + suffix: Optional[str] + """ + The suffix of the bank account number. + """ + + class Oxxo(StripeObject): + number: Optional[str] + """ + OXXO reference number + """ + + class P24(StripeObject): + bank: Optional[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. Can be one of `ing`, `citi_handlowy`, `tmobile_usbugi_bankowe`, `plus_bank`, `etransfer_pocztowy24`, `banki_spbdzielcze`, `bank_nowy_bfg_sa`, `getin_bank`, `velobank`, `blik`, `noble_pay`, `ideabank`, `envelobank`, `santander_przelew24`, `nest_przelew`, `mbank_mtransfer`, `inteligo`, `pbac_z_ipko`, `bnp_paribas`, `credit_agricole`, `toyota_bank`, `bank_pekao_sa`, `volkswagen_bank`, `bank_millennium`, `alior_bank`, or `boz`. + """ + reference: Optional[str] + """ + Unique reference for this Przelewy24 payment. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Przelewy24 directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + Przelewy24 rarely provides this information so the attribute is usually empty. + """ + + class PayByBank(StripeObject): + pass + + class Payco(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Payco transaction ID associated with this payment. + """ + + class Paynow(StripeObject): + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + reference: Optional[str] + """ + Reference number associated with this PayNow payment + """ + + class Paypal(StripeObject): + class SellerProtection(StripeObject): + dispute_categories: Optional[ + List[Literal["fraudulent", "product_not_received"]] + ] + """ + An array of conditions that are covered for the transaction, if applicable. + """ + status: Literal[ + "eligible", "not_eligible", "partially_eligible" + ] + """ + Indicates whether the transaction is eligible for PayPal's seller protection. + """ + + country: Optional[str] + """ + Two-letter ISO code representing the buyer's country. Values are provided by PayPal directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_email: Optional[str] + """ + Owner's email. Values are provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_id: Optional[str] + """ + PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + """ + payer_name: Optional[str] + """ + Owner's full name. Values provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + seller_protection: Optional[SellerProtection] + """ + The level of protection offered as defined by PayPal Seller Protection for Merchants, for this transaction. + """ + transaction_id: Optional[str] + """ + A unique ID generated by PayPal for this transaction. + """ + _inner_class_types = {"seller_protection": SellerProtection} + + class Pix(StripeObject): + bank_transaction_id: Optional[str] + """ + Unique transaction id generated by BCB + """ + + class Promptpay(StripeObject): + reference: Optional[str] + """ + Bill reference generated by PromptPay + """ + + class RevolutPay(StripeObject): + class Funding(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: Optional[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: Optional[int] + """ + Four-digit number representing the card's expiration year. + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + + card: Optional[Card] + type: Optional[Literal["card"]] + """ + funding type of the underlying payment method. + """ + _inner_class_types = {"card": Card} + + funding: Optional[Funding] + transaction_id: Optional[str] + """ + The Revolut Pay transaction ID associated with this payment. + """ + _inner_class_types = {"funding": Funding} + + class SamsungPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Samsung Pay transaction ID associated with this payment. + """ + + class Satispay(StripeObject): + transaction_id: Optional[str] + """ + The Satispay transaction ID associated with this payment. + """ + + class SepaCreditTransfer(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + iban: Optional[str] + """ + IBAN of the bank account to transfer funds to. + """ + + class SepaDebit(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + branch_code: Optional[str] + """ + Branch code of bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four characters of the IBAN. + """ + mandate: Optional[str] + """ + Find the ID of the mandate used for this payment under the [payment_method_details.sepa_debit.mandate](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate) property on the Charge. Use this mandate ID to [retrieve the Mandate](https://stripe.com/docs/api/mandates/retrieve). + """ + + class Sofort(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[ + Literal["de", "en", "es", "fr", "it", "nl", "pl"] + ] + """ + Preferred language of the SOFORT authorization page that the customer is redirected to. + Can be one of `de`, `en`, `es`, `fr`, `it`, `nl`, or `pl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by SOFORT directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class StripeAccount(StripeObject): + pass + + class Swish(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies the payer's Swish account. You can use this attribute to check whether two Swish transactions were paid for by the same payer + """ + payment_reference: Optional[str] + """ + Payer bank reference number for the payment + """ + verified_phone_last4: Optional[str] + """ + The last four digits of the Swish account phone number + """ + + class Twint(StripeObject): + pass + + class UsBankAccount(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + account_type: Optional[Literal["checking", "savings"]] + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the mandate used to make this payment. + """ + payment_reference: Optional[str] + """ + Reference number to locate ACH payments with customer's bank. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + + class Wechat(StripeObject): + pass + + class WechatPay(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular WeChat Pay account. You can use this attribute to check whether two WeChat accounts are the same. + """ + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + transaction_id: Optional[str] + """ + Transaction ID of this particular WeChat Pay transaction. + """ + + class Zip(StripeObject): + pass + + ach_credit_transfer: Optional[AchCreditTransfer] + ach_debit: Optional[AchDebit] + acss_debit: Optional[AcssDebit] + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + billing_details: Optional[BillingDetails] + """ + The billing details associated with the method of payment. + """ + blik: Optional[Blik] + boleto: Optional[Boleto] + card: Optional[Card] + """ + Details of the card used for this payment attempt. + """ + card_present: Optional[CardPresent] + cashapp: Optional[Cashapp] + crypto: Optional[Crypto] + custom: Optional[Custom] + """ + Custom Payment Methods represent Payment Method types not modeled directly in + the Stripe API. This resource consists of details about the custom payment method + used for this payment attempt. + """ + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + ideal: Optional[Ideal] + interac_present: Optional[InteracPresent] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + mb_way: Optional[MbWay] + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + oxxo: Optional[Oxxo] + p24: Optional[P24] + pay_by_bank: Optional[PayByBank] + payco: Optional[Payco] + payment_method: Optional[str] + """ + ID of the Stripe PaymentMethod used to make this payment. + """ + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + promptpay: Optional[Promptpay] + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_credit_transfer: Optional[SepaCreditTransfer] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + stripe_account: Optional[StripeAccount] + swish: Optional[Swish] + twint: Optional[Twint] + type: str + """ + The type of transaction-specific details of the payment method used in the payment. See [PaymentMethod.type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type) for the full list of possible types. + An additional hash is included on `payment_method_details` with a name matching this value. + It contains information specific to the payment method. + """ + us_bank_account: Optional[UsBankAccount] + """ + Details of the US Bank Account used for this payment attempt. + """ + wechat: Optional[Wechat] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + _inner_class_types = { + "ach_credit_transfer": AchCreditTransfer, + "ach_debit": AchDebit, + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "billing_details": BillingDetails, + "blik": Blik, + "boleto": Boleto, + "card": Card, + "card_present": CardPresent, + "cashapp": Cashapp, + "crypto": Crypto, + "custom": Custom, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "grabpay": Grabpay, + "ideal": Ideal, + "interac_present": InteracPresent, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mb_way": MbWay, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "oxxo": Oxxo, + "p24": P24, + "pay_by_bank": PayByBank, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "promptpay": Promptpay, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_credit_transfer": SepaCreditTransfer, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "stripe_account": StripeAccount, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + "wechat": Wechat, + "wechat_pay": WechatPay, + "zip": Zip, + } + + class ProcessorDetails(StripeObject): + class Custom(StripeObject): + payment_reference: Optional[str] + """ + An opaque string for manual reconciliation of this payment, for example a check number or a payment processor ID. + """ + + custom: Optional[Custom] + """ + Custom processors represent payment processors not modeled directly in + the Stripe API. This resource consists of details about the custom processor + used for this payment attempt. + """ + type: Literal["custom"] + """ + The processor used for this payment attempt. + """ + _inner_class_types = {"custom": Custom} + + class ShippingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + """ + A representation of a physical address. + """ + name: Optional[str] + """ + The shipping recipient's name. + """ + phone: Optional[str] + """ + The shipping recipient's phone number. + """ + _inner_class_types = {"address": Address} + + amount: Amount + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_authorized: AmountAuthorized + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_canceled: AmountCanceled + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_failed: AmountFailed + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_guaranteed: AmountGuaranteed + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_refunded: AmountRefunded + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_requested: AmountRequested + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + application: Optional[str] + """ + ID of the Connect application that created the PaymentAttemptRecord. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer_details: Optional[CustomerDetails] + """ + Customer information for this payment. + """ + customer_presence: Optional[Literal["off_session", "on_session"]] + """ + Indicates whether the customer was present in your checkout flow during this payment. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["payment_attempt_record"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_method_details: Optional[PaymentMethodDetails] + """ + Information about the Payment Method debited for this payment. + """ + payment_record: Optional[str] + """ + ID of the Payment Record this Payment Attempt Record belongs to. + """ + processor_details: ProcessorDetails + """ + Processor information associated with this payment. + """ + reported_by: Literal["self", "stripe"] + """ + Indicates who reported the payment. + """ + shipping_details: Optional[ShippingDetails] + """ + Shipping information for this payment. + """ + + @classmethod + def list( + cls, **params: Unpack["PaymentAttemptRecordListParams"] + ) -> ListObject["PaymentAttemptRecord"]: + """ + List all the Payment Attempt Records attached to the specified Payment Record. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PaymentAttemptRecordListParams"] + ) -> ListObject["PaymentAttemptRecord"]: + """ + List all the Payment Attempt Records attached to the specified Payment Record. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PaymentAttemptRecordRetrieveParams"] + ) -> "PaymentAttemptRecord": + """ + Retrieves a Payment Attempt Record with the given ID + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PaymentAttemptRecordRetrieveParams"] + ) -> "PaymentAttemptRecord": + """ + Retrieves a Payment Attempt Record with the given ID + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "amount": Amount, + "amount_authorized": AmountAuthorized, + "amount_canceled": AmountCanceled, + "amount_failed": AmountFailed, + "amount_guaranteed": AmountGuaranteed, + "amount_refunded": AmountRefunded, + "amount_requested": AmountRequested, + "customer_details": CustomerDetails, + "payment_method_details": PaymentMethodDetails, + "processor_details": ProcessorDetails, + "shipping_details": ShippingDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_attempt_record_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_attempt_record_service.py new file mode 100644 index 00000000..0ee17d35 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_attempt_record_service.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_attempt_record import PaymentAttemptRecord + from stripe._request_options import RequestOptions + from stripe.params._payment_attempt_record_list_params import ( + PaymentAttemptRecordListParams, + ) + from stripe.params._payment_attempt_record_retrieve_params import ( + PaymentAttemptRecordRetrieveParams, + ) + + +class PaymentAttemptRecordService(StripeService): + def list( + self, + params: "PaymentAttemptRecordListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentAttemptRecord]": + """ + List all the Payment Attempt Records attached to the specified Payment Record. + """ + return cast( + "ListObject[PaymentAttemptRecord]", + self._request( + "get", + "/v1/payment_attempt_records", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "PaymentAttemptRecordListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentAttemptRecord]": + """ + List all the Payment Attempt Records attached to the specified Payment Record. + """ + return cast( + "ListObject[PaymentAttemptRecord]", + await self._request_async( + "get", + "/v1/payment_attempt_records", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["PaymentAttemptRecordRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentAttemptRecord": + """ + Retrieves a Payment Attempt Record with the given ID + """ + return cast( + "PaymentAttemptRecord", + self._request( + "get", + "/v1/payment_attempt_records/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["PaymentAttemptRecordRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentAttemptRecord": + """ + Retrieves a Payment Attempt Record with the given ID + """ + return cast( + "PaymentAttemptRecord", + await self._request_async( + "get", + "/v1/payment_attempt_records/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent.py new file mode 100644 index 00000000..1fcf76a0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent.py @@ -0,0 +1,4362 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._search_result_object import SearchResultObject +from stripe._searchable_api_resource import SearchableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ( + AsyncIterator, + ClassVar, + Dict, + Iterator, + List, + Optional, + Union, + cast, + overload, +) +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._bank_account import BankAccount + from stripe._card import Card as CardResource + from stripe._charge import Charge + from stripe._customer import Customer + from stripe._payment_intent_amount_details_line_item import ( + PaymentIntentAmountDetailsLineItem, + ) + from stripe._payment_method import PaymentMethod + from stripe._review import Review + from stripe._setup_intent import SetupIntent + from stripe._source import Source + from stripe.params._payment_intent_apply_customer_balance_params import ( + PaymentIntentApplyCustomerBalanceParams, + ) + from stripe.params._payment_intent_cancel_params import ( + PaymentIntentCancelParams, + ) + from stripe.params._payment_intent_capture_params import ( + PaymentIntentCaptureParams, + ) + from stripe.params._payment_intent_confirm_params import ( + PaymentIntentConfirmParams, + ) + from stripe.params._payment_intent_create_params import ( + PaymentIntentCreateParams, + ) + from stripe.params._payment_intent_increment_authorization_params import ( + PaymentIntentIncrementAuthorizationParams, + ) + from stripe.params._payment_intent_list_amount_details_line_items_params import ( + PaymentIntentListAmountDetailsLineItemsParams, + ) + from stripe.params._payment_intent_list_params import ( + PaymentIntentListParams, + ) + from stripe.params._payment_intent_modify_params import ( + PaymentIntentModifyParams, + ) + from stripe.params._payment_intent_retrieve_params import ( + PaymentIntentRetrieveParams, + ) + from stripe.params._payment_intent_search_params import ( + PaymentIntentSearchParams, + ) + from stripe.params._payment_intent_verify_microdeposits_params import ( + PaymentIntentVerifyMicrodepositsParams, + ) + from typing import Any + + +@nested_resource_class_methods("amount_details_line_item") +class PaymentIntent( + CreateableAPIResource["PaymentIntent"], + ListableAPIResource["PaymentIntent"], + SearchableAPIResource["PaymentIntent"], + UpdateableAPIResource["PaymentIntent"], +): + """ + A PaymentIntent guides you through the process of collecting a payment from your customer. + We recommend that you create exactly one PaymentIntent for each order or + customer session in your system. You can reference the PaymentIntent later to + see the history of payment attempts for a particular session. + + A PaymentIntent transitions through + [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) + throughout its lifetime as it interfaces with Stripe.js to perform + authentication flows and ultimately creates at most one successful charge. + + Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents) + """ + + OBJECT_NAME: ClassVar[Literal["payment_intent"]] = "payment_intent" + + class AmountDetails(StripeObject): + class Shipping(StripeObject): + amount: Optional[int] + """ + If a physical good is being shipped, the cost of shipping represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than or equal to 0. + """ + from_postal_code: Optional[str] + """ + If a physical good is being shipped, the postal code of where it is being shipped from. At most 10 alphanumeric characters long, hyphens are allowed. + """ + to_postal_code: Optional[str] + """ + If a physical good is being shipped, the postal code of where it is being shipped to. At most 10 alphanumeric characters long, hyphens are allowed. + """ + + class Tax(StripeObject): + total_tax_amount: Optional[int] + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + class Tip(StripeObject): + amount: Optional[int] + """ + Portion of the amount that corresponds to a tip. + """ + + discount_amount: Optional[int] + """ + The total discount applied on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[line_items][#][discount_amount]` field. + """ + line_items: Optional[ListObject["PaymentIntentAmountDetailsLineItem"]] + """ + A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items. + """ + shipping: Optional[Shipping] + tax: Optional[Tax] + tip: Optional[Tip] + _inner_class_types = {"shipping": Shipping, "tax": Tax, "tip": Tip} + + class AutomaticPaymentMethods(StripeObject): + allow_redirects: Optional[Literal["always", "never"]] + """ + Controls whether this PaymentIntent will accept redirect-based payment methods. + + Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the payment. + """ + enabled: bool + """ + Automatically calculates compatible payment methods + """ + + class LastPaymentError(StripeObject): + advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating [how to proceed with an error](https://stripe.com/docs/declines#retrying-issuer-declines) if they provide one. + """ + charge: Optional[str] + """ + For card errors, the ID of the failed charge. + """ + code: Optional[ + Literal[ + "account_closed", + "account_country_invalid_address", + "account_error_country_change_requires_additional_steps", + "account_information_mismatch", + "account_invalid", + "account_number_invalid", + "acss_debit_session_incomplete", + "alipay_upgrade_required", + "amount_too_large", + "amount_too_small", + "api_key_expired", + "application_fees_not_allowed", + "authentication_required", + "balance_insufficient", + "balance_invalid_parameter", + "bank_account_bad_routing_numbers", + "bank_account_declined", + "bank_account_exists", + "bank_account_restricted", + "bank_account_unusable", + "bank_account_unverified", + "bank_account_verification_failed", + "billing_invalid_mandate", + "bitcoin_upgrade_required", + "capture_charge_authorization_expired", + "capture_unauthorized_payment", + "card_decline_rate_limit_exceeded", + "card_declined", + "cardholder_phone_number_required", + "charge_already_captured", + "charge_already_refunded", + "charge_disputed", + "charge_exceeds_source_limit", + "charge_exceeds_transaction_limit", + "charge_expired_for_capture", + "charge_invalid_parameter", + "charge_not_refundable", + "clearing_code_unsupported", + "country_code_invalid", + "country_unsupported", + "coupon_expired", + "customer_max_payment_methods", + "customer_max_subscriptions", + "customer_session_expired", + "customer_tax_location_invalid", + "debit_not_authorized", + "email_invalid", + "expired_card", + "financial_connections_account_inactive", + "financial_connections_account_pending_account_numbers", + "financial_connections_account_unavailable_account_numbers", + "financial_connections_no_successful_transaction_refresh", + "forwarding_api_inactive", + "forwarding_api_invalid_parameter", + "forwarding_api_retryable_upstream_error", + "forwarding_api_upstream_connection_error", + "forwarding_api_upstream_connection_timeout", + "forwarding_api_upstream_error", + "idempotency_key_in_use", + "incorrect_address", + "incorrect_cvc", + "incorrect_number", + "incorrect_zip", + "india_recurring_payment_mandate_canceled", + "instant_payouts_config_disabled", + "instant_payouts_currency_disabled", + "instant_payouts_limit_exceeded", + "instant_payouts_unsupported", + "insufficient_funds", + "intent_invalid_state", + "intent_verification_method_missing", + "invalid_card_type", + "invalid_characters", + "invalid_charge_amount", + "invalid_cvc", + "invalid_expiry_month", + "invalid_expiry_year", + "invalid_mandate_reference_prefix_format", + "invalid_number", + "invalid_source_usage", + "invalid_tax_location", + "invoice_no_customer_line_items", + "invoice_no_payment_method_types", + "invoice_no_subscription_line_items", + "invoice_not_editable", + "invoice_on_behalf_of_not_editable", + "invoice_payment_intent_requires_action", + "invoice_upcoming_none", + "livemode_mismatch", + "lock_timeout", + "missing", + "no_account", + "not_allowed_on_standard_account", + "out_of_inventory", + "ownership_declaration_not_allowed", + "parameter_invalid_empty", + "parameter_invalid_integer", + "parameter_invalid_string_blank", + "parameter_invalid_string_empty", + "parameter_missing", + "parameter_unknown", + "parameters_exclusive", + "payment_intent_action_required", + "payment_intent_authentication_failure", + "payment_intent_incompatible_payment_method", + "payment_intent_invalid_parameter", + "payment_intent_konbini_rejected_confirmation_number", + "payment_intent_mandate_invalid", + "payment_intent_payment_attempt_expired", + "payment_intent_payment_attempt_failed", + "payment_intent_rate_limit_exceeded", + "payment_intent_unexpected_state", + "payment_method_bank_account_already_verified", + "payment_method_bank_account_blocked", + "payment_method_billing_details_address_missing", + "payment_method_configuration_failures", + "payment_method_currency_mismatch", + "payment_method_customer_decline", + "payment_method_invalid_parameter", + "payment_method_invalid_parameter_testmode", + "payment_method_microdeposit_failed", + "payment_method_microdeposit_verification_amounts_invalid", + "payment_method_microdeposit_verification_amounts_mismatch", + "payment_method_microdeposit_verification_attempts_exceeded", + "payment_method_microdeposit_verification_descriptor_code_mismatch", + "payment_method_microdeposit_verification_timeout", + "payment_method_not_available", + "payment_method_provider_decline", + "payment_method_provider_timeout", + "payment_method_unactivated", + "payment_method_unexpected_state", + "payment_method_unsupported_type", + "payout_reconciliation_not_ready", + "payouts_limit_exceeded", + "payouts_not_allowed", + "platform_account_required", + "platform_api_key_expired", + "postal_code_invalid", + "processing_error", + "product_inactive", + "progressive_onboarding_limit_exceeded", + "rate_limit", + "refer_to_customer", + "refund_disputed_payment", + "resource_already_exists", + "resource_missing", + "return_intent_already_processed", + "routing_number_invalid", + "secret_key_required", + "sepa_unsupported_account", + "setup_attempt_failed", + "setup_intent_authentication_failure", + "setup_intent_invalid_parameter", + "setup_intent_mandate_invalid", + "setup_intent_mobile_wallet_unsupported", + "setup_intent_setup_attempt_expired", + "setup_intent_unexpected_state", + "shipping_address_invalid", + "shipping_calculation_failed", + "sku_inactive", + "state_unsupported", + "status_transition_invalid", + "stripe_tax_inactive", + "tax_id_invalid", + "tax_id_prohibited", + "taxes_calculation_failed", + "terminal_location_country_unsupported", + "terminal_reader_busy", + "terminal_reader_hardware_fault", + "terminal_reader_invalid_location_for_activation", + "terminal_reader_invalid_location_for_payment", + "terminal_reader_offline", + "terminal_reader_timeout", + "testmode_charges_only", + "tls_version_unsupported", + "token_already_used", + "token_card_network_invalid", + "token_in_use", + "transfer_source_balance_parameters_mismatch", + "transfers_not_allowed", + "url_invalid", + ] + ] + """ + For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported. + """ + decline_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one. + """ + doc_url: Optional[str] + """ + A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported. + """ + message: Optional[str] + """ + A human-readable message providing more details about the error. For card errors, these messages can be shown to your users. + """ + network_advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a 2 digit code which indicates the advice given to merchant by the card network on how to proceed with an error. + """ + network_decline_code: Optional[str] + """ + For payments declined by the network, an alphanumeric code which indicates the reason the payment failed. + """ + param: Optional[str] + """ + If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field. + """ + payment_intent: Optional["PaymentIntent"] + """ + A PaymentIntent guides you through the process of collecting a payment from your customer. + We recommend that you create exactly one PaymentIntent for each order or + customer session in your system. You can reference the PaymentIntent later to + see the history of payment attempts for a particular session. + + A PaymentIntent transitions through + [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) + throughout its lifetime as it interfaces with Stripe.js to perform + authentication flows and ultimately creates at most one successful charge. + + Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents) + """ + payment_method: Optional["PaymentMethod"] + """ + PaymentMethod objects represent your customer's payment instruments. + You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to + Customer objects to store instrument details for future payments. + + Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios). + """ + payment_method_type: Optional[str] + """ + If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors. + """ + request_log_url: Optional[str] + """ + A URL to the request log entry in your dashboard. + """ + setup_intent: Optional["SetupIntent"] + """ + A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. + For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. + Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow. + + Create a SetupIntent when you're ready to collect your customer's payment credentials. + Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. + The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides + you through the setup process. + + Successful SetupIntents result in payment credentials that are optimized for future payments. + For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through + [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection + to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents). + If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer), + it automatically attaches the resulting payment method to that Customer after successful setup. + We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on + PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. + + By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. + + Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents) + """ + source: Optional[ + Union["Account", "BankAccount", "CardResource", "Source"] + ] + type: Literal[ + "api_error", + "card_error", + "idempotency_error", + "invalid_request_error", + ] + """ + The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error` + """ + + class NextAction(StripeObject): + class AlipayHandleRedirect(StripeObject): + native_data: Optional[str] + """ + The native data to be used with Alipay SDK you must redirect your customer to in order to authenticate the payment in an Android App. + """ + native_url: Optional[str] + """ + The native URL you must redirect your customer to in order to authenticate the payment in an iOS App. + """ + return_url: Optional[str] + """ + If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion. + """ + url: Optional[str] + """ + The URL you must redirect your customer to in order to authenticate the payment. + """ + + class BoletoDisplayDetails(StripeObject): + expires_at: Optional[int] + """ + The timestamp after which the boleto expires. + """ + hosted_voucher_url: Optional[str] + """ + The URL to the hosted boleto voucher page, which allows customers to view the boleto voucher. + """ + number: Optional[str] + """ + The boleto number. + """ + pdf: Optional[str] + """ + The URL to the downloadable boleto voucher PDF. + """ + + class CardAwaitNotification(StripeObject): + charge_attempt_at: Optional[int] + """ + The time that payment will be attempted. If customer approval is required, they need to provide approval before this time. + """ + customer_approval_required: Optional[bool] + """ + For payments greater than INR 15000, the customer must provide explicit approval of the payment with their bank. For payments of lower amount, no customer action is required. + """ + + class CashappHandleRedirectOrDisplayQrCode(StripeObject): + class QrCode(StripeObject): + expires_at: int + """ + The date (unix timestamp) when the QR code expires. + """ + image_url_png: str + """ + The image_url_png string used to render QR code + """ + image_url_svg: str + """ + The image_url_svg string used to render QR code + """ + + hosted_instructions_url: str + """ + The URL to the hosted Cash App Pay instructions page, which allows customers to view the QR code, and supports QR code refreshing on expiration. + """ + mobile_auth_url: str + """ + The url for mobile redirect based auth + """ + qr_code: QrCode + _inner_class_types = {"qr_code": QrCode} + + class DisplayBankTransferInstructions(StripeObject): + class FinancialAddress(StripeObject): + class Aba(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The account holder name + """ + account_number: str + """ + The ABA account number + """ + account_type: str + """ + The account type + """ + bank_address: BankAddress + bank_name: str + """ + The bank name + """ + routing_number: str + """ + The ABA routing number + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Iban(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The name of the person or business that owns the bank account + """ + bank_address: BankAddress + bic: str + """ + The BIC/SWIFT code of the account. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + iban: str + """ + The IBAN of the account. + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class SortCode(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The name of the person or business that owns the bank account + """ + account_number: str + """ + The account number + """ + bank_address: BankAddress + sort_code: str + """ + The six-digit sort code + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Spei(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The account holder name + """ + bank_address: BankAddress + bank_code: str + """ + The three-digit bank code + """ + bank_name: str + """ + The short banking institution name + """ + clabe: str + """ + The CLABE number + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Swift(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: str + """ + The account holder name + """ + account_number: str + """ + The account number + """ + account_type: str + """ + The account type + """ + bank_address: BankAddress + bank_name: str + """ + The bank name + """ + swift_code: str + """ + The SWIFT code + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + class Zengin(StripeObject): + class AccountHolderAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class BankAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + account_holder_address: AccountHolderAddress + account_holder_name: Optional[str] + """ + The account holder name + """ + account_number: Optional[str] + """ + The account number + """ + account_type: Optional[str] + """ + The bank account type. In Japan, this can only be `futsu` or `toza`. + """ + bank_address: BankAddress + bank_code: Optional[str] + """ + The bank code of the account + """ + bank_name: Optional[str] + """ + The bank name of the account + """ + branch_code: Optional[str] + """ + The branch code of the account + """ + branch_name: Optional[str] + """ + The branch name of the account + """ + _inner_class_types = { + "account_holder_address": AccountHolderAddress, + "bank_address": BankAddress, + } + + aba: Optional[Aba] + """ + ABA Records contain U.S. bank account details per the ABA format. + """ + iban: Optional[Iban] + """ + Iban Records contain E.U. bank account details per the SEPA format. + """ + sort_code: Optional[SortCode] + """ + Sort Code Records contain U.K. bank account details per the sort code format. + """ + spei: Optional[Spei] + """ + SPEI Records contain Mexico bank account details per the SPEI format. + """ + supported_networks: Optional[ + List[ + Literal[ + "ach", + "bacs", + "domestic_wire_us", + "fps", + "sepa", + "spei", + "swift", + "zengin", + ] + ] + ] + """ + The payment networks supported by this FinancialAddress + """ + swift: Optional[Swift] + """ + SWIFT Records contain U.S. bank account details per the SWIFT format. + """ + type: Literal[ + "aba", "iban", "sort_code", "spei", "swift", "zengin" + ] + """ + The type of financial address + """ + zengin: Optional[Zengin] + """ + Zengin Records contain Japan bank account details per the Zengin format. + """ + _inner_class_types = { + "aba": Aba, + "iban": Iban, + "sort_code": SortCode, + "spei": Spei, + "swift": Swift, + "zengin": Zengin, + } + + amount_remaining: Optional[int] + """ + The remaining amount that needs to be transferred to complete the payment. + """ + currency: Optional[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + financial_addresses: Optional[List[FinancialAddress]] + """ + A list of financial addresses that can be used to fund the customer balance + """ + hosted_instructions_url: Optional[str] + """ + A link to a hosted page that guides your customer through completing the transfer. + """ + reference: Optional[str] + """ + A string identifying this payment. Instruct your customer to include this code in the reference or memo field of their bank transfer. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + Type of bank transfer + """ + _inner_class_types = {"financial_addresses": FinancialAddress} + + class KonbiniDisplayDetails(StripeObject): + class Stores(StripeObject): + class Familymart(StripeObject): + confirmation_number: Optional[str] + """ + The confirmation number. + """ + payment_code: str + """ + The payment code. + """ + + class Lawson(StripeObject): + confirmation_number: Optional[str] + """ + The confirmation number. + """ + payment_code: str + """ + The payment code. + """ + + class Ministop(StripeObject): + confirmation_number: Optional[str] + """ + The confirmation number. + """ + payment_code: str + """ + The payment code. + """ + + class Seicomart(StripeObject): + confirmation_number: Optional[str] + """ + The confirmation number. + """ + payment_code: str + """ + The payment code. + """ + + familymart: Optional[Familymart] + """ + FamilyMart instruction details. + """ + lawson: Optional[Lawson] + """ + Lawson instruction details. + """ + ministop: Optional[Ministop] + """ + Ministop instruction details. + """ + seicomart: Optional[Seicomart] + """ + Seicomart instruction details. + """ + _inner_class_types = { + "familymart": Familymart, + "lawson": Lawson, + "ministop": Ministop, + "seicomart": Seicomart, + } + + expires_at: int + """ + The timestamp at which the pending Konbini payment expires. + """ + hosted_voucher_url: Optional[str] + """ + The URL for the Konbini payment instructions page, which allows customers to view and print a Konbini voucher. + """ + stores: Stores + _inner_class_types = {"stores": Stores} + + class MultibancoDisplayDetails(StripeObject): + entity: Optional[str] + """ + Entity number associated with this Multibanco payment. + """ + expires_at: Optional[int] + """ + The timestamp at which the Multibanco voucher expires. + """ + hosted_voucher_url: Optional[str] + """ + The URL for the hosted Multibanco voucher page, which allows customers to view a Multibanco voucher. + """ + reference: Optional[str] + """ + Reference number associated with this Multibanco payment. + """ + + class OxxoDisplayDetails(StripeObject): + expires_after: Optional[int] + """ + The timestamp after which the OXXO voucher expires. + """ + hosted_voucher_url: Optional[str] + """ + The URL for the hosted OXXO voucher page, which allows customers to view and print an OXXO voucher. + """ + number: Optional[str] + """ + OXXO reference number. + """ + + class PaynowDisplayQrCode(StripeObject): + data: str + """ + The raw data string used to generate QR code, it should be used together with QR code library. + """ + hosted_instructions_url: Optional[str] + """ + The URL to the hosted PayNow instructions page, which allows customers to view the PayNow QR code. + """ + image_url_png: str + """ + The image_url_png string used to render QR code + """ + image_url_svg: str + """ + The image_url_svg string used to render QR code + """ + + class PixDisplayQrCode(StripeObject): + data: Optional[str] + """ + The raw data string used to generate QR code, it should be used together with QR code library. + """ + expires_at: Optional[int] + """ + The date (unix timestamp) when the PIX expires. + """ + hosted_instructions_url: Optional[str] + """ + The URL to the hosted pix instructions page, which allows customers to view the pix QR code. + """ + image_url_png: Optional[str] + """ + The image_url_png string used to render png QR code + """ + image_url_svg: Optional[str] + """ + The image_url_svg string used to render svg QR code + """ + + class PromptpayDisplayQrCode(StripeObject): + data: str + """ + The raw data string used to generate QR code, it should be used together with QR code library. + """ + hosted_instructions_url: str + """ + The URL to the hosted PromptPay instructions page, which allows customers to view the PromptPay QR code. + """ + image_url_png: str + """ + The PNG path used to render the QR code, can be used as the source in an HTML img tag + """ + image_url_svg: str + """ + The SVG path used to render the QR code, can be used as the source in an HTML img tag + """ + + class RedirectToUrl(StripeObject): + return_url: Optional[str] + """ + If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion. + """ + url: Optional[str] + """ + The URL you must redirect your customer to in order to authenticate the payment. + """ + + class SwishHandleRedirectOrDisplayQrCode(StripeObject): + class QrCode(StripeObject): + data: str + """ + The raw data string used to generate QR code, it should be used together with QR code library. + """ + image_url_png: str + """ + The image_url_png string used to render QR code + """ + image_url_svg: str + """ + The image_url_svg string used to render QR code + """ + + hosted_instructions_url: str + """ + The URL to the hosted Swish instructions page, which allows customers to view the QR code. + """ + mobile_auth_url: str + """ + The url for mobile redirect based auth (for internal use only and not typically available in standard API requests). + """ + qr_code: QrCode + _inner_class_types = {"qr_code": QrCode} + + class VerifyWithMicrodeposits(StripeObject): + arrival_date: int + """ + The timestamp when the microdeposits are expected to land. + """ + hosted_verification_url: str + """ + The URL for the hosted verification page, which allows customers to verify their bank account. + """ + microdeposit_type: Optional[Literal["amounts", "descriptor_code"]] + """ + The type of the microdeposit sent to the customer. Used to distinguish between different verification methods. + """ + + class WechatPayDisplayQrCode(StripeObject): + data: str + """ + The data being used to generate QR code + """ + hosted_instructions_url: str + """ + The URL to the hosted WeChat Pay instructions page, which allows customers to view the WeChat Pay QR code. + """ + image_data_url: str + """ + The base64 image data for a pre-generated QR code + """ + image_url_png: str + """ + The image_url_png string used to render QR code + """ + image_url_svg: str + """ + The image_url_svg string used to render QR code + """ + + class WechatPayRedirectToAndroidApp(StripeObject): + app_id: str + """ + app_id is the APP ID registered on WeChat open platform + """ + nonce_str: str + """ + nonce_str is a random string + """ + package: str + """ + package is static value + """ + partner_id: str + """ + an unique merchant ID assigned by WeChat Pay + """ + prepay_id: str + """ + an unique trading ID assigned by WeChat Pay + """ + sign: str + """ + A signature + """ + timestamp: str + """ + Specifies the current time in epoch format + """ + + class WechatPayRedirectToIosApp(StripeObject): + native_url: str + """ + An universal link that redirect to WeChat Pay app + """ + + alipay_handle_redirect: Optional[AlipayHandleRedirect] + boleto_display_details: Optional[BoletoDisplayDetails] + card_await_notification: Optional[CardAwaitNotification] + cashapp_handle_redirect_or_display_qr_code: Optional[ + CashappHandleRedirectOrDisplayQrCode + ] + display_bank_transfer_instructions: Optional[ + DisplayBankTransferInstructions + ] + konbini_display_details: Optional[KonbiniDisplayDetails] + multibanco_display_details: Optional[MultibancoDisplayDetails] + oxxo_display_details: Optional[OxxoDisplayDetails] + paynow_display_qr_code: Optional[PaynowDisplayQrCode] + pix_display_qr_code: Optional[PixDisplayQrCode] + promptpay_display_qr_code: Optional[PromptpayDisplayQrCode] + redirect_to_url: Optional[RedirectToUrl] + swish_handle_redirect_or_display_qr_code: Optional[ + SwishHandleRedirectOrDisplayQrCode + ] + type: str + """ + Type of the next action to perform. Refer to the other child attributes under `next_action` for available values. Examples include: `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits`. + """ + use_stripe_sdk: Optional[Dict[str, "Any"]] + """ + When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js. + """ + verify_with_microdeposits: Optional[VerifyWithMicrodeposits] + wechat_pay_display_qr_code: Optional[WechatPayDisplayQrCode] + wechat_pay_redirect_to_android_app: Optional[ + WechatPayRedirectToAndroidApp + ] + wechat_pay_redirect_to_ios_app: Optional[WechatPayRedirectToIosApp] + _inner_class_types = { + "alipay_handle_redirect": AlipayHandleRedirect, + "boleto_display_details": BoletoDisplayDetails, + "card_await_notification": CardAwaitNotification, + "cashapp_handle_redirect_or_display_qr_code": CashappHandleRedirectOrDisplayQrCode, + "display_bank_transfer_instructions": DisplayBankTransferInstructions, + "konbini_display_details": KonbiniDisplayDetails, + "multibanco_display_details": MultibancoDisplayDetails, + "oxxo_display_details": OxxoDisplayDetails, + "paynow_display_qr_code": PaynowDisplayQrCode, + "pix_display_qr_code": PixDisplayQrCode, + "promptpay_display_qr_code": PromptpayDisplayQrCode, + "redirect_to_url": RedirectToUrl, + "swish_handle_redirect_or_display_qr_code": SwishHandleRedirectOrDisplayQrCode, + "verify_with_microdeposits": VerifyWithMicrodeposits, + "wechat_pay_display_qr_code": WechatPayDisplayQrCode, + "wechat_pay_redirect_to_android_app": WechatPayRedirectToAndroidApp, + "wechat_pay_redirect_to_ios_app": WechatPayRedirectToIosApp, + } + + class PaymentDetails(StripeObject): + customer_reference: Optional[str] + """ + A unique value to identify the customer. This field is available only for card payments. + + This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. + """ + order_reference: Optional[str] + """ + A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates. + + Required when the Payment Method Types array contains `card`, including when [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-automatic_payment_methods-enabled) is set to `true`. + + For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app. + """ + + class PaymentMethodConfigurationDetails(StripeObject): + id: str + """ + ID of the payment method configuration used. + """ + parent: Optional[str] + """ + ID of the parent payment method configuration used. + """ + + class PaymentMethodOptions(StripeObject): + class AcssDebit(StripeObject): + class MandateOptions(StripeObject): + custom_mandate_url: Optional[str] + """ + A URL for custom mandate text + """ + interval_description: Optional[str] + """ + Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: Optional[ + Literal["combined", "interval", "sporadic"] + ] + """ + Payment schedule for the mandate. + """ + transaction_type: Optional[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + mandate_options: Optional[MandateOptions] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Affirm(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: Optional[str] + """ + Preferred language of the Affirm authorization page that the customer is redirected to. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class AfterpayClearpay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + reference: Optional[str] + """ + An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. + This field differs from the statement descriptor and item name. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Alipay(StripeObject): + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Alma(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class AmazonPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class AuBecsDebit(StripeObject): + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + class BacsDebit(StripeObject): + class MandateOptions(StripeObject): + reference_prefix: Optional[str] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + mandate_options: Optional[MandateOptions] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Bancontact(StripeObject): + preferred_language: Literal["de", "en", "fr", "nl"] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Billie(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class Blik(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Boleto(StripeObject): + expires_after_days: int + """ + The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time. + """ + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Card(StripeObject): + class Installments(StripeObject): + class AvailablePlan(StripeObject): + count: Optional[int] + """ + For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card. + """ + interval: Optional[Literal["month"]] + """ + For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + class Plan(StripeObject): + count: Optional[int] + """ + For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card. + """ + interval: Optional[Literal["month"]] + """ + For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + available_plans: Optional[List[AvailablePlan]] + """ + Installment plans that may be selected for this PaymentIntent. + """ + enabled: bool + """ + Whether Installments are enabled for this PaymentIntent. + """ + plan: Optional[Plan] + """ + Installment plan selected for this PaymentIntent. + """ + _inner_class_types = { + "available_plans": AvailablePlan, + "plan": Plan, + } + + class MandateOptions(StripeObject): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: Optional[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: Optional[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: Optional[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: Optional[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + installments: Optional[Installments] + """ + Installment details for this payment. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + mandate_options: Optional[MandateOptions] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + network: Optional[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this payment intent on. Depends on the available networks of the card attached to the payment intent. Can be only set confirm-time. + """ + request_extended_authorization: Optional[ + Literal["if_available", "never"] + ] + """ + Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. + """ + request_incremental_authorization: Optional[ + Literal["if_available", "never"] + ] + """ + Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. + """ + request_multicapture: Optional[Literal["if_available", "never"]] + """ + Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. + """ + request_overcapture: Optional[Literal["if_available", "never"]] + """ + Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. + """ + request_three_d_secure: Optional[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + require_cvc_recollection: Optional[bool] + """ + When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter). + """ + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + statement_descriptor_suffix_kana: Optional[str] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters. + """ + statement_descriptor_suffix_kanji: Optional[str] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters. + """ + _inner_class_types = { + "installments": Installments, + "mandate_options": MandateOptions, + } + + class CardPresent(StripeObject): + class Routing(StripeObject): + requested_priority: Optional[ + Literal["domestic", "international"] + ] + """ + Requested routing priority + """ + + capture_method: Optional[Literal["manual", "manual_preferred"]] + """ + Controls when the funds will be captured from the customer's account. + """ + request_extended_authorization: Optional[bool] + """ + Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) + """ + request_incremental_authorization_support: Optional[bool] + """ + Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support. + """ + routing: Optional[Routing] + _inner_class_types = {"routing": Routing} + + class Cashapp(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Crypto(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class CustomerBalance(StripeObject): + class BankTransfer(StripeObject): + class EuBankTransfer(StripeObject): + country: Literal["BE", "DE", "ES", "FR", "IE", "NL"] + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + eu_bank_transfer: Optional[EuBankTransfer] + requested_address_types: Optional[ + List[ + Literal[ + "aba", + "iban", + "sepa", + "sort_code", + "spei", + "swift", + "zengin", + ] + ] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Optional[ + Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + ] + """ + The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + _inner_class_types = {"eu_bank_transfer": EuBankTransfer} + + bank_transfer: Optional[BankTransfer] + funding_type: Optional[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + _inner_class_types = {"bank_transfer": BankTransfer} + + class Eps(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Fpx(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Giropay(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Grabpay(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Ideal(StripeObject): + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class InteracPresent(StripeObject): + pass + + class KakaoPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Klarna(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: Optional[str] + """ + Preferred locale of the Klarna checkout page that the customer is redirected to. + """ + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Konbini(StripeObject): + confirmation_number: Optional[str] + """ + An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. + """ + expires_after_days: Optional[int] + """ + The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. + """ + expires_at: Optional[int] + """ + The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set. + """ + product_description: Optional[str] + """ + A product descriptor of up to 22 characters, which will appear to customers at the convenience store. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class KrCard(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Link(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + persistent_token: Optional[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class MbWay(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Mobilepay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Multibanco(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class NaverPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class NzBankAccount(StripeObject): + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + class Oxxo(StripeObject): + expires_after_days: int + """ + The number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class P24(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class PayByBank(StripeObject): + pass + + class Payco(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class Paynow(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Paypal(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: Optional[str] + """ + Preferred locale of the PayPal checkout page that the customer is redirected to. + """ + reference: Optional[str] + """ + A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Pix(StripeObject): + amount_includes_iof: Optional[Literal["always", "never"]] + """ + Determines if the amount includes the IOF tax. + """ + expires_after_seconds: Optional[int] + """ + The number of seconds (between 10 and 1209600) after which Pix payment will expire. + """ + expires_at: Optional[int] + """ + The timestamp at which the Pix expires. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Promptpay(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class RevolutPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class SamsungPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class Satispay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class SepaDebit(StripeObject): + class MandateOptions(StripeObject): + reference_prefix: Optional[str] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + mandate_options: Optional[MandateOptions] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Sofort(StripeObject): + preferred_language: Optional[ + Literal["de", "en", "es", "fr", "it", "nl", "pl"] + ] + """ + Preferred language of the SOFORT authorization page that the customer is redirected to. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Swish(StripeObject): + reference: Optional[str] + """ + A reference for this payment to be displayed in the Swish app. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Twint(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class UsBankAccount(StripeObject): + class FinancialConnections(StripeObject): + class Filters(StripeObject): + account_subcategories: Optional[ + List[Literal["checking", "savings"]] + ] + """ + The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`. + """ + + filters: Optional[Filters] + permissions: Optional[ + List[ + Literal[ + "balances", + "ownership", + "payment_method", + "transactions", + ] + ] + ] + """ + The list of permissions to request. The `payment_method` permission must be included. + """ + prefetch: Optional[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + Data features requested to be retrieved upon account creation. + """ + return_url: Optional[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + _inner_class_types = {"filters": Filters} + + class MandateOptions(StripeObject): + collection_method: Optional[Literal["paper"]] + """ + Mandate collection method + """ + + financial_connections: Optional[FinancialConnections] + mandate_options: Optional[MandateOptions] + preferred_settlement_speed: Optional[ + Literal["fastest", "standard"] + ] + """ + Preferred transaction settlement speed + """ + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = { + "financial_connections": FinancialConnections, + "mandate_options": MandateOptions, + } + + class WechatPay(StripeObject): + app_id: Optional[str] + """ + The app ID registered with WeChat Pay. Only required when client is ios or android. + """ + client: Optional[Literal["android", "ios", "web"]] + """ + The client type that the end customer will pay from + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Zip(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + acss_debit: Optional[AcssDebit] + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + blik: Optional[Blik] + boleto: Optional[Boleto] + card: Optional[Card] + card_present: Optional[CardPresent] + cashapp: Optional[Cashapp] + crypto: Optional[Crypto] + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + ideal: Optional[Ideal] + interac_present: Optional[InteracPresent] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + mb_way: Optional[MbWay] + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + oxxo: Optional[Oxxo] + p24: Optional[P24] + pay_by_bank: Optional[PayByBank] + payco: Optional[Payco] + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + promptpay: Optional[Promptpay] + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + swish: Optional[Swish] + twint: Optional[Twint] + us_bank_account: Optional[UsBankAccount] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + _inner_class_types = { + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "blik": Blik, + "boleto": Boleto, + "card": Card, + "card_present": CardPresent, + "cashapp": Cashapp, + "crypto": Crypto, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "grabpay": Grabpay, + "ideal": Ideal, + "interac_present": InteracPresent, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mb_way": MbWay, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "oxxo": Oxxo, + "p24": P24, + "pay_by_bank": PayByBank, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "promptpay": Promptpay, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + "wechat_pay": WechatPay, + "zip": Zip, + } + + class PresentmentDetails(StripeObject): + presentment_amount: int + """ + Amount intended to be collected by this payment, denominated in `presentment_currency`. + """ + presentment_currency: str + """ + Currency presented to the customer during payment. + """ + + class Processing(StripeObject): + class Card(StripeObject): + class CustomerNotification(StripeObject): + approval_requested: Optional[bool] + """ + Whether customer approval has been requested for this payment. For payments greater than INR 15000 or mandate amount, the customer must provide explicit approval of the payment with their bank. + """ + completes_at: Optional[int] + """ + If customer approval is required, they need to provide approval before this time. + """ + + customer_notification: Optional[CustomerNotification] + _inner_class_types = { + "customer_notification": CustomerNotification + } + + card: Optional[Card] + type: Literal["card"] + """ + Type of the payment method for which payment is in `processing` state, one of `card`. + """ + _inner_class_types = {"card": Card} + + class Shipping(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + carrier: Optional[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: Optional[str] + """ + Recipient name. + """ + phone: Optional[str] + """ + Recipient phone (including extension). + """ + tracking_number: Optional[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + _inner_class_types = {"address": Address} + + class TransferData(StripeObject): + amount: Optional[int] + """ + The amount transferred to the destination account. This transfer will occur automatically after the payment succeeds. If no amount is specified, by default the entire payment amount is transferred to the destination account. + The amount must be less than or equal to the [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount), and must be a positive integer + representing how much to transfer in the smallest currency unit (e.g., 100 cents to charge $1.00). + """ + destination: ExpandableField["Account"] + """ + The account (if any) that the payment is attributed to for tax reporting, and where funds from the payment are transferred to after payment success. + """ + + amount: int + """ + Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + amount_capturable: int + """ + Amount that can be captured from this PaymentIntent. + """ + amount_details: Optional[AmountDetails] + amount_received: int + """ + Amount that this PaymentIntent collects. + """ + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect application that created the PaymentIntent. + """ + application_fee_amount: Optional[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + automatic_payment_methods: Optional[AutomaticPaymentMethods] + """ + Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) + """ + canceled_at: Optional[int] + """ + Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch. + """ + cancellation_reason: Optional[ + Literal[ + "abandoned", + "automatic", + "duplicate", + "expired", + "failed_invoice", + "fraudulent", + "requested_by_customer", + "void_invoice", + ] + ] + """ + Reason for cancellation of this PaymentIntent, either user-provided (`duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`) or generated by Stripe internally (`failed_invoice`, `void_invoice`, `automatic`, or `expired`). + """ + capture_method: Literal["automatic", "automatic_async", "manual"] + """ + Controls when the funds will be captured from the customer's account. + """ + client_secret: Optional[str] + """ + The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. + + The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret. + + Refer to our docs to [accept a payment](https://stripe.com/docs/payments/accept-a-payment?ui=elements) and learn about how `client_secret` should be handled. + """ + confirmation_method: Literal["automatic", "manual"] + """ + Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: Optional[ExpandableField["Customer"]] + """ + ID of the Customer this PaymentIntent belongs to, if one exists. + + Payment methods attached to other Customers cannot be used with this PaymentIntent. + + If [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + excluded_payment_method_types: Optional[ + List[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + The list of payment method types to exclude from use with this payment. + """ + id: str + """ + Unique identifier for the object. + """ + last_payment_error: Optional[LastPaymentError] + """ + The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason. + """ + latest_charge: Optional[ExpandableField["Charge"]] + """ + ID of the latest [Charge object](https://stripe.com/docs/api/charges) created by this PaymentIntent. This property is `null` until PaymentIntent confirmation is attempted. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Learn more about [storing information in metadata](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata). + """ + next_action: Optional[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. + """ + object: Literal["payment_intent"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details. + """ + payment_details: Optional[PaymentDetails] + payment_method: Optional[ExpandableField["PaymentMethod"]] + """ + ID of the payment method used in this PaymentIntent. + """ + payment_method_configuration_details: Optional[ + PaymentMethodConfigurationDetails + ] + """ + Information about the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) used for this PaymentIntent. + """ + payment_method_options: Optional[PaymentMethodOptions] + """ + Payment-method-specific configuration for this PaymentIntent. + """ + payment_method_types: List[str] + """ + The list of payment method types (e.g. card) that this PaymentIntent is allowed to use. A comprehensive list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + presentment_details: Optional[PresentmentDetails] + processing: Optional[Processing] + """ + If present, this property tells you about the processing state of the payment. + """ + receipt_email: Optional[str] + """ + Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails). + """ + review: Optional[ExpandableField["Review"]] + """ + ID of the review associated with this PaymentIntent, if any. + """ + setup_future_usage: Optional[Literal["off_session", "on_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + shipping: Optional[Shipping] + """ + Shipping information for this PaymentIntent. + """ + source: Optional[ + ExpandableField[ + Union["Account", "BankAccount", "CardResource", "Source"] + ] + ] + """ + This is a legacy field that will be removed in the future. It is the ID of the Source object that is associated with this PaymentIntent, if one was supplied. + """ + statement_descriptor: Optional[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: Optional[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + status: Literal[ + "canceled", + "processing", + "requires_action", + "requires_capture", + "requires_confirmation", + "requires_payment_method", + "succeeded", + ] + """ + Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses). + """ + transfer_data: Optional[TransferData] + """ + The data that automatically creates a Transfer after the payment finalizes. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + transfer_group: Optional[str] + """ + A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers). + """ + + @classmethod + def _cls_apply_customer_balance( + cls, + intent: str, + **params: Unpack["PaymentIntentApplyCustomerBalanceParams"], + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + return cast( + "PaymentIntent", + cls._static_request( + "post", + "/v1/payment_intents/{intent}/apply_customer_balance".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def apply_customer_balance( + intent: str, + **params: Unpack["PaymentIntentApplyCustomerBalanceParams"], + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + ... + + @overload + def apply_customer_balance( + self, **params: Unpack["PaymentIntentApplyCustomerBalanceParams"] + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + ... + + @class_method_variant("_cls_apply_customer_balance") + def apply_customer_balance( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentApplyCustomerBalanceParams"] + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/apply_customer_balance".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_apply_customer_balance_async( + cls, + intent: str, + **params: Unpack["PaymentIntentApplyCustomerBalanceParams"], + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + "/v1/payment_intents/{intent}/apply_customer_balance".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def apply_customer_balance_async( + intent: str, + **params: Unpack["PaymentIntentApplyCustomerBalanceParams"], + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + ... + + @overload + async def apply_customer_balance_async( + self, **params: Unpack["PaymentIntentApplyCustomerBalanceParams"] + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + ... + + @class_method_variant("_cls_apply_customer_balance_async") + async def apply_customer_balance_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentApplyCustomerBalanceParams"] + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/apply_customer_balance".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_cancel( + cls, intent: str, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "PaymentIntent", + cls._static_request( + "post", + "/v1/payment_intents/{intent}/cancel".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + intent: str, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @overload + def cancel( + self, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/cancel".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, intent: str, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + "/v1/payment_intents/{intent}/cancel".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + intent: str, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentCancelParams"] + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/cancel".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_capture( + cls, intent: str, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + return cast( + "PaymentIntent", + cls._static_request( + "post", + "/v1/payment_intents/{intent}/capture".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def capture( + intent: str, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + ... + + @overload + def capture( + self, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + ... + + @class_method_variant("_cls_capture") + def capture( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/capture".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_capture_async( + cls, intent: str, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + "/v1/payment_intents/{intent}/capture".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def capture_async( + intent: str, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + ... + + @overload + async def capture_async( + self, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + ... + + @class_method_variant("_cls_capture_async") + async def capture_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentCaptureParams"] + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/capture".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_confirm( + cls, intent: str, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + return cast( + "PaymentIntent", + cls._static_request( + "post", + "/v1/payment_intents/{intent}/confirm".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def confirm( + intent: str, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + ... + + @overload + def confirm( + self, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + ... + + @class_method_variant("_cls_confirm") + def confirm( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/confirm".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_confirm_async( + cls, intent: str, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + "/v1/payment_intents/{intent}/confirm".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def confirm_async( + intent: str, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + ... + + @overload + async def confirm_async( + self, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + ... + + @class_method_variant("_cls_confirm_async") + async def confirm_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentConfirmParams"] + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/confirm".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["PaymentIntentCreateParams"] + ) -> "PaymentIntent": + """ + Creates a PaymentIntent object. + + After the PaymentIntent is created, attach a payment method and [confirm](https://docs.stripe.com/docs/api/payment_intents/confirm) + to continue the payment. Learn more about the available payment flows + with the Payment Intents API. + + When you use confirm=true during creation, it's equivalent to creating + and confirming the PaymentIntent in the same call. You can use any parameters + available in the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) when you supply + confirm=true. + """ + return cast( + "PaymentIntent", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PaymentIntentCreateParams"] + ) -> "PaymentIntent": + """ + Creates a PaymentIntent object. + + After the PaymentIntent is created, attach a payment method and [confirm](https://docs.stripe.com/docs/api/payment_intents/confirm) + to continue the payment. Learn more about the available payment flows + with the Payment Intents API. + + When you use confirm=true during creation, it's equivalent to creating + and confirming the PaymentIntent in the same call. You can use any parameters + available in the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) when you supply + confirm=true. + """ + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_increment_authorization( + cls, + intent: str, + **params: Unpack["PaymentIntentIncrementAuthorizationParams"], + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + return cast( + "PaymentIntent", + cls._static_request( + "post", + "/v1/payment_intents/{intent}/increment_authorization".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def increment_authorization( + intent: str, + **params: Unpack["PaymentIntentIncrementAuthorizationParams"], + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + ... + + @overload + def increment_authorization( + self, **params: Unpack["PaymentIntentIncrementAuthorizationParams"] + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + ... + + @class_method_variant("_cls_increment_authorization") + def increment_authorization( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentIncrementAuthorizationParams"] + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/increment_authorization".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_increment_authorization_async( + cls, + intent: str, + **params: Unpack["PaymentIntentIncrementAuthorizationParams"], + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + "/v1/payment_intents/{intent}/increment_authorization".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def increment_authorization_async( + intent: str, + **params: Unpack["PaymentIntentIncrementAuthorizationParams"], + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + ... + + @overload + async def increment_authorization_async( + self, **params: Unpack["PaymentIntentIncrementAuthorizationParams"] + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + ... + + @class_method_variant("_cls_increment_authorization_async") + async def increment_authorization_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentIncrementAuthorizationParams"] + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/increment_authorization".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PaymentIntentListParams"] + ) -> ListObject["PaymentIntent"]: + """ + Returns a list of PaymentIntents. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PaymentIntentListParams"] + ) -> ListObject["PaymentIntent"]: + """ + Returns a list of PaymentIntents. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["PaymentIntentModifyParams"] + ) -> "PaymentIntent": + """ + Updates properties on a PaymentIntent object without confirming. + + Depending on which properties you update, you might need to confirm the + PaymentIntent again. For example, updating the payment_method + always requires you to confirm the PaymentIntent again. If you prefer to + update and confirm at the same time, we recommend updating properties through + the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) instead. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentIntent", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PaymentIntentModifyParams"] + ) -> "PaymentIntent": + """ + Updates properties on a PaymentIntent object without confirming. + + Depending on which properties you update, you might need to confirm the + PaymentIntent again. For example, updating the payment_method + always requires you to confirm the PaymentIntent again. If you prefer to + update and confirm at the same time, we recommend updating properties through + the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) instead. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PaymentIntentRetrieveParams"] + ) -> "PaymentIntent": + """ + Retrieves the details of a PaymentIntent that has previously been created. + + You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string. + + If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the [payment intent](https://docs.stripe.com/api#payment_intent_object) object reference for more details. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PaymentIntentRetrieveParams"] + ) -> "PaymentIntent": + """ + Retrieves the details of a PaymentIntent that has previously been created. + + You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string. + + If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the [payment intent](https://docs.stripe.com/api#payment_intent_object) object reference for more details. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_verify_microdeposits( + cls, + intent: str, + **params: Unpack["PaymentIntentVerifyMicrodepositsParams"], + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + return cast( + "PaymentIntent", + cls._static_request( + "post", + "/v1/payment_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def verify_microdeposits( + intent: str, **params: Unpack["PaymentIntentVerifyMicrodepositsParams"] + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + ... + + @overload + def verify_microdeposits( + self, **params: Unpack["PaymentIntentVerifyMicrodepositsParams"] + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + ... + + @class_method_variant("_cls_verify_microdeposits") + def verify_microdeposits( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentVerifyMicrodepositsParams"] + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_verify_microdeposits_async( + cls, + intent: str, + **params: Unpack["PaymentIntentVerifyMicrodepositsParams"], + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + return cast( + "PaymentIntent", + await cls._static_request_async( + "post", + "/v1/payment_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def verify_microdeposits_async( + intent: str, **params: Unpack["PaymentIntentVerifyMicrodepositsParams"] + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + ... + + @overload + async def verify_microdeposits_async( + self, **params: Unpack["PaymentIntentVerifyMicrodepositsParams"] + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + ... + + @class_method_variant("_cls_verify_microdeposits_async") + async def verify_microdeposits_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentIntentVerifyMicrodepositsParams"] + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def search( + cls, *args, **kwargs: Unpack["PaymentIntentSearchParams"] + ) -> SearchResultObject["PaymentIntent"]: + """ + Search for PaymentIntents you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cls._search( + search_url="/v1/payment_intents/search", *args, **kwargs + ) + + @classmethod + async def search_async( + cls, *args, **kwargs: Unpack["PaymentIntentSearchParams"] + ) -> SearchResultObject["PaymentIntent"]: + """ + Search for PaymentIntents you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return await cls._search_async( + search_url="/v1/payment_intents/search", *args, **kwargs + ) + + @classmethod + def search_auto_paging_iter( + cls, *args, **kwargs: Unpack["PaymentIntentSearchParams"] + ) -> Iterator["PaymentIntent"]: + return cls.search(*args, **kwargs).auto_paging_iter() + + @classmethod + async def search_auto_paging_iter_async( + cls, *args, **kwargs: Unpack["PaymentIntentSearchParams"] + ) -> AsyncIterator["PaymentIntent"]: + return (await cls.search_async(*args, **kwargs)).auto_paging_iter() + + @classmethod + def list_amount_details_line_items( + cls, + intent: str, + **params: Unpack["PaymentIntentListAmountDetailsLineItemsParams"], + ) -> ListObject["PaymentIntentAmountDetailsLineItem"]: + """ + Lists all LineItems of a given PaymentIntent. + """ + return cast( + ListObject["PaymentIntentAmountDetailsLineItem"], + cls._static_request( + "get", + "/v1/payment_intents/{intent}/amount_details_line_items".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @classmethod + async def list_amount_details_line_items_async( + cls, + intent: str, + **params: Unpack["PaymentIntentListAmountDetailsLineItemsParams"], + ) -> ListObject["PaymentIntentAmountDetailsLineItem"]: + """ + Lists all LineItems of a given PaymentIntent. + """ + return cast( + ListObject["PaymentIntentAmountDetailsLineItem"], + await cls._static_request_async( + "get", + "/v1/payment_intents/{intent}/amount_details_line_items".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + _inner_class_types = { + "amount_details": AmountDetails, + "automatic_payment_methods": AutomaticPaymentMethods, + "last_payment_error": LastPaymentError, + "next_action": NextAction, + "payment_details": PaymentDetails, + "payment_method_configuration_details": PaymentMethodConfigurationDetails, + "payment_method_options": PaymentMethodOptions, + "presentment_details": PresentmentDetails, + "processing": Processing, + "shipping": Shipping, + "transfer_data": TransferData, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_amount_details_line_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_amount_details_line_item.py new file mode 100644 index 00000000..2c1e291f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_amount_details_line_item.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal + + +class PaymentIntentAmountDetailsLineItem(StripeObject): + OBJECT_NAME: ClassVar[ + Literal["payment_intent_amount_details_line_item"] + ] = "payment_intent_amount_details_line_item" + + class PaymentMethodOptions(StripeObject): + class Card(StripeObject): + commodity_code: Optional[str] + + class CardPresent(StripeObject): + commodity_code: Optional[str] + + class Klarna(StripeObject): + image_url: Optional[str] + product_url: Optional[str] + reference: Optional[str] + subscription_reference: Optional[str] + + class Paypal(StripeObject): + category: Optional[ + Literal["digital_goods", "donation", "physical_goods"] + ] + """ + Type of the line item. + """ + description: Optional[str] + """ + Description of the line item. + """ + sold_by: Optional[str] + """ + The Stripe account ID of the connected account that sells the item. This is only needed when using [Separate Charges and Transfers](https://docs.stripe.com/connect/separate-charges-and-transfers). + """ + + card: Optional[Card] + card_present: Optional[CardPresent] + klarna: Optional[Klarna] + paypal: Optional[Paypal] + _inner_class_types = { + "card": Card, + "card_present": CardPresent, + "klarna": Klarna, + "paypal": Paypal, + } + + class Tax(StripeObject): + total_tax_amount: int + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + discount_amount: Optional[int] + """ + The discount applied on this line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[discount_amount]` field. + """ + id: str + """ + Unique identifier for the object. + """ + object: Literal["payment_intent_amount_details_line_item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_method_options: Optional[PaymentMethodOptions] + """ + Payment method-specific information for line items. + """ + product_code: Optional[str] + """ + The product code of the line item, such as an SKU. Required for L3 rates. At most 12 characters long. + """ + product_name: str + """ + The product name of the line item. Required for L3 rates. At most 1024 characters long. + + For Cards, this field is truncated to 26 alphanumeric characters before being sent to the card networks. For Paypal, this field is truncated to 127 characters. + """ + quantity: int + """ + The quantity of items. Required for L3 rates. An integer greater than 0. + """ + tax: Optional[Tax] + """ + Contains information about the tax on the item. + """ + unit_cost: int + """ + The unit cost of the line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + """ + unit_of_measure: Optional[str] + """ + A unit of measure for the line item, such as gallons, feet, meters, etc. Required for L3 rates. At most 12 alphanumeric characters long. + """ + _inner_class_types = { + "payment_method_options": PaymentMethodOptions, + "tax": Tax, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_amount_details_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_amount_details_line_item_service.py new file mode 100644 index 00000000..a8ac4bc1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_amount_details_line_item_service.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_intent_amount_details_line_item import ( + PaymentIntentAmountDetailsLineItem, + ) + from stripe._request_options import RequestOptions + from stripe.params._payment_intent_amount_details_line_item_list_params import ( + PaymentIntentAmountDetailsLineItemListParams, + ) + + +class PaymentIntentAmountDetailsLineItemService(StripeService): + def list( + self, + intent: str, + params: Optional[ + "PaymentIntentAmountDetailsLineItemListParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentIntentAmountDetailsLineItem]": + """ + Lists all LineItems of a given PaymentIntent. + """ + return cast( + "ListObject[PaymentIntentAmountDetailsLineItem]", + self._request( + "get", + "/v1/payment_intents/{intent}/amount_details_line_items".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + intent: str, + params: Optional[ + "PaymentIntentAmountDetailsLineItemListParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentIntentAmountDetailsLineItem]": + """ + Lists all LineItems of a given PaymentIntent. + """ + return cast( + "ListObject[PaymentIntentAmountDetailsLineItem]", + await self._request_async( + "get", + "/v1/payment_intents/{intent}/amount_details_line_items".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_service.py new file mode 100644 index 00000000..8c55091f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_intent_service.py @@ -0,0 +1,709 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_intent import PaymentIntent + from stripe._payment_intent_amount_details_line_item_service import ( + PaymentIntentAmountDetailsLineItemService, + ) + from stripe._request_options import RequestOptions + from stripe._search_result_object import SearchResultObject + from stripe.params._payment_intent_apply_customer_balance_params import ( + PaymentIntentApplyCustomerBalanceParams, + ) + from stripe.params._payment_intent_cancel_params import ( + PaymentIntentCancelParams, + ) + from stripe.params._payment_intent_capture_params import ( + PaymentIntentCaptureParams, + ) + from stripe.params._payment_intent_confirm_params import ( + PaymentIntentConfirmParams, + ) + from stripe.params._payment_intent_create_params import ( + PaymentIntentCreateParams, + ) + from stripe.params._payment_intent_increment_authorization_params import ( + PaymentIntentIncrementAuthorizationParams, + ) + from stripe.params._payment_intent_list_params import ( + PaymentIntentListParams, + ) + from stripe.params._payment_intent_retrieve_params import ( + PaymentIntentRetrieveParams, + ) + from stripe.params._payment_intent_search_params import ( + PaymentIntentSearchParams, + ) + from stripe.params._payment_intent_update_params import ( + PaymentIntentUpdateParams, + ) + from stripe.params._payment_intent_verify_microdeposits_params import ( + PaymentIntentVerifyMicrodepositsParams, + ) + +_subservices = { + "amount_details_line_items": [ + "stripe._payment_intent_amount_details_line_item_service", + "PaymentIntentAmountDetailsLineItemService", + ], +} + + +class PaymentIntentService(StripeService): + amount_details_line_items: "PaymentIntentAmountDetailsLineItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["PaymentIntentListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentIntent]": + """ + Returns a list of PaymentIntents. + """ + return cast( + "ListObject[PaymentIntent]", + self._request( + "get", + "/v1/payment_intents", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PaymentIntentListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentIntent]": + """ + Returns a list of PaymentIntents. + """ + return cast( + "ListObject[PaymentIntent]", + await self._request_async( + "get", + "/v1/payment_intents", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PaymentIntentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Creates a PaymentIntent object. + + After the PaymentIntent is created, attach a payment method and [confirm](https://docs.stripe.com/docs/api/payment_intents/confirm) + to continue the payment. Learn more about the available payment flows + with the Payment Intents API. + + When you use confirm=true during creation, it's equivalent to creating + and confirming the PaymentIntent in the same call. You can use any parameters + available in the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) when you supply + confirm=true. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PaymentIntentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Creates a PaymentIntent object. + + After the PaymentIntent is created, attach a payment method and [confirm](https://docs.stripe.com/docs/api/payment_intents/confirm) + to continue the payment. Learn more about the available payment flows + with the Payment Intents API. + + When you use confirm=true during creation, it's equivalent to creating + and confirming the PaymentIntent in the same call. You can use any parameters + available in the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) when you supply + confirm=true. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + intent: str, + params: Optional["PaymentIntentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Retrieves the details of a PaymentIntent that has previously been created. + + You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string. + + If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the [payment intent](https://docs.stripe.com/api#payment_intent_object) object reference for more details. + """ + return cast( + "PaymentIntent", + self._request( + "get", + "/v1/payment_intents/{intent}".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + intent: str, + params: Optional["PaymentIntentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Retrieves the details of a PaymentIntent that has previously been created. + + You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string. + + If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the [payment intent](https://docs.stripe.com/api#payment_intent_object) object reference for more details. + """ + return cast( + "PaymentIntent", + await self._request_async( + "get", + "/v1/payment_intents/{intent}".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + intent: str, + params: Optional["PaymentIntentUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Updates properties on a PaymentIntent object without confirming. + + Depending on which properties you update, you might need to confirm the + PaymentIntent again. For example, updating the payment_method + always requires you to confirm the PaymentIntent again. If you prefer to + update and confirm at the same time, we recommend updating properties through + the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) instead. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + intent: str, + params: Optional["PaymentIntentUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Updates properties on a PaymentIntent object without confirming. + + Depending on which properties you update, you might need to confirm the + PaymentIntent again. For example, updating the payment_method + always requires you to confirm the PaymentIntent again. If you prefer to + update and confirm at the same time, we recommend updating properties through + the [confirm API](https://docs.stripe.com/docs/api/payment_intents/confirm) instead. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def search( + self, + params: "PaymentIntentSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[PaymentIntent]": + """ + Search for PaymentIntents you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[PaymentIntent]", + self._request( + "get", + "/v1/payment_intents/search", + base_address="api", + params=params, + options=options, + ), + ) + + async def search_async( + self, + params: "PaymentIntentSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[PaymentIntent]": + """ + Search for PaymentIntents you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[PaymentIntent]", + await self._request_async( + "get", + "/v1/payment_intents/search", + base_address="api", + params=params, + options=options, + ), + ) + + def apply_customer_balance( + self, + intent: str, + params: Optional["PaymentIntentApplyCustomerBalanceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/apply_customer_balance".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def apply_customer_balance_async( + self, + intent: str, + params: Optional["PaymentIntentApplyCustomerBalanceParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Manually reconcile the remaining amount for a customer_balance PaymentIntent. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/apply_customer_balance".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + intent: str, + params: Optional["PaymentIntentCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/cancel".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + intent: str, + params: Optional["PaymentIntentCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://docs.stripe.com/docs/payments/intents), processing. + + After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded. + + You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/cancel".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def capture( + self, + intent: str, + params: Optional["PaymentIntentCaptureParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/capture".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def capture_async( + self, + intent: str, + params: Optional["PaymentIntentCaptureParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture. + + Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation. + + Learn more about [separate authorization and capture](https://docs.stripe.com/docs/payments/capture-later). + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/capture".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def confirm( + self, + intent: str, + params: Optional["PaymentIntentConfirmParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/confirm".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def confirm_async( + self, + intent: str, + params: Optional["PaymentIntentConfirmParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Confirm that your customer intends to pay with current or provided + payment method. Upon confirmation, the PaymentIntent will attempt to initiate + a payment. + + If the selected payment method requires additional authentication steps, the + PaymentIntent will transition to the requires_action status and + suggest additional actions via next_action. If payment fails, + the PaymentIntent transitions to the requires_payment_method status or the + canceled status if the confirmation limit is reached. If + payment succeeds, the PaymentIntent will transition to the succeeded + status (or requires_capture, if capture_method is set to manual). + + If the confirmation_method is automatic, payment may be attempted + using our [client SDKs](https://docs.stripe.com/docs/stripe-js/reference#stripe-handle-card-payment) + and the PaymentIntent's [client_secret](https://docs.stripe.com/api#payment_intent_object-client_secret). + After next_actions are handled by the client, no additional + confirmation is required to complete the payment. + + If the confirmation_method is manual, all payment attempts must be + initiated using a secret key. + + If any actions are required for the payment, the PaymentIntent will + return to the requires_confirmation state + after those actions are completed. Your server needs to then + explicitly re-confirm the PaymentIntent to initiate the next payment + attempt. + + There is a variable upper limit on how many times a PaymentIntent can be confirmed. + After this limit is reached, any further calls to this endpoint will + transition the PaymentIntent to the canceled state. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/confirm".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def increment_authorization( + self, + intent: str, + params: "PaymentIntentIncrementAuthorizationParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/increment_authorization".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def increment_authorization_async( + self, + intent: str, + params: "PaymentIntentIncrementAuthorizationParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Perform an incremental authorization on an eligible + [PaymentIntent](https://docs.stripe.com/docs/api/payment_intents/object). To be eligible, the + PaymentIntent's status must be requires_capture and + [incremental_authorization_supported](https://docs.stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) + must be true. + + Incremental authorizations attempt to increase the authorized amount on + your customer's card to the new, higher amount provided. Similar to the + initial authorization, incremental authorizations can be declined. A + single PaymentIntent can call this endpoint multiple times to further + increase the authorized amount. + + If the incremental authorization succeeds, the PaymentIntent object + returns with the updated + [amount](https://docs.stripe.com/docs/api/payment_intents/object#payment_intent_object-amount). + If the incremental authorization fails, a + [card_declined](https://docs.stripe.com/docs/error-codes#card-declined) error returns, and no other + fields on the PaymentIntent or Charge update. The PaymentIntent + object remains capturable for the previously authorized amount. + + Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + After it's captured, a PaymentIntent can no longer be incremented. + + Learn more about [incremental authorizations](https://docs.stripe.com/docs/terminal/features/incremental-authorizations). + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/increment_authorization".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def verify_microdeposits( + self, + intent: str, + params: Optional["PaymentIntentVerifyMicrodepositsParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + return cast( + "PaymentIntent", + self._request( + "post", + "/v1/payment_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def verify_microdeposits_async( + self, + intent: str, + params: Optional["PaymentIntentVerifyMicrodepositsParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentIntent": + """ + Verifies microdeposits on a PaymentIntent object. + """ + return cast( + "PaymentIntent", + await self._request_async( + "post", + "/v1/payment_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link.py new file mode 100644 index 00000000..2a89ae8a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link.py @@ -0,0 +1,1174 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._line_item import LineItem + from stripe._shipping_rate import ShippingRate + from stripe._tax_id import TaxId + from stripe.params._payment_link_create_params import ( + PaymentLinkCreateParams, + ) + from stripe.params._payment_link_list_line_items_params import ( + PaymentLinkListLineItemsParams, + ) + from stripe.params._payment_link_list_params import PaymentLinkListParams + from stripe.params._payment_link_modify_params import ( + PaymentLinkModifyParams, + ) + from stripe.params._payment_link_retrieve_params import ( + PaymentLinkRetrieveParams, + ) + + +class PaymentLink( + CreateableAPIResource["PaymentLink"], + ListableAPIResource["PaymentLink"], + UpdateableAPIResource["PaymentLink"], +): + """ + A payment link is a shareable URL that will take your customers to a hosted payment page. A payment link can be shared and used multiple times. + + When a customer opens a payment link it will open a new [checkout session](https://stripe.com/docs/api/checkout/sessions) to render the payment page. You can use [checkout session events](https://stripe.com/docs/api/events/types#event_types-checkout.session.completed) to track payments through payment links. + + Related guide: [Payment Links API](https://stripe.com/docs/payment-links) + """ + + OBJECT_NAME: ClassVar[Literal["payment_link"]] = "payment_link" + + class AfterCompletion(StripeObject): + class HostedConfirmation(StripeObject): + custom_message: Optional[str] + """ + The custom message that is displayed to the customer after the purchase is complete. + """ + + class Redirect(StripeObject): + url: str + """ + The URL the customer will be redirected to after the purchase is complete. + """ + + hosted_confirmation: Optional[HostedConfirmation] + redirect: Optional[Redirect] + type: Literal["hosted_confirmation", "redirect"] + """ + The specified behavior after the purchase is complete. + """ + _inner_class_types = { + "hosted_confirmation": HostedConfirmation, + "redirect": Redirect, + } + + class AutomaticTax(StripeObject): + class Liability(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + enabled: bool + """ + If `true`, tax will be calculated automatically using the customer's location. + """ + liability: Optional[Liability] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + _inner_class_types = {"liability": Liability} + + class ConsentCollection(StripeObject): + class PaymentMethodReuseAgreement(StripeObject): + position: Literal["auto", "hidden"] + """ + Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's defaults will be used. + + When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI. + """ + + payment_method_reuse_agreement: Optional[PaymentMethodReuseAgreement] + """ + Settings related to the payment method reuse text shown in the Checkout UI. + """ + promotions: Optional[Literal["auto", "none"]] + """ + If set to `auto`, enables the collection of customer consent for promotional communications. + """ + terms_of_service: Optional[Literal["none", "required"]] + """ + If set to `required`, it requires cutomers to accept the terms of service before being able to pay. If set to `none`, customers won't be shown a checkbox to accept the terms of service. + """ + _inner_class_types = { + "payment_method_reuse_agreement": PaymentMethodReuseAgreement, + } + + class CustomField(StripeObject): + class Dropdown(StripeObject): + class Option(StripeObject): + label: str + """ + The label for the option, displayed to the customer. Up to 100 characters. + """ + value: str + """ + The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters. + """ + + default_value: Optional[str] + """ + The value that will pre-fill on the payment page. + """ + options: List[Option] + """ + The options available for the customer to select. Up to 200 options allowed. + """ + _inner_class_types = {"options": Option} + + class Label(StripeObject): + custom: Optional[str] + """ + Custom text for the label, displayed to the customer. Up to 50 characters. + """ + type: Literal["custom"] + """ + The type of the label. + """ + + class Numeric(StripeObject): + default_value: Optional[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: Optional[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: Optional[int] + """ + The minimum character length requirement for the customer's input. + """ + + class Text(StripeObject): + default_value: Optional[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: Optional[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: Optional[int] + """ + The minimum character length requirement for the customer's input. + """ + + dropdown: Optional[Dropdown] + key: str + """ + String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters. + """ + label: Label + numeric: Optional[Numeric] + optional: bool + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + text: Optional[Text] + type: Literal["dropdown", "numeric", "text"] + """ + The type of the field. + """ + _inner_class_types = { + "dropdown": Dropdown, + "label": Label, + "numeric": Numeric, + "text": Text, + } + + class CustomText(StripeObject): + class AfterSubmit(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + class ShippingAddress(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + class Submit(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + class TermsOfServiceAcceptance(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + after_submit: Optional[AfterSubmit] + """ + Custom text that should be displayed after the payment confirmation button. + """ + shipping_address: Optional[ShippingAddress] + """ + Custom text that should be displayed alongside shipping address collection. + """ + submit: Optional[Submit] + """ + Custom text that should be displayed alongside the payment confirmation button. + """ + terms_of_service_acceptance: Optional[TermsOfServiceAcceptance] + """ + Custom text that should be displayed in place of the default terms of service agreement text. + """ + _inner_class_types = { + "after_submit": AfterSubmit, + "shipping_address": ShippingAddress, + "submit": Submit, + "terms_of_service_acceptance": TermsOfServiceAcceptance, + } + + class InvoiceCreation(StripeObject): + class InvoiceData(StripeObject): + class CustomField(StripeObject): + name: str + """ + The name of the custom field. + """ + value: str + """ + The value of the custom field. + """ + + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + class RenderingOptions(StripeObject): + amount_tax_display: Optional[str] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. + """ + template: Optional[str] + """ + ID of the invoice rendering template to be used for the generated invoice. + """ + + account_tax_ids: Optional[List[ExpandableField["TaxId"]]] + """ + The account tax IDs associated with the invoice. + """ + custom_fields: Optional[List[CustomField]] + """ + A list of up to 4 custom fields to be displayed on the invoice. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + footer: Optional[str] + """ + Footer to be displayed on the invoice. + """ + issuer: Optional[Issuer] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + rendering_options: Optional[RenderingOptions] + """ + Options for invoice PDF rendering. + """ + _inner_class_types = { + "custom_fields": CustomField, + "issuer": Issuer, + "rendering_options": RenderingOptions, + } + + enabled: bool + """ + Enable creating an invoice on successful payment. + """ + invoice_data: Optional[InvoiceData] + """ + Configuration for the invoice. Default invoice values will be used if unspecified. + """ + _inner_class_types = {"invoice_data": InvoiceData} + + class NameCollection(StripeObject): + class Business(StripeObject): + enabled: bool + """ + Indicates whether business name collection is enabled for the payment link. + """ + optional: bool + """ + Whether the customer is required to complete the field before checking out. Defaults to `false`. + """ + + class Individual(StripeObject): + enabled: bool + """ + Indicates whether individual name collection is enabled for the payment link. + """ + optional: bool + """ + Whether the customer is required to complete the field before checking out. Defaults to `false`. + """ + + business: Optional[Business] + individual: Optional[Individual] + _inner_class_types = {"business": Business, "individual": Individual} + + class OptionalItem(StripeObject): + class AdjustableQuantity(StripeObject): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: Optional[int] + """ + The maximum quantity of this item the customer can purchase. By default this value is 99. + """ + minimum: Optional[int] + """ + The minimum quantity of this item the customer must purchase, if they choose to purchase it. Because this item is optional, the customer will always be able to remove it from their order, even if the `minimum` configured here is greater than 0. By default this value is 0. + """ + + adjustable_quantity: Optional[AdjustableQuantity] + price: str + quantity: int + _inner_class_types = {"adjustable_quantity": AdjustableQuantity} + + class PaymentIntentData(StripeObject): + capture_method: Optional[ + Literal["automatic", "automatic_async", "manual"] + ] + """ + Indicates when the funds will be captured from the customer's account. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on [Payment Intents](https://stripe.com/docs/api/payment_intents) generated from this payment link. + """ + setup_future_usage: Optional[Literal["off_session", "on_session"]] + """ + Indicates that you intend to make future payments with the payment method collected during checkout. + """ + statement_descriptor: Optional[str] + """ + For a non-card payment, information about the charge that appears on the customer's statement when this payment succeeds in creating a charge. + """ + statement_descriptor_suffix: Optional[str] + """ + For a card payment, information about the charge that appears on the customer's statement when this payment succeeds in creating a charge. Concatenated with the account's statement descriptor prefix to form the complete statement descriptor. + """ + transfer_group: Optional[str] + """ + A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details. + """ + + class PhoneNumberCollection(StripeObject): + enabled: bool + """ + If `true`, a phone number will be collected during checkout. + """ + + class Restrictions(StripeObject): + class CompletedSessions(StripeObject): + count: int + """ + The current number of checkout sessions that have been completed on the payment link which count towards the `completed_sessions` restriction to be met. + """ + limit: int + """ + The maximum number of checkout sessions that can be completed for the `completed_sessions` restriction to be met. + """ + + completed_sessions: CompletedSessions + _inner_class_types = {"completed_sessions": CompletedSessions} + + class ShippingAddressCollection(StripeObject): + allowed_countries: List[ + Literal[ + "AC", + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MK", + "ML", + "MM", + "MN", + "MO", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SZ", + "TA", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + "ZZ", + ] + ] + """ + An array of two-letter ISO country codes representing which countries Checkout should provide as options for shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI`. + """ + + class ShippingOption(StripeObject): + shipping_amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + shipping_rate: ExpandableField["ShippingRate"] + """ + The ID of the Shipping Rate to use for this shipping option. + """ + + class SubscriptionData(StripeObject): + class InvoiceSettings(StripeObject): + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + issuer: Issuer + _inner_class_types = {"issuer": Issuer} + + class TrialSettings(StripeObject): + class EndBehavior(StripeObject): + missing_payment_method: Literal[ + "cancel", "create_invoice", "pause" + ] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ + + end_behavior: EndBehavior + """ + Defines how a subscription behaves when a free trial ends. + """ + _inner_class_types = {"end_behavior": EndBehavior} + + description: Optional[str] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + invoice_settings: InvoiceSettings + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on [Subscriptions](https://stripe.com/docs/api/subscriptions) generated from this payment link. + """ + trial_period_days: Optional[int] + """ + Integer representing the number of trial period days before the customer is charged for the first time. + """ + trial_settings: Optional[TrialSettings] + """ + Settings related to subscription trials. + """ + _inner_class_types = { + "invoice_settings": InvoiceSettings, + "trial_settings": TrialSettings, + } + + class TaxIdCollection(StripeObject): + enabled: bool + """ + Indicates whether tax ID collection is enabled for the session. + """ + required: Literal["if_supported", "never"] + + class TransferData(StripeObject): + amount: Optional[int] + """ + The amount in cents (or local equivalent) that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: ExpandableField["Account"] + """ + The connected account receiving the transfer. + """ + + active: bool + """ + Whether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated. + """ + after_completion: AfterCompletion + allow_promotion_codes: bool + """ + Whether user redeemable promotion codes are enabled. + """ + application: Optional[ExpandableField["Application"]] + """ + The ID of the Connect application that created the Payment Link. + """ + application_fee_amount: Optional[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. + """ + application_fee_percent: Optional[float] + """ + This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. + """ + automatic_tax: AutomaticTax + billing_address_collection: Literal["auto", "required"] + """ + Configuration for collecting the customer's billing address. Defaults to `auto`. + """ + consent_collection: Optional[ConsentCollection] + """ + When set, provides configuration to gather active consent from customers. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + custom_fields: List[CustomField] + """ + Collect additional information from your customer using custom fields. Up to 3 fields are supported. + """ + custom_text: CustomText + customer_creation: Literal["always", "if_required"] + """ + Configuration for Customer creation during checkout. + """ + id: str + """ + Unique identifier for the object. + """ + inactive_message: Optional[str] + """ + The custom message to be displayed to a customer when a payment link is no longer active. + """ + invoice_creation: Optional[InvoiceCreation] + """ + Configuration for creating invoice for payment mode payment links. + """ + line_items: Optional[ListObject["LineItem"]] + """ + The line items representing what is being sold. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name_collection: Optional[NameCollection] + object: Literal["payment_link"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details. + """ + optional_items: Optional[List[OptionalItem]] + """ + The optional items presented to the customer at checkout. + """ + payment_intent_data: Optional[PaymentIntentData] + """ + Indicates the parameters to be passed to PaymentIntent creation during checkout. + """ + payment_method_collection: Literal["always", "if_required"] + """ + Configuration for collecting a payment method during checkout. Defaults to `always`. + """ + payment_method_types: Optional[ + List[ + Literal[ + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "klarna", + "konbini", + "link", + "mb_way", + "mobilepay", + "multibanco", + "oxxo", + "p24", + "pay_by_bank", + "paynow", + "paypal", + "pix", + "promptpay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + The list of payment method types that customers can use. When `null`, Stripe will dynamically show relevant payment methods you've enabled in your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). + """ + phone_number_collection: PhoneNumberCollection + restrictions: Optional[Restrictions] + """ + Settings that restrict the usage of a payment link. + """ + shipping_address_collection: Optional[ShippingAddressCollection] + """ + Configuration for collecting the customer's shipping address. + """ + shipping_options: List[ShippingOption] + """ + The shipping rate options applied to the session. + """ + submit_type: Literal["auto", "book", "donate", "pay", "subscribe"] + """ + Indicates the type of transaction being performed which customizes relevant text on the page, such as the submit button. + """ + subscription_data: Optional[SubscriptionData] + """ + When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`. + """ + tax_id_collection: TaxIdCollection + transfer_data: Optional[TransferData] + """ + The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to. + """ + url: str + """ + The public URL that can be shared with customers. + """ + + @classmethod + def create( + cls, **params: Unpack["PaymentLinkCreateParams"] + ) -> "PaymentLink": + """ + Creates a payment link. + """ + return cast( + "PaymentLink", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PaymentLinkCreateParams"] + ) -> "PaymentLink": + """ + Creates a payment link. + """ + return cast( + "PaymentLink", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PaymentLinkListParams"] + ) -> ListObject["PaymentLink"]: + """ + Returns a list of your payment links. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PaymentLinkListParams"] + ) -> ListObject["PaymentLink"]: + """ + Returns a list of your payment links. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_list_line_items( + cls, + payment_link: str, + **params: Unpack["PaymentLinkListLineItemsParams"], + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + cls._static_request( + "get", + "/v1/payment_links/{payment_link}/line_items".format( + payment_link=sanitize_id(payment_link) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_line_items( + payment_link: str, **params: Unpack["PaymentLinkListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @overload + def list_line_items( + self, **params: Unpack["PaymentLinkListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @class_method_variant("_cls_list_line_items") + def list_line_items( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentLinkListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + self._request( + "get", + "/v1/payment_links/{payment_link}/line_items".format( + payment_link=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_line_items_async( + cls, + payment_link: str, + **params: Unpack["PaymentLinkListLineItemsParams"], + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + await cls._static_request_async( + "get", + "/v1/payment_links/{payment_link}/line_items".format( + payment_link=sanitize_id(payment_link) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_line_items_async( + payment_link: str, **params: Unpack["PaymentLinkListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @overload + async def list_line_items_async( + self, **params: Unpack["PaymentLinkListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @class_method_variant("_cls_list_line_items_async") + async def list_line_items_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentLinkListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + await self._request_async( + "get", + "/v1/payment_links/{payment_link}/line_items".format( + payment_link=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def modify( + cls, id: str, **params: Unpack["PaymentLinkModifyParams"] + ) -> "PaymentLink": + """ + Updates a payment link. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentLink", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PaymentLinkModifyParams"] + ) -> "PaymentLink": + """ + Updates a payment link. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentLink", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PaymentLinkRetrieveParams"] + ) -> "PaymentLink": + """ + Retrieve a payment link. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PaymentLinkRetrieveParams"] + ) -> "PaymentLink": + """ + Retrieve a payment link. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "after_completion": AfterCompletion, + "automatic_tax": AutomaticTax, + "consent_collection": ConsentCollection, + "custom_fields": CustomField, + "custom_text": CustomText, + "invoice_creation": InvoiceCreation, + "name_collection": NameCollection, + "optional_items": OptionalItem, + "payment_intent_data": PaymentIntentData, + "phone_number_collection": PhoneNumberCollection, + "restrictions": Restrictions, + "shipping_address_collection": ShippingAddressCollection, + "shipping_options": ShippingOption, + "subscription_data": SubscriptionData, + "tax_id_collection": TaxIdCollection, + "transfer_data": TransferData, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link_line_item_service.py new file mode 100644 index 00000000..d480f536 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link_line_item_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._line_item import LineItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._payment_link_line_item_list_params import ( + PaymentLinkLineItemListParams, + ) + + +class PaymentLinkLineItemService(StripeService): + def list( + self, + payment_link: str, + params: Optional["PaymentLinkLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[LineItem]", + self._request( + "get", + "/v1/payment_links/{payment_link}/line_items".format( + payment_link=sanitize_id(payment_link), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + payment_link: str, + params: Optional["PaymentLinkLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[LineItem]", + await self._request_async( + "get", + "/v1/payment_links/{payment_link}/line_items".format( + payment_link=sanitize_id(payment_link), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link_service.py new file mode 100644 index 00000000..0fc67347 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_link_service.py @@ -0,0 +1,219 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_link import PaymentLink + from stripe._payment_link_line_item_service import ( + PaymentLinkLineItemService, + ) + from stripe._request_options import RequestOptions + from stripe.params._payment_link_create_params import ( + PaymentLinkCreateParams, + ) + from stripe.params._payment_link_list_params import PaymentLinkListParams + from stripe.params._payment_link_retrieve_params import ( + PaymentLinkRetrieveParams, + ) + from stripe.params._payment_link_update_params import ( + PaymentLinkUpdateParams, + ) + +_subservices = { + "line_items": [ + "stripe._payment_link_line_item_service", + "PaymentLinkLineItemService", + ], +} + + +class PaymentLinkService(StripeService): + line_items: "PaymentLinkLineItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["PaymentLinkListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentLink]": + """ + Returns a list of your payment links. + """ + return cast( + "ListObject[PaymentLink]", + self._request( + "get", + "/v1/payment_links", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PaymentLinkListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentLink]": + """ + Returns a list of your payment links. + """ + return cast( + "ListObject[PaymentLink]", + await self._request_async( + "get", + "/v1/payment_links", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PaymentLinkCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentLink": + """ + Creates a payment link. + """ + return cast( + "PaymentLink", + self._request( + "post", + "/v1/payment_links", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PaymentLinkCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentLink": + """ + Creates a payment link. + """ + return cast( + "PaymentLink", + await self._request_async( + "post", + "/v1/payment_links", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + payment_link: str, + params: Optional["PaymentLinkRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentLink": + """ + Retrieve a payment link. + """ + return cast( + "PaymentLink", + self._request( + "get", + "/v1/payment_links/{payment_link}".format( + payment_link=sanitize_id(payment_link), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + payment_link: str, + params: Optional["PaymentLinkRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentLink": + """ + Retrieve a payment link. + """ + return cast( + "PaymentLink", + await self._request_async( + "get", + "/v1/payment_links/{payment_link}".format( + payment_link=sanitize_id(payment_link), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + payment_link: str, + params: Optional["PaymentLinkUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentLink": + """ + Updates a payment link. + """ + return cast( + "PaymentLink", + self._request( + "post", + "/v1/payment_links/{payment_link}".format( + payment_link=sanitize_id(payment_link), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + payment_link: str, + params: Optional["PaymentLinkUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentLink": + """ + Updates a payment link. + """ + return cast( + "PaymentLink", + await self._request_async( + "post", + "/v1/payment_links/{payment_link}".format( + payment_link=sanitize_id(payment_link), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method.py new file mode 100644 index 00000000..274aaa39 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method.py @@ -0,0 +1,2030 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._charge import Charge + from stripe._customer import Customer + from stripe._setup_attempt import SetupAttempt + from stripe.params._payment_method_attach_params import ( + PaymentMethodAttachParams, + ) + from stripe.params._payment_method_create_params import ( + PaymentMethodCreateParams, + ) + from stripe.params._payment_method_detach_params import ( + PaymentMethodDetachParams, + ) + from stripe.params._payment_method_list_params import ( + PaymentMethodListParams, + ) + from stripe.params._payment_method_modify_params import ( + PaymentMethodModifyParams, + ) + from stripe.params._payment_method_retrieve_params import ( + PaymentMethodRetrieveParams, + ) + + +class PaymentMethod( + CreateableAPIResource["PaymentMethod"], + ListableAPIResource["PaymentMethod"], + UpdateableAPIResource["PaymentMethod"], +): + """ + PaymentMethod objects represent your customer's payment instruments. + You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to + Customer objects to store instrument details for future payments. + + Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios). + """ + + OBJECT_NAME: ClassVar[Literal["payment_method"]] = "payment_method" + + class AcssDebit(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + institution_number: Optional[str] + """ + Institution number of the bank account. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + transit_number: Optional[str] + """ + Transit number of the bank account. + """ + + class Affirm(StripeObject): + pass + + class AfterpayClearpay(StripeObject): + pass + + class Alipay(StripeObject): + pass + + class Alma(StripeObject): + pass + + class AmazonPay(StripeObject): + pass + + class AuBecsDebit(StripeObject): + bsb_number: Optional[str] + """ + Six-digit number identifying bank and branch associated with this bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + + class BacsDebit(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + sort_code: Optional[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + class Bancontact(StripeObject): + pass + + class Billie(StripeObject): + pass + + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + """ + Billing address. + """ + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + phone: Optional[str] + """ + Billing phone number (including extension). + """ + tax_id: Optional[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + _inner_class_types = {"address": Address} + + class Blik(StripeObject): + pass + + class Boleto(StripeObject): + tax_id: str + """ + Uniquely identifies the customer tax id (CNPJ or CPF) + """ + + class Card(StripeObject): + class Checks(StripeObject): + address_line1_check: Optional[str] + """ + If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + address_postal_code_check: Optional[str] + """ + If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + cvc_check: Optional[str] + """ + If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + + class GeneratedFrom(StripeObject): + class PaymentMethodDetails(StripeObject): + class CardPresent(StripeObject): + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + class Receipt(StripeObject): + account_type: Optional[ + Literal["checking", "credit", "prepaid", "unknown"] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + class Wallet(StripeObject): + type: Literal[ + "apple_pay", "google_pay", "samsung_pay", "unknown" + ] + """ + The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. + """ + + amount_authorized: Optional[int] + """ + The authorized amount + """ + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + brand_product: Optional[str] + """ + The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + incremental_authorization_supported: bool + """ + Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support). + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + offline: Optional[Offline] + """ + Details about payments collected offline. + """ + overcapture_supported: bool + """ + Defines whether the authorized amount can be over-captured or not + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + wallet: Optional[Wallet] + _inner_class_types = { + "offline": Offline, + "receipt": Receipt, + "wallet": Wallet, + } + + card_present: Optional[CardPresent] + type: str + """ + The type of payment method transaction-specific details from the transaction that generated this `card` payment method. Always `card_present`. + """ + _inner_class_types = {"card_present": CardPresent} + + charge: Optional[str] + """ + The charge that created this object. + """ + payment_method_details: Optional[PaymentMethodDetails] + """ + Transaction-specific details of the payment method used in the payment. + """ + setup_attempt: Optional[ExpandableField["SetupAttempt"]] + """ + The ID of the SetupAttempt that generated this PaymentMethod, if any. + """ + _inner_class_types = { + "payment_method_details": PaymentMethodDetails, + } + + class Networks(StripeObject): + available: List[str] + """ + All networks available for selection via [payment_method_options.card.network](https://docs.stripe.com/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). + """ + preferred: Optional[str] + """ + The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card. + """ + + class ThreeDSecureUsage(StripeObject): + supported: bool + """ + Whether 3D Secure is supported on this card. + """ + + class Wallet(StripeObject): + class AmexExpressCheckout(StripeObject): + pass + + class ApplePay(StripeObject): + pass + + class GooglePay(StripeObject): + pass + + class Link(StripeObject): + pass + + class Masterpass(StripeObject): + class BillingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + billing_address: Optional[BillingAddress] + """ + Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + email: Optional[str] + """ + Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + shipping_address: Optional[ShippingAddress] + """ + Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + _inner_class_types = { + "billing_address": BillingAddress, + "shipping_address": ShippingAddress, + } + + class SamsungPay(StripeObject): + pass + + class VisaCheckout(StripeObject): + class BillingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class ShippingAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + billing_address: Optional[BillingAddress] + """ + Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + email: Optional[str] + """ + Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + shipping_address: Optional[ShippingAddress] + """ + Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + _inner_class_types = { + "billing_address": BillingAddress, + "shipping_address": ShippingAddress, + } + + amex_express_checkout: Optional[AmexExpressCheckout] + apple_pay: Optional[ApplePay] + dynamic_last4: Optional[str] + """ + (For tokenized numbers only.) The last four digits of the device account number. + """ + google_pay: Optional[GooglePay] + link: Optional[Link] + masterpass: Optional[Masterpass] + samsung_pay: Optional[SamsungPay] + type: Literal[ + "amex_express_checkout", + "apple_pay", + "google_pay", + "link", + "masterpass", + "samsung_pay", + "visa_checkout", + ] + """ + The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type. + """ + visa_checkout: Optional[VisaCheckout] + _inner_class_types = { + "amex_express_checkout": AmexExpressCheckout, + "apple_pay": ApplePay, + "google_pay": GooglePay, + "link": Link, + "masterpass": Masterpass, + "samsung_pay": SamsungPay, + "visa_checkout": VisaCheckout, + } + + brand: str + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + checks: Optional[Checks] + """ + Checks on Card address and CVC if provided. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + display_brand: Optional[str] + """ + The brand to use when displaying the card, this accounts for customer's brand choice on dual-branded cards. Can be `american_express`, `cartes_bancaires`, `diners_club`, `discover`, `eftpos_australia`, `interac`, `jcb`, `mastercard`, `union_pay`, `visa`, or `other` and may contain more values in the future. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: str + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_from: Optional[GeneratedFrom] + """ + Details of the original PaymentMethod that created this object. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: str + """ + The last four digits of the card. + """ + networks: Optional[Networks] + """ + Contains information about card networks that can be used to process the payment. + """ + regulated_status: Optional[Literal["regulated", "unregulated"]] + """ + Status of a card based on the card issuer. + """ + three_d_secure_usage: Optional[ThreeDSecureUsage] + """ + Contains details on how this Card may be used for 3D Secure authentication. + """ + wallet: Optional[Wallet] + """ + If this Card is part of a card wallet, this contains the details of the card wallet. + """ + _inner_class_types = { + "checks": Checks, + "generated_from": GeneratedFrom, + "networks": Networks, + "three_d_secure_usage": ThreeDSecureUsage, + "wallet": Wallet, + } + + class CardPresent(StripeObject): + class Networks(StripeObject): + available: List[str] + """ + All networks available for selection via [payment_method_options.card.network](https://docs.stripe.com/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). + """ + preferred: Optional[str] + """ + The preferred network for the card. + """ + + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + class Wallet(StripeObject): + type: Literal["apple_pay", "google_pay", "samsung_pay", "unknown"] + """ + The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. + """ + + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + brand_product: Optional[str] + """ + The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + networks: Optional[Networks] + """ + Contains information about card networks that can be used to process the payment. + """ + offline: Optional[Offline] + """ + Details about payment methods collected offline. + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + wallet: Optional[Wallet] + _inner_class_types = { + "networks": Networks, + "offline": Offline, + "wallet": Wallet, + } + + class Cashapp(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by Cash App to every buyer. + """ + cashtag: Optional[str] + """ + A public identifier for buyers using Cash App. + """ + + class Crypto(StripeObject): + pass + + class Custom(StripeObject): + class Logo(StripeObject): + content_type: Optional[str] + """ + Content type of the Dashboard-only CustomPaymentMethodType logo. + """ + url: str + """ + URL of the Dashboard-only CustomPaymentMethodType logo. + """ + + display_name: Optional[str] + """ + Display name of the Dashboard-only CustomPaymentMethodType. + """ + logo: Optional[Logo] + """ + Contains information about the Dashboard-only CustomPaymentMethodType logo. + """ + type: str + """ + ID of the Dashboard-only CustomPaymentMethodType. Not expandable. + """ + _inner_class_types = {"logo": Logo} + + class CustomerBalance(StripeObject): + pass + + class Eps(StripeObject): + bank: Optional[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`. + """ + + class Fpx(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type, if provided. Can be one of `individual` or `company`. + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank, if provided. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`. + """ + + class Giropay(StripeObject): + pass + + class Grabpay(StripeObject): + pass + + class Ideal(StripeObject): + bank: Optional[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank, if provided. Can be one of `abn_amro`, `asn_bank`, `bunq`, `buut`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`. + """ + bic: Optional[ + Literal[ + "ABNANL2A", + "ASNBNL21", + "BITSNL2A", + "BUNQNL2A", + "BUUTNL2A", + "FVLBNL22", + "HANDNL2A", + "INGBNL2A", + "KNABNL2H", + "MOYONL21", + "NNBANL2G", + "NTSBDEB1", + "RABONL2U", + "RBRBNL21", + "REVOIE23", + "REVOLT21", + "SNSBNL2A", + "TRIONL2U", + ] + ] + """ + The Bank Identifier Code of the customer's bank, if the bank was provided. + """ + + class InteracPresent(StripeObject): + class Networks(StripeObject): + available: List[str] + """ + All networks available for selection via [payment_method_options.card.network](https://docs.stripe.com/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). + """ + preferred: Optional[str] + """ + The preferred network for the card. + """ + + brand: Optional[str] + """ + Card brand. Can be `interac`, `mastercard` or `visa`. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + networks: Optional[Networks] + """ + Contains information about card networks that can be used to process the payment. + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + _inner_class_types = {"networks": Networks} + + class KakaoPay(StripeObject): + pass + + class Klarna(StripeObject): + class Dob(StripeObject): + day: Optional[int] + """ + The day of birth, between 1 and 31. + """ + month: Optional[int] + """ + The month of birth, between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year of birth. + """ + + dob: Optional[Dob] + """ + The customer's date of birth, if provided. + """ + _inner_class_types = {"dob": Dob} + + class Konbini(StripeObject): + pass + + class KrCard(StripeObject): + brand: Optional[ + Literal[ + "bc", + "citi", + "hana", + "hyundai", + "jeju", + "jeonbuk", + "kakaobank", + "kbank", + "kdbbank", + "kookmin", + "kwangju", + "lotte", + "mg", + "nh", + "post", + "samsung", + "savingsbank", + "shinhan", + "shinhyup", + "suhyup", + "tossbank", + "woori", + ] + ] + """ + The local credit or debit card brand. + """ + last4: Optional[str] + """ + The last four digits of the card. This may not be present for American Express cards. + """ + + class Link(StripeObject): + email: Optional[str] + """ + Account owner's email address. + """ + persistent_token: Optional[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + + class MbWay(StripeObject): + pass + + class Mobilepay(StripeObject): + pass + + class Multibanco(StripeObject): + pass + + class NaverPay(StripeObject): + buyer_id: Optional[str] + """ + Uniquely identifies this particular Naver Pay account. You can use this attribute to check whether two Naver Pay accounts are the same. + """ + funding: Literal["card", "points"] + """ + Whether to fund this transaction with Naver Pay points or a card. + """ + + class NzBankAccount(StripeObject): + account_holder_name: Optional[str] + """ + The name on the bank account. Only present if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + bank_name: str + """ + The name of the bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + last4: str + """ + Last four digits of the bank account number. + """ + suffix: Optional[str] + """ + The suffix of the bank account number. + """ + + class Oxxo(StripeObject): + pass + + class P24(StripeObject): + bank: Optional[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank, if provided. + """ + + class PayByBank(StripeObject): + pass + + class Payco(StripeObject): + pass + + class Paynow(StripeObject): + pass + + class Paypal(StripeObject): + country: Optional[str] + """ + Two-letter ISO code representing the buyer's country. Values are provided by PayPal directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_email: Optional[str] + """ + Owner's email. Values are provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_id: Optional[str] + """ + PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + """ + + class Pix(StripeObject): + pass + + class Promptpay(StripeObject): + pass + + class RadarOptions(StripeObject): + session: Optional[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + class RevolutPay(StripeObject): + pass + + class SamsungPay(StripeObject): + pass + + class Satispay(StripeObject): + pass + + class SepaDebit(StripeObject): + class GeneratedFrom(StripeObject): + charge: Optional[ExpandableField["Charge"]] + """ + The ID of the Charge that generated this PaymentMethod, if any. + """ + setup_attempt: Optional[ExpandableField["SetupAttempt"]] + """ + The ID of the SetupAttempt that generated this PaymentMethod, if any. + """ + + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + branch_code: Optional[str] + """ + Branch code of bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + generated_from: Optional[GeneratedFrom] + """ + Information about the object that generated this PaymentMethod. + """ + last4: Optional[str] + """ + Last four characters of the IBAN. + """ + _inner_class_types = {"generated_from": GeneratedFrom} + + class Sofort(StripeObject): + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + class Swish(StripeObject): + pass + + class Twint(StripeObject): + pass + + class UsBankAccount(StripeObject): + class Networks(StripeObject): + preferred: Optional[str] + """ + The preferred network. + """ + supported: List[Literal["ach", "us_domestic_wire"]] + """ + All supported networks. + """ + + class StatusDetails(StripeObject): + class Blocked(StripeObject): + network_code: Optional[ + Literal[ + "R02", + "R03", + "R04", + "R05", + "R07", + "R08", + "R10", + "R11", + "R16", + "R20", + "R29", + "R31", + ] + ] + """ + The ACH network code that resulted in this block. + """ + reason: Optional[ + Literal[ + "bank_account_closed", + "bank_account_frozen", + "bank_account_invalid_details", + "bank_account_restricted", + "bank_account_unusable", + "debit_not_authorized", + ] + ] + """ + The reason why this PaymentMethod's fingerprint has been blocked + """ + + blocked: Optional[Blocked] + _inner_class_types = {"blocked": Blocked} + + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_type: Optional[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + bank_name: Optional[str] + """ + The name of the bank. + """ + financial_connections_account: Optional[str] + """ + The ID of the Financial Connections Account used to create the payment method. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + networks: Optional[Networks] + """ + Contains information about US bank account networks that can be used. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + status_details: Optional[StatusDetails] + """ + Contains information about the future reusability of this PaymentMethod. + """ + _inner_class_types = { + "networks": Networks, + "status_details": StatusDetails, + } + + class WechatPay(StripeObject): + pass + + class Zip(StripeObject): + pass + + acss_debit: Optional[AcssDebit] + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + allow_redisplay: Optional[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. + """ + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + billing_details: BillingDetails + blik: Optional[Blik] + boleto: Optional[Boleto] + card: Optional[Card] + card_present: Optional[CardPresent] + cashapp: Optional[Cashapp] + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + crypto: Optional[Crypto] + custom: Optional[Custom] + customer: Optional[ExpandableField["Customer"]] + """ + The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer. + """ + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + id: str + """ + Unique identifier for the object. + """ + ideal: Optional[Ideal] + interac_present: Optional[InteracPresent] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + mb_way: Optional[MbWay] + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + object: Literal["payment_method"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + oxxo: Optional[Oxxo] + p24: Optional[P24] + pay_by_bank: Optional[PayByBank] + payco: Optional[Payco] + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + promptpay: Optional[Promptpay] + radar_options: Optional[RadarOptions] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + swish: Optional[Swish] + twint: Optional[Twint] + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "card_present", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "interac_present", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: Optional[UsBankAccount] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + + @classmethod + def _cls_attach( + cls, payment_method: str, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + return cast( + "PaymentMethod", + cls._static_request( + "post", + "/v1/payment_methods/{payment_method}/attach".format( + payment_method=sanitize_id(payment_method) + ), + params=params, + ), + ) + + @overload + @staticmethod + def attach( + payment_method: str, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + ... + + @overload + def attach( + self, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + ... + + @class_method_variant("_cls_attach") + def attach( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + return cast( + "PaymentMethod", + self._request( + "post", + "/v1/payment_methods/{payment_method}/attach".format( + payment_method=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_attach_async( + cls, payment_method: str, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + return cast( + "PaymentMethod", + await cls._static_request_async( + "post", + "/v1/payment_methods/{payment_method}/attach".format( + payment_method=sanitize_id(payment_method) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def attach_async( + payment_method: str, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + ... + + @overload + async def attach_async( + self, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + ... + + @class_method_variant("_cls_attach_async") + async def attach_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentMethodAttachParams"] + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + return cast( + "PaymentMethod", + await self._request_async( + "post", + "/v1/payment_methods/{payment_method}/attach".format( + payment_method=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["PaymentMethodCreateParams"] + ) -> "PaymentMethod": + """ + Creates a PaymentMethod object. Read the [Stripe.js reference](https://docs.stripe.com/docs/stripe-js/reference#stripe-create-payment-method) to learn how to create PaymentMethods via Stripe.js. + + Instead of creating a PaymentMethod directly, we recommend using the [PaymentIntents API to accept a payment immediately or the SetupIntent](https://docs.stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment. + """ + return cast( + "PaymentMethod", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PaymentMethodCreateParams"] + ) -> "PaymentMethod": + """ + Creates a PaymentMethod object. Read the [Stripe.js reference](https://docs.stripe.com/docs/stripe-js/reference#stripe-create-payment-method) to learn how to create PaymentMethods via Stripe.js. + + Instead of creating a PaymentMethod directly, we recommend using the [PaymentIntents API to accept a payment immediately or the SetupIntent](https://docs.stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment. + """ + return cast( + "PaymentMethod", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_detach( + cls, payment_method: str, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + return cast( + "PaymentMethod", + cls._static_request( + "post", + "/v1/payment_methods/{payment_method}/detach".format( + payment_method=sanitize_id(payment_method) + ), + params=params, + ), + ) + + @overload + @staticmethod + def detach( + payment_method: str, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + ... + + @overload + def detach( + self, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + ... + + @class_method_variant("_cls_detach") + def detach( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + return cast( + "PaymentMethod", + self._request( + "post", + "/v1/payment_methods/{payment_method}/detach".format( + payment_method=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_detach_async( + cls, payment_method: str, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + return cast( + "PaymentMethod", + await cls._static_request_async( + "post", + "/v1/payment_methods/{payment_method}/detach".format( + payment_method=sanitize_id(payment_method) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def detach_async( + payment_method: str, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + ... + + @overload + async def detach_async( + self, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + ... + + @class_method_variant("_cls_detach_async") + async def detach_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentMethodDetachParams"] + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + return cast( + "PaymentMethod", + await self._request_async( + "post", + "/v1/payment_methods/{payment_method}/detach".format( + payment_method=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PaymentMethodListParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the [List a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer_list) API instead. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PaymentMethodListParams"] + ) -> ListObject["PaymentMethod"]: + """ + Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the [List a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer_list) API instead. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["PaymentMethodModifyParams"] + ) -> "PaymentMethod": + """ + Updates a PaymentMethod object. A PaymentMethod must be attached to a customer to be updated. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentMethod", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PaymentMethodModifyParams"] + ) -> "PaymentMethod": + """ + Updates a PaymentMethod object. A PaymentMethod must be attached to a customer to be updated. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentMethod", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PaymentMethodRetrieveParams"] + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use [Retrieve a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer) + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PaymentMethodRetrieveParams"] + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use [Retrieve a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer) + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "billing_details": BillingDetails, + "blik": Blik, + "boleto": Boleto, + "card": Card, + "card_present": CardPresent, + "cashapp": Cashapp, + "crypto": Crypto, + "custom": Custom, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "grabpay": Grabpay, + "ideal": Ideal, + "interac_present": InteracPresent, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mb_way": MbWay, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "oxxo": Oxxo, + "p24": P24, + "pay_by_bank": PayByBank, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "promptpay": Promptpay, + "radar_options": RadarOptions, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + "wechat_pay": WechatPay, + "zip": Zip, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_configuration.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_configuration.py new file mode 100644 index 00000000..0ecd5efb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_configuration.py @@ -0,0 +1,1495 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._payment_method_configuration_create_params import ( + PaymentMethodConfigurationCreateParams, + ) + from stripe.params._payment_method_configuration_list_params import ( + PaymentMethodConfigurationListParams, + ) + from stripe.params._payment_method_configuration_modify_params import ( + PaymentMethodConfigurationModifyParams, + ) + from stripe.params._payment_method_configuration_retrieve_params import ( + PaymentMethodConfigurationRetrieveParams, + ) + + +class PaymentMethodConfiguration( + CreateableAPIResource["PaymentMethodConfiguration"], + ListableAPIResource["PaymentMethodConfiguration"], + UpdateableAPIResource["PaymentMethodConfiguration"], +): + """ + PaymentMethodConfigurations control which payment methods are displayed to your customers when you don't explicitly specify payment method types. You can have multiple configurations with different sets of payment methods for different scenarios. + + There are two types of PaymentMethodConfigurations. Which is used depends on the [charge type](https://stripe.com/docs/connect/charges): + + **Direct** configurations apply to payments created on your account, including Connect destination charges, Connect separate charges and transfers, and payments not involving Connect. + + **Child** configurations apply to payments created on your connected accounts using direct charges, and charges with the on_behalf_of parameter. + + Child configurations have a `parent` that sets default values and controls which settings connected accounts may override. You can specify a parent ID at payment time, and Stripe will automatically resolve the connected account's associated child configuration. Parent configurations are [managed in the dashboard](https://dashboard.stripe.com/settings/payment_methods/connected_accounts) and are not available in this API. + + Related guides: + - [Payment Method Configurations API](https://stripe.com/docs/connect/payment-method-configurations) + - [Multiple configurations on dynamic payment methods](https://stripe.com/docs/payments/multiple-payment-method-configs) + - [Multiple configurations for your Connect accounts](https://stripe.com/docs/connect/multiple-payment-method-configurations) + """ + + OBJECT_NAME: ClassVar[Literal["payment_method_configuration"]] = ( + "payment_method_configuration" + ) + + class AcssDebit(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Affirm(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class AfterpayClearpay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Alipay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Alma(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class AmazonPay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class ApplePay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class AuBecsDebit(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class BacsDebit(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Bancontact(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Billie(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Blik(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Boleto(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Card(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class CartesBancaires(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Cashapp(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Crypto(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class CustomerBalance(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Eps(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Fpx(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Giropay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class GooglePay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Grabpay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Ideal(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Jcb(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class KakaoPay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Klarna(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Konbini(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class KrCard(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Link(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class MbWay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Mobilepay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Multibanco(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class NaverPay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class NzBankAccount(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Oxxo(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class P24(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class PayByBank(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Payco(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Paynow(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Paypal(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Pix(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Promptpay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class RevolutPay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class SamsungPay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Satispay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class SepaDebit(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Sofort(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Swish(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Twint(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class UsBankAccount(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class WechatPay(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + class Zip(StripeObject): + class DisplayPreference(StripeObject): + overridable: Optional[bool] + """ + For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used. + """ + preference: Literal["none", "off", "on"] + """ + The account's display preference. + """ + value: Literal["off", "on"] + """ + The effective display preference value. + """ + + available: bool + """ + Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active. + """ + display_preference: DisplayPreference + _inner_class_types = {"display_preference": DisplayPreference} + + acss_debit: Optional[AcssDebit] + active: bool + """ + Whether the configuration can be used for new payments. + """ + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + apple_pay: Optional[ApplePay] + application: Optional[str] + """ + For child configs, the Connect application associated with the configuration. + """ + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + blik: Optional[Blik] + boleto: Optional[Boleto] + card: Optional[Card] + cartes_bancaires: Optional[CartesBancaires] + cashapp: Optional[Cashapp] + crypto: Optional[Crypto] + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + google_pay: Optional[GooglePay] + grabpay: Optional[Grabpay] + id: str + """ + Unique identifier for the object. + """ + ideal: Optional[Ideal] + is_default: bool + """ + The default configuration is used whenever a payment method configuration is not specified. + """ + jcb: Optional[Jcb] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + mb_way: Optional[MbWay] + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + name: str + """ + The configuration's name. + """ + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + object: Literal["payment_method_configuration"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + oxxo: Optional[Oxxo] + p24: Optional[P24] + parent: Optional[str] + """ + For child configs, the configuration's parent configuration. + """ + pay_by_bank: Optional[PayByBank] + payco: Optional[Payco] + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + promptpay: Optional[Promptpay] + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + swish: Optional[Swish] + twint: Optional[Twint] + us_bank_account: Optional[UsBankAccount] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + + @classmethod + def create( + cls, **params: Unpack["PaymentMethodConfigurationCreateParams"] + ) -> "PaymentMethodConfiguration": + """ + Creates a payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PaymentMethodConfigurationCreateParams"] + ) -> "PaymentMethodConfiguration": + """ + Creates a payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PaymentMethodConfigurationListParams"] + ) -> ListObject["PaymentMethodConfiguration"]: + """ + List payment method configurations + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PaymentMethodConfigurationListParams"] + ) -> ListObject["PaymentMethodConfiguration"]: + """ + List payment method configurations + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, + id: str, + **params: Unpack["PaymentMethodConfigurationModifyParams"], + ) -> "PaymentMethodConfiguration": + """ + Update payment method configuration + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentMethodConfiguration", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, + id: str, + **params: Unpack["PaymentMethodConfigurationModifyParams"], + ) -> "PaymentMethodConfiguration": + """ + Update payment method configuration + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentMethodConfiguration", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, + id: str, + **params: Unpack["PaymentMethodConfigurationRetrieveParams"], + ) -> "PaymentMethodConfiguration": + """ + Retrieve payment method configuration + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, + id: str, + **params: Unpack["PaymentMethodConfigurationRetrieveParams"], + ) -> "PaymentMethodConfiguration": + """ + Retrieve payment method configuration + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "apple_pay": ApplePay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "blik": Blik, + "boleto": Boleto, + "card": Card, + "cartes_bancaires": CartesBancaires, + "cashapp": Cashapp, + "crypto": Crypto, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "google_pay": GooglePay, + "grabpay": Grabpay, + "ideal": Ideal, + "jcb": Jcb, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mb_way": MbWay, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "oxxo": Oxxo, + "p24": P24, + "pay_by_bank": PayByBank, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "promptpay": Promptpay, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + "wechat_pay": WechatPay, + "zip": Zip, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_configuration_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_configuration_service.py new file mode 100644 index 00000000..e8421f11 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_configuration_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_method_configuration import PaymentMethodConfiguration + from stripe._request_options import RequestOptions + from stripe.params._payment_method_configuration_create_params import ( + PaymentMethodConfigurationCreateParams, + ) + from stripe.params._payment_method_configuration_list_params import ( + PaymentMethodConfigurationListParams, + ) + from stripe.params._payment_method_configuration_retrieve_params import ( + PaymentMethodConfigurationRetrieveParams, + ) + from stripe.params._payment_method_configuration_update_params import ( + PaymentMethodConfigurationUpdateParams, + ) + + +class PaymentMethodConfigurationService(StripeService): + def list( + self, + params: Optional["PaymentMethodConfigurationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethodConfiguration]": + """ + List payment method configurations + """ + return cast( + "ListObject[PaymentMethodConfiguration]", + self._request( + "get", + "/v1/payment_method_configurations", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PaymentMethodConfigurationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethodConfiguration]": + """ + List payment method configurations + """ + return cast( + "ListObject[PaymentMethodConfiguration]", + await self._request_async( + "get", + "/v1/payment_method_configurations", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["PaymentMethodConfigurationCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodConfiguration": + """ + Creates a payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + self._request( + "post", + "/v1/payment_method_configurations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["PaymentMethodConfigurationCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodConfiguration": + """ + Creates a payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + await self._request_async( + "post", + "/v1/payment_method_configurations", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + configuration: str, + params: Optional["PaymentMethodConfigurationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodConfiguration": + """ + Retrieve payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + self._request( + "get", + "/v1/payment_method_configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + configuration: str, + params: Optional["PaymentMethodConfigurationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodConfiguration": + """ + Retrieve payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + await self._request_async( + "get", + "/v1/payment_method_configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + configuration: str, + params: Optional["PaymentMethodConfigurationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodConfiguration": + """ + Update payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + self._request( + "post", + "/v1/payment_method_configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + configuration: str, + params: Optional["PaymentMethodConfigurationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodConfiguration": + """ + Update payment method configuration + """ + return cast( + "PaymentMethodConfiguration", + await self._request_async( + "post", + "/v1/payment_method_configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_domain.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_domain.py new file mode 100644 index 00000000..bf61a3fc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_domain.py @@ -0,0 +1,488 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._payment_method_domain_create_params import ( + PaymentMethodDomainCreateParams, + ) + from stripe.params._payment_method_domain_list_params import ( + PaymentMethodDomainListParams, + ) + from stripe.params._payment_method_domain_modify_params import ( + PaymentMethodDomainModifyParams, + ) + from stripe.params._payment_method_domain_retrieve_params import ( + PaymentMethodDomainRetrieveParams, + ) + from stripe.params._payment_method_domain_validate_params import ( + PaymentMethodDomainValidateParams, + ) + + +class PaymentMethodDomain( + CreateableAPIResource["PaymentMethodDomain"], + ListableAPIResource["PaymentMethodDomain"], + UpdateableAPIResource["PaymentMethodDomain"], +): + """ + A payment method domain represents a web domain that you have registered with Stripe. + Stripe Elements use registered payment method domains to control where certain payment methods are shown. + + Related guide: [Payment method domains](https://stripe.com/docs/payments/payment-methods/pmd-registration). + """ + + OBJECT_NAME: ClassVar[Literal["payment_method_domain"]] = ( + "payment_method_domain" + ) + + class AmazonPay(StripeObject): + class StatusDetails(StripeObject): + error_message: str + """ + The error message associated with the status of the payment method on the domain. + """ + + status: Literal["active", "inactive"] + """ + The status of the payment method on the domain. + """ + status_details: Optional[StatusDetails] + """ + Contains additional details about the status of a payment method for a specific payment method domain. + """ + _inner_class_types = {"status_details": StatusDetails} + + class ApplePay(StripeObject): + class StatusDetails(StripeObject): + error_message: str + """ + The error message associated with the status of the payment method on the domain. + """ + + status: Literal["active", "inactive"] + """ + The status of the payment method on the domain. + """ + status_details: Optional[StatusDetails] + """ + Contains additional details about the status of a payment method for a specific payment method domain. + """ + _inner_class_types = {"status_details": StatusDetails} + + class GooglePay(StripeObject): + class StatusDetails(StripeObject): + error_message: str + """ + The error message associated with the status of the payment method on the domain. + """ + + status: Literal["active", "inactive"] + """ + The status of the payment method on the domain. + """ + status_details: Optional[StatusDetails] + """ + Contains additional details about the status of a payment method for a specific payment method domain. + """ + _inner_class_types = {"status_details": StatusDetails} + + class Klarna(StripeObject): + class StatusDetails(StripeObject): + error_message: str + """ + The error message associated with the status of the payment method on the domain. + """ + + status: Literal["active", "inactive"] + """ + The status of the payment method on the domain. + """ + status_details: Optional[StatusDetails] + """ + Contains additional details about the status of a payment method for a specific payment method domain. + """ + _inner_class_types = {"status_details": StatusDetails} + + class Link(StripeObject): + class StatusDetails(StripeObject): + error_message: str + """ + The error message associated with the status of the payment method on the domain. + """ + + status: Literal["active", "inactive"] + """ + The status of the payment method on the domain. + """ + status_details: Optional[StatusDetails] + """ + Contains additional details about the status of a payment method for a specific payment method domain. + """ + _inner_class_types = {"status_details": StatusDetails} + + class Paypal(StripeObject): + class StatusDetails(StripeObject): + error_message: str + """ + The error message associated with the status of the payment method on the domain. + """ + + status: Literal["active", "inactive"] + """ + The status of the payment method on the domain. + """ + status_details: Optional[StatusDetails] + """ + Contains additional details about the status of a payment method for a specific payment method domain. + """ + _inner_class_types = {"status_details": StatusDetails} + + amazon_pay: AmazonPay + """ + Indicates the status of a specific payment method on a payment method domain. + """ + apple_pay: ApplePay + """ + Indicates the status of a specific payment method on a payment method domain. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + domain_name: str + """ + The domain name that this payment method domain object represents. + """ + enabled: bool + """ + Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements. + """ + google_pay: GooglePay + """ + Indicates the status of a specific payment method on a payment method domain. + """ + id: str + """ + Unique identifier for the object. + """ + klarna: Klarna + """ + Indicates the status of a specific payment method on a payment method domain. + """ + link: Link + """ + Indicates the status of a specific payment method on a payment method domain. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["payment_method_domain"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + paypal: Paypal + """ + Indicates the status of a specific payment method on a payment method domain. + """ + + @classmethod + def create( + cls, **params: Unpack["PaymentMethodDomainCreateParams"] + ) -> "PaymentMethodDomain": + """ + Creates a payment method domain. + """ + return cast( + "PaymentMethodDomain", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PaymentMethodDomainCreateParams"] + ) -> "PaymentMethodDomain": + """ + Creates a payment method domain. + """ + return cast( + "PaymentMethodDomain", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PaymentMethodDomainListParams"] + ) -> ListObject["PaymentMethodDomain"]: + """ + Lists the details of existing payment method domains. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PaymentMethodDomainListParams"] + ) -> ListObject["PaymentMethodDomain"]: + """ + Lists the details of existing payment method domains. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["PaymentMethodDomainModifyParams"] + ) -> "PaymentMethodDomain": + """ + Updates an existing payment method domain. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentMethodDomain", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PaymentMethodDomainModifyParams"] + ) -> "PaymentMethodDomain": + """ + Updates an existing payment method domain. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PaymentMethodDomain", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PaymentMethodDomainRetrieveParams"] + ) -> "PaymentMethodDomain": + """ + Retrieves the details of an existing payment method domain. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PaymentMethodDomainRetrieveParams"] + ) -> "PaymentMethodDomain": + """ + Retrieves the details of an existing payment method domain. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_validate( + cls, + payment_method_domain: str, + **params: Unpack["PaymentMethodDomainValidateParams"], + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + return cast( + "PaymentMethodDomain", + cls._static_request( + "post", + "/v1/payment_method_domains/{payment_method_domain}/validate".format( + payment_method_domain=sanitize_id(payment_method_domain) + ), + params=params, + ), + ) + + @overload + @staticmethod + def validate( + payment_method_domain: str, + **params: Unpack["PaymentMethodDomainValidateParams"], + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + ... + + @overload + def validate( + self, **params: Unpack["PaymentMethodDomainValidateParams"] + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + ... + + @class_method_variant("_cls_validate") + def validate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentMethodDomainValidateParams"] + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + return cast( + "PaymentMethodDomain", + self._request( + "post", + "/v1/payment_method_domains/{payment_method_domain}/validate".format( + payment_method_domain=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_validate_async( + cls, + payment_method_domain: str, + **params: Unpack["PaymentMethodDomainValidateParams"], + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + return cast( + "PaymentMethodDomain", + await cls._static_request_async( + "post", + "/v1/payment_method_domains/{payment_method_domain}/validate".format( + payment_method_domain=sanitize_id(payment_method_domain) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def validate_async( + payment_method_domain: str, + **params: Unpack["PaymentMethodDomainValidateParams"], + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + ... + + @overload + async def validate_async( + self, **params: Unpack["PaymentMethodDomainValidateParams"] + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + ... + + @class_method_variant("_cls_validate_async") + async def validate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentMethodDomainValidateParams"] + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + return cast( + "PaymentMethodDomain", + await self._request_async( + "post", + "/v1/payment_method_domains/{payment_method_domain}/validate".format( + payment_method_domain=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + _inner_class_types = { + "amazon_pay": AmazonPay, + "apple_pay": ApplePay, + "google_pay": GooglePay, + "klarna": Klarna, + "link": Link, + "paypal": Paypal, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_domain_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_domain_service.py new file mode 100644 index 00000000..122bb45a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_domain_service.py @@ -0,0 +1,246 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_method_domain import PaymentMethodDomain + from stripe._request_options import RequestOptions + from stripe.params._payment_method_domain_create_params import ( + PaymentMethodDomainCreateParams, + ) + from stripe.params._payment_method_domain_list_params import ( + PaymentMethodDomainListParams, + ) + from stripe.params._payment_method_domain_retrieve_params import ( + PaymentMethodDomainRetrieveParams, + ) + from stripe.params._payment_method_domain_update_params import ( + PaymentMethodDomainUpdateParams, + ) + from stripe.params._payment_method_domain_validate_params import ( + PaymentMethodDomainValidateParams, + ) + + +class PaymentMethodDomainService(StripeService): + def list( + self, + params: Optional["PaymentMethodDomainListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethodDomain]": + """ + Lists the details of existing payment method domains. + """ + return cast( + "ListObject[PaymentMethodDomain]", + self._request( + "get", + "/v1/payment_method_domains", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PaymentMethodDomainListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethodDomain]": + """ + Lists the details of existing payment method domains. + """ + return cast( + "ListObject[PaymentMethodDomain]", + await self._request_async( + "get", + "/v1/payment_method_domains", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PaymentMethodDomainCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Creates a payment method domain. + """ + return cast( + "PaymentMethodDomain", + self._request( + "post", + "/v1/payment_method_domains", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PaymentMethodDomainCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Creates a payment method domain. + """ + return cast( + "PaymentMethodDomain", + await self._request_async( + "post", + "/v1/payment_method_domains", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + payment_method_domain: str, + params: Optional["PaymentMethodDomainRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Retrieves the details of an existing payment method domain. + """ + return cast( + "PaymentMethodDomain", + self._request( + "get", + "/v1/payment_method_domains/{payment_method_domain}".format( + payment_method_domain=sanitize_id(payment_method_domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + payment_method_domain: str, + params: Optional["PaymentMethodDomainRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Retrieves the details of an existing payment method domain. + """ + return cast( + "PaymentMethodDomain", + await self._request_async( + "get", + "/v1/payment_method_domains/{payment_method_domain}".format( + payment_method_domain=sanitize_id(payment_method_domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + payment_method_domain: str, + params: Optional["PaymentMethodDomainUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Updates an existing payment method domain. + """ + return cast( + "PaymentMethodDomain", + self._request( + "post", + "/v1/payment_method_domains/{payment_method_domain}".format( + payment_method_domain=sanitize_id(payment_method_domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + payment_method_domain: str, + params: Optional["PaymentMethodDomainUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Updates an existing payment method domain. + """ + return cast( + "PaymentMethodDomain", + await self._request_async( + "post", + "/v1/payment_method_domains/{payment_method_domain}".format( + payment_method_domain=sanitize_id(payment_method_domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def validate( + self, + payment_method_domain: str, + params: Optional["PaymentMethodDomainValidateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + return cast( + "PaymentMethodDomain", + self._request( + "post", + "/v1/payment_method_domains/{payment_method_domain}/validate".format( + payment_method_domain=sanitize_id(payment_method_domain), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def validate_async( + self, + payment_method_domain: str, + params: Optional["PaymentMethodDomainValidateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethodDomain": + """ + Some payment methods might require additional steps to register a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. + The payment method doesn't appear in Elements or Embedded Checkout for this domain until it is active. + + To activate a payment method on an existing payment method domain, complete the required registration steps specific to the payment method, and then validate the payment method domain with this endpoint. + + Related guides: [Payment method domains](https://docs.stripe.com/docs/payments/payment-methods/pmd-registration). + """ + return cast( + "PaymentMethodDomain", + await self._request_async( + "post", + "/v1/payment_method_domains/{payment_method_domain}/validate".format( + payment_method_domain=sanitize_id(payment_method_domain), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_service.py new file mode 100644 index 00000000..34d867ef --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_method_service.py @@ -0,0 +1,311 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payment_method import PaymentMethod + from stripe._request_options import RequestOptions + from stripe.params._payment_method_attach_params import ( + PaymentMethodAttachParams, + ) + from stripe.params._payment_method_create_params import ( + PaymentMethodCreateParams, + ) + from stripe.params._payment_method_detach_params import ( + PaymentMethodDetachParams, + ) + from stripe.params._payment_method_list_params import ( + PaymentMethodListParams, + ) + from stripe.params._payment_method_retrieve_params import ( + PaymentMethodRetrieveParams, + ) + from stripe.params._payment_method_update_params import ( + PaymentMethodUpdateParams, + ) + + +class PaymentMethodService(StripeService): + def list( + self, + params: Optional["PaymentMethodListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethod]": + """ + Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the [List a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer_list) API instead. + """ + return cast( + "ListObject[PaymentMethod]", + self._request( + "get", + "/v1/payment_methods", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PaymentMethodListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PaymentMethod]": + """ + Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the [List a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer_list) API instead. + """ + return cast( + "ListObject[PaymentMethod]", + await self._request_async( + "get", + "/v1/payment_methods", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["PaymentMethodCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Creates a PaymentMethod object. Read the [Stripe.js reference](https://docs.stripe.com/docs/stripe-js/reference#stripe-create-payment-method) to learn how to create PaymentMethods via Stripe.js. + + Instead of creating a PaymentMethod directly, we recommend using the [PaymentIntents API to accept a payment immediately or the SetupIntent](https://docs.stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment. + """ + return cast( + "PaymentMethod", + self._request( + "post", + "/v1/payment_methods", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["PaymentMethodCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Creates a PaymentMethod object. Read the [Stripe.js reference](https://docs.stripe.com/docs/stripe-js/reference#stripe-create-payment-method) to learn how to create PaymentMethods via Stripe.js. + + Instead of creating a PaymentMethod directly, we recommend using the [PaymentIntents API to accept a payment immediately or the SetupIntent](https://docs.stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment. + """ + return cast( + "PaymentMethod", + await self._request_async( + "post", + "/v1/payment_methods", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + payment_method: str, + params: Optional["PaymentMethodRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use [Retrieve a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer) + """ + return cast( + "PaymentMethod", + self._request( + "get", + "/v1/payment_methods/{payment_method}".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + payment_method: str, + params: Optional["PaymentMethodRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use [Retrieve a Customer's PaymentMethods](https://docs.stripe.com/docs/api/payment_methods/customer) + """ + return cast( + "PaymentMethod", + await self._request_async( + "get", + "/v1/payment_methods/{payment_method}".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + payment_method: str, + params: Optional["PaymentMethodUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Updates a PaymentMethod object. A PaymentMethod must be attached to a customer to be updated. + """ + return cast( + "PaymentMethod", + self._request( + "post", + "/v1/payment_methods/{payment_method}".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + payment_method: str, + params: Optional["PaymentMethodUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Updates a PaymentMethod object. A PaymentMethod must be attached to a customer to be updated. + """ + return cast( + "PaymentMethod", + await self._request_async( + "post", + "/v1/payment_methods/{payment_method}".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def attach( + self, + payment_method: str, + params: "PaymentMethodAttachParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + return cast( + "PaymentMethod", + self._request( + "post", + "/v1/payment_methods/{payment_method}/attach".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def attach_async( + self, + payment_method: str, + params: "PaymentMethodAttachParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Attaches a PaymentMethod object to a Customer. + + To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://docs.stripe.com/docs/api/setup_intents) + or a PaymentIntent with [setup_future_usage](https://docs.stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). + These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + future use, which makes later declines and payment friction more likely. + See [Optimizing cards for future payments](https://docs.stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up + future payments. + + To use this PaymentMethod as the default for invoice or subscription payments, + set [invoice_settings.default_payment_method](https://docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), + on the Customer to the PaymentMethod's ID. + """ + return cast( + "PaymentMethod", + await self._request_async( + "post", + "/v1/payment_methods/{payment_method}/attach".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def detach( + self, + payment_method: str, + params: Optional["PaymentMethodDetachParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + return cast( + "PaymentMethod", + self._request( + "post", + "/v1/payment_methods/{payment_method}/detach".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def detach_async( + self, + payment_method: str, + params: Optional["PaymentMethodDetachParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentMethod": + """ + Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. + """ + return cast( + "PaymentMethod", + await self._request_async( + "post", + "/v1/payment_methods/{payment_method}/detach".format( + payment_method=sanitize_id(payment_method), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_record.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_record.py new file mode 100644 index 00000000..4ac97c65 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_record.py @@ -0,0 +1,2758 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._api_resource import APIResource +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._mandate import Mandate + from stripe._payment_method import PaymentMethod + from stripe.params._payment_record_report_payment_attempt_canceled_params import ( + PaymentRecordReportPaymentAttemptCanceledParams, + ) + from stripe.params._payment_record_report_payment_attempt_failed_params import ( + PaymentRecordReportPaymentAttemptFailedParams, + ) + from stripe.params._payment_record_report_payment_attempt_guaranteed_params import ( + PaymentRecordReportPaymentAttemptGuaranteedParams, + ) + from stripe.params._payment_record_report_payment_attempt_informational_params import ( + PaymentRecordReportPaymentAttemptInformationalParams, + ) + from stripe.params._payment_record_report_payment_attempt_params import ( + PaymentRecordReportPaymentAttemptParams, + ) + from stripe.params._payment_record_report_payment_params import ( + PaymentRecordReportPaymentParams, + ) + from stripe.params._payment_record_report_refund_params import ( + PaymentRecordReportRefundParams, + ) + from stripe.params._payment_record_retrieve_params import ( + PaymentRecordRetrieveParams, + ) + + +class PaymentRecord(APIResource["PaymentRecord"]): + """ + A Payment Record is a resource that allows you to represent payments that occur on- or off-Stripe. + For example, you can create a Payment Record to model a payment made on a different payment processor, + in order to mark an Invoice as paid and a Subscription as active. Payment Records consist of one or + more Payment Attempt Records, which represent individual attempts made on a payment network. + """ + + OBJECT_NAME: ClassVar[Literal["payment_record"]] = "payment_record" + + class Amount(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountAuthorized(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountCanceled(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountFailed(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountGuaranteed(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountRefunded(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class AmountRequested(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + class CustomerDetails(StripeObject): + customer: Optional[str] + """ + ID of the Stripe Customer associated with this payment. + """ + email: Optional[str] + """ + The customer's email address. + """ + name: Optional[str] + """ + The customer's name. + """ + phone: Optional[str] + """ + The customer's phone number. + """ + + class PaymentMethodDetails(StripeObject): + class AchCreditTransfer(StripeObject): + account_number: Optional[str] + """ + Account number to transfer funds to. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the routing number. + """ + routing_number: Optional[str] + """ + Routing transit number for the bank account to transfer funds to. + """ + swift_code: Optional[str] + """ + SWIFT code of the bank associated with the routing number. + """ + + class AchDebit(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Type of entity that holds the account. This can be either `individual` or `company`. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + routing_number: Optional[str] + """ + Routing transit number of the bank account. + """ + + class AcssDebit(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + institution_number: Optional[str] + """ + Institution number of the bank account + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + transit_number: Optional[str] + """ + Transit number of the bank account. + """ + + class Affirm(StripeObject): + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + transaction_id: Optional[str] + """ + The Affirm transaction ID associated with this payment. + """ + + class AfterpayClearpay(StripeObject): + order_id: Optional[str] + """ + The Afterpay order ID associated with this payment intent. + """ + reference: Optional[str] + """ + Order identifier shown to the merchant in Afterpay's online portal. + """ + + class Alipay(StripeObject): + buyer_id: Optional[str] + """ + Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same. + """ + transaction_id: Optional[str] + """ + Transaction ID of this particular Alipay transaction. + """ + + class Alma(StripeObject): + class Installments(StripeObject): + count: int + """ + The number of installments. + """ + + installments: Optional[Installments] + transaction_id: Optional[str] + """ + The Alma transaction ID associated with this payment. + """ + _inner_class_types = {"installments": Installments} + + class AmazonPay(StripeObject): + class Funding(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: Optional[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: Optional[int] + """ + Four-digit number representing the card's expiration year. + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + + card: Optional[Card] + type: Optional[Literal["card"]] + """ + funding type of the underlying payment method. + """ + _inner_class_types = {"card": Card} + + funding: Optional[Funding] + transaction_id: Optional[str] + """ + The Amazon Pay transaction ID associated with this payment. + """ + _inner_class_types = {"funding": Funding} + + class AuBecsDebit(StripeObject): + bsb_number: Optional[str] + """ + Bank-State-Branch number of the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + + class BacsDebit(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[str] + """ + ID of the mandate used to make this payment. + """ + sort_code: Optional[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + class Bancontact(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + Can be one of `en`, `de`, `fr`, or `nl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Bancontact directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class Billie(StripeObject): + transaction_id: Optional[str] + """ + The Billie transaction ID associated with this payment. + """ + + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + """ + A representation of a physical address. + """ + email: Optional[str] + """ + The billing email associated with the method of payment. + """ + name: Optional[str] + """ + The billing name associated with the method of payment. + """ + phone: Optional[str] + """ + The billing phone number associated with the method of payment. + """ + _inner_class_types = {"address": Address} + + class Blik(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by BLIK to every buyer. + """ + + class Boleto(StripeObject): + tax_id: str + """ + The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses consumers) + """ + + class Card(StripeObject): + class Checks(StripeObject): + address_line1_check: Optional[ + Literal["fail", "pass", "unavailable", "unchecked"] + ] + address_postal_code_check: Optional[ + Literal["fail", "pass", "unavailable", "unchecked"] + ] + cvc_check: Optional[ + Literal["fail", "pass", "unavailable", "unchecked"] + ] + + class NetworkToken(StripeObject): + used: bool + """ + Indicates if Stripe used a network token, either user provided or Stripe managed when processing the transaction. + """ + + class ThreeDSecure(StripeObject): + authentication_flow: Optional[ + Literal["challenge", "frictionless"] + ] + result: Optional[ + Literal[ + "attempt_acknowledged", + "authenticated", + "exempted", + "failed", + "not_supported", + "processing_error", + ] + ] + result_reason: Optional[ + Literal[ + "abandoned", + "bypassed", + "canceled", + "card_not_enrolled", + "network_not_supported", + "protocol_error", + "rejected", + ] + ] + version: Optional[Literal["1.0.2", "2.1.0", "2.2.0"]] + + class Wallet(StripeObject): + class ApplePay(StripeObject): + type: str + """ + Type of the apple_pay transaction, one of `apple_pay` or `apple_pay_later`. + """ + + class GooglePay(StripeObject): + pass + + apple_pay: Optional[ApplePay] + dynamic_last4: Optional[str] + """ + (For tokenized numbers only.) The last four digits of the device account number. + """ + google_pay: Optional[GooglePay] + type: str + """ + The type of the card wallet, one of `apple_pay` or `google_pay`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type. + """ + _inner_class_types = { + "apple_pay": ApplePay, + "google_pay": GooglePay, + } + + brand: Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp at which the charge will be automatically refunded if uncaptured. + """ + checks: Optional[Checks] + """ + Check results by Card networks on Card address and CVC at time of payment. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Literal["credit", "debit", "prepaid", "unknown"] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: str + """ + The last four digits of the card. + """ + moto: Optional[bool] + """ + True if this payment was marked as MOTO and out of scope for SCA. + """ + network: Optional[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_token: Optional[NetworkToken] + """ + If this card has network token credentials, this contains the details of the network token credentials. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + three_d_secure: Optional[ThreeDSecure] + """ + Populated if this transaction used 3D Secure authentication. + """ + wallet: Optional[Wallet] + """ + If this Card is part of a card wallet, this contains the details of the card wallet. + """ + _inner_class_types = { + "checks": Checks, + "network_token": NetworkToken, + "three_d_secure": ThreeDSecure, + "wallet": Wallet, + } + + class CardPresent(StripeObject): + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + class Receipt(StripeObject): + account_type: Optional[ + Literal["checking", "credit", "prepaid", "unknown"] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + class Wallet(StripeObject): + type: Literal[ + "apple_pay", "google_pay", "samsung_pay", "unknown" + ] + """ + The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. + """ + + amount_authorized: Optional[int] + """ + The authorized amount + """ + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + brand_product: Optional[str] + """ + The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. + """ + capture_before: Optional[int] + """ + When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + incremental_authorization_supported: bool + """ + Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support). + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + offline: Optional[Offline] + """ + Details about payments collected offline. + """ + overcapture_supported: bool + """ + Defines whether the authorized amount can be over-captured or not + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + wallet: Optional[Wallet] + _inner_class_types = { + "offline": Offline, + "receipt": Receipt, + "wallet": Wallet, + } + + class Cashapp(StripeObject): + buyer_id: Optional[str] + """ + A unique and immutable identifier assigned by Cash App to every buyer. + """ + cashtag: Optional[str] + """ + A public identifier for buyers using Cash App. + """ + transaction_id: Optional[str] + """ + A unique and immutable identifier of payments assigned by Cash App + """ + + class Crypto(StripeObject): + buyer_address: Optional[str] + """ + The wallet address of the customer. + """ + network: Optional[Literal["base", "ethereum", "polygon", "solana"]] + """ + The blockchain network that the transaction was sent on. + """ + token_currency: Optional[Literal["usdc", "usdg", "usdp"]] + """ + The token currency that the transaction was sent with. + """ + transaction_hash: Optional[str] + """ + The blockchain transaction hash of the crypto payment. + """ + + class Custom(StripeObject): + display_name: str + """ + Display name for the custom (user-defined) payment method type used to make this payment. + """ + type: Optional[str] + """ + The custom payment method type associated with this payment. + """ + + class CustomerBalance(StripeObject): + pass + + class Eps(StripeObject): + bank: Optional[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by EPS directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + EPS rarely provides this information so the attribute is usually empty. + """ + + class Fpx(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type, if provided. Can be one of `individual` or `company`. + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`. + """ + transaction_id: Optional[str] + """ + Unique transaction id generated by FPX for every request from the merchant + """ + + class Giropay(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Giropay directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + Giropay rarely provides this information so the attribute is usually empty. + """ + + class Grabpay(StripeObject): + transaction_id: Optional[str] + """ + Unique transaction id generated by GrabPay + """ + + class Ideal(StripeObject): + bank: Optional[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `buut`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`. + """ + bic: Optional[ + Literal[ + "ABNANL2A", + "ASNBNL21", + "BITSNL2A", + "BUNQNL2A", + "BUUTNL2A", + "FVLBNL22", + "HANDNL2A", + "INGBNL2A", + "KNABNL2H", + "MOYONL21", + "NNBANL2G", + "NTSBDEB1", + "RABONL2U", + "RBRBNL21", + "REVOIE23", + "REVOLT21", + "SNSBNL2A", + "TRIONL2U", + ] + ] + """ + The Bank Identifier Code of the customer's bank. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by iDEAL directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class InteracPresent(StripeObject): + class Receipt(StripeObject): + account_type: Optional[ + Literal["checking", "savings", "unknown"] + ] + """ + The type of account being debited or credited + """ + application_cryptogram: Optional[str] + """ + The Application Cryptogram, a unique value generated by the card to authenticate the transaction with issuers. + """ + application_preferred_name: Optional[str] + """ + The Application Identifier (AID) on the card used to determine which networks are eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the card's chip. + """ + authorization_code: Optional[str] + """ + Identifier for this transaction. + """ + authorization_response_code: Optional[str] + """ + EMV tag 8A. A code returned by the card issuer. + """ + cardholder_verification_method: Optional[str] + """ + Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. + """ + dedicated_file_name: Optional[str] + """ + Similar to the application_preferred_name, identifying the applications (AIDs) available on the card. Referenced from EMV tag 84. + """ + terminal_verification_results: Optional[str] + """ + A 5-byte string that records the checks and validations that occur between the card and the terminal. These checks determine how the terminal processes the transaction and what risk tolerance is acceptable. Referenced from EMV Tag 95. + """ + transaction_status_information: Optional[str] + """ + An indication of which steps were completed during the card read process. Referenced from EMV Tag 9B. + """ + + brand: Optional[str] + """ + Card brand. Can be `interac`, `mastercard` or `visa`. + """ + cardholder_name: Optional[str] + """ + The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + emv_auth_data: Optional[str] + """ + Authorization response cryptogram. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + network_transaction_id: Optional[str] + """ + This is used by the financial networks to identify a transaction. Visa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data. This value will be present if it is returned by the financial network in the authorization response, and null otherwise. + """ + preferred_locales: Optional[List[str]] + """ + The languages that the issuing bank recommends using for localizing any customer-facing text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip. + """ + read_method: Optional[ + Literal[ + "contact_emv", + "contactless_emv", + "contactless_magstripe_mode", + "magnetic_stripe_fallback", + "magnetic_stripe_track2", + ] + ] + """ + How card details were read in this transaction. + """ + receipt: Optional[Receipt] + """ + A collection of fields required to be displayed on receipts. Only required for EMV transactions. + """ + _inner_class_types = {"receipt": Receipt} + + class KakaoPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Kakao Pay transaction ID associated with this payment. + """ + + class Klarna(StripeObject): + class PayerDetails(StripeObject): + class Address(StripeObject): + country: Optional[str] + """ + The payer address country + """ + + address: Optional[Address] + """ + The payer's address + """ + _inner_class_types = {"address": Address} + + payer_details: Optional[PayerDetails] + """ + The payer details for this transaction. + """ + payment_method_category: Optional[str] + """ + The Klarna payment method used for this transaction. + Can be one of `pay_later`, `pay_now`, `pay_with_financing`, or `pay_in_installments` + """ + preferred_locale: Optional[str] + """ + Preferred language of the Klarna authorization page that the customer is redirected to. + Can be one of `de-AT`, `en-AT`, `nl-BE`, `fr-BE`, `en-BE`, `de-DE`, `en-DE`, `da-DK`, `en-DK`, `es-ES`, `en-ES`, `fi-FI`, `sv-FI`, `en-FI`, `en-GB`, `en-IE`, `it-IT`, `en-IT`, `nl-NL`, `en-NL`, `nb-NO`, `en-NO`, `sv-SE`, `en-SE`, `en-US`, `es-US`, `fr-FR`, `en-FR`, `cs-CZ`, `en-CZ`, `ro-RO`, `en-RO`, `el-GR`, `en-GR`, `en-AU`, `en-NZ`, `en-CA`, `fr-CA`, `pl-PL`, `en-PL`, `pt-PT`, `en-PT`, `de-CH`, `fr-CH`, `it-CH`, or `en-CH` + """ + _inner_class_types = {"payer_details": PayerDetails} + + class Konbini(StripeObject): + class Store(StripeObject): + chain: Optional[ + Literal["familymart", "lawson", "ministop", "seicomart"] + ] + """ + The name of the convenience store chain where the payment was completed. + """ + + store: Optional[Store] + """ + If the payment succeeded, this contains the details of the convenience store where the payment was completed. + """ + _inner_class_types = {"store": Store} + + class KrCard(StripeObject): + brand: Optional[ + Literal[ + "bc", + "citi", + "hana", + "hyundai", + "jeju", + "jeonbuk", + "kakaobank", + "kbank", + "kdbbank", + "kookmin", + "kwangju", + "lotte", + "mg", + "nh", + "post", + "samsung", + "savingsbank", + "shinhan", + "shinhyup", + "suhyup", + "tossbank", + "woori", + ] + ] + """ + The local credit or debit card brand. + """ + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + last4: Optional[str] + """ + The last four digits of the card. This may not be present for American Express cards. + """ + transaction_id: Optional[str] + """ + The Korean Card transaction ID associated with this payment. + """ + + class Link(StripeObject): + country: Optional[str] + """ + Two-letter ISO code representing the funding source country beneath the Link payment. + You could use this attribute to get a sense of international fees. + """ + + class MbWay(StripeObject): + pass + + class Mobilepay(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Brand of the card used in the transaction + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card + """ + exp_month: Optional[int] + """ + Two digit number representing the card's expiration month + """ + exp_year: Optional[int] + """ + Two digit number representing the card's expiration year + """ + last4: Optional[str] + """ + The last 4 digits of the card + """ + + card: Optional[Card] + """ + Internal card details + """ + _inner_class_types = {"card": Card} + + class Multibanco(StripeObject): + entity: Optional[str] + """ + Entity number associated with this Multibanco payment. + """ + reference: Optional[str] + """ + Reference number associated with this Multibanco payment. + """ + + class NaverPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Naver Pay transaction ID associated with this payment. + """ + + class NzBankAccount(StripeObject): + account_holder_name: Optional[str] + """ + The name on the bank account. Only present if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + bank_name: str + """ + The name of the bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + last4: str + """ + Last four digits of the bank account number. + """ + suffix: Optional[str] + """ + The suffix of the bank account number. + """ + + class Oxxo(StripeObject): + number: Optional[str] + """ + OXXO reference number + """ + + class P24(StripeObject): + bank: Optional[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. Can be one of `ing`, `citi_handlowy`, `tmobile_usbugi_bankowe`, `plus_bank`, `etransfer_pocztowy24`, `banki_spbdzielcze`, `bank_nowy_bfg_sa`, `getin_bank`, `velobank`, `blik`, `noble_pay`, `ideabank`, `envelobank`, `santander_przelew24`, `nest_przelew`, `mbank_mtransfer`, `inteligo`, `pbac_z_ipko`, `bnp_paribas`, `credit_agricole`, `toyota_bank`, `bank_pekao_sa`, `volkswagen_bank`, `bank_millennium`, `alior_bank`, or `boz`. + """ + reference: Optional[str] + """ + Unique reference for this Przelewy24 payment. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Przelewy24 directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + Przelewy24 rarely provides this information so the attribute is usually empty. + """ + + class PayByBank(StripeObject): + pass + + class Payco(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Payco transaction ID associated with this payment. + """ + + class Paynow(StripeObject): + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + reference: Optional[str] + """ + Reference number associated with this PayNow payment + """ + + class Paypal(StripeObject): + class SellerProtection(StripeObject): + dispute_categories: Optional[ + List[Literal["fraudulent", "product_not_received"]] + ] + """ + An array of conditions that are covered for the transaction, if applicable. + """ + status: Literal[ + "eligible", "not_eligible", "partially_eligible" + ] + """ + Indicates whether the transaction is eligible for PayPal's seller protection. + """ + + country: Optional[str] + """ + Two-letter ISO code representing the buyer's country. Values are provided by PayPal directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_email: Optional[str] + """ + Owner's email. Values are provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + payer_id: Optional[str] + """ + PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + """ + payer_name: Optional[str] + """ + Owner's full name. Values provided by PayPal directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + seller_protection: Optional[SellerProtection] + """ + The level of protection offered as defined by PayPal Seller Protection for Merchants, for this transaction. + """ + transaction_id: Optional[str] + """ + A unique ID generated by PayPal for this transaction. + """ + _inner_class_types = {"seller_protection": SellerProtection} + + class Pix(StripeObject): + bank_transaction_id: Optional[str] + """ + Unique transaction id generated by BCB + """ + + class Promptpay(StripeObject): + reference: Optional[str] + """ + Bill reference generated by PromptPay + """ + + class RevolutPay(StripeObject): + class Funding(StripeObject): + class Card(StripeObject): + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + exp_month: Optional[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: Optional[int] + """ + Four-digit number representing the card's expiration year. + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + + card: Optional[Card] + type: Optional[Literal["card"]] + """ + funding type of the underlying payment method. + """ + _inner_class_types = {"card": Card} + + funding: Optional[Funding] + transaction_id: Optional[str] + """ + The Revolut Pay transaction ID associated with this payment. + """ + _inner_class_types = {"funding": Funding} + + class SamsungPay(StripeObject): + buyer_id: Optional[str] + """ + A unique identifier for the buyer as determined by the local payment processor. + """ + transaction_id: Optional[str] + """ + The Samsung Pay transaction ID associated with this payment. + """ + + class Satispay(StripeObject): + transaction_id: Optional[str] + """ + The Satispay transaction ID associated with this payment. + """ + + class SepaCreditTransfer(StripeObject): + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + iban: Optional[str] + """ + IBAN of the bank account to transfer funds to. + """ + + class SepaDebit(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + branch_code: Optional[str] + """ + Branch code of bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four characters of the IBAN. + """ + mandate: Optional[str] + """ + Find the ID of the mandate used for this payment under the [payment_method_details.sepa_debit.mandate](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate) property on the Charge. Use this mandate ID to [retrieve the Mandate](https://stripe.com/docs/api/mandates/retrieve). + """ + + class Sofort(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[ + Literal["de", "en", "es", "fr", "it", "nl", "pl"] + ] + """ + Preferred language of the SOFORT authorization page that the customer is redirected to. + Can be one of `de`, `en`, `es`, `fr`, `it`, `nl`, or `pl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by SOFORT directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class StripeAccount(StripeObject): + pass + + class Swish(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies the payer's Swish account. You can use this attribute to check whether two Swish transactions were paid for by the same payer + """ + payment_reference: Optional[str] + """ + Payer bank reference number for the payment + """ + verified_phone_last4: Optional[str] + """ + The last four digits of the Swish account phone number + """ + + class Twint(StripeObject): + pass + + class UsBankAccount(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + account_type: Optional[Literal["checking", "savings"]] + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the mandate used to make this payment. + """ + payment_reference: Optional[str] + """ + Reference number to locate ACH payments with customer's bank. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + + class Wechat(StripeObject): + pass + + class WechatPay(StripeObject): + fingerprint: Optional[str] + """ + Uniquely identifies this particular WeChat Pay account. You can use this attribute to check whether two WeChat accounts are the same. + """ + location: Optional[str] + """ + ID of the [location](https://stripe.com/docs/api/terminal/locations) that this transaction's reader is assigned to. + """ + reader: Optional[str] + """ + ID of the [reader](https://stripe.com/docs/api/terminal/readers) this transaction was made on. + """ + transaction_id: Optional[str] + """ + Transaction ID of this particular WeChat Pay transaction. + """ + + class Zip(StripeObject): + pass + + ach_credit_transfer: Optional[AchCreditTransfer] + ach_debit: Optional[AchDebit] + acss_debit: Optional[AcssDebit] + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + billing_details: Optional[BillingDetails] + """ + The billing details associated with the method of payment. + """ + blik: Optional[Blik] + boleto: Optional[Boleto] + card: Optional[Card] + """ + Details of the card used for this payment attempt. + """ + card_present: Optional[CardPresent] + cashapp: Optional[Cashapp] + crypto: Optional[Crypto] + custom: Optional[Custom] + """ + Custom Payment Methods represent Payment Method types not modeled directly in + the Stripe API. This resource consists of details about the custom payment method + used for this payment attempt. + """ + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + ideal: Optional[Ideal] + interac_present: Optional[InteracPresent] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + mb_way: Optional[MbWay] + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + oxxo: Optional[Oxxo] + p24: Optional[P24] + pay_by_bank: Optional[PayByBank] + payco: Optional[Payco] + payment_method: Optional[str] + """ + ID of the Stripe PaymentMethod used to make this payment. + """ + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + promptpay: Optional[Promptpay] + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_credit_transfer: Optional[SepaCreditTransfer] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + stripe_account: Optional[StripeAccount] + swish: Optional[Swish] + twint: Optional[Twint] + type: str + """ + The type of transaction-specific details of the payment method used in the payment. See [PaymentMethod.type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type) for the full list of possible types. + An additional hash is included on `payment_method_details` with a name matching this value. + It contains information specific to the payment method. + """ + us_bank_account: Optional[UsBankAccount] + """ + Details of the US Bank Account used for this payment attempt. + """ + wechat: Optional[Wechat] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + _inner_class_types = { + "ach_credit_transfer": AchCreditTransfer, + "ach_debit": AchDebit, + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "billing_details": BillingDetails, + "blik": Blik, + "boleto": Boleto, + "card": Card, + "card_present": CardPresent, + "cashapp": Cashapp, + "crypto": Crypto, + "custom": Custom, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "grabpay": Grabpay, + "ideal": Ideal, + "interac_present": InteracPresent, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mb_way": MbWay, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "oxxo": Oxxo, + "p24": P24, + "pay_by_bank": PayByBank, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "promptpay": Promptpay, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_credit_transfer": SepaCreditTransfer, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "stripe_account": StripeAccount, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + "wechat": Wechat, + "wechat_pay": WechatPay, + "zip": Zip, + } + + class ProcessorDetails(StripeObject): + class Custom(StripeObject): + payment_reference: Optional[str] + """ + An opaque string for manual reconciliation of this payment, for example a check number or a payment processor ID. + """ + + custom: Optional[Custom] + """ + Custom processors represent payment processors not modeled directly in + the Stripe API. This resource consists of details about the custom processor + used for this payment attempt. + """ + type: Literal["custom"] + """ + The processor used for this payment attempt. + """ + _inner_class_types = {"custom": Custom} + + class ShippingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + """ + A representation of a physical address. + """ + name: Optional[str] + """ + The shipping recipient's name. + """ + phone: Optional[str] + """ + The shipping recipient's phone number. + """ + _inner_class_types = {"address": Address} + + amount: Amount + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_authorized: AmountAuthorized + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_canceled: AmountCanceled + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_failed: AmountFailed + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_guaranteed: AmountGuaranteed + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_refunded: AmountRefunded + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + amount_requested: AmountRequested + """ + A representation of an amount of money, consisting of an amount and a currency. + """ + application: Optional[str] + """ + ID of the Connect application that created the PaymentRecord. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer_details: Optional[CustomerDetails] + """ + Customer information for this payment. + """ + customer_presence: Optional[Literal["off_session", "on_session"]] + """ + Indicates whether the customer was present in your checkout flow during this payment. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + id: str + """ + Unique identifier for the object. + """ + latest_payment_attempt_record: Optional[str] + """ + ID of the latest Payment Attempt Record attached to this Payment Record. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["payment_record"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_method_details: Optional[PaymentMethodDetails] + """ + Information about the Payment Method debited for this payment. + """ + processor_details: ProcessorDetails + """ + Processor information associated with this payment. + """ + shipping_details: Optional[ShippingDetails] + """ + Shipping information for this payment. + """ + + @classmethod + def report_payment( + cls, **params: Unpack["PaymentRecordReportPaymentParams"] + ) -> "PaymentRecord": + """ + Report a new Payment Record. You may report a Payment Record as it is + initialized and later report updates through the other report_* methods, or report Payment + Records in a terminal state directly, through this method. + """ + return cast( + "PaymentRecord", + cls._static_request( + "post", + "/v1/payment_records/report_payment", + params=params, + ), + ) + + @classmethod + async def report_payment_async( + cls, **params: Unpack["PaymentRecordReportPaymentParams"] + ) -> "PaymentRecord": + """ + Report a new Payment Record. You may report a Payment Record as it is + initialized and later report updates through the other report_* methods, or report Payment + Records in a terminal state directly, through this method. + """ + return cast( + "PaymentRecord", + await cls._static_request_async( + "post", + "/v1/payment_records/report_payment", + params=params, + ), + ) + + @classmethod + def _cls_report_payment_attempt( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptParams"], + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + return cast( + "PaymentRecord", + cls._static_request( + "post", + "/v1/payment_records/{id}/report_payment_attempt".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def report_payment_attempt( + id: str, **params: Unpack["PaymentRecordReportPaymentAttemptParams"] + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + ... + + @overload + def report_payment_attempt( + self, **params: Unpack["PaymentRecordReportPaymentAttemptParams"] + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + ... + + @class_method_variant("_cls_report_payment_attempt") + def report_payment_attempt( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentRecordReportPaymentAttemptParams"] + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_report_payment_attempt_async( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptParams"], + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + return cast( + "PaymentRecord", + await cls._static_request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def report_payment_attempt_async( + id: str, **params: Unpack["PaymentRecordReportPaymentAttemptParams"] + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + ... + + @overload + async def report_payment_attempt_async( + self, **params: Unpack["PaymentRecordReportPaymentAttemptParams"] + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_async") + async def report_payment_attempt_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentRecordReportPaymentAttemptParams"] + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_report_payment_attempt_canceled( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + return cast( + "PaymentRecord", + cls._static_request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_canceled".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def report_payment_attempt_canceled( + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + ... + + @overload + def report_payment_attempt_canceled( + self, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_canceled") + def report_payment_attempt_canceled( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_canceled".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_report_payment_attempt_canceled_async( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + return cast( + "PaymentRecord", + await cls._static_request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_canceled".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def report_payment_attempt_canceled_async( + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + ... + + @overload + async def report_payment_attempt_canceled_async( + self, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_canceled_async") + async def report_payment_attempt_canceled_async( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["PaymentRecordReportPaymentAttemptCanceledParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_canceled".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_report_payment_attempt_failed( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + return cast( + "PaymentRecord", + cls._static_request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_failed".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def report_payment_attempt_failed( + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + ... + + @overload + def report_payment_attempt_failed( + self, **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_failed") + def report_payment_attempt_failed( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_failed".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_report_payment_attempt_failed_async( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + return cast( + "PaymentRecord", + await cls._static_request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_failed".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def report_payment_attempt_failed_async( + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + ... + + @overload + async def report_payment_attempt_failed_async( + self, **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_failed_async") + async def report_payment_attempt_failed_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentRecordReportPaymentAttemptFailedParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_failed".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_report_payment_attempt_guaranteed( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + return cast( + "PaymentRecord", + cls._static_request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_guaranteed".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def report_payment_attempt_guaranteed( + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + ... + + @overload + def report_payment_attempt_guaranteed( + self, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_guaranteed") + def report_payment_attempt_guaranteed( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_guaranteed".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_report_payment_attempt_guaranteed_async( + cls, + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + return cast( + "PaymentRecord", + await cls._static_request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_guaranteed".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def report_payment_attempt_guaranteed_async( + id: str, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + ... + + @overload + async def report_payment_attempt_guaranteed_async( + self, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_guaranteed_async") + async def report_payment_attempt_guaranteed_async( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["PaymentRecordReportPaymentAttemptGuaranteedParams"], + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_guaranteed".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_report_payment_attempt_informational( + cls, + id: str, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + return cast( + "PaymentRecord", + cls._static_request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_informational".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def report_payment_attempt_informational( + id: str, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + ... + + @overload + def report_payment_attempt_informational( + self, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_informational") + def report_payment_attempt_informational( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_informational".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_report_payment_attempt_informational_async( + cls, + id: str, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + return cast( + "PaymentRecord", + await cls._static_request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_informational".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def report_payment_attempt_informational_async( + id: str, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + ... + + @overload + async def report_payment_attempt_informational_async( + self, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + ... + + @class_method_variant("_cls_report_payment_attempt_informational_async") + async def report_payment_attempt_informational_async( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ], + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_informational".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_report_refund( + cls, id: str, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + return cast( + "PaymentRecord", + cls._static_request( + "post", + "/v1/payment_records/{id}/report_refund".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def report_refund( + id: str, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + ... + + @overload + def report_refund( + self, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + ... + + @class_method_variant("_cls_report_refund") + def report_refund( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_refund".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_report_refund_async( + cls, id: str, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + return cast( + "PaymentRecord", + await cls._static_request_async( + "post", + "/v1/payment_records/{id}/report_refund".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def report_refund_async( + id: str, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + ... + + @overload + async def report_refund_async( + self, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + ... + + @class_method_variant("_cls_report_refund_async") + async def report_refund_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PaymentRecordReportRefundParams"] + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_refund".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PaymentRecordRetrieveParams"] + ) -> "PaymentRecord": + """ + Retrieves a Payment Record with the given ID + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PaymentRecordRetrieveParams"] + ) -> "PaymentRecord": + """ + Retrieves a Payment Record with the given ID + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "amount": Amount, + "amount_authorized": AmountAuthorized, + "amount_canceled": AmountCanceled, + "amount_failed": AmountFailed, + "amount_guaranteed": AmountGuaranteed, + "amount_refunded": AmountRefunded, + "amount_requested": AmountRequested, + "customer_details": CustomerDetails, + "payment_method_details": PaymentMethodDetails, + "processor_details": ProcessorDetails, + "shipping_details": ShippingDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payment_record_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_record_service.py new file mode 100644 index 00000000..ef6eb9d0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payment_record_service.py @@ -0,0 +1,396 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._payment_record import PaymentRecord + from stripe._request_options import RequestOptions + from stripe.params._payment_record_report_payment_attempt_canceled_params import ( + PaymentRecordReportPaymentAttemptCanceledParams, + ) + from stripe.params._payment_record_report_payment_attempt_failed_params import ( + PaymentRecordReportPaymentAttemptFailedParams, + ) + from stripe.params._payment_record_report_payment_attempt_guaranteed_params import ( + PaymentRecordReportPaymentAttemptGuaranteedParams, + ) + from stripe.params._payment_record_report_payment_attempt_informational_params import ( + PaymentRecordReportPaymentAttemptInformationalParams, + ) + from stripe.params._payment_record_report_payment_attempt_params import ( + PaymentRecordReportPaymentAttemptParams, + ) + from stripe.params._payment_record_report_payment_params import ( + PaymentRecordReportPaymentParams, + ) + from stripe.params._payment_record_report_refund_params import ( + PaymentRecordReportRefundParams, + ) + from stripe.params._payment_record_retrieve_params import ( + PaymentRecordRetrieveParams, + ) + + +class PaymentRecordService(StripeService): + def retrieve( + self, + id: str, + params: Optional["PaymentRecordRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Retrieves a Payment Record with the given ID + """ + return cast( + "PaymentRecord", + self._request( + "get", + "/v1/payment_records/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["PaymentRecordRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Retrieves a Payment Record with the given ID + """ + return cast( + "PaymentRecord", + await self._request_async( + "get", + "/v1/payment_records/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def report_payment_attempt( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def report_payment_attempt_async( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report a new payment attempt on the specified Payment Record. A new payment + attempt can only be specified if all other payment attempts are canceled or failed. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def report_payment_attempt_canceled( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptCanceledParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_canceled".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def report_payment_attempt_canceled_async( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptCanceledParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was canceled. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_canceled".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def report_payment_attempt_failed( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptFailedParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_failed".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def report_payment_attempt_failed_async( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptFailedParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + failed or errored. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_failed".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def report_payment_attempt_guaranteed( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptGuaranteedParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_guaranteed".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def report_payment_attempt_guaranteed_async( + self, + id: str, + params: "PaymentRecordReportPaymentAttemptGuaranteedParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was guaranteed. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_guaranteed".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def report_payment_attempt_informational( + self, + id: str, + params: Optional[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_payment_attempt_informational".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def report_payment_attempt_informational_async( + self, + id: str, + params: Optional[ + "PaymentRecordReportPaymentAttemptInformationalParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report informational updates on the specified Payment Record. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_payment_attempt_informational".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def report_refund( + self, + id: str, + params: "PaymentRecordReportRefundParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/{id}/report_refund".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def report_refund_async( + self, + id: str, + params: "PaymentRecordReportRefundParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report that the most recent payment attempt on the specified Payment Record + was refunded. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/{id}/report_refund".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def report_payment( + self, + params: "PaymentRecordReportPaymentParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report a new Payment Record. You may report a Payment Record as it is + initialized and later report updates through the other report_* methods, or report Payment + Records in a terminal state directly, through this method. + """ + return cast( + "PaymentRecord", + self._request( + "post", + "/v1/payment_records/report_payment", + base_address="api", + params=params, + options=options, + ), + ) + + async def report_payment_async( + self, + params: "PaymentRecordReportPaymentParams", + options: Optional["RequestOptions"] = None, + ) -> "PaymentRecord": + """ + Report a new Payment Record. You may report a Payment Record as it is + initialized and later report updates through the other report_* methods, or report Payment + Records in a terminal state directly, through this method. + """ + return cast( + "PaymentRecord", + await self._request_async( + "post", + "/v1/payment_records/report_payment", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payout.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payout.py new file mode 100644 index 00000000..e707c2e2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payout.py @@ -0,0 +1,533 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, Union, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._application_fee import ApplicationFee + from stripe._balance_transaction import BalanceTransaction + from stripe._bank_account import BankAccount + from stripe._card import Card + from stripe.params._payout_cancel_params import PayoutCancelParams + from stripe.params._payout_create_params import PayoutCreateParams + from stripe.params._payout_list_params import PayoutListParams + from stripe.params._payout_modify_params import PayoutModifyParams + from stripe.params._payout_retrieve_params import PayoutRetrieveParams + from stripe.params._payout_reverse_params import PayoutReverseParams + + +class Payout( + CreateableAPIResource["Payout"], + ListableAPIResource["Payout"], + UpdateableAPIResource["Payout"], +): + """ + A `Payout` object is created when you receive funds from Stripe, or when you + initiate a payout to either a bank account or debit card of a [connected + Stripe account](https://docs.stripe.com/docs/connect/bank-debit-card-payouts). You can retrieve individual payouts, + and list all payouts. Payouts are made on [varying + schedules](https://docs.stripe.com/docs/connect/manage-payout-schedule), depending on your country and + industry. + + Related guide: [Receiving payouts](https://stripe.com/docs/payouts) + """ + + OBJECT_NAME: ClassVar[Literal["payout"]] = "payout" + + class TraceId(StripeObject): + status: str + """ + Possible values are `pending`, `supported`, and `unsupported`. When `payout.status` is `pending` or `in_transit`, this will be `pending`. When the payout transitions to `paid`, `failed`, or `canceled`, this status will become `supported` or `unsupported` shortly after in most cases. In some cases, this may appear as `pending` for up to 10 days after `arrival_date` until transitioning to `supported` or `unsupported`. + """ + value: Optional[str] + """ + The trace ID value if `trace_id.status` is `supported`, otherwise `nil`. + """ + + amount: int + """ + The amount (in cents (or local equivalent)) that transfers to your bank account or debit card. + """ + application_fee: Optional[ExpandableField["ApplicationFee"]] + """ + The application fee (if any) for the payout. [See the Connect documentation](https://stripe.com/docs/connect/instant-payouts#monetization-and-fees) for details. + """ + application_fee_amount: Optional[int] + """ + The amount of the application fee (if any) requested for the payout. [See the Connect documentation](https://stripe.com/docs/connect/instant-payouts#monetization-and-fees) for details. + """ + arrival_date: int + """ + Date that you can expect the payout to arrive in the bank. This factors in delays to account for weekends or bank holidays. + """ + automatic: bool + """ + Returns `true` if the payout is created by an [automated payout schedule](https://stripe.com/docs/payouts#payout-schedule) and `false` if it's [requested manually](https://stripe.com/docs/payouts#manual-payouts). + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + ID of the balance transaction that describes the impact of this payout on your account balance. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination: Optional[ExpandableField[Union["BankAccount", "Card"]]] + """ + ID of the bank account or card the payout is sent to. + """ + failure_balance_transaction: Optional[ + ExpandableField["BalanceTransaction"] + ] + """ + If the payout fails or cancels, this is the ID of the balance transaction that reverses the initial balance transaction and returns the funds from the failed payout back in your balance. + """ + failure_code: Optional[str] + """ + Error code that provides a reason for a payout failure, if available. View our [list of failure codes](https://stripe.com/docs/api#payout_failures). + """ + failure_message: Optional[str] + """ + Message that provides the reason for a payout failure, if available. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + method: str + """ + The method used to send this payout, which can be `standard` or `instant`. `instant` is supported for payouts to debit cards and bank accounts in certain countries. Learn more about [bank support for Instant Payouts](https://stripe.com/docs/payouts/instant-payouts-banks). + """ + object: Literal["payout"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + original_payout: Optional[ExpandableField["Payout"]] + """ + If the payout reverses another, this is the ID of the original payout. + """ + payout_method: Optional[str] + """ + ID of the v2 FinancialAccount the funds are sent to. + """ + reconciliation_status: Literal[ + "completed", "in_progress", "not_applicable" + ] + """ + If `completed`, you can use the [Balance Transactions API](https://stripe.com/docs/api/balance_transactions/list#balance_transaction_list-payout) to list all balance transactions that are paid out in this payout. + """ + reversed_by: Optional[ExpandableField["Payout"]] + """ + If the payout reverses, this is the ID of the payout that reverses this payout. + """ + source_type: str + """ + The source balance this payout came from, which can be one of the following: `card`, `fpx`, or `bank_account`. + """ + statement_descriptor: Optional[str] + """ + Extra information about a payout that displays on the user's bank statement. + """ + status: str + """ + Current status of the payout: `paid`, `pending`, `in_transit`, `canceled` or `failed`. A payout is `pending` until it's submitted to the bank, when it becomes `in_transit`. The status changes to `paid` if the transaction succeeds, or to `failed` or `canceled` (within 5 business days). Some payouts that fail might initially show as `paid`, then change to `failed`. + """ + trace_id: Optional[TraceId] + """ + A value that generates from the beneficiary's bank that allows users to track payouts with their bank. Banks might call this a "reference number" or something similar. + """ + type: Literal["bank_account", "card"] + """ + Can be `bank_account` or `card`. + """ + + @classmethod + def _cls_cancel( + cls, payout: str, **params: Unpack["PayoutCancelParams"] + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + return cast( + "Payout", + cls._static_request( + "post", + "/v1/payouts/{payout}/cancel".format( + payout=sanitize_id(payout) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + payout: str, **params: Unpack["PayoutCancelParams"] + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + ... + + @overload + def cancel(self, **params: Unpack["PayoutCancelParams"]) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PayoutCancelParams"] + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + return cast( + "Payout", + self._request( + "post", + "/v1/payouts/{payout}/cancel".format( + payout=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, payout: str, **params: Unpack["PayoutCancelParams"] + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + return cast( + "Payout", + await cls._static_request_async( + "post", + "/v1/payouts/{payout}/cancel".format( + payout=sanitize_id(payout) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + payout: str, **params: Unpack["PayoutCancelParams"] + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["PayoutCancelParams"] + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PayoutCancelParams"] + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + return cast( + "Payout", + await self._request_async( + "post", + "/v1/payouts/{payout}/cancel".format( + payout=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["PayoutCreateParams"]) -> "Payout": + """ + To send funds to your own bank account, create a new payout object. Your [Stripe balance](https://docs.stripe.com/api#balance) must cover the payout amount. If it doesn't, you receive an “Insufficient Funds” error. + + If your API key is in test mode, money won't actually be sent, though every other action occurs as if you're in live mode. + + If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The [balance object](https://docs.stripe.com/api#balance_object) details available and pending amounts by source type. + """ + return cast( + "Payout", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PayoutCreateParams"] + ) -> "Payout": + """ + To send funds to your own bank account, create a new payout object. Your [Stripe balance](https://docs.stripe.com/api#balance) must cover the payout amount. If it doesn't, you receive an “Insufficient Funds” error. + + If your API key is in test mode, money won't actually be sent, though every other action occurs as if you're in live mode. + + If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The [balance object](https://docs.stripe.com/api#balance_object) details available and pending amounts by source type. + """ + return cast( + "Payout", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PayoutListParams"] + ) -> ListObject["Payout"]: + """ + Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PayoutListParams"] + ) -> ListObject["Payout"]: + """ + Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["PayoutModifyParams"] + ) -> "Payout": + """ + Updates the specified payout by setting the values of the parameters you pass. We don't change parameters that you don't provide. This request only accepts the metadata as arguments. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Payout", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PayoutModifyParams"] + ) -> "Payout": + """ + Updates the specified payout by setting the values of the parameters you pass. We don't change parameters that you don't provide. This request only accepts the metadata as arguments. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Payout", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PayoutRetrieveParams"] + ) -> "Payout": + """ + Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PayoutRetrieveParams"] + ) -> "Payout": + """ + Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_reverse( + cls, payout: str, **params: Unpack["PayoutReverseParams"] + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + return cast( + "Payout", + cls._static_request( + "post", + "/v1/payouts/{payout}/reverse".format( + payout=sanitize_id(payout) + ), + params=params, + ), + ) + + @overload + @staticmethod + def reverse( + payout: str, **params: Unpack["PayoutReverseParams"] + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + ... + + @overload + def reverse(self, **params: Unpack["PayoutReverseParams"]) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + ... + + @class_method_variant("_cls_reverse") + def reverse( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PayoutReverseParams"] + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + return cast( + "Payout", + self._request( + "post", + "/v1/payouts/{payout}/reverse".format( + payout=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_reverse_async( + cls, payout: str, **params: Unpack["PayoutReverseParams"] + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + return cast( + "Payout", + await cls._static_request_async( + "post", + "/v1/payouts/{payout}/reverse".format( + payout=sanitize_id(payout) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def reverse_async( + payout: str, **params: Unpack["PayoutReverseParams"] + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + ... + + @overload + async def reverse_async( + self, **params: Unpack["PayoutReverseParams"] + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + ... + + @class_method_variant("_cls_reverse_async") + async def reverse_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PayoutReverseParams"] + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + return cast( + "Payout", + await self._request_async( + "post", + "/v1/payouts/{payout}/reverse".format( + payout=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + _inner_class_types = {"trace_id": TraceId} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_payout_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_payout_service.py new file mode 100644 index 00000000..db8177c5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_payout_service.py @@ -0,0 +1,275 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._payout import Payout + from stripe._request_options import RequestOptions + from stripe.params._payout_cancel_params import PayoutCancelParams + from stripe.params._payout_create_params import PayoutCreateParams + from stripe.params._payout_list_params import PayoutListParams + from stripe.params._payout_retrieve_params import PayoutRetrieveParams + from stripe.params._payout_reverse_params import PayoutReverseParams + from stripe.params._payout_update_params import PayoutUpdateParams + + +class PayoutService(StripeService): + def list( + self, + params: Optional["PayoutListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Payout]": + """ + Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first. + """ + return cast( + "ListObject[Payout]", + self._request( + "get", + "/v1/payouts", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PayoutListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Payout]": + """ + Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first. + """ + return cast( + "ListObject[Payout]", + await self._request_async( + "get", + "/v1/payouts", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PayoutCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + To send funds to your own bank account, create a new payout object. Your [Stripe balance](https://docs.stripe.com/api#balance) must cover the payout amount. If it doesn't, you receive an “Insufficient Funds” error. + + If your API key is in test mode, money won't actually be sent, though every other action occurs as if you're in live mode. + + If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The [balance object](https://docs.stripe.com/api#balance_object) details available and pending amounts by source type. + """ + return cast( + "Payout", + self._request( + "post", + "/v1/payouts", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PayoutCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + To send funds to your own bank account, create a new payout object. Your [Stripe balance](https://docs.stripe.com/api#balance) must cover the payout amount. If it doesn't, you receive an “Insufficient Funds” error. + + If your API key is in test mode, money won't actually be sent, though every other action occurs as if you're in live mode. + + If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The [balance object](https://docs.stripe.com/api#balance_object) details available and pending amounts by source type. + """ + return cast( + "Payout", + await self._request_async( + "post", + "/v1/payouts", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + payout: str, + params: Optional["PayoutRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information. + """ + return cast( + "Payout", + self._request( + "get", + "/v1/payouts/{payout}".format(payout=sanitize_id(payout)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + payout: str, + params: Optional["PayoutRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information. + """ + return cast( + "Payout", + await self._request_async( + "get", + "/v1/payouts/{payout}".format(payout=sanitize_id(payout)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + payout: str, + params: Optional["PayoutUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + Updates the specified payout by setting the values of the parameters you pass. We don't change parameters that you don't provide. This request only accepts the metadata as arguments. + """ + return cast( + "Payout", + self._request( + "post", + "/v1/payouts/{payout}".format(payout=sanitize_id(payout)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + payout: str, + params: Optional["PayoutUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + Updates the specified payout by setting the values of the parameters you pass. We don't change parameters that you don't provide. This request only accepts the metadata as arguments. + """ + return cast( + "Payout", + await self._request_async( + "post", + "/v1/payouts/{payout}".format(payout=sanitize_id(payout)), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + payout: str, + params: Optional["PayoutCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + return cast( + "Payout", + self._request( + "post", + "/v1/payouts/{payout}/cancel".format( + payout=sanitize_id(payout), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + payout: str, + params: Optional["PayoutCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. + """ + return cast( + "Payout", + await self._request_async( + "post", + "/v1/payouts/{payout}/cancel".format( + payout=sanitize_id(payout), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def reverse( + self, + payout: str, + params: Optional["PayoutReverseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + return cast( + "Payout", + self._request( + "post", + "/v1/payouts/{payout}/reverse".format( + payout=sanitize_id(payout), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def reverse_async( + self, + payout: str, + params: Optional["PayoutReverseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Payout": + """ + Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead. + + By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required. + """ + return cast( + "Payout", + await self._request_async( + "post", + "/v1/payouts/{payout}/reverse".format( + payout=sanitize_id(payout), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_person.py b/Backend/venv/lib/python3.12/site-packages/stripe/_person.py new file mode 100644 index 00000000..6c9e2a76 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_person.py @@ -0,0 +1,795 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +import stripe +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, List, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + + +class Person(UpdateableAPIResource["Person"]): + """ + This is an object representing a person associated with a Stripe account. + + A platform can only access a subset of data in a person for an account where [account.controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding. + + See the [Standard onboarding](https://docs.stripe.com/connect/standard-accounts) or [Express onboarding](https://docs.stripe.com/connect/express-accounts) documentation for information about prefilling information and account onboarding steps. Learn more about [handling identity verification with the API](https://docs.stripe.com/connect/handling-api-verification#person-information). + """ + + OBJECT_NAME: ClassVar[Literal["person"]] = "person" + + class AdditionalTosAcceptances(StripeObject): + class Account(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the legal guardian accepted the service agreement. + """ + ip: Optional[str] + """ + The IP address from which the legal guardian accepted the service agreement. + """ + user_agent: Optional[str] + """ + The user agent of the browser from which the legal guardian accepted the service agreement. + """ + + account: Optional[Account] + """ + Details on the legal guardian's acceptance of the main Stripe service agreement. + """ + _inner_class_types = {"account": Account} + + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class AddressKana(StripeObject): + city: Optional[str] + """ + City/Ward. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Block/Building number. + """ + line2: Optional[str] + """ + Building details. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + Prefecture. + """ + town: Optional[str] + """ + Town/cho-me. + """ + + class AddressKanji(StripeObject): + city: Optional[str] + """ + City/Ward. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Block/Building number. + """ + line2: Optional[str] + """ + Building details. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + Prefecture. + """ + town: Optional[str] + """ + Town/cho-me. + """ + + class Dob(StripeObject): + day: Optional[int] + """ + The day of birth, between 1 and 31. + """ + month: Optional[int] + """ + The month of birth, between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year of birth. + """ + + class FutureRequirements(StripeObject): + class Alternative(StripeObject): + alternative_fields_due: List[str] + """ + Fields that can be provided to satisfy all fields in `original_fields_due`. + """ + original_fields_due: List[str] + """ + Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`. + """ + + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + alternatives: Optional[List[Alternative]] + """ + Fields that are due and can be satisfied by providing the corresponding alternative fields instead. + """ + currently_due: List[str] + """ + Fields that need to be collected to keep the person's account enabled. If not collected by the account's `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash, and may immediately become `past_due`, but the account may also be given a grace period depending on the account's enablement state prior to transition. + """ + errors: List[Error] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + eventually_due: List[str] + """ + Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well, and the account's `future_requirements[current_deadline]` becomes set. + """ + past_due: List[str] + """ + Fields that weren't collected by the account's `requirements.current_deadline`. These fields need to be collected to enable the person's account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due`. + """ + pending_verification: List[str] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"alternatives": Alternative, "errors": Error} + + class RegisteredAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class Relationship(StripeObject): + authorizer: Optional[bool] + """ + Whether the person is the authorizer of the account's representative. + """ + director: Optional[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: Optional[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + legal_guardian: Optional[bool] + """ + Whether the person is the legal guardian of the account's representative. + """ + owner: Optional[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: Optional[float] + """ + The percent owned by the person of the account's legal entity. + """ + representative: Optional[bool] + """ + Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account. + """ + title: Optional[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + class Requirements(StripeObject): + class Alternative(StripeObject): + alternative_fields_due: List[str] + """ + Fields that can be provided to satisfy all fields in `original_fields_due`. + """ + original_fields_due: List[str] + """ + Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`. + """ + + class Error(StripeObject): + code: Literal[ + "external_request", + "information_missing", + "invalid_address_city_state_postal_code", + "invalid_address_highway_contract_box", + "invalid_address_private_mailbox", + "invalid_business_profile_name", + "invalid_business_profile_name_denylisted", + "invalid_company_name_denylisted", + "invalid_dob_age_over_maximum", + "invalid_dob_age_under_18", + "invalid_dob_age_under_minimum", + "invalid_product_description_length", + "invalid_product_description_url_match", + "invalid_representative_country", + "invalid_signator", + "invalid_statement_descriptor_business_mismatch", + "invalid_statement_descriptor_denylisted", + "invalid_statement_descriptor_length", + "invalid_statement_descriptor_prefix_denylisted", + "invalid_statement_descriptor_prefix_mismatch", + "invalid_street_address", + "invalid_tax_id", + "invalid_tax_id_format", + "invalid_tos_acceptance", + "invalid_url_denylisted", + "invalid_url_format", + "invalid_url_length", + "invalid_url_web_presence_detected", + "invalid_url_website_business_information_mismatch", + "invalid_url_website_empty", + "invalid_url_website_inaccessible", + "invalid_url_website_inaccessible_geoblocked", + "invalid_url_website_inaccessible_password_protected", + "invalid_url_website_incomplete", + "invalid_url_website_incomplete_cancellation_policy", + "invalid_url_website_incomplete_customer_service_details", + "invalid_url_website_incomplete_legal_restrictions", + "invalid_url_website_incomplete_refund_policy", + "invalid_url_website_incomplete_return_policy", + "invalid_url_website_incomplete_terms_and_conditions", + "invalid_url_website_incomplete_under_construction", + "invalid_url_website_other", + "invalid_value_other", + "unsupported_business_type", + "verification_directors_mismatch", + "verification_document_address_mismatch", + "verification_document_address_missing", + "verification_document_corrupt", + "verification_document_country_not_supported", + "verification_document_directors_mismatch", + "verification_document_dob_mismatch", + "verification_document_duplicate_type", + "verification_document_expired", + "verification_document_failed_copy", + "verification_document_failed_greyscale", + "verification_document_failed_other", + "verification_document_failed_test_mode", + "verification_document_fraudulent", + "verification_document_id_number_mismatch", + "verification_document_id_number_missing", + "verification_document_incomplete", + "verification_document_invalid", + "verification_document_issue_or_expiry_date_missing", + "verification_document_manipulated", + "verification_document_missing_back", + "verification_document_missing_front", + "verification_document_name_mismatch", + "verification_document_name_missing", + "verification_document_nationality_mismatch", + "verification_document_not_readable", + "verification_document_not_signed", + "verification_document_not_uploaded", + "verification_document_photo_mismatch", + "verification_document_too_large", + "verification_document_type_not_supported", + "verification_extraneous_directors", + "verification_failed_address_match", + "verification_failed_authorizer_authority", + "verification_failed_business_iec_number", + "verification_failed_document_match", + "verification_failed_id_number_match", + "verification_failed_keyed_identity", + "verification_failed_keyed_match", + "verification_failed_name_match", + "verification_failed_other", + "verification_failed_representative_authority", + "verification_failed_residential_address", + "verification_failed_tax_id_match", + "verification_failed_tax_id_not_issued", + "verification_legal_entity_structure_mismatch", + "verification_missing_directors", + "verification_missing_executives", + "verification_missing_owners", + "verification_rejected_ownership_exemption_reason", + "verification_requires_additional_memorandum_of_associations", + "verification_requires_additional_proof_of_registration", + "verification_supportability", + ] + """ + The code for the type of error. + """ + reason: str + """ + An informative message that indicates the error type and provides additional details about the error. + """ + requirement: str + """ + The specific user onboarding requirement field (in the requirements hash) that needs to be resolved. + """ + + alternatives: Optional[List[Alternative]] + """ + Fields that are due and can be satisfied by providing the corresponding alternative fields instead. + """ + currently_due: List[str] + """ + Fields that need to be collected to keep the person's account enabled. If not collected by the account's `current_deadline`, these fields appear in `past_due` as well, and the account is disabled. + """ + errors: List[Error] + """ + Fields that are `currently_due` and need to be collected again because validation or verification failed. + """ + eventually_due: List[str] + """ + Fields you must collect when all thresholds are reached. As they become required, they appear in `currently_due` as well, and the account's `current_deadline` becomes set. + """ + past_due: List[str] + """ + Fields that weren't collected by the account's `current_deadline`. These fields need to be collected to enable the person's account. + """ + pending_verification: List[str] + """ + Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending. + """ + _inner_class_types = {"alternatives": Alternative, "errors": Error} + + class UsCfpbData(StripeObject): + class EthnicityDetails(StripeObject): + ethnicity: Optional[ + List[ + Literal[ + "cuban", + "hispanic_or_latino", + "mexican", + "not_hispanic_or_latino", + "other_hispanic_or_latino", + "prefer_not_to_answer", + "puerto_rican", + ] + ] + ] + """ + The persons ethnicity + """ + ethnicity_other: Optional[str] + """ + Please specify your origin, when other is selected. + """ + + class RaceDetails(StripeObject): + race: Optional[ + List[ + Literal[ + "african_american", + "american_indian_or_alaska_native", + "asian", + "asian_indian", + "black_or_african_american", + "chinese", + "ethiopian", + "filipino", + "guamanian_or_chamorro", + "haitian", + "jamaican", + "japanese", + "korean", + "native_hawaiian", + "native_hawaiian_or_other_pacific_islander", + "nigerian", + "other_asian", + "other_black_or_african_american", + "other_pacific_islander", + "prefer_not_to_answer", + "samoan", + "somali", + "vietnamese", + "white", + ] + ] + ] + """ + The persons race. + """ + race_other: Optional[str] + """ + Please specify your race, when other is selected. + """ + + ethnicity_details: Optional[EthnicityDetails] + """ + The persons ethnicity details + """ + race_details: Optional[RaceDetails] + """ + The persons race details + """ + self_identified_gender: Optional[str] + """ + The persons self-identified gender + """ + _inner_class_types = { + "ethnicity_details": EthnicityDetails, + "race_details": RaceDetails, + } + + class Verification(StripeObject): + class AdditionalDocument(StripeObject): + back: Optional[ExpandableField["File"]] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + details: Optional[str] + """ + A user-displayable string describing the verification state of this document. For example, if a document is uploaded and the picture is too fuzzy, this may say "Identity document is too unclear to read". + """ + details_code: Optional[str] + """ + One of `document_corrupt`, `document_country_not_supported`, `document_expired`, `document_failed_copy`, `document_failed_other`, `document_failed_test_mode`, `document_fraudulent`, `document_failed_greyscale`, `document_incomplete`, `document_invalid`, `document_manipulated`, `document_missing_back`, `document_missing_front`, `document_not_readable`, `document_not_uploaded`, `document_photo_mismatch`, `document_too_large`, or `document_type_not_supported`. A machine-readable code specifying the verification state for this document. + """ + front: Optional[ExpandableField["File"]] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + + class Document(StripeObject): + back: Optional[ExpandableField["File"]] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + details: Optional[str] + """ + A user-displayable string describing the verification state of this document. For example, if a document is uploaded and the picture is too fuzzy, this may say "Identity document is too unclear to read". + """ + details_code: Optional[str] + """ + One of `document_corrupt`, `document_country_not_supported`, `document_expired`, `document_failed_copy`, `document_failed_other`, `document_failed_test_mode`, `document_fraudulent`, `document_failed_greyscale`, `document_incomplete`, `document_invalid`, `document_manipulated`, `document_missing_back`, `document_missing_front`, `document_not_readable`, `document_not_uploaded`, `document_photo_mismatch`, `document_too_large`, or `document_type_not_supported`. A machine-readable code specifying the verification state for this document. + """ + front: Optional[ExpandableField["File"]] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + + additional_document: Optional[AdditionalDocument] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + details: Optional[str] + """ + A user-displayable string describing the verification state for the person. For example, this may say "Provided identity information could not be verified". + """ + details_code: Optional[str] + """ + One of `document_address_mismatch`, `document_dob_mismatch`, `document_duplicate_type`, `document_id_number_mismatch`, `document_name_mismatch`, `document_nationality_mismatch`, `failed_keyed_identity`, or `failed_other`. A machine-readable code specifying the verification state for the person. + """ + document: Optional[Document] + status: str + """ + The state of verification for the person. Possible values are `unverified`, `pending`, or `verified`. Please refer [guide](https://stripe.com/docs/connect/handling-api-verification) to handle verification updates. + """ + _inner_class_types = { + "additional_document": AdditionalDocument, + "document": Document, + } + + account: Optional[str] + """ + The account the person is associated with. + """ + additional_tos_acceptances: Optional[AdditionalTosAcceptances] + address: Optional[Address] + address_kana: Optional[AddressKana] + """ + The Kana variation of the person's address (Japan only). + """ + address_kanji: Optional[AddressKanji] + """ + The Kanji variation of the person's address (Japan only). + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + dob: Optional[Dob] + email: Optional[str] + """ + The person's email address. Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + first_name: Optional[str] + """ + The person's first name. Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + first_name_kana: Optional[str] + """ + The Kana variation of the person's first name (Japan only). Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + first_name_kanji: Optional[str] + """ + The Kanji variation of the person's first name (Japan only). Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + full_name_aliases: Optional[List[str]] + """ + A list of alternate names or aliases that the person is known by. Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + future_requirements: Optional[FutureRequirements] + """ + Information about the [upcoming new requirements for this person](https://stripe.com/docs/connect/custom-accounts/future-requirements), including what information needs to be collected, and by when. + """ + gender: Optional[str] + """ + The person's gender. + """ + id: str + """ + Unique identifier for the object. + """ + id_number_provided: Optional[bool] + """ + Whether the person's `id_number` was provided. True if either the full ID number was provided or if only the required part of the ID number was provided (ex. last four of an individual's SSN for the US indicated by `ssn_last_4_provided`). + """ + id_number_secondary_provided: Optional[bool] + """ + Whether the person's `id_number_secondary` was provided. + """ + last_name: Optional[str] + """ + The person's last name. Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + last_name_kana: Optional[str] + """ + The Kana variation of the person's last name (Japan only). Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + last_name_kanji: Optional[str] + """ + The Kanji variation of the person's last name (Japan only). Also available for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `stripe`. + """ + maiden_name: Optional[str] + """ + The person's maiden name. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + nationality: Optional[str] + """ + The country where the person is a national. + """ + object: Literal["person"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + phone: Optional[str] + """ + The person's phone number. + """ + political_exposure: Optional[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: Optional[RegisteredAddress] + relationship: Optional[Relationship] + requirements: Optional[Requirements] + """ + Information about the requirements for this person, including what information needs to be collected, and by when. + """ + ssn_last_4_provided: Optional[bool] + """ + Whether the last four digits of the person's Social Security number have been provided (U.S. only). + """ + us_cfpb_data: Optional[UsCfpbData] + """ + Demographic data related to the person. + """ + verification: Optional[Verification] + + def instance_url(self): + token = self.id + account = self.account + base = stripe.Account.class_url() + assert account is not None + acct_extn = sanitize_id(account) + extn = sanitize_id(token) + return "%s/%s/persons/%s" % (base, acct_extn, extn) + + @classmethod + def modify(cls, sid, **params): + raise NotImplementedError( + "Can't modify a person without an account ID. " + "Use stripe.Account.modify_person('account_id', 'person_id', ...) " + "(see https://stripe.com/docs/api/persons/update)." + ) + + @classmethod + def retrieve(cls, id, **params): + raise NotImplementedError( + "Can't retrieve a person without an account ID. " + "Use stripe.Account.retrieve_person('account_id', 'person_id') " + "(see https://stripe.com/docs/api/persons/retrieve)." + ) + + _inner_class_types = { + "additional_tos_acceptances": AdditionalTosAcceptances, + "address": Address, + "address_kana": AddressKana, + "address_kanji": AddressKanji, + "dob": Dob, + "future_requirements": FutureRequirements, + "registered_address": RegisteredAddress, + "relationship": Relationship, + "requirements": Requirements, + "us_cfpb_data": UsCfpbData, + "verification": Verification, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_plan.py b/Backend/venv/lib/python3.12/site-packages/stripe/_plan.py new file mode 100644 index 00000000..644a5838 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_plan.py @@ -0,0 +1,375 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._product import Product + from stripe.params._plan_create_params import PlanCreateParams + from stripe.params._plan_delete_params import PlanDeleteParams + from stripe.params._plan_list_params import PlanListParams + from stripe.params._plan_modify_params import PlanModifyParams + from stripe.params._plan_retrieve_params import PlanRetrieveParams + + +class Plan( + CreateableAPIResource["Plan"], + DeletableAPIResource["Plan"], + ListableAPIResource["Plan"], + UpdateableAPIResource["Plan"], +): + """ + You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. + + Plans define the base price, currency, and billing cycle for recurring purchases of products. + [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme. + + For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year. + + Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription) and more about [products and prices](https://stripe.com/docs/products-prices/overview). + """ + + OBJECT_NAME: ClassVar[Literal["plan"]] = "plan" + + class Tier(StripeObject): + flat_amount: Optional[int] + """ + Price for the entire tier. + """ + flat_amount_decimal: Optional[str] + """ + Same as `flat_amount`, but contains a decimal value with at most 12 decimal places. + """ + unit_amount: Optional[int] + """ + Per unit price for units relevant to the tier. + """ + unit_amount_decimal: Optional[str] + """ + Same as `unit_amount`, but contains a decimal value with at most 12 decimal places. + """ + up_to: Optional[int] + """ + Up to and including to this quantity will be contained in the tier. + """ + + class TransformUsage(StripeObject): + divide_by: int + """ + Divide usage by this number. + """ + round: Literal["down", "up"] + """ + After division, either round the result `up` or `down`. + """ + + active: bool + """ + Whether the plan can be used for new purchases. + """ + amount: Optional[int] + """ + The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`. + """ + amount_decimal: Optional[str] + """ + The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`. + """ + billing_scheme: Literal["per_unit", "tiered"] + """ + Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + id: str + """ + Unique identifier for the object. + """ + interval: Literal["day", "month", "week", "year"] + """ + The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`. + """ + interval_count: int + """ + The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + meter: Optional[str] + """ + The meter tracking the usage of a metered price + """ + nickname: Optional[str] + """ + A brief description of the plan, hidden from customers. + """ + object: Literal["plan"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + product: Optional[ExpandableField["Product"]] + """ + The product whose pricing this plan determines. + """ + tiers: Optional[List[Tier]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + tiers_mode: Optional[Literal["graduated", "volume"]] + """ + Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows. + """ + transform_usage: Optional[TransformUsage] + """ + Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with `tiers`. + """ + trial_period_days: Optional[int] + """ + Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan). + """ + usage_type: Literal["licensed", "metered"] + """ + Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`. + """ + + @classmethod + def create(cls, **params: Unpack["PlanCreateParams"]) -> "Plan": + """ + You can now model subscriptions more flexibly using the [Prices API](https://docs.stripe.com/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. + """ + return cast( + "Plan", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PlanCreateParams"] + ) -> "Plan": + """ + You can now model subscriptions more flexibly using the [Prices API](https://docs.stripe.com/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. + """ + return cast( + "Plan", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["PlanDeleteParams"] + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Plan", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete(sid: str, **params: Unpack["PlanDeleteParams"]) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + ... + + @overload + def delete(self, **params: Unpack["PlanDeleteParams"]) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PlanDeleteParams"] + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["PlanDeleteParams"] + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Plan", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["PlanDeleteParams"] + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["PlanDeleteParams"] + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PlanDeleteParams"] + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list(cls, **params: Unpack["PlanListParams"]) -> ListObject["Plan"]: + """ + Returns a list of your plans. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PlanListParams"] + ) -> ListObject["Plan"]: + """ + Returns a list of your plans. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify(cls, id: str, **params: Unpack["PlanModifyParams"]) -> "Plan": + """ + Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan's ID, amount, currency, or billing cycle. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Plan", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PlanModifyParams"] + ) -> "Plan": + """ + Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan's ID, amount, currency, or billing cycle. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Plan", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PlanRetrieveParams"] + ) -> "Plan": + """ + Retrieves the plan with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PlanRetrieveParams"] + ) -> "Plan": + """ + Retrieves the plan with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"tiers": Tier, "transform_usage": TransformUsage} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_plan_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_plan_service.py new file mode 100644 index 00000000..8bbdf730 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_plan_service.py @@ -0,0 +1,214 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._plan import Plan + from stripe._request_options import RequestOptions + from stripe.params._plan_create_params import PlanCreateParams + from stripe.params._plan_delete_params import PlanDeleteParams + from stripe.params._plan_list_params import PlanListParams + from stripe.params._plan_retrieve_params import PlanRetrieveParams + from stripe.params._plan_update_params import PlanUpdateParams + + +class PlanService(StripeService): + def delete( + self, + plan: str, + params: Optional["PlanDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + return cast( + "Plan", + self._request( + "delete", + "/v1/plans/{plan}".format(plan=sanitize_id(plan)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + plan: str, + params: Optional["PlanDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + Deleting plans means new subscribers can't be added. Existing subscribers aren't affected. + """ + return cast( + "Plan", + await self._request_async( + "delete", + "/v1/plans/{plan}".format(plan=sanitize_id(plan)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + plan: str, + params: Optional["PlanRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + Retrieves the plan with the given ID. + """ + return cast( + "Plan", + self._request( + "get", + "/v1/plans/{plan}".format(plan=sanitize_id(plan)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + plan: str, + params: Optional["PlanRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + Retrieves the plan with the given ID. + """ + return cast( + "Plan", + await self._request_async( + "get", + "/v1/plans/{plan}".format(plan=sanitize_id(plan)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + plan: str, + params: Optional["PlanUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan's ID, amount, currency, or billing cycle. + """ + return cast( + "Plan", + self._request( + "post", + "/v1/plans/{plan}".format(plan=sanitize_id(plan)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + plan: str, + params: Optional["PlanUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan's ID, amount, currency, or billing cycle. + """ + return cast( + "Plan", + await self._request_async( + "post", + "/v1/plans/{plan}".format(plan=sanitize_id(plan)), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["PlanListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Plan]": + """ + Returns a list of your plans. + """ + return cast( + "ListObject[Plan]", + self._request( + "get", + "/v1/plans", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PlanListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Plan]": + """ + Returns a list of your plans. + """ + return cast( + "ListObject[Plan]", + await self._request_async( + "get", + "/v1/plans", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PlanCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + You can now model subscriptions more flexibly using the [Prices API](https://docs.stripe.com/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. + """ + return cast( + "Plan", + self._request( + "post", + "/v1/plans", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PlanCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Plan": + """ + You can now model subscriptions more flexibly using the [Prices API](https://docs.stripe.com/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. + """ + return cast( + "Plan", + await self._request_async( + "post", + "/v1/plans", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_price.py b/Backend/venv/lib/python3.12/site-packages/stripe/_price.py new file mode 100644 index 00000000..5ba57213 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_price.py @@ -0,0 +1,436 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._search_result_object import SearchResultObject +from stripe._searchable_api_resource import SearchableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ( + AsyncIterator, + ClassVar, + Dict, + Iterator, + List, + Optional, + cast, +) +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._product import Product + from stripe.params._price_create_params import PriceCreateParams + from stripe.params._price_list_params import PriceListParams + from stripe.params._price_modify_params import PriceModifyParams + from stripe.params._price_retrieve_params import PriceRetrieveParams + from stripe.params._price_search_params import PriceSearchParams + + +class Price( + CreateableAPIResource["Price"], + ListableAPIResource["Price"], + SearchableAPIResource["Price"], + UpdateableAPIResource["Price"], +): + """ + Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. + [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme. + + For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once. + + Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription), [create an invoice](https://stripe.com/docs/billing/invoices/create), and more about [products and prices](https://stripe.com/docs/products-prices/overview). + """ + + OBJECT_NAME: ClassVar[Literal["price"]] = "price" + + class CurrencyOptions(StripeObject): + class CustomUnitAmount(StripeObject): + maximum: Optional[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: Optional[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: Optional[int] + """ + The starting unit amount which can be updated by the customer. + """ + + class Tier(StripeObject): + flat_amount: Optional[int] + """ + Price for the entire tier. + """ + flat_amount_decimal: Optional[str] + """ + Same as `flat_amount`, but contains a decimal value with at most 12 decimal places. + """ + unit_amount: Optional[int] + """ + Per unit price for units relevant to the tier. + """ + unit_amount_decimal: Optional[str] + """ + Same as `unit_amount`, but contains a decimal value with at most 12 decimal places. + """ + up_to: Optional[int] + """ + Up to and including to this quantity will be contained in the tier. + """ + + custom_unit_amount: Optional[CustomUnitAmount] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + tax_behavior: Optional[ + Literal["exclusive", "inclusive", "unspecified"] + ] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tiers: Optional[List[Tier]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + unit_amount: Optional[int] + """ + The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`. + """ + unit_amount_decimal: Optional[str] + """ + The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`. + """ + _inner_class_types = { + "custom_unit_amount": CustomUnitAmount, + "tiers": Tier, + } + + class CustomUnitAmount(StripeObject): + maximum: Optional[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: Optional[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: Optional[int] + """ + The starting unit amount which can be updated by the customer. + """ + + class Recurring(StripeObject): + interval: Literal["day", "month", "week", "year"] + """ + The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`. + """ + interval_count: int + """ + The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. + """ + meter: Optional[str] + """ + The meter tracking the usage of a metered price + """ + trial_period_days: Optional[int] + """ + Default number of trial days when subscribing a customer to this price using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan). + """ + usage_type: Literal["licensed", "metered"] + """ + Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`. + """ + + class Tier(StripeObject): + flat_amount: Optional[int] + """ + Price for the entire tier. + """ + flat_amount_decimal: Optional[str] + """ + Same as `flat_amount`, but contains a decimal value with at most 12 decimal places. + """ + unit_amount: Optional[int] + """ + Per unit price for units relevant to the tier. + """ + unit_amount_decimal: Optional[str] + """ + Same as `unit_amount`, but contains a decimal value with at most 12 decimal places. + """ + up_to: Optional[int] + """ + Up to and including to this quantity will be contained in the tier. + """ + + class TransformQuantity(StripeObject): + divide_by: int + """ + Divide usage by this number. + """ + round: Literal["down", "up"] + """ + After division, either round the result `up` or `down`. + """ + + active: bool + """ + Whether the price can be used for new purchases. + """ + billing_scheme: Literal["per_unit", "tiered"] + """ + Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `unit_amount` or `unit_amount_decimal`) will be charged per unit in `quantity` (for prices with `usage_type=licensed`), or per unit of total usage (for prices with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: Optional[Dict[str, CurrencyOptions]] + """ + Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + custom_unit_amount: Optional[CustomUnitAmount] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + lookup_key: Optional[str] + """ + A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + nickname: Optional[str] + """ + A brief description of the price, hidden from customers. + """ + object: Literal["price"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + product: ExpandableField["Product"] + """ + The ID of the product this price is associated with. + """ + recurring: Optional[Recurring] + """ + The recurring components of a price such as `interval` and `usage_type`. + """ + tax_behavior: Optional[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tiers: Optional[List[Tier]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + tiers_mode: Optional[Literal["graduated", "volume"]] + """ + Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows. + """ + transform_quantity: Optional[TransformQuantity] + """ + Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with `tiers`. + """ + type: Literal["one_time", "recurring"] + """ + One of `one_time` or `recurring` depending on whether the price is for a one-time purchase or a recurring (subscription) purchase. + """ + unit_amount: Optional[int] + """ + The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`. + """ + unit_amount_decimal: Optional[str] + """ + The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`. + """ + + @classmethod + def create(cls, **params: Unpack["PriceCreateParams"]) -> "Price": + """ + Creates a new [Price for an existing Product](https://docs.stripe.com/api/prices). The Price can be recurring or one-time. + """ + return cast( + "Price", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PriceCreateParams"] + ) -> "Price": + """ + Creates a new [Price for an existing Product](https://docs.stripe.com/api/prices). The Price can be recurring or one-time. + """ + return cast( + "Price", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list(cls, **params: Unpack["PriceListParams"]) -> ListObject["Price"]: + """ + Returns a list of your active prices, excluding [inline prices](https://docs.stripe.com/docs/products-prices/pricing-models#inline-pricing). For the list of inactive prices, set active to false. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PriceListParams"] + ) -> ListObject["Price"]: + """ + Returns a list of your active prices, excluding [inline prices](https://docs.stripe.com/docs/products-prices/pricing-models#inline-pricing). For the list of inactive prices, set active to false. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify(cls, id: str, **params: Unpack["PriceModifyParams"]) -> "Price": + """ + Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Price", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PriceModifyParams"] + ) -> "Price": + """ + Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Price", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PriceRetrieveParams"] + ) -> "Price": + """ + Retrieves the price with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PriceRetrieveParams"] + ) -> "Price": + """ + Retrieves the price with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def search( + cls, *args, **kwargs: Unpack["PriceSearchParams"] + ) -> SearchResultObject["Price"]: + """ + Search for prices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cls._search(search_url="/v1/prices/search", *args, **kwargs) + + @classmethod + async def search_async( + cls, *args, **kwargs: Unpack["PriceSearchParams"] + ) -> SearchResultObject["Price"]: + """ + Search for prices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return await cls._search_async( + search_url="/v1/prices/search", *args, **kwargs + ) + + @classmethod + def search_auto_paging_iter( + cls, *args, **kwargs: Unpack["PriceSearchParams"] + ) -> Iterator["Price"]: + return cls.search(*args, **kwargs).auto_paging_iter() + + @classmethod + async def search_auto_paging_iter_async( + cls, *args, **kwargs: Unpack["PriceSearchParams"] + ) -> AsyncIterator["Price"]: + return (await cls.search_async(*args, **kwargs)).auto_paging_iter() + + _inner_class_types = { + "currency_options": CurrencyOptions, + "custom_unit_amount": CustomUnitAmount, + "recurring": Recurring, + "tiers": Tier, + "transform_quantity": TransformQuantity, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_price_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_price_service.py new file mode 100644 index 00000000..5207dda3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_price_service.py @@ -0,0 +1,219 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._price import Price + from stripe._request_options import RequestOptions + from stripe._search_result_object import SearchResultObject + from stripe.params._price_create_params import PriceCreateParams + from stripe.params._price_list_params import PriceListParams + from stripe.params._price_retrieve_params import PriceRetrieveParams + from stripe.params._price_search_params import PriceSearchParams + from stripe.params._price_update_params import PriceUpdateParams + + +class PriceService(StripeService): + def list( + self, + params: Optional["PriceListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Price]": + """ + Returns a list of your active prices, excluding [inline prices](https://docs.stripe.com/docs/products-prices/pricing-models#inline-pricing). For the list of inactive prices, set active to false. + """ + return cast( + "ListObject[Price]", + self._request( + "get", + "/v1/prices", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PriceListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Price]": + """ + Returns a list of your active prices, excluding [inline prices](https://docs.stripe.com/docs/products-prices/pricing-models#inline-pricing). For the list of inactive prices, set active to false. + """ + return cast( + "ListObject[Price]", + await self._request_async( + "get", + "/v1/prices", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PriceCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Price": + """ + Creates a new [Price for an existing Product](https://docs.stripe.com/api/prices). The Price can be recurring or one-time. + """ + return cast( + "Price", + self._request( + "post", + "/v1/prices", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PriceCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Price": + """ + Creates a new [Price for an existing Product](https://docs.stripe.com/api/prices). The Price can be recurring or one-time. + """ + return cast( + "Price", + await self._request_async( + "post", + "/v1/prices", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + price: str, + params: Optional["PriceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Price": + """ + Retrieves the price with the given ID. + """ + return cast( + "Price", + self._request( + "get", + "/v1/prices/{price}".format(price=sanitize_id(price)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + price: str, + params: Optional["PriceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Price": + """ + Retrieves the price with the given ID. + """ + return cast( + "Price", + await self._request_async( + "get", + "/v1/prices/{price}".format(price=sanitize_id(price)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + price: str, + params: Optional["PriceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Price": + """ + Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged. + """ + return cast( + "Price", + self._request( + "post", + "/v1/prices/{price}".format(price=sanitize_id(price)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + price: str, + params: Optional["PriceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Price": + """ + Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged. + """ + return cast( + "Price", + await self._request_async( + "post", + "/v1/prices/{price}".format(price=sanitize_id(price)), + base_address="api", + params=params, + options=options, + ), + ) + + def search( + self, + params: "PriceSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Price]": + """ + Search for prices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Price]", + self._request( + "get", + "/v1/prices/search", + base_address="api", + params=params, + options=options, + ), + ) + + async def search_async( + self, + params: "PriceSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Price]": + """ + Search for prices you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Price]", + await self._request_async( + "get", + "/v1/prices/search", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_product.py b/Backend/venv/lib/python3.12/site-packages/stripe/_product.py new file mode 100644 index 00000000..aa29a9ea --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_product.py @@ -0,0 +1,593 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._search_result_object import SearchResultObject +from stripe._searchable_api_resource import SearchableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ( + AsyncIterator, + ClassVar, + Dict, + Iterator, + List, + Optional, + cast, + overload, +) +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._price import Price + from stripe._product_feature import ProductFeature + from stripe._tax_code import TaxCode + from stripe.params._product_create_feature_params import ( + ProductCreateFeatureParams, + ) + from stripe.params._product_create_params import ProductCreateParams + from stripe.params._product_delete_feature_params import ( + ProductDeleteFeatureParams, + ) + from stripe.params._product_delete_params import ProductDeleteParams + from stripe.params._product_list_features_params import ( + ProductListFeaturesParams, + ) + from stripe.params._product_list_params import ProductListParams + from stripe.params._product_modify_params import ProductModifyParams + from stripe.params._product_retrieve_feature_params import ( + ProductRetrieveFeatureParams, + ) + from stripe.params._product_retrieve_params import ProductRetrieveParams + from stripe.params._product_search_params import ProductSearchParams + + +@nested_resource_class_methods("feature") +class Product( + CreateableAPIResource["Product"], + DeletableAPIResource["Product"], + ListableAPIResource["Product"], + SearchableAPIResource["Product"], + UpdateableAPIResource["Product"], +): + """ + Products describe the specific goods or services you offer to your customers. + For example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product. + They can be used in conjunction with [Prices](https://stripe.com/docs/api#prices) to configure pricing in Payment Links, Checkout, and Subscriptions. + + Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription), + [share a Payment Link](https://stripe.com/docs/payment-links), + [accept payments with Checkout](https://stripe.com/docs/payments/accept-a-payment#create-product-prices-upfront), + and more about [Products and Prices](https://stripe.com/docs/products-prices/overview) + """ + + OBJECT_NAME: ClassVar[Literal["product"]] = "product" + + class MarketingFeature(StripeObject): + name: Optional[str] + """ + The marketing feature name. Up to 80 characters long. + """ + + class PackageDimensions(StripeObject): + height: float + """ + Height, in inches. + """ + length: float + """ + Length, in inches. + """ + weight: float + """ + Weight, in ounces. + """ + width: float + """ + Width, in inches. + """ + + active: bool + """ + Whether the product is currently available for purchase. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + default_price: Optional[ExpandableField["Price"]] + """ + The ID of the [Price](https://stripe.com/docs/api/prices) object that is the default price for this product. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + description: Optional[str] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + id: str + """ + Unique identifier for the object. + """ + images: List[str] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + marketing_features: List[MarketingFeature] + """ + A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table). + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + object: Literal["product"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + package_dimensions: Optional[PackageDimensions] + """ + The dimensions of this product for shipping purposes. + """ + shippable: Optional[bool] + """ + Whether this product is shipped (i.e., physical goods). + """ + statement_descriptor: Optional[str] + """ + Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments. + """ + tax_code: Optional[ExpandableField["TaxCode"]] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + type: Literal["good", "service"] + """ + The type of the product. The product is either of type `good`, which is eligible for use with Orders and SKUs, or `service`, which is eligible for use with Subscriptions and Plans. + """ + unit_label: Optional[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + updated: int + """ + Time at which the object was last updated. Measured in seconds since the Unix epoch. + """ + url: Optional[str] + """ + A URL of a publicly-accessible webpage for this product. + """ + + @classmethod + def create(cls, **params: Unpack["ProductCreateParams"]) -> "Product": + """ + Creates a new product object. + """ + return cast( + "Product", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ProductCreateParams"] + ) -> "Product": + """ + Creates a new product object. + """ + return cast( + "Product", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["ProductDeleteParams"] + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Product", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete(sid: str, **params: Unpack["ProductDeleteParams"]) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + ... + + @overload + def delete(self, **params: Unpack["ProductDeleteParams"]) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ProductDeleteParams"] + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["ProductDeleteParams"] + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Product", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["ProductDeleteParams"] + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["ProductDeleteParams"] + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ProductDeleteParams"] + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["ProductListParams"] + ) -> ListObject["Product"]: + """ + Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ProductListParams"] + ) -> ListObject["Product"]: + """ + Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["ProductModifyParams"] + ) -> "Product": + """ + Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Product", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["ProductModifyParams"] + ) -> "Product": + """ + Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Product", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ProductRetrieveParams"] + ) -> "Product": + """ + Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ProductRetrieveParams"] + ) -> "Product": + """ + Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def search( + cls, *args, **kwargs: Unpack["ProductSearchParams"] + ) -> SearchResultObject["Product"]: + """ + Search for products you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cls._search(search_url="/v1/products/search", *args, **kwargs) + + @classmethod + async def search_async( + cls, *args, **kwargs: Unpack["ProductSearchParams"] + ) -> SearchResultObject["Product"]: + """ + Search for products you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return await cls._search_async( + search_url="/v1/products/search", *args, **kwargs + ) + + @classmethod + def search_auto_paging_iter( + cls, *args, **kwargs: Unpack["ProductSearchParams"] + ) -> Iterator["Product"]: + return cls.search(*args, **kwargs).auto_paging_iter() + + @classmethod + async def search_auto_paging_iter_async( + cls, *args, **kwargs: Unpack["ProductSearchParams"] + ) -> AsyncIterator["Product"]: + return (await cls.search_async(*args, **kwargs)).auto_paging_iter() + + @classmethod + def delete_feature( + cls, + product: str, + id: str, + **params: Unpack["ProductDeleteFeatureParams"], + ) -> "ProductFeature": + """ + Deletes the feature attachment to a product + """ + return cast( + "ProductFeature", + cls._static_request( + "delete", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def delete_feature_async( + cls, + product: str, + id: str, + **params: Unpack["ProductDeleteFeatureParams"], + ) -> "ProductFeature": + """ + Deletes the feature attachment to a product + """ + return cast( + "ProductFeature", + await cls._static_request_async( + "delete", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def retrieve_feature( + cls, + product: str, + id: str, + **params: Unpack["ProductRetrieveFeatureParams"], + ) -> "ProductFeature": + """ + Retrieves a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + cls._static_request( + "get", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_feature_async( + cls, + product: str, + id: str, + **params: Unpack["ProductRetrieveFeatureParams"], + ) -> "ProductFeature": + """ + Retrieves a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + await cls._static_request_async( + "get", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def list_features( + cls, product: str, **params: Unpack["ProductListFeaturesParams"] + ) -> ListObject["ProductFeature"]: + """ + Retrieve a list of features for a product + """ + return cast( + ListObject["ProductFeature"], + cls._static_request( + "get", + "/v1/products/{product}/features".format( + product=sanitize_id(product) + ), + params=params, + ), + ) + + @classmethod + async def list_features_async( + cls, product: str, **params: Unpack["ProductListFeaturesParams"] + ) -> ListObject["ProductFeature"]: + """ + Retrieve a list of features for a product + """ + return cast( + ListObject["ProductFeature"], + await cls._static_request_async( + "get", + "/v1/products/{product}/features".format( + product=sanitize_id(product) + ), + params=params, + ), + ) + + @classmethod + def create_feature( + cls, product: str, **params: Unpack["ProductCreateFeatureParams"] + ) -> "ProductFeature": + """ + Creates a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + cls._static_request( + "post", + "/v1/products/{product}/features".format( + product=sanitize_id(product) + ), + params=params, + ), + ) + + @classmethod + async def create_feature_async( + cls, product: str, **params: Unpack["ProductCreateFeatureParams"] + ) -> "ProductFeature": + """ + Creates a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + await cls._static_request_async( + "post", + "/v1/products/{product}/features".format( + product=sanitize_id(product) + ), + params=params, + ), + ) + + _inner_class_types = { + "marketing_features": MarketingFeature, + "package_dimensions": PackageDimensions, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_product_feature.py b/Backend/venv/lib/python3.12/site-packages/stripe/_product_feature.py new file mode 100644 index 00000000..322a8367 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_product_feature.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.entitlements._feature import Feature + + +class ProductFeature(StripeObject): + """ + A product_feature represents an attachment between a feature and a product. + When a product is purchased that has a feature attached, Stripe will create an entitlement to the feature for the purchasing customer. + """ + + OBJECT_NAME: ClassVar[Literal["product_feature"]] = "product_feature" + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + entitlement_feature: "Feature" + """ + A feature represents a monetizable ability or functionality in your system. + Features can be assigned to products, and when those products are purchased, Stripe will create an entitlement to the feature for the purchasing customer. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["product_feature"] + """ + String representing the object's type. Objects of the same type share the same value. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_product_feature_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_product_feature_service.py new file mode 100644 index 00000000..3eeba56f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_product_feature_service.py @@ -0,0 +1,209 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._product_feature import ProductFeature + from stripe._request_options import RequestOptions + from stripe.params._product_feature_create_params import ( + ProductFeatureCreateParams, + ) + from stripe.params._product_feature_delete_params import ( + ProductFeatureDeleteParams, + ) + from stripe.params._product_feature_list_params import ( + ProductFeatureListParams, + ) + from stripe.params._product_feature_retrieve_params import ( + ProductFeatureRetrieveParams, + ) + + +class ProductFeatureService(StripeService): + def delete( + self, + product: str, + id: str, + params: Optional["ProductFeatureDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ProductFeature": + """ + Deletes the feature attachment to a product + """ + return cast( + "ProductFeature", + self._request( + "delete", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + product: str, + id: str, + params: Optional["ProductFeatureDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ProductFeature": + """ + Deletes the feature attachment to a product + """ + return cast( + "ProductFeature", + await self._request_async( + "delete", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + product: str, + id: str, + params: Optional["ProductFeatureRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ProductFeature": + """ + Retrieves a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + self._request( + "get", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + product: str, + id: str, + params: Optional["ProductFeatureRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ProductFeature": + """ + Retrieves a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + await self._request_async( + "get", + "/v1/products/{product}/features/{id}".format( + product=sanitize_id(product), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + product: str, + params: Optional["ProductFeatureListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ProductFeature]": + """ + Retrieve a list of features for a product + """ + return cast( + "ListObject[ProductFeature]", + self._request( + "get", + "/v1/products/{product}/features".format( + product=sanitize_id(product), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + product: str, + params: Optional["ProductFeatureListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ProductFeature]": + """ + Retrieve a list of features for a product + """ + return cast( + "ListObject[ProductFeature]", + await self._request_async( + "get", + "/v1/products/{product}/features".format( + product=sanitize_id(product), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + product: str, + params: "ProductFeatureCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ProductFeature": + """ + Creates a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + self._request( + "post", + "/v1/products/{product}/features".format( + product=sanitize_id(product), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + product: str, + params: "ProductFeatureCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ProductFeature": + """ + Creates a product_feature, which represents a feature attachment to a product + """ + return cast( + "ProductFeature", + await self._request_async( + "post", + "/v1/products/{product}/features".format( + product=sanitize_id(product), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_product_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_product_service.py new file mode 100644 index 00000000..c5eebca3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_product_service.py @@ -0,0 +1,287 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._product import Product + from stripe._product_feature_service import ProductFeatureService + from stripe._request_options import RequestOptions + from stripe._search_result_object import SearchResultObject + from stripe.params._product_create_params import ProductCreateParams + from stripe.params._product_delete_params import ProductDeleteParams + from stripe.params._product_list_params import ProductListParams + from stripe.params._product_retrieve_params import ProductRetrieveParams + from stripe.params._product_search_params import ProductSearchParams + from stripe.params._product_update_params import ProductUpdateParams + +_subservices = { + "features": ["stripe._product_feature_service", "ProductFeatureService"], +} + + +class ProductService(StripeService): + features: "ProductFeatureService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def delete( + self, + id: str, + params: Optional["ProductDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + return cast( + "Product", + self._request( + "delete", + "/v1/products/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + id: str, + params: Optional["ProductDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it. + """ + return cast( + "Product", + await self._request_async( + "delete", + "/v1/products/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["ProductRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information. + """ + return cast( + "Product", + self._request( + "get", + "/v1/products/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["ProductRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information. + """ + return cast( + "Product", + await self._request_async( + "get", + "/v1/products/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + id: str, + params: Optional["ProductUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Product", + self._request( + "post", + "/v1/products/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: Optional["ProductUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Product", + await self._request_async( + "post", + "/v1/products/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["ProductListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Product]": + """ + Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first. + """ + return cast( + "ListObject[Product]", + self._request( + "get", + "/v1/products", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ProductListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Product]": + """ + Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first. + """ + return cast( + "ListObject[Product]", + await self._request_async( + "get", + "/v1/products", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ProductCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Creates a new product object. + """ + return cast( + "Product", + self._request( + "post", + "/v1/products", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ProductCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Creates a new product object. + """ + return cast( + "Product", + await self._request_async( + "post", + "/v1/products", + base_address="api", + params=params, + options=options, + ), + ) + + def search( + self, + params: "ProductSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Product]": + """ + Search for products you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Product]", + self._request( + "get", + "/v1/products/search", + base_address="api", + params=params, + options=options, + ), + ) + + async def search_async( + self, + params: "ProductSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Product]": + """ + Search for products you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Product]", + await self._request_async( + "get", + "/v1/products/search", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_promotion_code.py b/Backend/venv/lib/python3.12/site-packages/stripe/_promotion_code.py new file mode 100644 index 00000000..d97e75de --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_promotion_code.py @@ -0,0 +1,256 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._coupon import Coupon + from stripe._customer import Customer + from stripe.params._promotion_code_create_params import ( + PromotionCodeCreateParams, + ) + from stripe.params._promotion_code_list_params import ( + PromotionCodeListParams, + ) + from stripe.params._promotion_code_modify_params import ( + PromotionCodeModifyParams, + ) + from stripe.params._promotion_code_retrieve_params import ( + PromotionCodeRetrieveParams, + ) + + +class PromotionCode( + CreateableAPIResource["PromotionCode"], + ListableAPIResource["PromotionCode"], + UpdateableAPIResource["PromotionCode"], +): + """ + A Promotion Code represents a customer-redeemable code for an underlying promotion. + You can create multiple codes for a single promotion. + + If you enable promotion codes in your [customer portal configuration](https://stripe.com/docs/customer-management/configure-portal), then customers can redeem a code themselves when updating a subscription in the portal. + Customers can also view the currently active promotion codes and coupons on each of their subscriptions in the portal. + """ + + OBJECT_NAME: ClassVar[Literal["promotion_code"]] = "promotion_code" + + class Promotion(StripeObject): + coupon: Optional[ExpandableField["Coupon"]] + """ + If promotion `type` is `coupon`, the coupon for this promotion. + """ + type: Literal["coupon"] + """ + The type of promotion. + """ + + class Restrictions(StripeObject): + class CurrencyOptions(StripeObject): + minimum_amount: int + """ + Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work). + """ + + currency_options: Optional[Dict[str, CurrencyOptions]] + """ + Promotion code restrictions defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + first_time_transaction: bool + """ + A Boolean indicating if the Promotion Code should only be redeemed for Customers without any successful payments or invoices + """ + minimum_amount: Optional[int] + """ + Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work). + """ + minimum_amount_currency: Optional[str] + """ + Three-letter [ISO code](https://stripe.com/docs/currencies) for minimum_amount + """ + _inner_class_types = {"currency_options": CurrencyOptions} + _inner_class_dicts = ["currency_options"] + + active: bool + """ + Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid. + """ + code: str + """ + The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for each customer. Valid characters are lower case letters (a-z), upper case letters (A-Z), and digits (0-9). + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: Optional[ExpandableField["Customer"]] + """ + The customer that this promotion code can be used by. + """ + expires_at: Optional[int] + """ + Date at which the promotion code can no longer be redeemed. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + max_redemptions: Optional[int] + """ + Maximum number of times this promotion code can be redeemed. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["promotion_code"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + promotion: Promotion + restrictions: Restrictions + times_redeemed: int + """ + Number of times this promotion code has been used. + """ + + @classmethod + def create( + cls, **params: Unpack["PromotionCodeCreateParams"] + ) -> "PromotionCode": + """ + A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date. + """ + return cast( + "PromotionCode", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PromotionCodeCreateParams"] + ) -> "PromotionCode": + """ + A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date. + """ + return cast( + "PromotionCode", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PromotionCodeListParams"] + ) -> ListObject["PromotionCode"]: + """ + Returns a list of your promotion codes. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PromotionCodeListParams"] + ) -> ListObject["PromotionCode"]: + """ + Returns a list of your promotion codes. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["PromotionCodeModifyParams"] + ) -> "PromotionCode": + """ + Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PromotionCode", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PromotionCodeModifyParams"] + ) -> "PromotionCode": + """ + Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PromotionCode", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PromotionCodeRetrieveParams"] + ) -> "PromotionCode": + """ + Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use [list](https://docs.stripe.com/docs/api/promotion_codes/list) with the desired code. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PromotionCodeRetrieveParams"] + ) -> "PromotionCode": + """ + Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use [list](https://docs.stripe.com/docs/api/promotion_codes/list) with the desired code. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"promotion": Promotion, "restrictions": Restrictions} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_promotion_code_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_promotion_code_service.py new file mode 100644 index 00000000..b8aaa445 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_promotion_code_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._promotion_code import PromotionCode + from stripe._request_options import RequestOptions + from stripe.params._promotion_code_create_params import ( + PromotionCodeCreateParams, + ) + from stripe.params._promotion_code_list_params import ( + PromotionCodeListParams, + ) + from stripe.params._promotion_code_retrieve_params import ( + PromotionCodeRetrieveParams, + ) + from stripe.params._promotion_code_update_params import ( + PromotionCodeUpdateParams, + ) + + +class PromotionCodeService(StripeService): + def list( + self, + params: Optional["PromotionCodeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PromotionCode]": + """ + Returns a list of your promotion codes. + """ + return cast( + "ListObject[PromotionCode]", + self._request( + "get", + "/v1/promotion_codes", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PromotionCodeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PromotionCode]": + """ + Returns a list of your promotion codes. + """ + return cast( + "ListObject[PromotionCode]", + await self._request_async( + "get", + "/v1/promotion_codes", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PromotionCodeCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PromotionCode": + """ + A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date. + """ + return cast( + "PromotionCode", + self._request( + "post", + "/v1/promotion_codes", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PromotionCodeCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PromotionCode": + """ + A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date. + """ + return cast( + "PromotionCode", + await self._request_async( + "post", + "/v1/promotion_codes", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + promotion_code: str, + params: Optional["PromotionCodeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PromotionCode": + """ + Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use [list](https://docs.stripe.com/docs/api/promotion_codes/list) with the desired code. + """ + return cast( + "PromotionCode", + self._request( + "get", + "/v1/promotion_codes/{promotion_code}".format( + promotion_code=sanitize_id(promotion_code), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + promotion_code: str, + params: Optional["PromotionCodeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PromotionCode": + """ + Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use [list](https://docs.stripe.com/docs/api/promotion_codes/list) with the desired code. + """ + return cast( + "PromotionCode", + await self._request_async( + "get", + "/v1/promotion_codes/{promotion_code}".format( + promotion_code=sanitize_id(promotion_code), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + promotion_code: str, + params: Optional["PromotionCodeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PromotionCode": + """ + Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable. + """ + return cast( + "PromotionCode", + self._request( + "post", + "/v1/promotion_codes/{promotion_code}".format( + promotion_code=sanitize_id(promotion_code), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + promotion_code: str, + params: Optional["PromotionCodeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PromotionCode": + """ + Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable. + """ + return cast( + "PromotionCode", + await self._request_async( + "post", + "/v1/promotion_codes/{promotion_code}".format( + promotion_code=sanitize_id(promotion_code), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_quote.py b/Backend/venv/lib/python3.12/site-packages/stripe/_quote.py new file mode 100644 index 00000000..7319501a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_quote.py @@ -0,0 +1,1344 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import Any, ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._customer import Customer + from stripe._discount import Discount as DiscountResource + from stripe._invoice import Invoice + from stripe._line_item import LineItem + from stripe._subscription import Subscription + from stripe._subscription_schedule import SubscriptionSchedule + from stripe._tax_rate import TaxRate + from stripe.params._quote_accept_params import QuoteAcceptParams + from stripe.params._quote_cancel_params import QuoteCancelParams + from stripe.params._quote_create_params import QuoteCreateParams + from stripe.params._quote_finalize_quote_params import ( + QuoteFinalizeQuoteParams, + ) + from stripe.params._quote_list_computed_upfront_line_items_params import ( + QuoteListComputedUpfrontLineItemsParams, + ) + from stripe.params._quote_list_line_items_params import ( + QuoteListLineItemsParams, + ) + from stripe.params._quote_list_params import QuoteListParams + from stripe.params._quote_modify_params import QuoteModifyParams + from stripe.params._quote_pdf_params import QuotePdfParams + from stripe.params._quote_retrieve_params import QuoteRetrieveParams + from stripe.test_helpers._test_clock import TestClock + + +class Quote( + CreateableAPIResource["Quote"], + ListableAPIResource["Quote"], + UpdateableAPIResource["Quote"], +): + """ + A Quote is a way to model prices that you'd like to provide to a customer. + Once accepted, it will automatically create an invoice, subscription or subscription schedule. + """ + + OBJECT_NAME: ClassVar[Literal["quote"]] = "quote" + + class AutomaticTax(StripeObject): + class Liability(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + enabled: bool + """ + Automatically calculate taxes + """ + liability: Optional[Liability] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + provider: Optional[str] + """ + The tax provider powering automatic tax. + """ + status: Optional[ + Literal["complete", "failed", "requires_location_inputs"] + ] + """ + The status of the most recent automated tax calculation for this quote. + """ + _inner_class_types = {"liability": Liability} + + class Computed(StripeObject): + class Recurring(StripeObject): + class TotalDetails(StripeObject): + class Breakdown(StripeObject): + class Discount(StripeObject): + amount: int + """ + The amount discounted. + """ + discount: "DiscountResource" + """ + A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes). + It contains information about when the discount began, when it will end, and what it is applied to. + + Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) + """ + + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + discounts: List[Discount] + """ + The aggregated discounts. + """ + taxes: List[Tax] + """ + The aggregated tax amounts by rate. + """ + _inner_class_types = {"discounts": Discount, "taxes": Tax} + + amount_discount: int + """ + This is the sum of all the discounts. + """ + amount_shipping: Optional[int] + """ + This is the sum of all the shipping amounts. + """ + amount_tax: int + """ + This is the sum of all the tax amounts. + """ + breakdown: Optional[Breakdown] + _inner_class_types = {"breakdown": Breakdown} + + amount_subtotal: int + """ + Total before any discounts or taxes are applied. + """ + amount_total: int + """ + Total after discounts and taxes are applied. + """ + interval: Literal["day", "month", "week", "year"] + """ + The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`. + """ + interval_count: int + """ + The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. + """ + total_details: TotalDetails + _inner_class_types = {"total_details": TotalDetails} + + class Upfront(StripeObject): + class TotalDetails(StripeObject): + class Breakdown(StripeObject): + class Discount(StripeObject): + amount: int + """ + The amount discounted. + """ + discount: "DiscountResource" + """ + A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes). + It contains information about when the discount began, when it will end, and what it is applied to. + + Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) + """ + + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + discounts: List[Discount] + """ + The aggregated discounts. + """ + taxes: List[Tax] + """ + The aggregated tax amounts by rate. + """ + _inner_class_types = {"discounts": Discount, "taxes": Tax} + + amount_discount: int + """ + This is the sum of all the discounts. + """ + amount_shipping: Optional[int] + """ + This is the sum of all the shipping amounts. + """ + amount_tax: int + """ + This is the sum of all the tax amounts. + """ + breakdown: Optional[Breakdown] + _inner_class_types = {"breakdown": Breakdown} + + amount_subtotal: int + """ + Total before any discounts or taxes are applied. + """ + amount_total: int + """ + Total after discounts and taxes are applied. + """ + line_items: Optional[ListObject["LineItem"]] + """ + The line items that will appear on the next invoice after this quote is accepted. This does not include pending invoice items that exist on the customer but may still be included in the next invoice. + """ + total_details: TotalDetails + _inner_class_types = {"total_details": TotalDetails} + + recurring: Optional[Recurring] + """ + The definitive totals and line items the customer will be charged on a recurring basis. Takes into account the line items with recurring prices and discounts with `duration=forever` coupons only. Defaults to `null` if no inputted line items with recurring prices. + """ + upfront: Upfront + _inner_class_types = {"recurring": Recurring, "upfront": Upfront} + + class FromQuote(StripeObject): + is_revision: bool + """ + Whether this quote is a revision of a different quote. + """ + quote: ExpandableField["Quote"] + """ + The quote that was cloned. + """ + + class InvoiceSettings(StripeObject): + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + days_until_due: Optional[int] + """ + Number of days within which a customer must pay invoices generated by this quote. This value will be `null` for quotes where `collection_method=charge_automatically`. + """ + issuer: Issuer + _inner_class_types = {"issuer": Issuer} + + class StatusTransitions(StripeObject): + accepted_at: Optional[int] + """ + The time that the quote was accepted. Measured in seconds since Unix epoch. + """ + canceled_at: Optional[int] + """ + The time that the quote was canceled. Measured in seconds since Unix epoch. + """ + finalized_at: Optional[int] + """ + The time that the quote was finalized. Measured in seconds since Unix epoch. + """ + + class SubscriptionData(StripeObject): + class BillingMode(StripeObject): + class Flexible(StripeObject): + proration_discounts: Optional[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + flexible: Optional[Flexible] + type: Literal["classic", "flexible"] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + _inner_class_types = {"flexible": Flexible} + + billing_mode: BillingMode + """ + The billing mode of the quote. + """ + description: Optional[str] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + effective_date: Optional[int] + """ + When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. This date is ignored if it is in the past when the quote is accepted. Measured in seconds since the Unix epoch. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + trial_period_days: Optional[int] + """ + Integer representing the number of trial period days before the customer is charged for the first time. + """ + _inner_class_types = {"billing_mode": BillingMode} + + class TotalDetails(StripeObject): + class Breakdown(StripeObject): + class Discount(StripeObject): + amount: int + """ + The amount discounted. + """ + discount: "DiscountResource" + """ + A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes). + It contains information about when the discount began, when it will end, and what it is applied to. + + Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) + """ + + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + discounts: List[Discount] + """ + The aggregated discounts. + """ + taxes: List[Tax] + """ + The aggregated tax amounts by rate. + """ + _inner_class_types = {"discounts": Discount, "taxes": Tax} + + amount_discount: int + """ + This is the sum of all the discounts. + """ + amount_shipping: Optional[int] + """ + This is the sum of all the shipping amounts. + """ + amount_tax: int + """ + This is the sum of all the tax amounts. + """ + breakdown: Optional[Breakdown] + _inner_class_types = {"breakdown": Breakdown} + + class TransferData(StripeObject): + amount: Optional[int] + """ + The amount in cents (or local equivalent) that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination. + """ + amount_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount will be transferred to the destination. + """ + destination: ExpandableField["Account"] + """ + The account where funds from the payment will be transferred to upon payment success. + """ + + amount_subtotal: int + """ + Total before any discounts or taxes are applied. + """ + amount_total: int + """ + Total after discounts and taxes are applied. + """ + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect Application that created the quote. + """ + application_fee_amount: Optional[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Only applicable if there are no line items with recurring prices on the quote. + """ + application_fee_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. Only applicable if there are line items with recurring prices on the quote. + """ + automatic_tax: AutomaticTax + collection_method: Literal["charge_automatically", "send_invoice"] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`. + """ + computed: Computed + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: Optional[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: Optional[ExpandableField["Customer"]] + """ + The customer which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed. + """ + default_tax_rates: Optional[List[ExpandableField["TaxRate"]]] + """ + The tax rates applied to this quote. + """ + description: Optional[str] + """ + A description that will be displayed on the quote PDF. + """ + discounts: List[ExpandableField["DiscountResource"]] + """ + The discounts applied to this quote. + """ + expires_at: int + """ + The date on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. + """ + footer: Optional[str] + """ + A footer that will be displayed on the quote PDF. + """ + from_quote: Optional[FromQuote] + """ + Details of the quote that was cloned. See the [cloning documentation](https://stripe.com/docs/quotes/clone) for more details. + """ + header: Optional[str] + """ + A header that will be displayed on the quote PDF. + """ + id: str + """ + Unique identifier for the object. + """ + invoice: Optional[ExpandableField["Invoice"]] + """ + The invoice that was created from this quote. + """ + invoice_settings: InvoiceSettings + line_items: Optional[ListObject["LineItem"]] + """ + A list of items the customer is being quoted for. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + number: Optional[str] + """ + A unique number that identifies this particular quote. This number is assigned once the quote is [finalized](https://stripe.com/docs/quotes/overview#finalize). + """ + object: Literal["quote"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details. + """ + status: Literal["accepted", "canceled", "draft", "open"] + """ + The status of the quote. + """ + status_transitions: StatusTransitions + subscription: Optional[ExpandableField["Subscription"]] + """ + The subscription that was created or updated from this quote. + """ + subscription_data: SubscriptionData + subscription_schedule: Optional[ExpandableField["SubscriptionSchedule"]] + """ + The subscription schedule that was created or updated from this quote. + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock this quote belongs to. + """ + total_details: TotalDetails + transfer_data: Optional[TransferData] + """ + The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices. + """ + + @classmethod + def _cls_accept( + cls, quote: str, **params: Unpack["QuoteAcceptParams"] + ) -> "Quote": + """ + Accepts the specified quote. + """ + return cast( + "Quote", + cls._static_request( + "post", + "/v1/quotes/{quote}/accept".format(quote=sanitize_id(quote)), + params=params, + ), + ) + + @overload + @staticmethod + def accept(quote: str, **params: Unpack["QuoteAcceptParams"]) -> "Quote": + """ + Accepts the specified quote. + """ + ... + + @overload + def accept(self, **params: Unpack["QuoteAcceptParams"]) -> "Quote": + """ + Accepts the specified quote. + """ + ... + + @class_method_variant("_cls_accept") + def accept( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteAcceptParams"] + ) -> "Quote": + """ + Accepts the specified quote. + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes/{quote}/accept".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_accept_async( + cls, quote: str, **params: Unpack["QuoteAcceptParams"] + ) -> "Quote": + """ + Accepts the specified quote. + """ + return cast( + "Quote", + await cls._static_request_async( + "post", + "/v1/quotes/{quote}/accept".format(quote=sanitize_id(quote)), + params=params, + ), + ) + + @overload + @staticmethod + async def accept_async( + quote: str, **params: Unpack["QuoteAcceptParams"] + ) -> "Quote": + """ + Accepts the specified quote. + """ + ... + + @overload + async def accept_async( + self, **params: Unpack["QuoteAcceptParams"] + ) -> "Quote": + """ + Accepts the specified quote. + """ + ... + + @class_method_variant("_cls_accept_async") + async def accept_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteAcceptParams"] + ) -> "Quote": + """ + Accepts the specified quote. + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes/{quote}/accept".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_cancel( + cls, quote: str, **params: Unpack["QuoteCancelParams"] + ) -> "Quote": + """ + Cancels the quote. + """ + return cast( + "Quote", + cls._static_request( + "post", + "/v1/quotes/{quote}/cancel".format(quote=sanitize_id(quote)), + params=params, + ), + ) + + @overload + @staticmethod + def cancel(quote: str, **params: Unpack["QuoteCancelParams"]) -> "Quote": + """ + Cancels the quote. + """ + ... + + @overload + def cancel(self, **params: Unpack["QuoteCancelParams"]) -> "Quote": + """ + Cancels the quote. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteCancelParams"] + ) -> "Quote": + """ + Cancels the quote. + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes/{quote}/cancel".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, quote: str, **params: Unpack["QuoteCancelParams"] + ) -> "Quote": + """ + Cancels the quote. + """ + return cast( + "Quote", + await cls._static_request_async( + "post", + "/v1/quotes/{quote}/cancel".format(quote=sanitize_id(quote)), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + quote: str, **params: Unpack["QuoteCancelParams"] + ) -> "Quote": + """ + Cancels the quote. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["QuoteCancelParams"] + ) -> "Quote": + """ + Cancels the quote. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteCancelParams"] + ) -> "Quote": + """ + Cancels the quote. + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes/{quote}/cancel".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["QuoteCreateParams"]) -> "Quote": + """ + A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](https://dashboard.stripe.com/settings/billing/quote). + """ + return cast( + "Quote", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["QuoteCreateParams"] + ) -> "Quote": + """ + A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](https://dashboard.stripe.com/settings/billing/quote). + """ + return cast( + "Quote", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_finalize_quote( + cls, quote: str, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + return cast( + "Quote", + cls._static_request( + "post", + "/v1/quotes/{quote}/finalize".format(quote=sanitize_id(quote)), + params=params, + ), + ) + + @overload + @staticmethod + def finalize_quote( + quote: str, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + ... + + @overload + def finalize_quote( + self, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + ... + + @class_method_variant("_cls_finalize_quote") + def finalize_quote( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes/{quote}/finalize".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_finalize_quote_async( + cls, quote: str, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + return cast( + "Quote", + await cls._static_request_async( + "post", + "/v1/quotes/{quote}/finalize".format(quote=sanitize_id(quote)), + params=params, + ), + ) + + @overload + @staticmethod + async def finalize_quote_async( + quote: str, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + ... + + @overload + async def finalize_quote_async( + self, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + ... + + @class_method_variant("_cls_finalize_quote_async") + async def finalize_quote_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteFinalizeQuoteParams"] + ) -> "Quote": + """ + Finalizes the quote. + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes/{quote}/finalize".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list(cls, **params: Unpack["QuoteListParams"]) -> ListObject["Quote"]: + """ + Returns a list of your quotes. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["QuoteListParams"] + ) -> ListObject["Quote"]: + """ + Returns a list of your quotes. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_list_computed_upfront_line_items( + cls, + quote: str, + **params: Unpack["QuoteListComputedUpfrontLineItemsParams"], + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + return cast( + ListObject["LineItem"], + cls._static_request( + "get", + "/v1/quotes/{quote}/computed_upfront_line_items".format( + quote=sanitize_id(quote) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_computed_upfront_line_items( + quote: str, **params: Unpack["QuoteListComputedUpfrontLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + ... + + @overload + def list_computed_upfront_line_items( + self, **params: Unpack["QuoteListComputedUpfrontLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + ... + + @class_method_variant("_cls_list_computed_upfront_line_items") + def list_computed_upfront_line_items( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteListComputedUpfrontLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + return cast( + ListObject["LineItem"], + self._request( + "get", + "/v1/quotes/{quote}/computed_upfront_line_items".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_computed_upfront_line_items_async( + cls, + quote: str, + **params: Unpack["QuoteListComputedUpfrontLineItemsParams"], + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + return cast( + ListObject["LineItem"], + await cls._static_request_async( + "get", + "/v1/quotes/{quote}/computed_upfront_line_items".format( + quote=sanitize_id(quote) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_computed_upfront_line_items_async( + quote: str, **params: Unpack["QuoteListComputedUpfrontLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + ... + + @overload + async def list_computed_upfront_line_items_async( + self, **params: Unpack["QuoteListComputedUpfrontLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + ... + + @class_method_variant("_cls_list_computed_upfront_line_items_async") + async def list_computed_upfront_line_items_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteListComputedUpfrontLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + return cast( + ListObject["LineItem"], + await self._request_async( + "get", + "/v1/quotes/{quote}/computed_upfront_line_items".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_list_line_items( + cls, quote: str, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + cls._static_request( + "get", + "/v1/quotes/{quote}/line_items".format( + quote=sanitize_id(quote) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_line_items( + quote: str, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @overload + def list_line_items( + self, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @class_method_variant("_cls_list_line_items") + def list_line_items( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + self._request( + "get", + "/v1/quotes/{quote}/line_items".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_line_items_async( + cls, quote: str, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + await cls._static_request_async( + "get", + "/v1/quotes/{quote}/line_items".format( + quote=sanitize_id(quote) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_line_items_async( + quote: str, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @overload + async def list_line_items_async( + self, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @class_method_variant("_cls_list_line_items_async") + async def list_line_items_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuoteListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + await self._request_async( + "get", + "/v1/quotes/{quote}/line_items".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def modify(cls, id: str, **params: Unpack["QuoteModifyParams"]) -> "Quote": + """ + A quote models prices and services for a customer. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Quote", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["QuoteModifyParams"] + ) -> "Quote": + """ + A quote models prices and services for a customer. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Quote", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def _cls_pdf(cls, quote: str, **params: Unpack["QuotePdfParams"]) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + return cast( + Any, + cls._static_request_stream( + "get", + "/v1/quotes/{quote}/pdf".format(quote=sanitize_id(quote)), + params=params, + base_address="files", + ), + ) + + @overload + @staticmethod + def pdf(quote: str, **params: Unpack["QuotePdfParams"]) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + ... + + @overload + def pdf(self, **params: Unpack["QuotePdfParams"]) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + ... + + @class_method_variant("_cls_pdf") + def pdf( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuotePdfParams"] + ) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + return cast( + Any, + self._request_stream( + "get", + "/v1/quotes/{quote}/pdf".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + base_address="files", + ), + ) + + @classmethod + async def _cls_pdf_async( + cls, quote: str, **params: Unpack["QuotePdfParams"] + ) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + return cast( + Any, + await cls._static_request_stream_async( + "get", + "/v1/quotes/{quote}/pdf".format(quote=sanitize_id(quote)), + params=params, + base_address="files", + ), + ) + + @overload + @staticmethod + async def pdf_async(quote: str, **params: Unpack["QuotePdfParams"]) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + ... + + @overload + async def pdf_async(self, **params: Unpack["QuotePdfParams"]) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + ... + + @class_method_variant("_cls_pdf_async") + async def pdf_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["QuotePdfParams"] + ) -> Any: + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + return cast( + Any, + await self._request_stream_async( + "get", + "/v1/quotes/{quote}/pdf".format( + quote=sanitize_id(self.get("id")) + ), + params=params, + base_address="files", + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["QuoteRetrieveParams"] + ) -> "Quote": + """ + Retrieves the quote with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["QuoteRetrieveParams"] + ) -> "Quote": + """ + Retrieves the quote with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "automatic_tax": AutomaticTax, + "computed": Computed, + "from_quote": FromQuote, + "invoice_settings": InvoiceSettings, + "status_transitions": StatusTransitions, + "subscription_data": SubscriptionData, + "total_details": TotalDetails, + "transfer_data": TransferData, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_quote_computed_upfront_line_items_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_quote_computed_upfront_line_items_service.py new file mode 100644 index 00000000..a9f5cf4d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_quote_computed_upfront_line_items_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._line_item import LineItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._quote_computed_upfront_line_items_list_params import ( + QuoteComputedUpfrontLineItemsListParams, + ) + + +class QuoteComputedUpfrontLineItemsService(StripeService): + def list( + self, + quote: str, + params: Optional["QuoteComputedUpfrontLineItemsListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + return cast( + "ListObject[LineItem]", + self._request( + "get", + "/v1/quotes/{quote}/computed_upfront_line_items".format( + quote=sanitize_id(quote), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + quote: str, + params: Optional["QuoteComputedUpfrontLineItemsListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items. + """ + return cast( + "ListObject[LineItem]", + await self._request_async( + "get", + "/v1/quotes/{quote}/computed_upfront_line_items".format( + quote=sanitize_id(quote), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_quote_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_quote_line_item_service.py new file mode 100644 index 00000000..ca557180 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_quote_line_item_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._line_item import LineItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params._quote_line_item_list_params import ( + QuoteLineItemListParams, + ) + + +class QuoteLineItemService(StripeService): + def list( + self, + quote: str, + params: Optional["QuoteLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[LineItem]", + self._request( + "get", + "/v1/quotes/{quote}/line_items".format( + quote=sanitize_id(quote), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + quote: str, + params: Optional["QuoteLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[LineItem]", + await self._request_async( + "get", + "/v1/quotes/{quote}/line_items".format( + quote=sanitize_id(quote), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_quote_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_quote_service.py new file mode 100644 index 00000000..80cd138b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_quote_service.py @@ -0,0 +1,375 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._quote import Quote + from stripe._quote_computed_upfront_line_items_service import ( + QuoteComputedUpfrontLineItemsService, + ) + from stripe._quote_line_item_service import QuoteLineItemService + from stripe._request_options import RequestOptions + from stripe.params._quote_accept_params import QuoteAcceptParams + from stripe.params._quote_cancel_params import QuoteCancelParams + from stripe.params._quote_create_params import QuoteCreateParams + from stripe.params._quote_finalize_quote_params import ( + QuoteFinalizeQuoteParams, + ) + from stripe.params._quote_list_params import QuoteListParams + from stripe.params._quote_pdf_params import QuotePdfParams + from stripe.params._quote_retrieve_params import QuoteRetrieveParams + from stripe.params._quote_update_params import QuoteUpdateParams + from typing import Any + +_subservices = { + "computed_upfront_line_items": [ + "stripe._quote_computed_upfront_line_items_service", + "QuoteComputedUpfrontLineItemsService", + ], + "line_items": ["stripe._quote_line_item_service", "QuoteLineItemService"], +} + + +class QuoteService(StripeService): + computed_upfront_line_items: "QuoteComputedUpfrontLineItemsService" + line_items: "QuoteLineItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["QuoteListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Quote]": + """ + Returns a list of your quotes. + """ + return cast( + "ListObject[Quote]", + self._request( + "get", + "/v1/quotes", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["QuoteListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Quote]": + """ + Returns a list of your quotes. + """ + return cast( + "ListObject[Quote]", + await self._request_async( + "get", + "/v1/quotes", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["QuoteCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](https://dashboard.stripe.com/settings/billing/quote). + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["QuoteCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](https://dashboard.stripe.com/settings/billing/quote). + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + quote: str, + params: Optional["QuoteRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Retrieves the quote with the given ID. + """ + return cast( + "Quote", + self._request( + "get", + "/v1/quotes/{quote}".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + quote: str, + params: Optional["QuoteRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Retrieves the quote with the given ID. + """ + return cast( + "Quote", + await self._request_async( + "get", + "/v1/quotes/{quote}".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + quote: str, + params: Optional["QuoteUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + A quote models prices and services for a customer. + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes/{quote}".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + quote: str, + params: Optional["QuoteUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + A quote models prices and services for a customer. + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes/{quote}".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + def accept( + self, + quote: str, + params: Optional["QuoteAcceptParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Accepts the specified quote. + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes/{quote}/accept".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + async def accept_async( + self, + quote: str, + params: Optional["QuoteAcceptParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Accepts the specified quote. + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes/{quote}/accept".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + quote: str, + params: Optional["QuoteCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Cancels the quote. + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes/{quote}/cancel".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + quote: str, + params: Optional["QuoteCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Cancels the quote. + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes/{quote}/cancel".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + def finalize_quote( + self, + quote: str, + params: Optional["QuoteFinalizeQuoteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Finalizes the quote. + """ + return cast( + "Quote", + self._request( + "post", + "/v1/quotes/{quote}/finalize".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + async def finalize_quote_async( + self, + quote: str, + params: Optional["QuoteFinalizeQuoteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Quote": + """ + Finalizes the quote. + """ + return cast( + "Quote", + await self._request_async( + "post", + "/v1/quotes/{quote}/finalize".format(quote=sanitize_id(quote)), + base_address="api", + params=params, + options=options, + ), + ) + + def pdf( + self, + quote: str, + params: Optional["QuotePdfParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Any": + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + return cast( + "Any", + self._request_stream( + "get", + "/v1/quotes/{quote}/pdf".format(quote=sanitize_id(quote)), + base_address="files", + params=params, + options=options, + ), + ) + + async def pdf_async( + self, + quote: str, + params: Optional["QuotePdfParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Any": + """ + Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf) + """ + return cast( + "Any", + await self._request_stream_async( + "get", + "/v1/quotes/{quote}/pdf".format(quote=sanitize_id(quote)), + base_address="files", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_radar_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_radar_service.py new file mode 100644 index 00000000..db686e5d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_radar_service.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.radar._early_fraud_warning_service import ( + EarlyFraudWarningService, + ) + from stripe.radar._value_list_item_service import ValueListItemService + from stripe.radar._value_list_service import ValueListService + +_subservices = { + "early_fraud_warnings": [ + "stripe.radar._early_fraud_warning_service", + "EarlyFraudWarningService", + ], + "value_lists": ["stripe.radar._value_list_service", "ValueListService"], + "value_list_items": [ + "stripe.radar._value_list_item_service", + "ValueListItemService", + ], +} + + +class RadarService(StripeService): + early_fraud_warnings: "EarlyFraudWarningService" + value_lists: "ValueListService" + value_list_items: "ValueListItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_refund.py b/Backend/venv/lib/python3.12/site-packages/stripe/_refund.py new file mode 100644 index 00000000..a1103b79 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_refund.py @@ -0,0 +1,844 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe._charge import Charge + from stripe._payment_intent import PaymentIntent + from stripe._reversal import Reversal + from stripe.params._refund_cancel_params import RefundCancelParams + from stripe.params._refund_create_params import RefundCreateParams + from stripe.params._refund_expire_params import RefundExpireParams + from stripe.params._refund_list_params import RefundListParams + from stripe.params._refund_modify_params import RefundModifyParams + from stripe.params._refund_retrieve_params import RefundRetrieveParams + + +class Refund( + CreateableAPIResource["Refund"], + ListableAPIResource["Refund"], + UpdateableAPIResource["Refund"], +): + """ + Refund objects allow you to refund a previously created charge that isn't + refunded yet. Funds are refunded to the credit or debit card that's + initially charged. + + Related guide: [Refunds](https://stripe.com/docs/refunds) + """ + + OBJECT_NAME: ClassVar[Literal["refund"]] = "refund" + + class DestinationDetails(StripeObject): + class Affirm(StripeObject): + pass + + class AfterpayClearpay(StripeObject): + pass + + class Alipay(StripeObject): + pass + + class Alma(StripeObject): + pass + + class AmazonPay(StripeObject): + pass + + class AuBankTransfer(StripeObject): + pass + + class Blik(StripeObject): + network_decline_code: Optional[str] + """ + For refunds declined by the network, a decline code provided by the network which indicates the reason the refund failed. + """ + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class BrBankTransfer(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class Card(StripeObject): + reference: Optional[str] + """ + Value of the reference number assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference number on the refund. This can be `pending`, `available` or `unavailable`. + """ + reference_type: Optional[str] + """ + Type of the reference number assigned to the refund. + """ + type: Literal["pending", "refund", "reversal"] + """ + The type of refund. This can be `refund`, `reversal`, or `pending`. + """ + + class Cashapp(StripeObject): + pass + + class Crypto(StripeObject): + reference: Optional[str] + """ + The transaction hash of the refund. + """ + + class CustomerCashBalance(StripeObject): + pass + + class Eps(StripeObject): + pass + + class EuBankTransfer(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class GbBankTransfer(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class Giropay(StripeObject): + pass + + class Grabpay(StripeObject): + pass + + class JpBankTransfer(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class Klarna(StripeObject): + pass + + class Multibanco(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class MxBankTransfer(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class NzBankTransfer(StripeObject): + pass + + class P24(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class Paynow(StripeObject): + pass + + class Paypal(StripeObject): + network_decline_code: Optional[str] + """ + For refunds declined by the network, a decline code provided by the network which indicates the reason the refund failed. + """ + + class Pix(StripeObject): + pass + + class Revolut(StripeObject): + pass + + class Sofort(StripeObject): + pass + + class Swish(StripeObject): + network_decline_code: Optional[str] + """ + For refunds declined by the network, a decline code provided by the network which indicates the reason the refund failed. + """ + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class ThBankTransfer(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class UsBankTransfer(StripeObject): + reference: Optional[str] + """ + The reference assigned to the refund. + """ + reference_status: Optional[str] + """ + Status of the reference on the refund. This can be `pending`, `available` or `unavailable`. + """ + + class WechatPay(StripeObject): + pass + + class Zip(StripeObject): + pass + + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_bank_transfer: Optional[AuBankTransfer] + blik: Optional[Blik] + br_bank_transfer: Optional[BrBankTransfer] + card: Optional[Card] + cashapp: Optional[Cashapp] + crypto: Optional[Crypto] + customer_cash_balance: Optional[CustomerCashBalance] + eps: Optional[Eps] + eu_bank_transfer: Optional[EuBankTransfer] + gb_bank_transfer: Optional[GbBankTransfer] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + jp_bank_transfer: Optional[JpBankTransfer] + klarna: Optional[Klarna] + multibanco: Optional[Multibanco] + mx_bank_transfer: Optional[MxBankTransfer] + nz_bank_transfer: Optional[NzBankTransfer] + p24: Optional[P24] + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + revolut: Optional[Revolut] + sofort: Optional[Sofort] + swish: Optional[Swish] + th_bank_transfer: Optional[ThBankTransfer] + type: str + """ + The type of transaction-specific details of the payment method used in the refund (e.g., `card`). An additional hash is included on `destination_details` with a name matching this value. It contains information specific to the refund transaction. + """ + us_bank_transfer: Optional[UsBankTransfer] + wechat_pay: Optional[WechatPay] + zip: Optional[Zip] + _inner_class_types = { + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_bank_transfer": AuBankTransfer, + "blik": Blik, + "br_bank_transfer": BrBankTransfer, + "card": Card, + "cashapp": Cashapp, + "crypto": Crypto, + "customer_cash_balance": CustomerCashBalance, + "eps": Eps, + "eu_bank_transfer": EuBankTransfer, + "gb_bank_transfer": GbBankTransfer, + "giropay": Giropay, + "grabpay": Grabpay, + "jp_bank_transfer": JpBankTransfer, + "klarna": Klarna, + "multibanco": Multibanco, + "mx_bank_transfer": MxBankTransfer, + "nz_bank_transfer": NzBankTransfer, + "p24": P24, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "revolut": Revolut, + "sofort": Sofort, + "swish": Swish, + "th_bank_transfer": ThBankTransfer, + "us_bank_transfer": UsBankTransfer, + "wechat_pay": WechatPay, + "zip": Zip, + } + + class NextAction(StripeObject): + class DisplayDetails(StripeObject): + class EmailSent(StripeObject): + email_sent_at: int + """ + The timestamp when the email was sent. + """ + email_sent_to: str + """ + The recipient's email address. + """ + + email_sent: EmailSent + expires_at: int + """ + The expiry timestamp. + """ + _inner_class_types = {"email_sent": EmailSent} + + display_details: Optional[DisplayDetails] + type: str + """ + Type of the next action to perform. + """ + _inner_class_types = {"display_details": DisplayDetails} + + class PresentmentDetails(StripeObject): + presentment_amount: int + """ + Amount intended to be collected by this payment, denominated in `presentment_currency`. + """ + presentment_currency: str + """ + Currency presented to the customer during payment. + """ + + amount: int + """ + Amount, in cents (or local equivalent). + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + Balance transaction that describes the impact on your account balance. + """ + charge: Optional[ExpandableField["Charge"]] + """ + ID of the charge that's refunded. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. You can use this for displaying to users (available on non-card refunds only). + """ + destination_details: Optional[DestinationDetails] + failure_balance_transaction: Optional[ + ExpandableField["BalanceTransaction"] + ] + """ + After the refund fails, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction. + """ + failure_reason: Optional[str] + """ + Provides the reason for the refund failure. Possible values are: `lost_or_stolen_card`, `expired_or_canceled_card`, `charge_for_pending_refund_disputed`, `insufficient_funds`, `declined`, `merchant_request`, or `unknown`. + """ + id: str + """ + Unique identifier for the object. + """ + instructions_email: Optional[str] + """ + For payment methods without native refund support (for example, Konbini, PromptPay), provide an email address for the customer to receive refund instructions. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + next_action: Optional[NextAction] + object: Literal["refund"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + ID of the PaymentIntent that's refunded. + """ + pending_reason: Optional[ + Literal["charge_pending", "insufficient_funds", "processing"] + ] + """ + Provides the reason for why the refund is pending. Possible values are: `processing`, `insufficient_funds`, or `charge_pending`. + """ + presentment_details: Optional[PresentmentDetails] + reason: Optional[ + Literal[ + "duplicate", + "expired_uncaptured_charge", + "fraudulent", + "requested_by_customer", + ] + ] + """ + Reason for the refund, which is either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`). + """ + receipt_number: Optional[str] + """ + This is the transaction number that appears on email receipts sent for this refund. + """ + source_transfer_reversal: Optional[ExpandableField["Reversal"]] + """ + The transfer reversal that's associated with the refund. Only present if the charge came from another Stripe account. + """ + status: Optional[str] + """ + Status of the refund. This can be `pending`, `requires_action`, `succeeded`, `failed`, or `canceled`. Learn more about [failed refunds](https://stripe.com/docs/refunds#failed-refunds). + """ + transfer_reversal: Optional[ExpandableField["Reversal"]] + """ + This refers to the transfer reversal object if the accompanying transfer reverses. This is only applicable if the charge was created using the destination parameter. + """ + + @classmethod + def _cls_cancel( + cls, refund: str, **params: Unpack["RefundCancelParams"] + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + return cast( + "Refund", + cls._static_request( + "post", + "/v1/refunds/{refund}/cancel".format( + refund=sanitize_id(refund) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + refund: str, **params: Unpack["RefundCancelParams"] + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + ... + + @overload + def cancel(self, **params: Unpack["RefundCancelParams"]) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["RefundCancelParams"] + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + return cast( + "Refund", + self._request( + "post", + "/v1/refunds/{refund}/cancel".format( + refund=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, refund: str, **params: Unpack["RefundCancelParams"] + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + return cast( + "Refund", + await cls._static_request_async( + "post", + "/v1/refunds/{refund}/cancel".format( + refund=sanitize_id(refund) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + refund: str, **params: Unpack["RefundCancelParams"] + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["RefundCancelParams"] + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["RefundCancelParams"] + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + return cast( + "Refund", + await self._request_async( + "post", + "/v1/refunds/{refund}/cancel".format( + refund=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["RefundCreateParams"]) -> "Refund": + """ + When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it. + + Creating a new refund will refund a charge that has previously been created but not yet refunded. + Funds will be refunded to the credit or debit card that was originally charged. + + You can optionally refund only part of a charge. + You can do so multiple times, until the entire charge has been refunded. + + Once entirely refunded, a charge can't be refunded again. + This method will raise an error when called on an already-refunded charge, + or when trying to refund more money than is left on a charge. + """ + return cast( + "Refund", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["RefundCreateParams"] + ) -> "Refund": + """ + When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it. + + Creating a new refund will refund a charge that has previously been created but not yet refunded. + Funds will be refunded to the credit or debit card that was originally charged. + + You can optionally refund only part of a charge. + You can do so multiple times, until the entire charge has been refunded. + + Once entirely refunded, a charge can't be refunded again. + This method will raise an error when called on an already-refunded charge, + or when trying to refund more money than is left on a charge. + """ + return cast( + "Refund", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["RefundListParams"] + ) -> ListObject["Refund"]: + """ + Returns a list of all refunds you created. We return the refunds in sorted order, with the most recent refunds appearing first. The 10 most recent refunds are always available by default on the Charge object. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["RefundListParams"] + ) -> ListObject["Refund"]: + """ + Returns a list of all refunds you created. We return the refunds in sorted order, with the most recent refunds appearing first. The 10 most recent refunds are always available by default on the Charge object. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["RefundModifyParams"] + ) -> "Refund": + """ + Updates the refund that you specify by setting the values of the passed parameters. Any parameters that you don't provide remain unchanged. + + This request only accepts metadata as an argument. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Refund", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["RefundModifyParams"] + ) -> "Refund": + """ + Updates the refund that you specify by setting the values of the passed parameters. Any parameters that you don't provide remain unchanged. + + This request only accepts metadata as an argument. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Refund", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["RefundRetrieveParams"] + ) -> "Refund": + """ + Retrieves the details of an existing refund. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["RefundRetrieveParams"] + ) -> "Refund": + """ + Retrieves the details of an existing refund. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["Refund"]): + _resource_cls: Type["Refund"] + + @classmethod + def _cls_expire( + cls, refund: str, **params: Unpack["RefundExpireParams"] + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + return cast( + "Refund", + cls._static_request( + "post", + "/v1/test_helpers/refunds/{refund}/expire".format( + refund=sanitize_id(refund) + ), + params=params, + ), + ) + + @overload + @staticmethod + def expire( + refund: str, **params: Unpack["RefundExpireParams"] + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + ... + + @overload + def expire(self, **params: Unpack["RefundExpireParams"]) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + ... + + @class_method_variant("_cls_expire") + def expire( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["RefundExpireParams"] + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + return cast( + "Refund", + self.resource._request( + "post", + "/v1/test_helpers/refunds/{refund}/expire".format( + refund=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_expire_async( + cls, refund: str, **params: Unpack["RefundExpireParams"] + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + return cast( + "Refund", + await cls._static_request_async( + "post", + "/v1/test_helpers/refunds/{refund}/expire".format( + refund=sanitize_id(refund) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def expire_async( + refund: str, **params: Unpack["RefundExpireParams"] + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + ... + + @overload + async def expire_async( + self, **params: Unpack["RefundExpireParams"] + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + ... + + @class_method_variant("_cls_expire_async") + async def expire_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["RefundExpireParams"] + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + return cast( + "Refund", + await self.resource._request_async( + "post", + "/v1/test_helpers/refunds/{refund}/expire".format( + refund=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "destination_details": DestinationDetails, + "next_action": NextAction, + "presentment_details": PresentmentDetails, + } + + +Refund.TestHelpers._resource_cls = Refund diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_refund_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_refund_service.py new file mode 100644 index 00000000..07b5c341 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_refund_service.py @@ -0,0 +1,246 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._refund import Refund + from stripe._request_options import RequestOptions + from stripe.params._refund_cancel_params import RefundCancelParams + from stripe.params._refund_create_params import RefundCreateParams + from stripe.params._refund_list_params import RefundListParams + from stripe.params._refund_retrieve_params import RefundRetrieveParams + from stripe.params._refund_update_params import RefundUpdateParams + + +class RefundService(StripeService): + def list( + self, + params: Optional["RefundListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Refund]": + """ + Returns a list of all refunds you created. We return the refunds in sorted order, with the most recent refunds appearing first. The 10 most recent refunds are always available by default on the Charge object. + """ + return cast( + "ListObject[Refund]", + self._request( + "get", + "/v1/refunds", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["RefundListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Refund]": + """ + Returns a list of all refunds you created. We return the refunds in sorted order, with the most recent refunds appearing first. The 10 most recent refunds are always available by default on the Charge object. + """ + return cast( + "ListObject[Refund]", + await self._request_async( + "get", + "/v1/refunds", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["RefundCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it. + + Creating a new refund will refund a charge that has previously been created but not yet refunded. + Funds will be refunded to the credit or debit card that was originally charged. + + You can optionally refund only part of a charge. + You can do so multiple times, until the entire charge has been refunded. + + Once entirely refunded, a charge can't be refunded again. + This method will raise an error when called on an already-refunded charge, + or when trying to refund more money than is left on a charge. + """ + return cast( + "Refund", + self._request( + "post", + "/v1/refunds", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["RefundCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it. + + Creating a new refund will refund a charge that has previously been created but not yet refunded. + Funds will be refunded to the credit or debit card that was originally charged. + + You can optionally refund only part of a charge. + You can do so multiple times, until the entire charge has been refunded. + + Once entirely refunded, a charge can't be refunded again. + This method will raise an error when called on an already-refunded charge, + or when trying to refund more money than is left on a charge. + """ + return cast( + "Refund", + await self._request_async( + "post", + "/v1/refunds", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + refund: str, + params: Optional["RefundRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Retrieves the details of an existing refund. + """ + return cast( + "Refund", + self._request( + "get", + "/v1/refunds/{refund}".format(refund=sanitize_id(refund)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + refund: str, + params: Optional["RefundRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Retrieves the details of an existing refund. + """ + return cast( + "Refund", + await self._request_async( + "get", + "/v1/refunds/{refund}".format(refund=sanitize_id(refund)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + refund: str, + params: Optional["RefundUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Updates the refund that you specify by setting the values of the passed parameters. Any parameters that you don't provide remain unchanged. + + This request only accepts metadata as an argument. + """ + return cast( + "Refund", + self._request( + "post", + "/v1/refunds/{refund}".format(refund=sanitize_id(refund)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + refund: str, + params: Optional["RefundUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Updates the refund that you specify by setting the values of the passed parameters. Any parameters that you don't provide remain unchanged. + + This request only accepts metadata as an argument. + """ + return cast( + "Refund", + await self._request_async( + "post", + "/v1/refunds/{refund}".format(refund=sanitize_id(refund)), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + refund: str, + params: Optional["RefundCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + return cast( + "Refund", + self._request( + "post", + "/v1/refunds/{refund}/cancel".format( + refund=sanitize_id(refund), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + refund: str, + params: Optional["RefundCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Cancels a refund with a status of requires_action. + + You can't cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state. + """ + return cast( + "Refund", + await self._request_async( + "post", + "/v1/refunds/{refund}/cancel".format( + refund=sanitize_id(refund), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_reporting_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_reporting_service.py new file mode 100644 index 00000000..2e6a5053 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_reporting_service.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.reporting._report_run_service import ReportRunService + from stripe.reporting._report_type_service import ReportTypeService + +_subservices = { + "report_runs": [ + "stripe.reporting._report_run_service", + "ReportRunService", + ], + "report_types": [ + "stripe.reporting._report_type_service", + "ReportTypeService", + ], +} + + +class ReportingService(StripeService): + report_runs: "ReportRunService" + report_types: "ReportTypeService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_request_metrics.py b/Backend/venv/lib/python3.12/site-packages/stripe/_request_metrics.py new file mode 100644 index 00000000..308eac91 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_request_metrics.py @@ -0,0 +1,23 @@ +from typing import List, Optional + + +class RequestMetrics(object): + def __init__( + self, + request_id, + request_duration_ms, + usage: Optional[List[str]] = None, + ): + self.request_id = request_id + self.request_duration_ms = request_duration_ms + self.usage = usage + + def payload(self): + ret = { + "request_id": self.request_id, + "request_duration_ms": self.request_duration_ms, + } + + if self.usage: + ret["usage"] = self.usage + return ret diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_request_options.py b/Backend/venv/lib/python3.12/site-packages/stripe/_request_options.py new file mode 100644 index 00000000..b3c00c43 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_request_options.py @@ -0,0 +1,93 @@ +from stripe._requestor_options import RequestorOptions +from typing import Mapping, Optional, Dict, Tuple, Any +from typing_extensions import NotRequired, TypedDict, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._stripe_context import StripeContext + + +class RequestOptions(TypedDict): + api_key: NotRequired["str|None"] + stripe_version: NotRequired["str|None"] + stripe_account: NotRequired["str|None"] + stripe_context: NotRequired["str | StripeContext | None"] + max_network_retries: NotRequired["int|None"] + idempotency_key: NotRequired["str|None"] + content_type: NotRequired["str|None"] + headers: NotRequired["Mapping[str, str]|None"] + + +def merge_options( + requestor: RequestorOptions, + request: Optional[RequestOptions], +) -> RequestOptions: + """ + Merge a client and request object, giving precedence to the values from + the request object. + """ + if request is None: + return { + "api_key": requestor.api_key, + "stripe_account": requestor.stripe_account, + "stripe_context": requestor.stripe_context, + "stripe_version": requestor.stripe_version, + "max_network_retries": requestor.max_network_retries, + "idempotency_key": None, + "content_type": None, + "headers": None, + } + + return { + "api_key": request.get("api_key") or requestor.api_key, + "stripe_account": request.get("stripe_account") + or requestor.stripe_account, + "stripe_context": request.get("stripe_context") + or requestor.stripe_context, + "stripe_version": request.get("stripe_version") + or requestor.stripe_version, + "max_network_retries": request.get("max_network_retries") + if request.get("max_network_retries") is not None + else requestor.max_network_retries, + "idempotency_key": request.get("idempotency_key"), + "content_type": request.get("content_type"), + "headers": request.get("headers"), + } + + +PERSISTENT_OPTIONS_KEYS = { + "api_key", + "stripe_version", + "stripe_account", + "stripe_context", +} +""" +These are the keys in RequestOptions that should persist across requests made +by the same requestor. +""" + + +def extract_options_from_dict( + d: Optional[Mapping[str, Any]], +) -> Tuple[RequestOptions, Dict[str, Any]]: + """ + Extracts a RequestOptions object from a dict, and returns a tuple of + the RequestOptions object and the remaining dict. + """ + if not d: + return {}, {} + options: RequestOptions = {} + d_copy = dict(d) + for key in [ + "api_key", + "stripe_version", + "stripe_account", + "stripe_context", + "max_network_retries", + "idempotency_key", + "content_type", + "headers", + ]: + if key in d_copy: + options[key] = d_copy.pop(key) + + return options, d_copy diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_requestor_options.py b/Backend/venv/lib/python3.12/site-packages/stripe/_requestor_options.py new file mode 100644 index 00000000..ad5c0f08 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_requestor_options.py @@ -0,0 +1,96 @@ +# using global variables +import stripe # noqa: IMP101 +from stripe._base_address import BaseAddresses + +from typing import Optional, Union +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._stripe_context import StripeContext + + +class RequestorOptions(object): + api_key: Optional[str] + stripe_account: Optional[str] + stripe_context: "Optional[Union[str, StripeContext]]" + stripe_version: Optional[str] + base_addresses: BaseAddresses + max_network_retries: Optional[int] + + def __init__( + self, + api_key: Optional[str] = None, + stripe_account: Optional[str] = None, + stripe_context: "Optional[Union[str, StripeContext]]" = None, + stripe_version: Optional[str] = None, + base_addresses: Optional[BaseAddresses] = None, + max_network_retries: Optional[int] = None, + ): + self.api_key = api_key + self.stripe_account = stripe_account + self.stripe_context = stripe_context + self.stripe_version = stripe_version + self.base_addresses = {} + + if base_addresses: + # Base addresses can be unset (for correct merging). + # If they are not set, then we will use default API bases defined on stripe. + if base_addresses.get("api"): + self.base_addresses["api"] = base_addresses.get("api") + if base_addresses.get("connect") is not None: + self.base_addresses["connect"] = base_addresses.get("connect") + if base_addresses.get("files") is not None: + self.base_addresses["files"] = base_addresses.get("files") + if base_addresses.get("meter_events") is not None: + self.base_addresses["meter_events"] = base_addresses.get( + "meter_events" + ) + + self.max_network_retries = max_network_retries + + def to_dict(self): + """ + Returns a dict representation of the object. + """ + return { + "api_key": self.api_key, + "stripe_account": self.stripe_account, + "stripe_context": self.stripe_context, + "stripe_version": self.stripe_version, + "base_addresses": self.base_addresses, + "max_network_retries": self.max_network_retries, + } + + +class _GlobalRequestorOptions(RequestorOptions): + def __init__(self): + pass + + @property + def base_addresses(self): + return { + "api": stripe.api_base, + "connect": stripe.connect_api_base, + "files": stripe.upload_api_base, + "meter_events": stripe.meter_events_api_base, + } + + @property + def api_key(self): + return stripe.api_key + + @property + def stripe_version(self): + return stripe.api_version + + @property + def stripe_account(self): + return None + + @property + def stripe_context(self): + return None + + @property + def max_network_retries(self): + return stripe.max_network_retries diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_reserve_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/_reserve_transaction.py new file mode 100644 index 00000000..aef70b25 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_reserve_transaction.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal + + +class ReserveTransaction(StripeObject): + OBJECT_NAME: ClassVar[Literal["reserve_transaction"]] = ( + "reserve_transaction" + ) + amount: int + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + id: str + """ + Unique identifier for the object. + """ + object: Literal["reserve_transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_reversal.py b/Backend/venv/lib/python3.12/site-packages/stripe/_reversal.py new file mode 100644 index 00000000..25bbb80c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_reversal.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._transfer import Transfer +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe._refund import Refund + + +class Reversal(UpdateableAPIResource["Reversal"]): + """ + [Stripe Connect](https://stripe.com/docs/connect) platforms can reverse transfers made to a + connected account, either entirely or partially, and can also specify whether + to refund any related application fees. Transfer reversals add to the + platform's balance and subtract from the destination account's balance. + + Reversing a transfer that was made for a [destination + charge](https://docs.stripe.com/docs/connect/destination-charges) is allowed only up to the amount of + the charge. It is possible to reverse a + [transfer_group](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) + transfer only if the destination account has enough balance to cover the + reversal. + + Related guide: [Reverse transfers](https://stripe.com/docs/connect/separate-charges-and-transfers#reverse-transfers) + """ + + OBJECT_NAME: ClassVar[Literal["transfer_reversal"]] = "transfer_reversal" + amount: int + """ + Amount, in cents (or local equivalent). + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + Balance transaction that describes the impact on your account balance. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + destination_payment_refund: Optional[ExpandableField["Refund"]] + """ + Linked payment refund for the transfer reversal. + """ + id: str + """ + Unique identifier for the object. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["transfer_reversal"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + source_refund: Optional[ExpandableField["Refund"]] + """ + ID of the refund responsible for the transfer reversal. + """ + transfer: ExpandableField["Transfer"] + """ + ID of the transfer that was reversed. + """ + + def instance_url(self): + token = self.id + transfer = self.transfer + if isinstance(transfer, Transfer): + transfer = transfer.id + base = Transfer.class_url() + cust_extn = sanitize_id(transfer) + extn = sanitize_id(token) + return "%s/%s/reversals/%s" % (base, cust_extn, extn) + + @classmethod + def modify(cls, sid, **params): + raise NotImplementedError( + "Can't modify a reversal without a transfer ID. " + "Use stripe.Transfer.modify_reversal('transfer_id', 'reversal_id', ...) " + "(see https://stripe.com/docs/api/transfer_reversals/update)." + ) + + @classmethod + def retrieve(cls, id, **params): + raise NotImplementedError( + "Can't retrieve a reversal without a transfer ID. " + "Use stripe.Transfer.retrieve_reversal('transfer_id', 'reversal_id') " + "(see https://stripe.com/docs/api/transfer_reversals/retrieve)." + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_review.py b/Backend/venv/lib/python3.12/site-packages/stripe/_review.py new file mode 100644 index 00000000..d03e8462 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_review.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._charge import Charge + from stripe._payment_intent import PaymentIntent + from stripe.params._review_approve_params import ReviewApproveParams + from stripe.params._review_list_params import ReviewListParams + from stripe.params._review_retrieve_params import ReviewRetrieveParams + + +class Review(ListableAPIResource["Review"]): + """ + Reviews can be used to supplement automated fraud detection with human expertise. + + Learn more about [Radar](https://docs.stripe.com/radar) and reviewing payments + [here](https://stripe.com/docs/radar/reviews). + """ + + OBJECT_NAME: ClassVar[Literal["review"]] = "review" + + class IpAddressLocation(StripeObject): + city: Optional[str] + """ + The city where the payment originated. + """ + country: Optional[str] + """ + Two-letter ISO code representing the country where the payment originated. + """ + latitude: Optional[float] + """ + The geographic latitude where the payment originated. + """ + longitude: Optional[float] + """ + The geographic longitude where the payment originated. + """ + region: Optional[str] + """ + The state/county/province/region where the payment originated. + """ + + class Session(StripeObject): + browser: Optional[str] + """ + The browser used in this browser session (e.g., `Chrome`). + """ + device: Optional[str] + """ + Information about the device used for the browser session (e.g., `Samsung SM-G930T`). + """ + platform: Optional[str] + """ + The platform for the browser session (e.g., `Macintosh`). + """ + version: Optional[str] + """ + The version for the browser session (e.g., `61.0.3163.100`). + """ + + billing_zip: Optional[str] + """ + The ZIP or postal code of the card used, if applicable. + """ + charge: Optional[ExpandableField["Charge"]] + """ + The charge associated with this review. + """ + closed_reason: Optional[ + Literal[ + "acknowledged", + "approved", + "canceled", + "disputed", + "payment_never_settled", + "redacted", + "refunded", + "refunded_as_fraud", + ] + ] + """ + The reason the review was closed, or null if it has not yet been closed. One of `approved`, `refunded`, `refunded_as_fraud`, `disputed`, `redacted`, `canceled`, `payment_never_settled`, or `acknowledged`. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + ip_address: Optional[str] + """ + The IP address where the payment originated. + """ + ip_address_location: Optional[IpAddressLocation] + """ + Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["review"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + open: bool + """ + If `true`, the review needs action. + """ + opened_reason: Literal["manual", "rule"] + """ + The reason the review was opened. One of `rule` or `manual`. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + The PaymentIntent ID associated with this review, if one exists. + """ + reason: str + """ + The reason the review is currently open or closed. One of `rule`, `manual`, `approved`, `refunded`, `refunded_as_fraud`, `disputed`, `redacted`, `canceled`, `payment_never_settled`, or `acknowledged`. + """ + session: Optional[Session] + """ + Information related to the browsing session of the user who initiated the payment. + """ + + @classmethod + def _cls_approve( + cls, review: str, **params: Unpack["ReviewApproveParams"] + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + return cast( + "Review", + cls._static_request( + "post", + "/v1/reviews/{review}/approve".format( + review=sanitize_id(review) + ), + params=params, + ), + ) + + @overload + @staticmethod + def approve( + review: str, **params: Unpack["ReviewApproveParams"] + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + ... + + @overload + def approve(self, **params: Unpack["ReviewApproveParams"]) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + ... + + @class_method_variant("_cls_approve") + def approve( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReviewApproveParams"] + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + return cast( + "Review", + self._request( + "post", + "/v1/reviews/{review}/approve".format( + review=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_approve_async( + cls, review: str, **params: Unpack["ReviewApproveParams"] + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + return cast( + "Review", + await cls._static_request_async( + "post", + "/v1/reviews/{review}/approve".format( + review=sanitize_id(review) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def approve_async( + review: str, **params: Unpack["ReviewApproveParams"] + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + ... + + @overload + async def approve_async( + self, **params: Unpack["ReviewApproveParams"] + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + ... + + @class_method_variant("_cls_approve_async") + async def approve_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReviewApproveParams"] + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + return cast( + "Review", + await self._request_async( + "post", + "/v1/reviews/{review}/approve".format( + review=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["ReviewListParams"] + ) -> ListObject["Review"]: + """ + Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ReviewListParams"] + ) -> ListObject["Review"]: + """ + Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ReviewRetrieveParams"] + ) -> "Review": + """ + Retrieves a Review object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ReviewRetrieveParams"] + ) -> "Review": + """ + Retrieves a Review object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "ip_address_location": IpAddressLocation, + "session": Session, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_review_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_review_service.py new file mode 100644 index 00000000..030985dd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_review_service.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._review import Review + from stripe.params._review_approve_params import ReviewApproveParams + from stripe.params._review_list_params import ReviewListParams + from stripe.params._review_retrieve_params import ReviewRetrieveParams + + +class ReviewService(StripeService): + def list( + self, + params: Optional["ReviewListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Review]": + """ + Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Review]", + self._request( + "get", + "/v1/reviews", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ReviewListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Review]": + """ + Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Review]", + await self._request_async( + "get", + "/v1/reviews", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + review: str, + params: Optional["ReviewRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Review": + """ + Retrieves a Review object. + """ + return cast( + "Review", + self._request( + "get", + "/v1/reviews/{review}".format(review=sanitize_id(review)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + review: str, + params: Optional["ReviewRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Review": + """ + Retrieves a Review object. + """ + return cast( + "Review", + await self._request_async( + "get", + "/v1/reviews/{review}".format(review=sanitize_id(review)), + base_address="api", + params=params, + options=options, + ), + ) + + def approve( + self, + review: str, + params: Optional["ReviewApproveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + return cast( + "Review", + self._request( + "post", + "/v1/reviews/{review}/approve".format( + review=sanitize_id(review), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def approve_async( + self, + review: str, + params: Optional["ReviewApproveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Review": + """ + Approves a Review object, closing it and removing it from the list of reviews. + """ + return cast( + "Review", + await self._request_async( + "post", + "/v1/reviews/{review}/approve".format( + review=sanitize_id(review), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_search_result_object.py b/Backend/venv/lib/python3.12/site-packages/stripe/_search_result_object.py new file mode 100644 index 00000000..3397d439 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_search_result_object.py @@ -0,0 +1,178 @@ +# pyright: strict +from typing_extensions import Self, Unpack +from typing import ( + Generic, + List, + TypeVar, + cast, + Any, + Mapping, + Iterator, + AsyncIterator, + Optional, +) + +from stripe._api_requestor import ( + _APIRequestor, # pyright: ignore[reportPrivateUsage] +) +from stripe._stripe_object import StripeObject +from stripe import _util +import warnings +from stripe._request_options import RequestOptions, extract_options_from_dict +from stripe._any_iterator import AnyIterator + +T = TypeVar("T", bound=StripeObject) + + +class SearchResultObject(StripeObject, Generic[T]): + OBJECT_NAME = "search_result" + data: List[T] + has_more: bool + next_page: str + + def _search(self, **params: Mapping[str, Any]) -> Self: + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) + return self.search( # pyright: ignore[reportDeprecated] + **params, + ) + + def _get_url_for_search(self) -> str: + url = self.get("url") + if not isinstance(url, str): + raise ValueError( + 'Cannot call .list on a list object without a string "url" property' + ) + return url + + @_util.deprecated( + "This will be removed in a future version of stripe-python. Please call the `search` method on the corresponding resource directly, instead of the generic search on SearchResultObject." + ) + def search(self, **params: Mapping[str, Any]) -> Self: + return cast( + Self, + self._request( + "get", + self._get_url_for_search(), + params=params, + base_address="api", + ), + ) + + async def _search_async(self, **params: Mapping[str, Any]) -> Self: + return cast( + Self, + await self._request_async( + "get", + self._get_url_for_search(), + params=params, + base_address="api", + ), + ) + + def __getitem__(self, k: str) -> T: + if isinstance(k, str): # pyright: ignore + return super(SearchResultObject, self).__getitem__(k) + else: + raise KeyError( + "You tried to access the %s index, but SearchResultObject types " + "only support string keys. (HINT: Search calls return an object " + "with a 'data' (which is the data array). You likely want to " + "call .data[%s])" % (repr(k), repr(k)) + ) + + # Pyright doesn't like this because SearchResultObject inherits from StripeObject inherits from Dict[str, Any] + # and so it wants the type of __iter__ to agree with __iter__ from Dict[str, Any] + # But we are iterating through "data", which is a List[T]. + def __iter__(self) -> Iterator[T]: # pyright: ignore + return getattr(self, "data", []).__iter__() + + def __len__(self) -> int: + return getattr(self, "data", []).__len__() + + def _auto_paging_iter(self) -> Iterator[T]: + page = self + + while True: + for item in page: + yield item + page = page.next_search_result_page() + + if page.is_empty: + break + + def auto_paging_iter(self) -> AnyIterator[T]: + return AnyIterator( + self._auto_paging_iter(), self._auto_paging_iter_async() + ) + + async def _auto_paging_iter_async(self) -> AsyncIterator[T]: + page = self + + while True: + for item in page: + yield item + page = await page.next_search_result_page_async() + + if page.is_empty: + break + + @classmethod + def _empty_search_result( + cls, + **params: Unpack[RequestOptions], + ) -> Self: + return cls._construct_from( + values={"data": [], "has_more": False, "next_page": None}, + last_response=None, + requestor=_APIRequestor._global_with_options( # pyright: ignore[reportPrivateUsage] + **params, + ), + api_mode="V1", + ) + + @property + def is_empty(self) -> bool: + return not self.data + + def _get_filters_for_next_page( + self, params: RequestOptions + ) -> Mapping[str, Any]: + params_with_filters = dict(self._retrieve_params) + params_with_filters.update({"page": self.next_page}) + params_with_filters.update(params) + return params_with_filters + + def _maybe_empty_result(self, params: RequestOptions) -> Optional[Self]: + if not self.has_more: + options, _ = extract_options_from_dict(params) + return self._empty_search_result( + api_key=options.get("api_key"), + stripe_version=options.get("stripe_version"), + stripe_account=options.get("stripe_account"), + ) + return None + + def next_search_result_page( + self, **params: Unpack[RequestOptions] + ) -> Self: + empty = self._maybe_empty_result(params) + return ( + empty + if empty is not None + else self._search( + **self._get_filters_for_next_page(params), + ) + ) + + async def next_search_result_page_async( + self, **params: Unpack[RequestOptions] + ) -> Self: + empty = self._maybe_empty_result(params) + return ( + empty + if empty is not None + else await self._search_async( + **self._get_filters_for_next_page(params), + ) + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_searchable_api_resource.py b/Backend/venv/lib/python3.12/site-packages/stripe/_searchable_api_resource.py new file mode 100644 index 00000000..037476da --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_searchable_api_resource.py @@ -0,0 +1,49 @@ +from stripe._api_resource import APIResource +from stripe._search_result_object import SearchResultObject +from typing import TypeVar +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._stripe_object import StripeObject + +T = TypeVar("T", bound="StripeObject") + + +class SearchableAPIResource(APIResource[T]): + @classmethod + def _search(cls, search_url, **params): + ret = cls._static_request( + "get", + search_url, + params=params, + ) + if not isinstance(ret, SearchResultObject): + raise TypeError( + "Expected search result from API, got %s" + % (type(ret).__name__,) + ) + + return ret + + @classmethod + async def _search_async(cls, search_url, **params): + ret = await cls._static_request_async( + "get", + search_url, + params=params, + ) + if not isinstance(ret, SearchResultObject): + raise TypeError( + "Expected search result from API, got %s" + % (type(ret).__name__,) + ) + + return ret + + @classmethod + def search(cls, *args, **kwargs): + raise NotImplementedError + + @classmethod + def search_auto_paging_iter(cls, *args, **kwargs): + raise NotImplementedError diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_setup_attempt.py b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_attempt.py new file mode 100644 index 00000000..b2d0ff3c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_attempt.py @@ -0,0 +1,839 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional, Union +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._bank_account import BankAccount + from stripe._card import Card as CardResource + from stripe._customer import Customer + from stripe._mandate import Mandate + from stripe._payment_intent import PaymentIntent + from stripe._payment_method import PaymentMethod + from stripe._setup_intent import SetupIntent + from stripe._source import Source + from stripe.params._setup_attempt_list_params import SetupAttemptListParams + + +class SetupAttempt(ListableAPIResource["SetupAttempt"]): + """ + A SetupAttempt describes one attempted confirmation of a SetupIntent, + whether that confirmation is successful or unsuccessful. You can use + SetupAttempts to inspect details of a specific attempt at setting up a + payment method using a SetupIntent. + """ + + OBJECT_NAME: ClassVar[Literal["setup_attempt"]] = "setup_attempt" + + class PaymentMethodDetails(StripeObject): + class AcssDebit(StripeObject): + pass + + class AmazonPay(StripeObject): + pass + + class AuBecsDebit(StripeObject): + pass + + class BacsDebit(StripeObject): + pass + + class Bancontact(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + Can be one of `en`, `de`, `fr`, or `nl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Bancontact directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class Boleto(StripeObject): + pass + + class Card(StripeObject): + class Checks(StripeObject): + address_line1_check: Optional[str] + """ + If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + address_postal_code_check: Optional[str] + """ + If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + cvc_check: Optional[str] + """ + If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. + """ + + class ThreeDSecure(StripeObject): + authentication_flow: Optional[ + Literal["challenge", "frictionless"] + ] + """ + For authenticated transactions: how the customer was authenticated by + the issuing bank. + """ + electronic_commerce_indicator: Optional[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI). A protocol-level field + indicating what degree of authentication was performed. + """ + result: Optional[ + Literal[ + "attempt_acknowledged", + "authenticated", + "exempted", + "failed", + "not_supported", + "processing_error", + ] + ] + """ + Indicates the outcome of 3D Secure authentication. + """ + result_reason: Optional[ + Literal[ + "abandoned", + "bypassed", + "canceled", + "card_not_enrolled", + "network_not_supported", + "protocol_error", + "rejected", + ] + ] + """ + Additional information about why 3D Secure succeeded or failed based + on the `result`. + """ + transaction_id: Optional[str] + """ + The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID + (dsTransId) for this payment. + """ + version: Optional[Literal["1.0.2", "2.1.0", "2.2.0"]] + """ + The version of 3D Secure that was used. + """ + + class Wallet(StripeObject): + class ApplePay(StripeObject): + pass + + class GooglePay(StripeObject): + pass + + apple_pay: Optional[ApplePay] + google_pay: Optional[GooglePay] + type: Literal["apple_pay", "google_pay", "link"] + """ + The type of the card wallet, one of `apple_pay`, `google_pay`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type. + """ + _inner_class_types = { + "apple_pay": ApplePay, + "google_pay": GooglePay, + } + + brand: Optional[str] + """ + Card brand. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa` or `unknown`. + """ + checks: Optional[Checks] + """ + Check results by Card networks on Card address and CVC at the time of authorization + """ + country: Optional[str] + """ + Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected. + """ + description: Optional[str] + """ + A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.) + """ + exp_month: Optional[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: Optional[int] + """ + Four-digit number representing the card's expiration year. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. + + *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + """ + funding: Optional[str] + """ + Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. + """ + iin: Optional[str] + """ + Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) + """ + issuer: Optional[str] + """ + The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) + """ + last4: Optional[str] + """ + The last four digits of the card. + """ + network: Optional[str] + """ + Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. + """ + three_d_secure: Optional[ThreeDSecure] + """ + Populated if this authorization used 3D Secure authentication. + """ + wallet: Optional[Wallet] + """ + If this Card is part of a card wallet, this contains the details of the card wallet. + """ + _inner_class_types = { + "checks": Checks, + "three_d_secure": ThreeDSecure, + "wallet": Wallet, + } + + class CardPresent(StripeObject): + class Offline(StripeObject): + stored_at: Optional[int] + """ + Time at which the payment was collected while offline + """ + type: Optional[Literal["deferred"]] + """ + The method used to process this payment method offline. Only deferred is allowed. + """ + + generated_card: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the Card PaymentMethod which was generated by this SetupAttempt. + """ + offline: Optional[Offline] + """ + Details about payments collected offline. + """ + _inner_class_types = {"offline": Offline} + + class Cashapp(StripeObject): + pass + + class Ideal(StripeObject): + bank: Optional[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `buut`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`. + """ + bic: Optional[ + Literal[ + "ABNANL2A", + "ASNBNL21", + "BITSNL2A", + "BUNQNL2A", + "BUUTNL2A", + "FVLBNL22", + "HANDNL2A", + "INGBNL2A", + "KNABNL2H", + "MOYONL21", + "NNBANL2G", + "NTSBDEB1", + "RABONL2U", + "RBRBNL21", + "REVOIE23", + "REVOLT21", + "SNSBNL2A", + "TRIONL2U", + ] + ] + """ + The Bank Identifier Code of the customer's bank. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by iDEAL directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class KakaoPay(StripeObject): + pass + + class Klarna(StripeObject): + pass + + class KrCard(StripeObject): + pass + + class Link(StripeObject): + pass + + class NaverPay(StripeObject): + buyer_id: Optional[str] + """ + Uniquely identifies this particular Naver Pay account. You can use this attribute to check whether two Naver Pay accounts are the same. + """ + + class NzBankAccount(StripeObject): + pass + + class Paypal(StripeObject): + pass + + class RevolutPay(StripeObject): + pass + + class SepaDebit(StripeObject): + pass + + class Sofort(StripeObject): + bank_code: Optional[str] + """ + Bank code of bank associated with the bank account. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + bic: Optional[str] + """ + Bank Identifier Code of the bank associated with the bank account. + """ + generated_sepa_debit: Optional[ExpandableField["PaymentMethod"]] + """ + The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt. + """ + generated_sepa_debit_mandate: Optional[ExpandableField["Mandate"]] + """ + The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt. + """ + iban_last4: Optional[str] + """ + Last four characters of the IBAN. + """ + preferred_language: Optional[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Sofort authorization page that the customer is redirected to. + Can be one of `en`, `de`, `fr`, or `nl` + """ + verified_name: Optional[str] + """ + Owner's verified full name. Values are verified or provided by Sofort directly + (if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + + class UsBankAccount(StripeObject): + pass + + acss_debit: Optional[AcssDebit] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + boleto: Optional[Boleto] + card: Optional[Card] + card_present: Optional[CardPresent] + cashapp: Optional[Cashapp] + ideal: Optional[Ideal] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + kr_card: Optional[KrCard] + link: Optional[Link] + naver_pay: Optional[NaverPay] + nz_bank_account: Optional[NzBankAccount] + paypal: Optional[Paypal] + revolut_pay: Optional[RevolutPay] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + type: str + """ + The type of the payment method used in the SetupIntent (e.g., `card`). An additional hash is included on `payment_method_details` with a name matching this value. It contains confirmation-specific information for the payment method. + """ + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "acss_debit": AcssDebit, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "boleto": Boleto, + "card": Card, + "card_present": CardPresent, + "cashapp": Cashapp, + "ideal": Ideal, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "kr_card": KrCard, + "link": Link, + "naver_pay": NaverPay, + "nz_bank_account": NzBankAccount, + "paypal": Paypal, + "revolut_pay": RevolutPay, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "us_bank_account": UsBankAccount, + } + + class SetupError(StripeObject): + advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating [how to proceed with an error](https://stripe.com/docs/declines#retrying-issuer-declines) if they provide one. + """ + charge: Optional[str] + """ + For card errors, the ID of the failed charge. + """ + code: Optional[ + Literal[ + "account_closed", + "account_country_invalid_address", + "account_error_country_change_requires_additional_steps", + "account_information_mismatch", + "account_invalid", + "account_number_invalid", + "acss_debit_session_incomplete", + "alipay_upgrade_required", + "amount_too_large", + "amount_too_small", + "api_key_expired", + "application_fees_not_allowed", + "authentication_required", + "balance_insufficient", + "balance_invalid_parameter", + "bank_account_bad_routing_numbers", + "bank_account_declined", + "bank_account_exists", + "bank_account_restricted", + "bank_account_unusable", + "bank_account_unverified", + "bank_account_verification_failed", + "billing_invalid_mandate", + "bitcoin_upgrade_required", + "capture_charge_authorization_expired", + "capture_unauthorized_payment", + "card_decline_rate_limit_exceeded", + "card_declined", + "cardholder_phone_number_required", + "charge_already_captured", + "charge_already_refunded", + "charge_disputed", + "charge_exceeds_source_limit", + "charge_exceeds_transaction_limit", + "charge_expired_for_capture", + "charge_invalid_parameter", + "charge_not_refundable", + "clearing_code_unsupported", + "country_code_invalid", + "country_unsupported", + "coupon_expired", + "customer_max_payment_methods", + "customer_max_subscriptions", + "customer_session_expired", + "customer_tax_location_invalid", + "debit_not_authorized", + "email_invalid", + "expired_card", + "financial_connections_account_inactive", + "financial_connections_account_pending_account_numbers", + "financial_connections_account_unavailable_account_numbers", + "financial_connections_no_successful_transaction_refresh", + "forwarding_api_inactive", + "forwarding_api_invalid_parameter", + "forwarding_api_retryable_upstream_error", + "forwarding_api_upstream_connection_error", + "forwarding_api_upstream_connection_timeout", + "forwarding_api_upstream_error", + "idempotency_key_in_use", + "incorrect_address", + "incorrect_cvc", + "incorrect_number", + "incorrect_zip", + "india_recurring_payment_mandate_canceled", + "instant_payouts_config_disabled", + "instant_payouts_currency_disabled", + "instant_payouts_limit_exceeded", + "instant_payouts_unsupported", + "insufficient_funds", + "intent_invalid_state", + "intent_verification_method_missing", + "invalid_card_type", + "invalid_characters", + "invalid_charge_amount", + "invalid_cvc", + "invalid_expiry_month", + "invalid_expiry_year", + "invalid_mandate_reference_prefix_format", + "invalid_number", + "invalid_source_usage", + "invalid_tax_location", + "invoice_no_customer_line_items", + "invoice_no_payment_method_types", + "invoice_no_subscription_line_items", + "invoice_not_editable", + "invoice_on_behalf_of_not_editable", + "invoice_payment_intent_requires_action", + "invoice_upcoming_none", + "livemode_mismatch", + "lock_timeout", + "missing", + "no_account", + "not_allowed_on_standard_account", + "out_of_inventory", + "ownership_declaration_not_allowed", + "parameter_invalid_empty", + "parameter_invalid_integer", + "parameter_invalid_string_blank", + "parameter_invalid_string_empty", + "parameter_missing", + "parameter_unknown", + "parameters_exclusive", + "payment_intent_action_required", + "payment_intent_authentication_failure", + "payment_intent_incompatible_payment_method", + "payment_intent_invalid_parameter", + "payment_intent_konbini_rejected_confirmation_number", + "payment_intent_mandate_invalid", + "payment_intent_payment_attempt_expired", + "payment_intent_payment_attempt_failed", + "payment_intent_rate_limit_exceeded", + "payment_intent_unexpected_state", + "payment_method_bank_account_already_verified", + "payment_method_bank_account_blocked", + "payment_method_billing_details_address_missing", + "payment_method_configuration_failures", + "payment_method_currency_mismatch", + "payment_method_customer_decline", + "payment_method_invalid_parameter", + "payment_method_invalid_parameter_testmode", + "payment_method_microdeposit_failed", + "payment_method_microdeposit_verification_amounts_invalid", + "payment_method_microdeposit_verification_amounts_mismatch", + "payment_method_microdeposit_verification_attempts_exceeded", + "payment_method_microdeposit_verification_descriptor_code_mismatch", + "payment_method_microdeposit_verification_timeout", + "payment_method_not_available", + "payment_method_provider_decline", + "payment_method_provider_timeout", + "payment_method_unactivated", + "payment_method_unexpected_state", + "payment_method_unsupported_type", + "payout_reconciliation_not_ready", + "payouts_limit_exceeded", + "payouts_not_allowed", + "platform_account_required", + "platform_api_key_expired", + "postal_code_invalid", + "processing_error", + "product_inactive", + "progressive_onboarding_limit_exceeded", + "rate_limit", + "refer_to_customer", + "refund_disputed_payment", + "resource_already_exists", + "resource_missing", + "return_intent_already_processed", + "routing_number_invalid", + "secret_key_required", + "sepa_unsupported_account", + "setup_attempt_failed", + "setup_intent_authentication_failure", + "setup_intent_invalid_parameter", + "setup_intent_mandate_invalid", + "setup_intent_mobile_wallet_unsupported", + "setup_intent_setup_attempt_expired", + "setup_intent_unexpected_state", + "shipping_address_invalid", + "shipping_calculation_failed", + "sku_inactive", + "state_unsupported", + "status_transition_invalid", + "stripe_tax_inactive", + "tax_id_invalid", + "tax_id_prohibited", + "taxes_calculation_failed", + "terminal_location_country_unsupported", + "terminal_reader_busy", + "terminal_reader_hardware_fault", + "terminal_reader_invalid_location_for_activation", + "terminal_reader_invalid_location_for_payment", + "terminal_reader_offline", + "terminal_reader_timeout", + "testmode_charges_only", + "tls_version_unsupported", + "token_already_used", + "token_card_network_invalid", + "token_in_use", + "transfer_source_balance_parameters_mismatch", + "transfers_not_allowed", + "url_invalid", + ] + ] + """ + For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported. + """ + decline_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one. + """ + doc_url: Optional[str] + """ + A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported. + """ + message: Optional[str] + """ + A human-readable message providing more details about the error. For card errors, these messages can be shown to your users. + """ + network_advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a 2 digit code which indicates the advice given to merchant by the card network on how to proceed with an error. + """ + network_decline_code: Optional[str] + """ + For payments declined by the network, an alphanumeric code which indicates the reason the payment failed. + """ + param: Optional[str] + """ + If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field. + """ + payment_intent: Optional["PaymentIntent"] + """ + A PaymentIntent guides you through the process of collecting a payment from your customer. + We recommend that you create exactly one PaymentIntent for each order or + customer session in your system. You can reference the PaymentIntent later to + see the history of payment attempts for a particular session. + + A PaymentIntent transitions through + [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) + throughout its lifetime as it interfaces with Stripe.js to perform + authentication flows and ultimately creates at most one successful charge. + + Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents) + """ + payment_method: Optional["PaymentMethod"] + """ + PaymentMethod objects represent your customer's payment instruments. + You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to + Customer objects to store instrument details for future payments. + + Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios). + """ + payment_method_type: Optional[str] + """ + If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors. + """ + request_log_url: Optional[str] + """ + A URL to the request log entry in your dashboard. + """ + setup_intent: Optional["SetupIntent"] + """ + A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. + For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. + Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow. + + Create a SetupIntent when you're ready to collect your customer's payment credentials. + Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. + The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides + you through the setup process. + + Successful SetupIntents result in payment credentials that are optimized for future payments. + For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through + [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection + to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents). + If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer), + it automatically attaches the resulting payment method to that Customer after successful setup. + We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on + PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. + + By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. + + Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents) + """ + source: Optional[ + Union["Account", "BankAccount", "CardResource", "Source"] + ] + type: Literal[ + "api_error", + "card_error", + "idempotency_error", + "invalid_request_error", + ] + """ + The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error` + """ + + application: Optional[ExpandableField["Application"]] + """ + The value of [application](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-application) on the SetupIntent at the time of this confirmation. + """ + attach_to_self: Optional[bool] + """ + If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + + It can only be used for this Stripe Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: Optional[ExpandableField["Customer"]] + """ + The value of [customer](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-customer) on the SetupIntent at the time of this confirmation. + """ + flow_directions: Optional[List[Literal["inbound", "outbound"]]] + """ + Indicates the directions of money movement for which this payment method is intended to be used. + + Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["setup_attempt"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The value of [on_behalf_of](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-on_behalf_of) on the SetupIntent at the time of this confirmation. + """ + payment_method: ExpandableField["PaymentMethod"] + """ + ID of the payment method used with this SetupAttempt. + """ + payment_method_details: PaymentMethodDetails + setup_error: Optional[SetupError] + """ + The error encountered during this attempt to confirm the SetupIntent, if any. + """ + setup_intent: ExpandableField["SetupIntent"] + """ + ID of the SetupIntent that this attempt belongs to. + """ + status: str + """ + Status of this SetupAttempt, one of `requires_confirmation`, `requires_action`, `processing`, `succeeded`, `failed`, or `abandoned`. + """ + usage: str + """ + The value of [usage](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-usage) on the SetupIntent at the time of this confirmation, one of `off_session` or `on_session`. + """ + + @classmethod + def list( + cls, **params: Unpack["SetupAttemptListParams"] + ) -> ListObject["SetupAttempt"]: + """ + Returns a list of SetupAttempts that associate with a provided SetupIntent. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SetupAttemptListParams"] + ) -> ListObject["SetupAttempt"]: + """ + Returns a list of SetupAttempts that associate with a provided SetupIntent. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + _inner_class_types = { + "payment_method_details": PaymentMethodDetails, + "setup_error": SetupError, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_setup_attempt_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_attempt_service.py new file mode 100644 index 00000000..afa07322 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_attempt_service.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._setup_attempt import SetupAttempt + from stripe.params._setup_attempt_list_params import SetupAttemptListParams + + +class SetupAttemptService(StripeService): + def list( + self, + params: "SetupAttemptListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SetupAttempt]": + """ + Returns a list of SetupAttempts that associate with a provided SetupIntent. + """ + return cast( + "ListObject[SetupAttempt]", + self._request( + "get", + "/v1/setup_attempts", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "SetupAttemptListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SetupAttempt]": + """ + Returns a list of SetupAttempts that associate with a provided SetupIntent. + """ + return cast( + "ListObject[SetupAttempt]", + await self._request_async( + "get", + "/v1/setup_attempts", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_setup_intent.py b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_intent.py new file mode 100644 index 00000000..f3e927ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_intent.py @@ -0,0 +1,1478 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, Union, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._bank_account import BankAccount + from stripe._card import Card as CardResource + from stripe._customer import Customer + from stripe._mandate import Mandate + from stripe._payment_intent import PaymentIntent + from stripe._payment_method import PaymentMethod + from stripe._setup_attempt import SetupAttempt + from stripe._source import Source + from stripe.params._setup_intent_cancel_params import ( + SetupIntentCancelParams, + ) + from stripe.params._setup_intent_confirm_params import ( + SetupIntentConfirmParams, + ) + from stripe.params._setup_intent_create_params import ( + SetupIntentCreateParams, + ) + from stripe.params._setup_intent_list_params import SetupIntentListParams + from stripe.params._setup_intent_modify_params import ( + SetupIntentModifyParams, + ) + from stripe.params._setup_intent_retrieve_params import ( + SetupIntentRetrieveParams, + ) + from stripe.params._setup_intent_verify_microdeposits_params import ( + SetupIntentVerifyMicrodepositsParams, + ) + from typing import Any + + +class SetupIntent( + CreateableAPIResource["SetupIntent"], + ListableAPIResource["SetupIntent"], + UpdateableAPIResource["SetupIntent"], +): + """ + A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. + For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. + Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow. + + Create a SetupIntent when you're ready to collect your customer's payment credentials. + Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. + The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides + you through the setup process. + + Successful SetupIntents result in payment credentials that are optimized for future payments. + For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through + [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection + to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents). + If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer), + it automatically attaches the resulting payment method to that Customer after successful setup. + We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on + PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. + + By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. + + Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents) + """ + + OBJECT_NAME: ClassVar[Literal["setup_intent"]] = "setup_intent" + + class AutomaticPaymentMethods(StripeObject): + allow_redirects: Optional[Literal["always", "never"]] + """ + Controls whether this SetupIntent will accept redirect-based payment methods. + + Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/setup_intents/confirm) this SetupIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the setup. + """ + enabled: Optional[bool] + """ + Automatically calculates compatible payment methods + """ + + class LastSetupError(StripeObject): + advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating [how to proceed with an error](https://stripe.com/docs/declines#retrying-issuer-declines) if they provide one. + """ + charge: Optional[str] + """ + For card errors, the ID of the failed charge. + """ + code: Optional[ + Literal[ + "account_closed", + "account_country_invalid_address", + "account_error_country_change_requires_additional_steps", + "account_information_mismatch", + "account_invalid", + "account_number_invalid", + "acss_debit_session_incomplete", + "alipay_upgrade_required", + "amount_too_large", + "amount_too_small", + "api_key_expired", + "application_fees_not_allowed", + "authentication_required", + "balance_insufficient", + "balance_invalid_parameter", + "bank_account_bad_routing_numbers", + "bank_account_declined", + "bank_account_exists", + "bank_account_restricted", + "bank_account_unusable", + "bank_account_unverified", + "bank_account_verification_failed", + "billing_invalid_mandate", + "bitcoin_upgrade_required", + "capture_charge_authorization_expired", + "capture_unauthorized_payment", + "card_decline_rate_limit_exceeded", + "card_declined", + "cardholder_phone_number_required", + "charge_already_captured", + "charge_already_refunded", + "charge_disputed", + "charge_exceeds_source_limit", + "charge_exceeds_transaction_limit", + "charge_expired_for_capture", + "charge_invalid_parameter", + "charge_not_refundable", + "clearing_code_unsupported", + "country_code_invalid", + "country_unsupported", + "coupon_expired", + "customer_max_payment_methods", + "customer_max_subscriptions", + "customer_session_expired", + "customer_tax_location_invalid", + "debit_not_authorized", + "email_invalid", + "expired_card", + "financial_connections_account_inactive", + "financial_connections_account_pending_account_numbers", + "financial_connections_account_unavailable_account_numbers", + "financial_connections_no_successful_transaction_refresh", + "forwarding_api_inactive", + "forwarding_api_invalid_parameter", + "forwarding_api_retryable_upstream_error", + "forwarding_api_upstream_connection_error", + "forwarding_api_upstream_connection_timeout", + "forwarding_api_upstream_error", + "idempotency_key_in_use", + "incorrect_address", + "incorrect_cvc", + "incorrect_number", + "incorrect_zip", + "india_recurring_payment_mandate_canceled", + "instant_payouts_config_disabled", + "instant_payouts_currency_disabled", + "instant_payouts_limit_exceeded", + "instant_payouts_unsupported", + "insufficient_funds", + "intent_invalid_state", + "intent_verification_method_missing", + "invalid_card_type", + "invalid_characters", + "invalid_charge_amount", + "invalid_cvc", + "invalid_expiry_month", + "invalid_expiry_year", + "invalid_mandate_reference_prefix_format", + "invalid_number", + "invalid_source_usage", + "invalid_tax_location", + "invoice_no_customer_line_items", + "invoice_no_payment_method_types", + "invoice_no_subscription_line_items", + "invoice_not_editable", + "invoice_on_behalf_of_not_editable", + "invoice_payment_intent_requires_action", + "invoice_upcoming_none", + "livemode_mismatch", + "lock_timeout", + "missing", + "no_account", + "not_allowed_on_standard_account", + "out_of_inventory", + "ownership_declaration_not_allowed", + "parameter_invalid_empty", + "parameter_invalid_integer", + "parameter_invalid_string_blank", + "parameter_invalid_string_empty", + "parameter_missing", + "parameter_unknown", + "parameters_exclusive", + "payment_intent_action_required", + "payment_intent_authentication_failure", + "payment_intent_incompatible_payment_method", + "payment_intent_invalid_parameter", + "payment_intent_konbini_rejected_confirmation_number", + "payment_intent_mandate_invalid", + "payment_intent_payment_attempt_expired", + "payment_intent_payment_attempt_failed", + "payment_intent_rate_limit_exceeded", + "payment_intent_unexpected_state", + "payment_method_bank_account_already_verified", + "payment_method_bank_account_blocked", + "payment_method_billing_details_address_missing", + "payment_method_configuration_failures", + "payment_method_currency_mismatch", + "payment_method_customer_decline", + "payment_method_invalid_parameter", + "payment_method_invalid_parameter_testmode", + "payment_method_microdeposit_failed", + "payment_method_microdeposit_verification_amounts_invalid", + "payment_method_microdeposit_verification_amounts_mismatch", + "payment_method_microdeposit_verification_attempts_exceeded", + "payment_method_microdeposit_verification_descriptor_code_mismatch", + "payment_method_microdeposit_verification_timeout", + "payment_method_not_available", + "payment_method_provider_decline", + "payment_method_provider_timeout", + "payment_method_unactivated", + "payment_method_unexpected_state", + "payment_method_unsupported_type", + "payout_reconciliation_not_ready", + "payouts_limit_exceeded", + "payouts_not_allowed", + "platform_account_required", + "platform_api_key_expired", + "postal_code_invalid", + "processing_error", + "product_inactive", + "progressive_onboarding_limit_exceeded", + "rate_limit", + "refer_to_customer", + "refund_disputed_payment", + "resource_already_exists", + "resource_missing", + "return_intent_already_processed", + "routing_number_invalid", + "secret_key_required", + "sepa_unsupported_account", + "setup_attempt_failed", + "setup_intent_authentication_failure", + "setup_intent_invalid_parameter", + "setup_intent_mandate_invalid", + "setup_intent_mobile_wallet_unsupported", + "setup_intent_setup_attempt_expired", + "setup_intent_unexpected_state", + "shipping_address_invalid", + "shipping_calculation_failed", + "sku_inactive", + "state_unsupported", + "status_transition_invalid", + "stripe_tax_inactive", + "tax_id_invalid", + "tax_id_prohibited", + "taxes_calculation_failed", + "terminal_location_country_unsupported", + "terminal_reader_busy", + "terminal_reader_hardware_fault", + "terminal_reader_invalid_location_for_activation", + "terminal_reader_invalid_location_for_payment", + "terminal_reader_offline", + "terminal_reader_timeout", + "testmode_charges_only", + "tls_version_unsupported", + "token_already_used", + "token_card_network_invalid", + "token_in_use", + "transfer_source_balance_parameters_mismatch", + "transfers_not_allowed", + "url_invalid", + ] + ] + """ + For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported. + """ + decline_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one. + """ + doc_url: Optional[str] + """ + A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported. + """ + message: Optional[str] + """ + A human-readable message providing more details about the error. For card errors, these messages can be shown to your users. + """ + network_advice_code: Optional[str] + """ + For card errors resulting from a card issuer decline, a 2 digit code which indicates the advice given to merchant by the card network on how to proceed with an error. + """ + network_decline_code: Optional[str] + """ + For payments declined by the network, an alphanumeric code which indicates the reason the payment failed. + """ + param: Optional[str] + """ + If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field. + """ + payment_intent: Optional["PaymentIntent"] + """ + A PaymentIntent guides you through the process of collecting a payment from your customer. + We recommend that you create exactly one PaymentIntent for each order or + customer session in your system. You can reference the PaymentIntent later to + see the history of payment attempts for a particular session. + + A PaymentIntent transitions through + [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) + throughout its lifetime as it interfaces with Stripe.js to perform + authentication flows and ultimately creates at most one successful charge. + + Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents) + """ + payment_method: Optional["PaymentMethod"] + """ + PaymentMethod objects represent your customer's payment instruments. + You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to + Customer objects to store instrument details for future payments. + + Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios). + """ + payment_method_type: Optional[str] + """ + If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors. + """ + request_log_url: Optional[str] + """ + A URL to the request log entry in your dashboard. + """ + setup_intent: Optional["SetupIntent"] + """ + A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. + For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. + Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow. + + Create a SetupIntent when you're ready to collect your customer's payment credentials. + Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. + The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides + you through the setup process. + + Successful SetupIntents result in payment credentials that are optimized for future payments. + For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through + [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection + to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents). + If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer), + it automatically attaches the resulting payment method to that Customer after successful setup. + We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on + PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. + + By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. + + Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents) + """ + source: Optional[ + Union["Account", "BankAccount", "CardResource", "Source"] + ] + type: Literal[ + "api_error", + "card_error", + "idempotency_error", + "invalid_request_error", + ] + """ + The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error` + """ + + class NextAction(StripeObject): + class CashappHandleRedirectOrDisplayQrCode(StripeObject): + class QrCode(StripeObject): + expires_at: int + """ + The date (unix timestamp) when the QR code expires. + """ + image_url_png: str + """ + The image_url_png string used to render QR code + """ + image_url_svg: str + """ + The image_url_svg string used to render QR code + """ + + hosted_instructions_url: str + """ + The URL to the hosted Cash App Pay instructions page, which allows customers to view the QR code, and supports QR code refreshing on expiration. + """ + mobile_auth_url: str + """ + The url for mobile redirect based auth + """ + qr_code: QrCode + _inner_class_types = {"qr_code": QrCode} + + class RedirectToUrl(StripeObject): + return_url: Optional[str] + """ + If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion. + """ + url: Optional[str] + """ + The URL you must redirect your customer to in order to authenticate. + """ + + class VerifyWithMicrodeposits(StripeObject): + arrival_date: int + """ + The timestamp when the microdeposits are expected to land. + """ + hosted_verification_url: str + """ + The URL for the hosted verification page, which allows customers to verify their bank account. + """ + microdeposit_type: Optional[Literal["amounts", "descriptor_code"]] + """ + The type of the microdeposit sent to the customer. Used to distinguish between different verification methods. + """ + + cashapp_handle_redirect_or_display_qr_code: Optional[ + CashappHandleRedirectOrDisplayQrCode + ] + redirect_to_url: Optional[RedirectToUrl] + type: str + """ + Type of the next action to perform. Refer to the other child attributes under `next_action` for available values. Examples include: `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits`. + """ + use_stripe_sdk: Optional[Dict[str, "Any"]] + """ + When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js. + """ + verify_with_microdeposits: Optional[VerifyWithMicrodeposits] + _inner_class_types = { + "cashapp_handle_redirect_or_display_qr_code": CashappHandleRedirectOrDisplayQrCode, + "redirect_to_url": RedirectToUrl, + "verify_with_microdeposits": VerifyWithMicrodeposits, + } + + class PaymentMethodConfigurationDetails(StripeObject): + id: str + """ + ID of the payment method configuration used. + """ + parent: Optional[str] + """ + ID of the parent payment method configuration used. + """ + + class PaymentMethodOptions(StripeObject): + class AcssDebit(StripeObject): + class MandateOptions(StripeObject): + custom_mandate_url: Optional[str] + """ + A URL for custom mandate text + """ + default_for: Optional[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. + """ + interval_description: Optional[str] + """ + Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: Optional[ + Literal["combined", "interval", "sporadic"] + ] + """ + Payment schedule for the mandate. + """ + transaction_type: Optional[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + currency: Optional[Literal["cad", "usd"]] + """ + Currency supported by the bank account + """ + mandate_options: Optional[MandateOptions] + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class AmazonPay(StripeObject): + pass + + class BacsDebit(StripeObject): + class MandateOptions(StripeObject): + reference_prefix: Optional[str] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + mandate_options: Optional[MandateOptions] + _inner_class_types = {"mandate_options": MandateOptions} + + class Card(StripeObject): + class MandateOptions(StripeObject): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: Optional[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: Optional[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: Optional[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + mandate_options: Optional[MandateOptions] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + network: Optional[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the setup intent. Can be only set confirm-time. + """ + request_three_d_secure: Optional[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class CardPresent(StripeObject): + pass + + class Klarna(StripeObject): + currency: Optional[str] + """ + The currency of the setup intent. Three letter ISO currency code. + """ + preferred_locale: Optional[str] + """ + Preferred locale of the Klarna checkout page that the customer is redirected to. + """ + + class Link(StripeObject): + persistent_token: Optional[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + + class Paypal(StripeObject): + billing_agreement_id: Optional[str] + """ + The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. + """ + + class SepaDebit(StripeObject): + class MandateOptions(StripeObject): + reference_prefix: Optional[str] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + mandate_options: Optional[MandateOptions] + _inner_class_types = {"mandate_options": MandateOptions} + + class UsBankAccount(StripeObject): + class FinancialConnections(StripeObject): + class Filters(StripeObject): + account_subcategories: Optional[ + List[Literal["checking", "savings"]] + ] + """ + The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`. + """ + + filters: Optional[Filters] + permissions: Optional[ + List[ + Literal[ + "balances", + "ownership", + "payment_method", + "transactions", + ] + ] + ] + """ + The list of permissions to request. The `payment_method` permission must be included. + """ + prefetch: Optional[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + Data features requested to be retrieved upon account creation. + """ + return_url: Optional[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + _inner_class_types = {"filters": Filters} + + class MandateOptions(StripeObject): + collection_method: Optional[Literal["paper"]] + """ + Mandate collection method + """ + + financial_connections: Optional[FinancialConnections] + mandate_options: Optional[MandateOptions] + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = { + "financial_connections": FinancialConnections, + "mandate_options": MandateOptions, + } + + acss_debit: Optional[AcssDebit] + amazon_pay: Optional[AmazonPay] + bacs_debit: Optional[BacsDebit] + card: Optional[Card] + card_present: Optional[CardPresent] + klarna: Optional[Klarna] + link: Optional[Link] + paypal: Optional[Paypal] + sepa_debit: Optional[SepaDebit] + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "acss_debit": AcssDebit, + "amazon_pay": AmazonPay, + "bacs_debit": BacsDebit, + "card": Card, + "card_present": CardPresent, + "klarna": Klarna, + "link": Link, + "paypal": Paypal, + "sepa_debit": SepaDebit, + "us_bank_account": UsBankAccount, + } + + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect application that created the SetupIntent. + """ + attach_to_self: Optional[bool] + """ + If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + + It can only be used for this Stripe Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer. + """ + automatic_payment_methods: Optional[AutomaticPaymentMethods] + """ + Settings for dynamic payment methods compatible with this Setup Intent + """ + cancellation_reason: Optional[ + Literal["abandoned", "duplicate", "requested_by_customer"] + ] + """ + Reason for cancellation of this SetupIntent, one of `abandoned`, `requested_by_customer`, or `duplicate`. + """ + client_secret: Optional[str] + """ + The client secret of this SetupIntent. Used for client-side retrieval using a publishable key. + + The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: Optional[ExpandableField["Customer"]] + """ + ID of the Customer this SetupIntent belongs to, if one exists. + + If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + excluded_payment_method_types: Optional[ + List[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + Payment method types that are excluded from this SetupIntent. + """ + flow_directions: Optional[List[Literal["inbound", "outbound"]]] + """ + Indicates the directions of money movement for which this payment method is intended to be used. + + Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes. + """ + id: str + """ + Unique identifier for the object. + """ + last_setup_error: Optional[LastSetupError] + """ + The error encountered in the previous SetupIntent confirmation. + """ + latest_attempt: Optional[ExpandableField["SetupAttempt"]] + """ + The most recent SetupAttempt for this SetupIntent. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the multi use Mandate generated by the SetupIntent. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + next_action: Optional[NextAction] + """ + If present, this property tells you what actions you need to take in order for your customer to continue payment setup. + """ + object: Literal["setup_intent"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account (if any) for which the setup is intended. + """ + payment_method: Optional[ExpandableField["PaymentMethod"]] + """ + ID of the payment method used with this SetupIntent. If the payment method is `card_present` and isn't a digital wallet, then the [generated_card](https://docs.stripe.com/api/setup_attempts/object#setup_attempt_object-payment_method_details-card_present-generated_card) associated with the `latest_attempt` is attached to the Customer instead. + """ + payment_method_configuration_details: Optional[ + PaymentMethodConfigurationDetails + ] + """ + Information about the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) used for this Setup Intent. + """ + payment_method_options: Optional[PaymentMethodOptions] + """ + Payment method-specific configuration for this SetupIntent. + """ + payment_method_types: List[str] + """ + The list of payment method types (e.g. card) that this SetupIntent is allowed to set up. A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + single_use_mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the single_use Mandate generated by the SetupIntent. + """ + status: Literal[ + "canceled", + "processing", + "requires_action", + "requires_confirmation", + "requires_payment_method", + "succeeded", + ] + """ + [Status](https://stripe.com/docs/payments/intents#intent-statuses) of this SetupIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `canceled`, or `succeeded`. + """ + usage: str + """ + Indicates how the payment method is intended to be used in the future. + + Use `on_session` if you intend to only reuse the payment method when the customer is in your checkout flow. Use `off_session` if your customer may or may not be in your checkout flow. If not provided, this value defaults to `off_session`. + """ + + @classmethod + def _cls_cancel( + cls, intent: str, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "SetupIntent", + cls._static_request( + "post", + "/v1/setup_intents/{intent}/cancel".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + intent: str, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @overload + def cancel( + self, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents/{intent}/cancel".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, intent: str, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "SetupIntent", + await cls._static_request_async( + "post", + "/v1/setup_intents/{intent}/cancel".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + intent: str, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SetupIntentCancelParams"] + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents/{intent}/cancel".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_confirm( + cls, intent: str, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + return cast( + "SetupIntent", + cls._static_request( + "post", + "/v1/setup_intents/{intent}/confirm".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def confirm( + intent: str, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + ... + + @overload + def confirm( + self, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + ... + + @class_method_variant("_cls_confirm") + def confirm( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents/{intent}/confirm".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_confirm_async( + cls, intent: str, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + return cast( + "SetupIntent", + await cls._static_request_async( + "post", + "/v1/setup_intents/{intent}/confirm".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def confirm_async( + intent: str, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + ... + + @overload + async def confirm_async( + self, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + ... + + @class_method_variant("_cls_confirm_async") + async def confirm_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SetupIntentConfirmParams"] + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents/{intent}/confirm".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["SetupIntentCreateParams"] + ) -> "SetupIntent": + """ + Creates a SetupIntent object. + + After you create the SetupIntent, attach a payment method and [confirm](https://docs.stripe.com/docs/api/setup_intents/confirm) + it to collect any required permissions to charge the payment method later. + """ + return cast( + "SetupIntent", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SetupIntentCreateParams"] + ) -> "SetupIntent": + """ + Creates a SetupIntent object. + + After you create the SetupIntent, attach a payment method and [confirm](https://docs.stripe.com/docs/api/setup_intents/confirm) + it to collect any required permissions to charge the payment method later. + """ + return cast( + "SetupIntent", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["SetupIntentListParams"] + ) -> ListObject["SetupIntent"]: + """ + Returns a list of SetupIntents. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SetupIntentListParams"] + ) -> ListObject["SetupIntent"]: + """ + Returns a list of SetupIntents. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["SetupIntentModifyParams"] + ) -> "SetupIntent": + """ + Updates a SetupIntent object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "SetupIntent", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["SetupIntentModifyParams"] + ) -> "SetupIntent": + """ + Updates a SetupIntent object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "SetupIntent", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SetupIntentRetrieveParams"] + ) -> "SetupIntent": + """ + Retrieves the details of a SetupIntent that has previously been created. + + Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string. + + When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the [SetupIntent](https://docs.stripe.com/api#setup_intent_object) object reference for more details. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SetupIntentRetrieveParams"] + ) -> "SetupIntent": + """ + Retrieves the details of a SetupIntent that has previously been created. + + Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string. + + When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the [SetupIntent](https://docs.stripe.com/api#setup_intent_object) object reference for more details. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_verify_microdeposits( + cls, + intent: str, + **params: Unpack["SetupIntentVerifyMicrodepositsParams"], + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + return cast( + "SetupIntent", + cls._static_request( + "post", + "/v1/setup_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + def verify_microdeposits( + intent: str, **params: Unpack["SetupIntentVerifyMicrodepositsParams"] + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + ... + + @overload + def verify_microdeposits( + self, **params: Unpack["SetupIntentVerifyMicrodepositsParams"] + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + ... + + @class_method_variant("_cls_verify_microdeposits") + def verify_microdeposits( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SetupIntentVerifyMicrodepositsParams"] + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_verify_microdeposits_async( + cls, + intent: str, + **params: Unpack["SetupIntentVerifyMicrodepositsParams"], + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + return cast( + "SetupIntent", + await cls._static_request_async( + "post", + "/v1/setup_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def verify_microdeposits_async( + intent: str, **params: Unpack["SetupIntentVerifyMicrodepositsParams"] + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + ... + + @overload + async def verify_microdeposits_async( + self, **params: Unpack["SetupIntentVerifyMicrodepositsParams"] + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + ... + + @class_method_variant("_cls_verify_microdeposits_async") + async def verify_microdeposits_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SetupIntentVerifyMicrodepositsParams"] + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + _inner_class_types = { + "automatic_payment_methods": AutomaticPaymentMethods, + "last_setup_error": LastSetupError, + "next_action": NextAction, + "payment_method_configuration_details": PaymentMethodConfigurationDetails, + "payment_method_options": PaymentMethodOptions, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_setup_intent_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_intent_service.py new file mode 100644 index 00000000..62d196d0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_setup_intent_service.py @@ -0,0 +1,372 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._setup_intent import SetupIntent + from stripe.params._setup_intent_cancel_params import ( + SetupIntentCancelParams, + ) + from stripe.params._setup_intent_confirm_params import ( + SetupIntentConfirmParams, + ) + from stripe.params._setup_intent_create_params import ( + SetupIntentCreateParams, + ) + from stripe.params._setup_intent_list_params import SetupIntentListParams + from stripe.params._setup_intent_retrieve_params import ( + SetupIntentRetrieveParams, + ) + from stripe.params._setup_intent_update_params import ( + SetupIntentUpdateParams, + ) + from stripe.params._setup_intent_verify_microdeposits_params import ( + SetupIntentVerifyMicrodepositsParams, + ) + + +class SetupIntentService(StripeService): + def list( + self, + params: Optional["SetupIntentListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SetupIntent]": + """ + Returns a list of SetupIntents. + """ + return cast( + "ListObject[SetupIntent]", + self._request( + "get", + "/v1/setup_intents", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["SetupIntentListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SetupIntent]": + """ + Returns a list of SetupIntents. + """ + return cast( + "ListObject[SetupIntent]", + await self._request_async( + "get", + "/v1/setup_intents", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["SetupIntentCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Creates a SetupIntent object. + + After you create the SetupIntent, attach a payment method and [confirm](https://docs.stripe.com/docs/api/setup_intents/confirm) + it to collect any required permissions to charge the payment method later. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["SetupIntentCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Creates a SetupIntent object. + + After you create the SetupIntent, attach a payment method and [confirm](https://docs.stripe.com/docs/api/setup_intents/confirm) + it to collect any required permissions to charge the payment method later. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + intent: str, + params: Optional["SetupIntentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Retrieves the details of a SetupIntent that has previously been created. + + Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string. + + When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the [SetupIntent](https://docs.stripe.com/api#setup_intent_object) object reference for more details. + """ + return cast( + "SetupIntent", + self._request( + "get", + "/v1/setup_intents/{intent}".format( + intent=sanitize_id(intent) + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + intent: str, + params: Optional["SetupIntentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Retrieves the details of a SetupIntent that has previously been created. + + Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string. + + When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the [SetupIntent](https://docs.stripe.com/api#setup_intent_object) object reference for more details. + """ + return cast( + "SetupIntent", + await self._request_async( + "get", + "/v1/setup_intents/{intent}".format( + intent=sanitize_id(intent) + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + intent: str, + params: Optional["SetupIntentUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Updates a SetupIntent object. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents/{intent}".format( + intent=sanitize_id(intent) + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + intent: str, + params: Optional["SetupIntentUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Updates a SetupIntent object. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents/{intent}".format( + intent=sanitize_id(intent) + ), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + intent: str, + params: Optional["SetupIntentCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents/{intent}/cancel".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + intent: str, + params: Optional["SetupIntentCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. + + After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents/{intent}/cancel".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def confirm( + self, + intent: str, + params: Optional["SetupIntentConfirmParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents/{intent}/confirm".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def confirm_async( + self, + intent: str, + params: Optional["SetupIntentConfirmParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Confirm that your customer intends to set up the current or + provided payment method. For example, you would confirm a SetupIntent + when a customer hits the “Save” button on a payment method management + page on your website. + + If the selected payment method does not require any additional + steps from the customer, the SetupIntent will transition to the + succeeded status. + + Otherwise, it will transition to the requires_action status and + suggest additional actions via next_action. If setup fails, + the SetupIntent will transition to the + requires_payment_method status or the canceled status if the + confirmation limit is reached. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents/{intent}/confirm".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def verify_microdeposits( + self, + intent: str, + params: Optional["SetupIntentVerifyMicrodepositsParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + return cast( + "SetupIntent", + self._request( + "post", + "/v1/setup_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def verify_microdeposits_async( + self, + intent: str, + params: Optional["SetupIntentVerifyMicrodepositsParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SetupIntent": + """ + Verifies microdeposits on a SetupIntent object. + """ + return cast( + "SetupIntent", + await self._request_async( + "post", + "/v1/setup_intents/{intent}/verify_microdeposits".format( + intent=sanitize_id(intent), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_shipping_rate.py b/Backend/venv/lib/python3.12/site-packages/stripe/_shipping_rate.py new file mode 100644 index 00000000..1389c750 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_shipping_rate.py @@ -0,0 +1,273 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._tax_code import TaxCode + from stripe.params._shipping_rate_create_params import ( + ShippingRateCreateParams, + ) + from stripe.params._shipping_rate_list_params import ShippingRateListParams + from stripe.params._shipping_rate_modify_params import ( + ShippingRateModifyParams, + ) + from stripe.params._shipping_rate_retrieve_params import ( + ShippingRateRetrieveParams, + ) + + +class ShippingRate( + CreateableAPIResource["ShippingRate"], + ListableAPIResource["ShippingRate"], + UpdateableAPIResource["ShippingRate"], +): + """ + Shipping rates describe the price of shipping presented to your customers and + applied to a purchase. For more information, see [Charge for shipping](https://stripe.com/docs/payments/during-payment/charge-shipping). + """ + + OBJECT_NAME: ClassVar[Literal["shipping_rate"]] = "shipping_rate" + + class DeliveryEstimate(StripeObject): + class Maximum(StripeObject): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + class Minimum(StripeObject): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + maximum: Optional[Maximum] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: Optional[Minimum] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + _inner_class_types = {"maximum": Maximum, "minimum": Minimum} + + class FixedAmount(StripeObject): + class CurrencyOptions(StripeObject): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: Literal["exclusive", "inclusive", "unspecified"] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: Optional[Dict[str, CurrencyOptions]] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + _inner_class_types = {"currency_options": CurrencyOptions} + _inner_class_dicts = ["currency_options"] + + active: bool + """ + Whether the shipping rate can be used for new purchases. Defaults to `true`. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + delivery_estimate: Optional[DeliveryEstimate] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: Optional[str] + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + fixed_amount: Optional[FixedAmount] + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["shipping_rate"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + tax_behavior: Optional[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: Optional[ExpandableField["TaxCode"]] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: Literal["fixed_amount"] + """ + The type of calculation to use on the shipping rate. + """ + + @classmethod + def create( + cls, **params: Unpack["ShippingRateCreateParams"] + ) -> "ShippingRate": + """ + Creates a new shipping rate object. + """ + return cast( + "ShippingRate", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ShippingRateCreateParams"] + ) -> "ShippingRate": + """ + Creates a new shipping rate object. + """ + return cast( + "ShippingRate", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["ShippingRateListParams"] + ) -> ListObject["ShippingRate"]: + """ + Returns a list of your shipping rates. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ShippingRateListParams"] + ) -> ListObject["ShippingRate"]: + """ + Returns a list of your shipping rates. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["ShippingRateModifyParams"] + ) -> "ShippingRate": + """ + Updates an existing shipping rate object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "ShippingRate", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["ShippingRateModifyParams"] + ) -> "ShippingRate": + """ + Updates an existing shipping rate object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "ShippingRate", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ShippingRateRetrieveParams"] + ) -> "ShippingRate": + """ + Returns the shipping rate object with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ShippingRateRetrieveParams"] + ) -> "ShippingRate": + """ + Returns the shipping rate object with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "delivery_estimate": DeliveryEstimate, + "fixed_amount": FixedAmount, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_shipping_rate_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_shipping_rate_service.py new file mode 100644 index 00000000..c1154292 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_shipping_rate_service.py @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._shipping_rate import ShippingRate + from stripe.params._shipping_rate_create_params import ( + ShippingRateCreateParams, + ) + from stripe.params._shipping_rate_list_params import ShippingRateListParams + from stripe.params._shipping_rate_retrieve_params import ( + ShippingRateRetrieveParams, + ) + from stripe.params._shipping_rate_update_params import ( + ShippingRateUpdateParams, + ) + + +class ShippingRateService(StripeService): + def list( + self, + params: Optional["ShippingRateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ShippingRate]": + """ + Returns a list of your shipping rates. + """ + return cast( + "ListObject[ShippingRate]", + self._request( + "get", + "/v1/shipping_rates", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ShippingRateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ShippingRate]": + """ + Returns a list of your shipping rates. + """ + return cast( + "ListObject[ShippingRate]", + await self._request_async( + "get", + "/v1/shipping_rates", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ShippingRateCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ShippingRate": + """ + Creates a new shipping rate object. + """ + return cast( + "ShippingRate", + self._request( + "post", + "/v1/shipping_rates", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ShippingRateCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ShippingRate": + """ + Creates a new shipping rate object. + """ + return cast( + "ShippingRate", + await self._request_async( + "post", + "/v1/shipping_rates", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + shipping_rate_token: str, + params: Optional["ShippingRateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ShippingRate": + """ + Returns the shipping rate object with the given ID. + """ + return cast( + "ShippingRate", + self._request( + "get", + "/v1/shipping_rates/{shipping_rate_token}".format( + shipping_rate_token=sanitize_id(shipping_rate_token), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + shipping_rate_token: str, + params: Optional["ShippingRateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ShippingRate": + """ + Returns the shipping rate object with the given ID. + """ + return cast( + "ShippingRate", + await self._request_async( + "get", + "/v1/shipping_rates/{shipping_rate_token}".format( + shipping_rate_token=sanitize_id(shipping_rate_token), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + shipping_rate_token: str, + params: Optional["ShippingRateUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ShippingRate": + """ + Updates an existing shipping rate object. + """ + return cast( + "ShippingRate", + self._request( + "post", + "/v1/shipping_rates/{shipping_rate_token}".format( + shipping_rate_token=sanitize_id(shipping_rate_token), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + shipping_rate_token: str, + params: Optional["ShippingRateUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ShippingRate": + """ + Updates an existing shipping rate object. + """ + return cast( + "ShippingRate", + await self._request_async( + "post", + "/v1/shipping_rates/{shipping_rate_token}".format( + shipping_rate_token=sanitize_id(shipping_rate_token), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_sigma_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_sigma_service.py new file mode 100644 index 00000000..b1189294 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_sigma_service.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.sigma._scheduled_query_run_service import ( + ScheduledQueryRunService, + ) + +_subservices = { + "scheduled_query_runs": [ + "stripe.sigma._scheduled_query_run_service", + "ScheduledQueryRunService", + ], +} + + +class SigmaService(StripeService): + scheduled_query_runs: "ScheduledQueryRunService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_singleton_api_resource.py b/Backend/venv/lib/python3.12/site-packages/stripe/_singleton_api_resource.py new file mode 100644 index 00000000..b64b9b3a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_singleton_api_resource.py @@ -0,0 +1,29 @@ +from stripe._api_resource import APIResource + +from typing import TypeVar +from stripe._stripe_object import StripeObject + +T = TypeVar("T", bound=StripeObject) + +# TODO(major): 1704 - Inline into Tax.Settings and Balance, and remove this class. + + +class SingletonAPIResource(APIResource[T]): + @classmethod + def retrieve(cls, **params) -> T: + return super(SingletonAPIResource, cls).retrieve(None, **params) + + @classmethod + def class_url(cls): + if cls == SingletonAPIResource: + raise NotImplementedError( + "SingletonAPIResource is an abstract class. You should " + "perform actions on its subclasses (e.g. Balance)" + ) + # Namespaces are separated in object names with periods (.) and in URLs + # with forward slashes (/), so replace the former with the latter. + base = cls.OBJECT_NAME.replace(".", "/") + return "/v1/%s" % (base,) + + def instance_url(self): + return self.class_url() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_source.py b/Backend/venv/lib/python3.12/site-packages/stripe/_source.py new file mode 100644 index 00000000..c7f66c53 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_source.py @@ -0,0 +1,953 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._customer import Customer +from stripe._error import InvalidRequestError +from stripe._list_object import ListObject +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._source_transaction import SourceTransaction + from stripe.params._source_create_params import SourceCreateParams + from stripe.params._source_list_source_transactions_params import ( + SourceListSourceTransactionsParams, + ) + from stripe.params._source_modify_params import SourceModifyParams + from stripe.params._source_retrieve_params import SourceRetrieveParams + from stripe.params._source_verify_params import SourceVerifyParams + + +class Source(CreateableAPIResource["Source"], UpdateableAPIResource["Source"]): + """ + `Source` objects allow you to accept a variety of payment methods. They + represent a customer's payment instrument, and can be used with the Stripe API + just like a `Card` object: once chargeable, they can be charged, or can be + attached to customers. + + Stripe doesn't recommend using the deprecated [Sources API](https://stripe.com/docs/api/sources). + We recommend that you adopt the [PaymentMethods API](https://stripe.com/docs/api/payment_methods). + This newer API provides access to our latest features and payment method types. + + Related guides: [Sources API](https://stripe.com/docs/sources) and [Sources & Customers](https://stripe.com/docs/sources/customers). + """ + + OBJECT_NAME: ClassVar[Literal["source"]] = "source" + + class AchCreditTransfer(StripeObject): + account_number: Optional[str] + bank_name: Optional[str] + fingerprint: Optional[str] + refund_account_holder_name: Optional[str] + refund_account_holder_type: Optional[str] + refund_routing_number: Optional[str] + routing_number: Optional[str] + swift_code: Optional[str] + + class AchDebit(StripeObject): + bank_name: Optional[str] + country: Optional[str] + fingerprint: Optional[str] + last4: Optional[str] + routing_number: Optional[str] + type: Optional[str] + + class AcssDebit(StripeObject): + bank_address_city: Optional[str] + bank_address_line_1: Optional[str] + bank_address_line_2: Optional[str] + bank_address_postal_code: Optional[str] + bank_name: Optional[str] + category: Optional[str] + country: Optional[str] + fingerprint: Optional[str] + last4: Optional[str] + routing_number: Optional[str] + + class Alipay(StripeObject): + data_string: Optional[str] + native_url: Optional[str] + statement_descriptor: Optional[str] + + class AuBecsDebit(StripeObject): + bsb_number: Optional[str] + fingerprint: Optional[str] + last4: Optional[str] + + class Bancontact(StripeObject): + bank_code: Optional[str] + bank_name: Optional[str] + bic: Optional[str] + iban_last4: Optional[str] + preferred_language: Optional[str] + statement_descriptor: Optional[str] + + class Card(StripeObject): + address_line1_check: Optional[str] + address_zip_check: Optional[str] + brand: Optional[str] + country: Optional[str] + cvc_check: Optional[str] + description: Optional[str] + dynamic_last4: Optional[str] + exp_month: Optional[int] + exp_year: Optional[int] + fingerprint: Optional[str] + funding: Optional[str] + iin: Optional[str] + issuer: Optional[str] + last4: Optional[str] + name: Optional[str] + three_d_secure: Optional[str] + tokenization_method: Optional[str] + + class CardPresent(StripeObject): + application_cryptogram: Optional[str] + application_preferred_name: Optional[str] + authorization_code: Optional[str] + authorization_response_code: Optional[str] + brand: Optional[str] + country: Optional[str] + cvm_type: Optional[str] + data_type: Optional[str] + dedicated_file_name: Optional[str] + description: Optional[str] + emv_auth_data: Optional[str] + evidence_customer_signature: Optional[str] + evidence_transaction_certificate: Optional[str] + exp_month: Optional[int] + exp_year: Optional[int] + fingerprint: Optional[str] + funding: Optional[str] + iin: Optional[str] + issuer: Optional[str] + last4: Optional[str] + pos_device_id: Optional[str] + pos_entry_mode: Optional[str] + read_method: Optional[str] + reader: Optional[str] + terminal_verification_results: Optional[str] + transaction_status_information: Optional[str] + + class CodeVerification(StripeObject): + attempts_remaining: int + """ + The number of attempts remaining to authenticate the source object with a verification code. + """ + status: str + """ + The status of the code verification, either `pending` (awaiting verification, `attempts_remaining` should be greater than 0), `succeeded` (successful verification) or `failed` (failed verification, cannot be verified anymore as `attempts_remaining` should be 0). + """ + + class Eps(StripeObject): + reference: Optional[str] + statement_descriptor: Optional[str] + + class Giropay(StripeObject): + bank_code: Optional[str] + bank_name: Optional[str] + bic: Optional[str] + statement_descriptor: Optional[str] + + class Ideal(StripeObject): + bank: Optional[str] + bic: Optional[str] + iban_last4: Optional[str] + statement_descriptor: Optional[str] + + class Klarna(StripeObject): + background_image_url: Optional[str] + client_token: Optional[str] + first_name: Optional[str] + last_name: Optional[str] + locale: Optional[str] + logo_url: Optional[str] + page_title: Optional[str] + pay_later_asset_urls_descriptive: Optional[str] + pay_later_asset_urls_standard: Optional[str] + pay_later_name: Optional[str] + pay_later_redirect_url: Optional[str] + pay_now_asset_urls_descriptive: Optional[str] + pay_now_asset_urls_standard: Optional[str] + pay_now_name: Optional[str] + pay_now_redirect_url: Optional[str] + pay_over_time_asset_urls_descriptive: Optional[str] + pay_over_time_asset_urls_standard: Optional[str] + pay_over_time_name: Optional[str] + pay_over_time_redirect_url: Optional[str] + payment_method_categories: Optional[str] + purchase_country: Optional[str] + purchase_type: Optional[str] + redirect_url: Optional[str] + shipping_delay: Optional[int] + shipping_first_name: Optional[str] + shipping_last_name: Optional[str] + + class Multibanco(StripeObject): + entity: Optional[str] + reference: Optional[str] + refund_account_holder_address_city: Optional[str] + refund_account_holder_address_country: Optional[str] + refund_account_holder_address_line1: Optional[str] + refund_account_holder_address_line2: Optional[str] + refund_account_holder_address_postal_code: Optional[str] + refund_account_holder_address_state: Optional[str] + refund_account_holder_name: Optional[str] + refund_iban: Optional[str] + + class Owner(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class VerifiedAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + """ + Owner's address. + """ + email: Optional[str] + """ + Owner's email address. + """ + name: Optional[str] + """ + Owner's full name. + """ + phone: Optional[str] + """ + Owner's phone number (including extension). + """ + verified_address: Optional[VerifiedAddress] + """ + Verified owner's address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + verified_email: Optional[str] + """ + Verified owner's email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + verified_name: Optional[str] + """ + Verified owner's full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + verified_phone: Optional[str] + """ + Verified owner's phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. + """ + _inner_class_types = { + "address": Address, + "verified_address": VerifiedAddress, + } + + class P24(StripeObject): + reference: Optional[str] + + class Receiver(StripeObject): + address: Optional[str] + """ + The address of the receiver source. This is the value that should be communicated to the customer to send their funds to. + """ + amount_charged: int + """ + The total amount that was moved to your balance. This is almost always equal to the amount charged. In rare cases when customers deposit excess funds and we are unable to refund those, those funds get moved to your balance and show up in amount_charged as well. The amount charged is expressed in the source's currency. + """ + amount_received: int + """ + The total amount received by the receiver source. `amount_received = amount_returned + amount_charged` should be true for consumed sources unless customers deposit excess funds. The amount received is expressed in the source's currency. + """ + amount_returned: int + """ + The total amount that was returned to the customer. The amount returned is expressed in the source's currency. + """ + refund_attributes_method: str + """ + Type of refund attribute method, one of `email`, `manual`, or `none`. + """ + refund_attributes_status: str + """ + Type of refund attribute status, one of `missing`, `requested`, or `available`. + """ + + class Redirect(StripeObject): + failure_reason: Optional[str] + """ + The failure reason for the redirect, either `user_abort` (the customer aborted or dropped out of the redirect flow), `declined` (the authentication failed or the transaction was declined), or `processing_error` (the redirect failed due to a technical error). Present only if the redirect status is `failed`. + """ + return_url: str + """ + The URL you provide to redirect the customer to after they authenticated their payment. + """ + status: str + """ + The status of the redirect, either `pending` (ready to be used by your customer to authenticate the transaction), `succeeded` (successful authentication, cannot be reused) or `not_required` (redirect should not be used) or `failed` (failed authentication, cannot be reused). + """ + url: str + """ + The URL provided to you to redirect a customer to as part of a `redirect` authentication flow. + """ + + class SepaCreditTransfer(StripeObject): + bank_name: Optional[str] + bic: Optional[str] + iban: Optional[str] + refund_account_holder_address_city: Optional[str] + refund_account_holder_address_country: Optional[str] + refund_account_holder_address_line1: Optional[str] + refund_account_holder_address_line2: Optional[str] + refund_account_holder_address_postal_code: Optional[str] + refund_account_holder_address_state: Optional[str] + refund_account_holder_name: Optional[str] + refund_iban: Optional[str] + + class SepaDebit(StripeObject): + bank_code: Optional[str] + branch_code: Optional[str] + country: Optional[str] + fingerprint: Optional[str] + last4: Optional[str] + mandate_reference: Optional[str] + mandate_url: Optional[str] + + class Sofort(StripeObject): + bank_code: Optional[str] + bank_name: Optional[str] + bic: Optional[str] + country: Optional[str] + iban_last4: Optional[str] + preferred_language: Optional[str] + statement_descriptor: Optional[str] + + class SourceOrder(StripeObject): + class Item(StripeObject): + amount: Optional[int] + """ + The amount (price) for this order item. + """ + currency: Optional[str] + """ + This currency of this order item. Required when `amount` is present. + """ + description: Optional[str] + """ + Human-readable description for this order item. + """ + parent: Optional[str] + """ + The ID of the associated object for this line item. Expandable if not null (e.g., expandable to a SKU). + """ + quantity: Optional[int] + """ + The quantity of this order item. When type is `sku`, this is the number of instances of the SKU to be ordered. + """ + type: Optional[str] + """ + The type of this order item. Must be `sku`, `tax`, or `shipping`. + """ + + class Shipping(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Optional[Address] + carrier: Optional[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: Optional[str] + """ + Recipient name. + """ + phone: Optional[str] + """ + Recipient phone (including extension). + """ + tracking_number: Optional[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + _inner_class_types = {"address": Address} + + amount: int + """ + A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the order. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + email: Optional[str] + """ + The email address of the customer placing the order. + """ + items: Optional[List[Item]] + """ + List of items constituting the order. + """ + shipping: Optional[Shipping] + _inner_class_types = {"items": Item, "shipping": Shipping} + + class ThreeDSecure(StripeObject): + address_line1_check: Optional[str] + address_zip_check: Optional[str] + authenticated: Optional[bool] + brand: Optional[str] + card: Optional[str] + country: Optional[str] + customer: Optional[str] + cvc_check: Optional[str] + description: Optional[str] + dynamic_last4: Optional[str] + exp_month: Optional[int] + exp_year: Optional[int] + fingerprint: Optional[str] + funding: Optional[str] + iin: Optional[str] + issuer: Optional[str] + last4: Optional[str] + name: Optional[str] + three_d_secure: Optional[str] + tokenization_method: Optional[str] + + class Wechat(StripeObject): + prepay_id: Optional[str] + qr_code_url: Optional[str] + statement_descriptor: Optional[str] + + ach_credit_transfer: Optional[AchCreditTransfer] + ach_debit: Optional[AchDebit] + acss_debit: Optional[AcssDebit] + alipay: Optional[Alipay] + allow_redisplay: Optional[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. + """ + amount: Optional[int] + """ + A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources. + """ + au_becs_debit: Optional[AuBecsDebit] + bancontact: Optional[Bancontact] + card: Optional[Card] + card_present: Optional[CardPresent] + client_secret: str + """ + The client secret of the source. Used for client-side retrieval using a publishable key. + """ + code_verification: Optional[CodeVerification] + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: Optional[str] + """ + Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready. Required for `single_use` sources. + """ + customer: Optional[str] + """ + The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer. + """ + eps: Optional[Eps] + flow: str + """ + The authentication `flow` of the source. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`. + """ + giropay: Optional[Giropay] + id: str + """ + Unique identifier for the object. + """ + ideal: Optional[Ideal] + klarna: Optional[Klarna] + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + multibanco: Optional[Multibanco] + object: Literal["source"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + owner: Optional[Owner] + """ + Information about the owner of the payment instrument that may be used or required by particular source types. + """ + p24: Optional[P24] + receiver: Optional[Receiver] + redirect: Optional[Redirect] + sepa_credit_transfer: Optional[SepaCreditTransfer] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + source_order: Optional[SourceOrder] + statement_descriptor: Optional[str] + """ + Extra information about a source. This will appear on your customer's statement every time you charge the source. + """ + status: str + """ + The status of the source, one of `canceled`, `chargeable`, `consumed`, `failed`, or `pending`. Only `chargeable` sources can be used to create a charge. + """ + three_d_secure: Optional[ThreeDSecure] + type: Literal[ + "ach_credit_transfer", + "ach_debit", + "acss_debit", + "alipay", + "au_becs_debit", + "bancontact", + "card", + "card_present", + "eps", + "giropay", + "ideal", + "klarna", + "multibanco", + "p24", + "sepa_credit_transfer", + "sepa_debit", + "sofort", + "three_d_secure", + "wechat", + ] + """ + The `type` of the source. The `type` is a payment method, one of `ach_credit_transfer`, `ach_debit`, `alipay`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `multibanco`, `klarna`, `p24`, `sepa_debit`, `sofort`, `three_d_secure`, or `wechat`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https://stripe.com/docs/sources) used. + """ + usage: Optional[str] + """ + Either `reusable` or `single_use`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned. + """ + wechat: Optional[Wechat] + + @classmethod + def create(cls, **params: Unpack["SourceCreateParams"]) -> "Source": + """ + Creates a new source object. + """ + return cast( + "Source", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SourceCreateParams"] + ) -> "Source": + """ + Creates a new source object. + """ + return cast( + "Source", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_list_source_transactions( + cls, + source: str, + **params: Unpack["SourceListSourceTransactionsParams"], + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + return cast( + ListObject["SourceTransaction"], + cls._static_request( + "get", + "/v1/sources/{source}/source_transactions".format( + source=sanitize_id(source) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_source_transactions( + source: str, **params: Unpack["SourceListSourceTransactionsParams"] + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + ... + + @overload + def list_source_transactions( + self, **params: Unpack["SourceListSourceTransactionsParams"] + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + ... + + @class_method_variant("_cls_list_source_transactions") + def list_source_transactions( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SourceListSourceTransactionsParams"] + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + return cast( + ListObject["SourceTransaction"], + self._request( + "get", + "/v1/sources/{source}/source_transactions".format( + source=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_source_transactions_async( + cls, + source: str, + **params: Unpack["SourceListSourceTransactionsParams"], + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + return cast( + ListObject["SourceTransaction"], + await cls._static_request_async( + "get", + "/v1/sources/{source}/source_transactions".format( + source=sanitize_id(source) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_source_transactions_async( + source: str, **params: Unpack["SourceListSourceTransactionsParams"] + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + ... + + @overload + async def list_source_transactions_async( + self, **params: Unpack["SourceListSourceTransactionsParams"] + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + ... + + @class_method_variant("_cls_list_source_transactions_async") + async def list_source_transactions_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SourceListSourceTransactionsParams"] + ) -> ListObject["SourceTransaction"]: + """ + List source transactions for a given source. + """ + return cast( + ListObject["SourceTransaction"], + await self._request_async( + "get", + "/v1/sources/{source}/source_transactions".format( + source=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def modify( + cls, id: str, **params: Unpack["SourceModifyParams"] + ) -> "Source": + """ + Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our [payment method guides](https://docs.stripe.com/docs/sources) for more detail. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Source", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["SourceModifyParams"] + ) -> "Source": + """ + Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our [payment method guides](https://docs.stripe.com/docs/sources) for more detail. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Source", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SourceRetrieveParams"] + ) -> "Source": + """ + Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SourceRetrieveParams"] + ) -> "Source": + """ + Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_verify( + cls, source: str, **params: Unpack["SourceVerifyParams"] + ) -> "Source": + """ + Verify a given source. + """ + return cast( + "Source", + cls._static_request( + "post", + "/v1/sources/{source}/verify".format( + source=sanitize_id(source) + ), + params=params, + ), + ) + + @overload + @staticmethod + def verify( + source: str, **params: Unpack["SourceVerifyParams"] + ) -> "Source": + """ + Verify a given source. + """ + ... + + @overload + def verify(self, **params: Unpack["SourceVerifyParams"]) -> "Source": + """ + Verify a given source. + """ + ... + + @class_method_variant("_cls_verify") + def verify( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SourceVerifyParams"] + ) -> "Source": + """ + Verify a given source. + """ + return cast( + "Source", + self._request( + "post", + "/v1/sources/{source}/verify".format( + source=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_verify_async( + cls, source: str, **params: Unpack["SourceVerifyParams"] + ) -> "Source": + """ + Verify a given source. + """ + return cast( + "Source", + await cls._static_request_async( + "post", + "/v1/sources/{source}/verify".format( + source=sanitize_id(source) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def verify_async( + source: str, **params: Unpack["SourceVerifyParams"] + ) -> "Source": + """ + Verify a given source. + """ + ... + + @overload + async def verify_async( + self, **params: Unpack["SourceVerifyParams"] + ) -> "Source": + """ + Verify a given source. + """ + ... + + @class_method_variant("_cls_verify_async") + async def verify_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SourceVerifyParams"] + ) -> "Source": + """ + Verify a given source. + """ + return cast( + "Source", + await self._request_async( + "post", + "/v1/sources/{source}/verify".format( + source=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + def detach(self, **params) -> "Source": + token = self.id + + if hasattr(self, "customer") and self.customer: + extn = sanitize_id(token) + customer = self.customer + base = Customer.class_url() + owner_extn = sanitize_id(customer) + url = "%s/%s/sources/%s" % (base, owner_extn, extn) + + self._request_and_refresh("delete", url, params) + return cast("Source", self) + + else: + raise InvalidRequestError( + "Source %s does not appear to be currently attached " + "to a customer object." % token, + "id", + ) + + _inner_class_types = { + "ach_credit_transfer": AchCreditTransfer, + "ach_debit": AchDebit, + "acss_debit": AcssDebit, + "alipay": Alipay, + "au_becs_debit": AuBecsDebit, + "bancontact": Bancontact, + "card": Card, + "card_present": CardPresent, + "code_verification": CodeVerification, + "eps": Eps, + "giropay": Giropay, + "ideal": Ideal, + "klarna": Klarna, + "multibanco": Multibanco, + "owner": Owner, + "p24": P24, + "receiver": Receiver, + "redirect": Redirect, + "sepa_credit_transfer": SepaCreditTransfer, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "source_order": SourceOrder, + "three_d_secure": ThreeDSecure, + "wechat": Wechat, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_source_mandate_notification.py b/Backend/venv/lib/python3.12/site-packages/stripe/_source_mandate_notification.py new file mode 100644 index 00000000..2d6a6202 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_source_mandate_notification.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._source import Source + + +class SourceMandateNotification(StripeObject): + """ + Source mandate notifications should be created when a notification related to + a source mandate must be sent to the payer. They will trigger a webhook or + deliver an email to the customer. + """ + + OBJECT_NAME: ClassVar[Literal["source_mandate_notification"]] = ( + "source_mandate_notification" + ) + + class AcssDebit(StripeObject): + statement_descriptor: Optional[str] + """ + The statement descriptor associate with the debit. + """ + + class BacsDebit(StripeObject): + last4: Optional[str] + """ + Last 4 digits of the account number associated with the debit. + """ + + class SepaDebit(StripeObject): + creditor_identifier: Optional[str] + """ + SEPA creditor ID. + """ + last4: Optional[str] + """ + Last 4 digits of the account number associated with the debit. + """ + mandate_reference: Optional[str] + """ + Mandate reference associated with the debit. + """ + + acss_debit: Optional[AcssDebit] + amount: Optional[int] + """ + A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the amount associated with the mandate notification. The amount is expressed in the currency of the underlying source. Required if the notification type is `debit_initiated`. + """ + bacs_debit: Optional[BacsDebit] + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["source_mandate_notification"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + reason: str + """ + The reason of the mandate notification. Valid reasons are `mandate_confirmed` or `debit_initiated`. + """ + sepa_debit: Optional[SepaDebit] + source: "Source" + """ + `Source` objects allow you to accept a variety of payment methods. They + represent a customer's payment instrument, and can be used with the Stripe API + just like a `Card` object: once chargeable, they can be charged, or can be + attached to customers. + + Stripe doesn't recommend using the deprecated [Sources API](https://stripe.com/docs/api/sources). + We recommend that you adopt the [PaymentMethods API](https://stripe.com/docs/api/payment_methods). + This newer API provides access to our latest features and payment method types. + + Related guides: [Sources API](https://stripe.com/docs/sources) and [Sources & Customers](https://stripe.com/docs/sources/customers). + """ + status: str + """ + The status of the mandate notification. Valid statuses are `pending` or `submitted`. + """ + type: str + """ + The type of source this mandate notification is attached to. Should be the source type identifier code for the payment method, such as `three_d_secure`. + """ + _inner_class_types = { + "acss_debit": AcssDebit, + "bacs_debit": BacsDebit, + "sepa_debit": SepaDebit, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_source_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_source_service.py new file mode 100644 index 00000000..849f2e74 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_source_service.py @@ -0,0 +1,265 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._bank_account import BankAccount + from stripe._card import Card + from stripe._request_options import RequestOptions + from stripe._source import Source + from stripe._source_transaction_service import SourceTransactionService + from stripe.params._source_create_params import SourceCreateParams + from stripe.params._source_detach_params import SourceDetachParams + from stripe.params._source_retrieve_params import SourceRetrieveParams + from stripe.params._source_update_params import SourceUpdateParams + from stripe.params._source_verify_params import SourceVerifyParams + from typing import Union + +_subservices = { + "transactions": [ + "stripe._source_transaction_service", + "SourceTransactionService", + ], +} + + +class SourceService(StripeService): + transactions: "SourceTransactionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def detach( + self, + customer: str, + id: str, + params: Optional["SourceDetachParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Delete a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + self._request( + "delete", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def detach_async( + self, + customer: str, + id: str, + params: Optional["SourceDetachParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Union[Account, BankAccount, Card, Source]": + """ + Delete a specified source for a given customer. + """ + return cast( + "Union[Account, BankAccount, Card, Source]", + await self._request_async( + "delete", + "/v1/customers/{customer}/sources/{id}".format( + customer=sanitize_id(customer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + source: str, + params: Optional["SourceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information. + """ + return cast( + "Source", + self._request( + "get", + "/v1/sources/{source}".format(source=sanitize_id(source)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + source: str, + params: Optional["SourceRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information. + """ + return cast( + "Source", + await self._request_async( + "get", + "/v1/sources/{source}".format(source=sanitize_id(source)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + source: str, + params: Optional["SourceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our [payment method guides](https://docs.stripe.com/docs/sources) for more detail. + """ + return cast( + "Source", + self._request( + "post", + "/v1/sources/{source}".format(source=sanitize_id(source)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + source: str, + params: Optional["SourceUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our [payment method guides](https://docs.stripe.com/docs/sources) for more detail. + """ + return cast( + "Source", + await self._request_async( + "post", + "/v1/sources/{source}".format(source=sanitize_id(source)), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["SourceCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Creates a new source object. + """ + return cast( + "Source", + self._request( + "post", + "/v1/sources", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["SourceCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Creates a new source object. + """ + return cast( + "Source", + await self._request_async( + "post", + "/v1/sources", + base_address="api", + params=params, + options=options, + ), + ) + + def verify( + self, + source: str, + params: "SourceVerifyParams", + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Verify a given source. + """ + return cast( + "Source", + self._request( + "post", + "/v1/sources/{source}/verify".format( + source=sanitize_id(source), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def verify_async( + self, + source: str, + params: "SourceVerifyParams", + options: Optional["RequestOptions"] = None, + ) -> "Source": + """ + Verify a given source. + """ + return cast( + "Source", + await self._request_async( + "post", + "/v1/sources/{source}/verify".format( + source=sanitize_id(source), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_source_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/_source_transaction.py new file mode 100644 index 00000000..c1aa0d01 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_source_transaction.py @@ -0,0 +1,176 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal + + +class SourceTransaction(StripeObject): + """ + Some payment methods have no required amount that a customer must send. + Customers can be instructed to send any amount, and it can be made up of + multiple transactions. As such, sources can have multiple associated + transactions. + """ + + OBJECT_NAME: ClassVar[Literal["source_transaction"]] = "source_transaction" + + class AchCreditTransfer(StripeObject): + customer_data: Optional[str] + """ + Customer data associated with the transfer. + """ + fingerprint: Optional[str] + """ + Bank account fingerprint associated with the transfer. + """ + last4: Optional[str] + """ + Last 4 digits of the account number associated with the transfer. + """ + routing_number: Optional[str] + """ + Routing number associated with the transfer. + """ + + class ChfCreditTransfer(StripeObject): + reference: Optional[str] + """ + Reference associated with the transfer. + """ + sender_address_country: Optional[str] + """ + Sender's country address. + """ + sender_address_line1: Optional[str] + """ + Sender's line 1 address. + """ + sender_iban: Optional[str] + """ + Sender's bank account IBAN. + """ + sender_name: Optional[str] + """ + Sender's name. + """ + + class GbpCreditTransfer(StripeObject): + fingerprint: Optional[str] + """ + Bank account fingerprint associated with the Stripe owned bank account receiving the transfer. + """ + funding_method: Optional[str] + """ + The credit transfer rails the sender used to push this transfer. The possible rails are: Faster Payments, BACS, CHAPS, and wire transfers. Currently only Faster Payments is supported. + """ + last4: Optional[str] + """ + Last 4 digits of sender account number associated with the transfer. + """ + reference: Optional[str] + """ + Sender entered arbitrary information about the transfer. + """ + sender_account_number: Optional[str] + """ + Sender account number associated with the transfer. + """ + sender_name: Optional[str] + """ + Sender name associated with the transfer. + """ + sender_sort_code: Optional[str] + """ + Sender sort code associated with the transfer. + """ + + class PaperCheck(StripeObject): + available_at: Optional[str] + """ + Time at which the deposited funds will be available for use. Measured in seconds since the Unix epoch. + """ + invoices: Optional[str] + """ + Comma-separated list of invoice IDs associated with the paper check. + """ + + class SepaCreditTransfer(StripeObject): + reference: Optional[str] + """ + Reference associated with the transfer. + """ + sender_iban: Optional[str] + """ + Sender's bank account IBAN. + """ + sender_name: Optional[str] + """ + Sender's name. + """ + + ach_credit_transfer: Optional[AchCreditTransfer] + amount: int + """ + A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the amount your customer has pushed to the receiver. + """ + chf_credit_transfer: Optional[ChfCreditTransfer] + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + gbp_credit_transfer: Optional[GbpCreditTransfer] + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["source_transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + paper_check: Optional[PaperCheck] + sepa_credit_transfer: Optional[SepaCreditTransfer] + source: str + """ + The ID of the source this transaction is attached to. + """ + status: str + """ + The status of the transaction, one of `succeeded`, `pending`, or `failed`. + """ + type: Literal[ + "ach_credit_transfer", + "ach_debit", + "alipay", + "bancontact", + "card", + "card_present", + "eps", + "giropay", + "ideal", + "klarna", + "multibanco", + "p24", + "sepa_debit", + "sofort", + "three_d_secure", + "wechat", + ] + """ + The type of source this transaction is attached to. + """ + _inner_class_types = { + "ach_credit_transfer": AchCreditTransfer, + "chf_credit_transfer": ChfCreditTransfer, + "gbp_credit_transfer": GbpCreditTransfer, + "paper_check": PaperCheck, + "sepa_credit_transfer": SepaCreditTransfer, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_source_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_source_transaction_service.py new file mode 100644 index 00000000..b40e9150 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_source_transaction_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._source_transaction import SourceTransaction + from stripe.params._source_transaction_list_params import ( + SourceTransactionListParams, + ) + + +class SourceTransactionService(StripeService): + def list( + self, + source: str, + params: Optional["SourceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SourceTransaction]": + """ + List source transactions for a given source. + """ + return cast( + "ListObject[SourceTransaction]", + self._request( + "get", + "/v1/sources/{source}/source_transactions".format( + source=sanitize_id(source), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + source: str, + params: Optional["SourceTransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SourceTransaction]": + """ + List source transactions for a given source. + """ + return cast( + "ListObject[SourceTransaction]", + await self._request_async( + "get", + "/v1/sources/{source}/source_transactions".format( + source=sanitize_id(source), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_client.py b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_client.py new file mode 100644 index 00000000..e084f76a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_client.py @@ -0,0 +1,1117 @@ +# -*- coding: utf-8 -*- + +import json +from collections import OrderedDict + +from stripe import ( + DEFAULT_API_BASE, + DEFAULT_CONNECT_API_BASE, + DEFAULT_UPLOAD_API_BASE, + DEFAULT_METER_EVENTS_API_BASE, +) + +from stripe._api_mode import ApiMode +from stripe._error import AuthenticationError +from stripe._request_options import extract_options_from_dict +from stripe._requestor_options import RequestorOptions, BaseAddresses +from stripe._client_options import _ClientOptions +from stripe._http_client import ( + new_default_http_client, + new_http_client_async_fallback, +) +from stripe._api_version import _ApiVersion +from stripe._stripe_object import StripeObject +from stripe._stripe_response import StripeResponse +from stripe._util import _convert_to_stripe_object, get_api_mode, deprecated # noqa: F401 +from stripe._webhook import Webhook, WebhookSignature +from stripe._event import Event +from stripe.v2.core._event import EventNotification + +from typing import Any, Dict, Optional, Union, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._stripe_context import StripeContext + from stripe._http_client import HTTPClient + +# Non-generated services +from stripe._oauth_service import OAuthService + +from stripe._v1_services import V1Services +from stripe._v2_services import V2Services + +# service-types: The beginning of the section generated from our OpenAPI spec +if TYPE_CHECKING: + from stripe._account_service import AccountService + from stripe._account_link_service import AccountLinkService + from stripe._account_session_service import AccountSessionService + from stripe._apple_pay_domain_service import ApplePayDomainService + from stripe._application_fee_service import ApplicationFeeService + from stripe._apps_service import AppsService + from stripe._balance_service import BalanceService + from stripe._balance_settings_service import BalanceSettingsService + from stripe._balance_transaction_service import BalanceTransactionService + from stripe._billing_service import BillingService + from stripe._billing_portal_service import BillingPortalService + from stripe._charge_service import ChargeService + from stripe._checkout_service import CheckoutService + from stripe._climate_service import ClimateService + from stripe._confirmation_token_service import ConfirmationTokenService + from stripe._country_spec_service import CountrySpecService + from stripe._coupon_service import CouponService + from stripe._credit_note_service import CreditNoteService + from stripe._customer_service import CustomerService + from stripe._customer_session_service import CustomerSessionService + from stripe._dispute_service import DisputeService + from stripe._entitlements_service import EntitlementsService + from stripe._ephemeral_key_service import EphemeralKeyService + from stripe._event_service import EventService + from stripe._exchange_rate_service import ExchangeRateService + from stripe._file_service import FileService + from stripe._file_link_service import FileLinkService + from stripe._financial_connections_service import ( + FinancialConnectionsService, + ) + from stripe._forwarding_service import ForwardingService + from stripe._identity_service import IdentityService + from stripe._invoice_service import InvoiceService + from stripe._invoice_item_service import InvoiceItemService + from stripe._invoice_payment_service import InvoicePaymentService + from stripe._invoice_rendering_template_service import ( + InvoiceRenderingTemplateService, + ) + from stripe._issuing_service import IssuingService + from stripe._mandate_service import MandateService + from stripe._payment_attempt_record_service import ( + PaymentAttemptRecordService, + ) + from stripe._payment_intent_service import PaymentIntentService + from stripe._payment_link_service import PaymentLinkService + from stripe._payment_method_service import PaymentMethodService + from stripe._payment_method_configuration_service import ( + PaymentMethodConfigurationService, + ) + from stripe._payment_method_domain_service import ( + PaymentMethodDomainService, + ) + from stripe._payment_record_service import PaymentRecordService + from stripe._payout_service import PayoutService + from stripe._plan_service import PlanService + from stripe._price_service import PriceService + from stripe._product_service import ProductService + from stripe._promotion_code_service import PromotionCodeService + from stripe._quote_service import QuoteService + from stripe._radar_service import RadarService + from stripe._refund_service import RefundService + from stripe._reporting_service import ReportingService + from stripe._review_service import ReviewService + from stripe._setup_attempt_service import SetupAttemptService + from stripe._setup_intent_service import SetupIntentService + from stripe._shipping_rate_service import ShippingRateService + from stripe._sigma_service import SigmaService + from stripe._source_service import SourceService + from stripe._subscription_service import SubscriptionService + from stripe._subscription_item_service import SubscriptionItemService + from stripe._subscription_schedule_service import ( + SubscriptionScheduleService, + ) + from stripe._tax_service import TaxService + from stripe._tax_code_service import TaxCodeService + from stripe._tax_id_service import TaxIdService + from stripe._tax_rate_service import TaxRateService + from stripe._terminal_service import TerminalService + from stripe._test_helpers_service import TestHelpersService + from stripe._token_service import TokenService + from stripe._topup_service import TopupService + from stripe._transfer_service import TransferService + from stripe._treasury_service import TreasuryService + from stripe._webhook_endpoint_service import WebhookEndpointService + +# service-types: The end of the section generated from our OpenAPI spec + +if TYPE_CHECKING: + from stripe.events._event_classes import ALL_EVENT_NOTIFICATIONS + + +class StripeClient(object): + def __init__( + self, + api_key: str, + *, + stripe_account: Optional[str] = None, + stripe_context: "Optional[Union[str, StripeContext]]" = None, + stripe_version: Optional[str] = None, + base_addresses: Optional[BaseAddresses] = None, + client_id: Optional[str] = None, + verify_ssl_certs: bool = True, + proxy: Optional[str] = None, + max_network_retries: Optional[int] = None, + http_client: Optional["HTTPClient"] = None, + ): + # The types forbid this, but let's give users without types a friendly error. + if api_key is None: # pyright: ignore[reportUnnecessaryComparison] + raise AuthenticationError( + "No API key provided. (HINT: set your API key using " + '"client = stripe.StripeClient()"). You can ' + "generate API keys from the Stripe web interface. " + "See https://stripe.com/api for details, or email " + "support@stripe.com if you have any questions." + ) + + if http_client and (proxy or verify_ssl_certs is not True): + raise ValueError( + "You cannot specify `proxy` or `verify_ssl_certs` when passing " + "in a custom `http_client`. Please set these values on your " + "custom `http_client` instead." + ) + + # Default to stripe.DEFAULT_API_BASE, stripe.DEFAULT_CONNECT_API_BASE, + # and stripe.DEFAULT_UPLOAD_API_BASE if not set in base_addresses. + base_addresses = { + "api": DEFAULT_API_BASE, + "connect": DEFAULT_CONNECT_API_BASE, + "files": DEFAULT_UPLOAD_API_BASE, + "meter_events": DEFAULT_METER_EVENTS_API_BASE, + **(base_addresses or {}), + } + + requestor_options = RequestorOptions( + api_key=api_key, + stripe_account=stripe_account, + stripe_context=stripe_context, + stripe_version=stripe_version or _ApiVersion.CURRENT, + base_addresses=base_addresses, + max_network_retries=max_network_retries, + ) + + if http_client is None: + http_client = new_default_http_client( + async_fallback_client=new_http_client_async_fallback( + proxy=proxy, verify_ssl_certs=verify_ssl_certs + ), + proxy=proxy, + verify_ssl_certs=verify_ssl_certs, + ) + + from stripe._api_requestor import _APIRequestor + + self._requestor = _APIRequestor( + options=requestor_options, + client=http_client, + ) + + self._options = _ClientOptions( + client_id=client_id, + proxy=proxy, + verify_ssl_certs=verify_ssl_certs, + ) + + self.oauth = OAuthService(self._requestor, self._options) + + # top-level services: The beginning of the section generated from our OpenAPI spec + self.v1 = V1Services(self._requestor) + self.v2 = V2Services(self._requestor) + # top-level services: The end of the section generated from our OpenAPI spec + + def parse_event_notification( + self, + raw: Union[bytes, str, bytearray], + sig_header: str, + secret: str, + tolerance: int = Webhook.DEFAULT_TOLERANCE, + ) -> "ALL_EVENT_NOTIFICATIONS": + """ + This should be your main method for interacting with `EventNotifications`. It's the V2 equivalent of `construct_event()`, but with better typing support. + + It returns a union representing all known `EventNotification` classes. They have a `type` property that can be used for narrowing, which will get you very specific type support. If parsing an event the SDK isn't familiar with, it'll instead return `UnknownEventNotification`. That's not reflected in the return type of the function (because it messes up type narrowing) but is otherwise intended. + """ + payload = ( + cast(Union[bytes, bytearray], raw).decode("utf-8") + if hasattr(raw, "decode") + else cast(str, raw) + ) + + WebhookSignature.verify_header(payload, sig_header, secret, tolerance) + + return cast( + "ALL_EVENT_NOTIFICATIONS", + EventNotification.from_json(payload, self), + ) + + def construct_event( + self, + payload: Union[bytes, str], + sig_header: str, + secret: str, + tolerance: int = Webhook.DEFAULT_TOLERANCE, + ) -> Event: + if hasattr(payload, "decode"): + payload = cast(bytes, payload).decode("utf-8") + + WebhookSignature.verify_header(payload, sig_header, secret, tolerance) + + data = json.loads(payload, object_pairs_hook=OrderedDict) + event = Event._construct_from( + values=data, + requestor=self._requestor, + api_mode="V1", + ) + + return event + + def raw_request(self, method_: str, url_: str, **params): + params = params.copy() + options, params = extract_options_from_dict(params) + api_mode = get_api_mode(url_) + base_address = params.pop("base", "api") + + # we manually pass usage in event internals, so use those if available + usage = params.pop("usage", ["raw_request"]) + + rbody, rcode, rheaders = self._requestor.request_raw( + method_, + url_, + params=params, + options=options, + base_address=base_address, + api_mode=api_mode, + usage=usage, + ) + + return self._requestor._interpret_response( + rbody, rcode, rheaders, api_mode + ) + + async def raw_request_async(self, method_: str, url_: str, **params): + params = params.copy() + options, params = extract_options_from_dict(params) + api_mode = get_api_mode(url_) + base_address = params.pop("base", "api") + + rbody, rcode, rheaders = await self._requestor.request_raw_async( + method_, + url_, + params=params, + options=options, + base_address=base_address, + api_mode=api_mode, + usage=["raw_request"], + ) + + return self._requestor._interpret_response( + rbody, rcode, rheaders, api_mode + ) + + def deserialize( + self, + resp: Union[StripeResponse, Dict[str, Any]], + params: Optional[Dict[str, Any]] = None, + *, + api_mode: ApiMode, + ) -> StripeObject: + """ + Used to translate the result of a `raw_request` into a StripeObject. + """ + return _convert_to_stripe_object( + resp=resp, + params=params, + requestor=self._requestor, + api_mode=api_mode, + ) + + # deprecated v1 services: The beginning of the section generated from our OpenAPI spec + @property + @deprecated( + """ + StripeClient.accounts is deprecated, use StripeClient.v1.accounts instead. + All functionality under it has been copied over to StripeClient.v1.accounts. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def accounts(self) -> "AccountService": + return self.v1.accounts + + @property + @deprecated( + """ + StripeClient.account_links is deprecated, use StripeClient.v1.account_links instead. + All functionality under it has been copied over to StripeClient.v1.account_links. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def account_links(self) -> "AccountLinkService": + return self.v1.account_links + + @property + @deprecated( + """ + StripeClient.account_sessions is deprecated, use StripeClient.v1.account_sessions instead. + All functionality under it has been copied over to StripeClient.v1.account_sessions. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def account_sessions(self) -> "AccountSessionService": + return self.v1.account_sessions + + @property + @deprecated( + """ + StripeClient.apple_pay_domains is deprecated, use StripeClient.v1.apple_pay_domains instead. + All functionality under it has been copied over to StripeClient.v1.apple_pay_domains. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def apple_pay_domains(self) -> "ApplePayDomainService": + return self.v1.apple_pay_domains + + @property + @deprecated( + """ + StripeClient.application_fees is deprecated, use StripeClient.v1.application_fees instead. + All functionality under it has been copied over to StripeClient.v1.application_fees. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def application_fees(self) -> "ApplicationFeeService": + return self.v1.application_fees + + @property + @deprecated( + """ + StripeClient.apps is deprecated, use StripeClient.v1.apps instead. + All functionality under it has been copied over to StripeClient.v1.apps. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def apps(self) -> "AppsService": + return self.v1.apps + + @property + @deprecated( + """ + StripeClient.balance is deprecated, use StripeClient.v1.balance instead. + All functionality under it has been copied over to StripeClient.v1.balance. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def balance(self) -> "BalanceService": + return self.v1.balance + + @property + @deprecated( + """ + StripeClient.balance_settings is deprecated, use StripeClient.v1.balance_settings instead. + All functionality under it has been copied over to StripeClient.v1.balance_settings. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def balance_settings(self) -> "BalanceSettingsService": + return self.v1.balance_settings + + @property + @deprecated( + """ + StripeClient.balance_transactions is deprecated, use StripeClient.v1.balance_transactions instead. + All functionality under it has been copied over to StripeClient.v1.balance_transactions. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def balance_transactions(self) -> "BalanceTransactionService": + return self.v1.balance_transactions + + @property + @deprecated( + """ + StripeClient.billing is deprecated, use StripeClient.v1.billing instead. + All functionality under it has been copied over to StripeClient.v1.billing. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def billing(self) -> "BillingService": + return self.v1.billing + + @property + @deprecated( + """ + StripeClient.billing_portal is deprecated, use StripeClient.v1.billing_portal instead. + All functionality under it has been copied over to StripeClient.v1.billing_portal. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def billing_portal(self) -> "BillingPortalService": + return self.v1.billing_portal + + @property + @deprecated( + """ + StripeClient.charges is deprecated, use StripeClient.v1.charges instead. + All functionality under it has been copied over to StripeClient.v1.charges. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def charges(self) -> "ChargeService": + return self.v1.charges + + @property + @deprecated( + """ + StripeClient.checkout is deprecated, use StripeClient.v1.checkout instead. + All functionality under it has been copied over to StripeClient.v1.checkout. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def checkout(self) -> "CheckoutService": + return self.v1.checkout + + @property + @deprecated( + """ + StripeClient.climate is deprecated, use StripeClient.v1.climate instead. + All functionality under it has been copied over to StripeClient.v1.climate. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def climate(self) -> "ClimateService": + return self.v1.climate + + @property + @deprecated( + """ + StripeClient.confirmation_tokens is deprecated, use StripeClient.v1.confirmation_tokens instead. + All functionality under it has been copied over to StripeClient.v1.confirmation_tokens. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def confirmation_tokens(self) -> "ConfirmationTokenService": + return self.v1.confirmation_tokens + + @property + @deprecated( + """ + StripeClient.country_specs is deprecated, use StripeClient.v1.country_specs instead. + All functionality under it has been copied over to StripeClient.v1.country_specs. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def country_specs(self) -> "CountrySpecService": + return self.v1.country_specs + + @property + @deprecated( + """ + StripeClient.coupons is deprecated, use StripeClient.v1.coupons instead. + All functionality under it has been copied over to StripeClient.v1.coupons. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def coupons(self) -> "CouponService": + return self.v1.coupons + + @property + @deprecated( + """ + StripeClient.credit_notes is deprecated, use StripeClient.v1.credit_notes instead. + All functionality under it has been copied over to StripeClient.v1.credit_notes. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def credit_notes(self) -> "CreditNoteService": + return self.v1.credit_notes + + @property + @deprecated( + """ + StripeClient.customers is deprecated, use StripeClient.v1.customers instead. + All functionality under it has been copied over to StripeClient.v1.customers. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def customers(self) -> "CustomerService": + return self.v1.customers + + @property + @deprecated( + """ + StripeClient.customer_sessions is deprecated, use StripeClient.v1.customer_sessions instead. + All functionality under it has been copied over to StripeClient.v1.customer_sessions. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def customer_sessions(self) -> "CustomerSessionService": + return self.v1.customer_sessions + + @property + @deprecated( + """ + StripeClient.disputes is deprecated, use StripeClient.v1.disputes instead. + All functionality under it has been copied over to StripeClient.v1.disputes. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def disputes(self) -> "DisputeService": + return self.v1.disputes + + @property + @deprecated( + """ + StripeClient.entitlements is deprecated, use StripeClient.v1.entitlements instead. + All functionality under it has been copied over to StripeClient.v1.entitlements. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def entitlements(self) -> "EntitlementsService": + return self.v1.entitlements + + @property + @deprecated( + """ + StripeClient.ephemeral_keys is deprecated, use StripeClient.v1.ephemeral_keys instead. + All functionality under it has been copied over to StripeClient.v1.ephemeral_keys. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def ephemeral_keys(self) -> "EphemeralKeyService": + return self.v1.ephemeral_keys + + @property + @deprecated( + """ + StripeClient.events is deprecated, use StripeClient.v1.events instead. + All functionality under it has been copied over to StripeClient.v1.events. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def events(self) -> "EventService": + return self.v1.events + + @property + @deprecated( + """ + StripeClient.exchange_rates is deprecated, use StripeClient.v1.exchange_rates instead. + All functionality under it has been copied over to StripeClient.v1.exchange_rates. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def exchange_rates(self) -> "ExchangeRateService": + return self.v1.exchange_rates + + @property + @deprecated( + """ + StripeClient.files is deprecated, use StripeClient.v1.files instead. + All functionality under it has been copied over to StripeClient.v1.files. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def files(self) -> "FileService": + return self.v1.files + + @property + @deprecated( + """ + StripeClient.file_links is deprecated, use StripeClient.v1.file_links instead. + All functionality under it has been copied over to StripeClient.v1.file_links. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def file_links(self) -> "FileLinkService": + return self.v1.file_links + + @property + @deprecated( + """ + StripeClient.financial_connections is deprecated, use StripeClient.v1.financial_connections instead. + All functionality under it has been copied over to StripeClient.v1.financial_connections. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def financial_connections(self) -> "FinancialConnectionsService": + return self.v1.financial_connections + + @property + @deprecated( + """ + StripeClient.forwarding is deprecated, use StripeClient.v1.forwarding instead. + All functionality under it has been copied over to StripeClient.v1.forwarding. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def forwarding(self) -> "ForwardingService": + return self.v1.forwarding + + @property + @deprecated( + """ + StripeClient.identity is deprecated, use StripeClient.v1.identity instead. + All functionality under it has been copied over to StripeClient.v1.identity. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def identity(self) -> "IdentityService": + return self.v1.identity + + @property + @deprecated( + """ + StripeClient.invoices is deprecated, use StripeClient.v1.invoices instead. + All functionality under it has been copied over to StripeClient.v1.invoices. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def invoices(self) -> "InvoiceService": + return self.v1.invoices + + @property + @deprecated( + """ + StripeClient.invoice_items is deprecated, use StripeClient.v1.invoice_items instead. + All functionality under it has been copied over to StripeClient.v1.invoice_items. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def invoice_items(self) -> "InvoiceItemService": + return self.v1.invoice_items + + @property + @deprecated( + """ + StripeClient.invoice_payments is deprecated, use StripeClient.v1.invoice_payments instead. + All functionality under it has been copied over to StripeClient.v1.invoice_payments. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def invoice_payments(self) -> "InvoicePaymentService": + return self.v1.invoice_payments + + @property + @deprecated( + """ + StripeClient.invoice_rendering_templates is deprecated, use StripeClient.v1.invoice_rendering_templates instead. + All functionality under it has been copied over to StripeClient.v1.invoice_rendering_templates. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def invoice_rendering_templates(self) -> "InvoiceRenderingTemplateService": + return self.v1.invoice_rendering_templates + + @property + @deprecated( + """ + StripeClient.issuing is deprecated, use StripeClient.v1.issuing instead. + All functionality under it has been copied over to StripeClient.v1.issuing. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def issuing(self) -> "IssuingService": + return self.v1.issuing + + @property + @deprecated( + """ + StripeClient.mandates is deprecated, use StripeClient.v1.mandates instead. + All functionality under it has been copied over to StripeClient.v1.mandates. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def mandates(self) -> "MandateService": + return self.v1.mandates + + @property + @deprecated( + """ + StripeClient.payment_attempt_records is deprecated, use StripeClient.v1.payment_attempt_records instead. + All functionality under it has been copied over to StripeClient.v1.payment_attempt_records. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payment_attempt_records(self) -> "PaymentAttemptRecordService": + return self.v1.payment_attempt_records + + @property + @deprecated( + """ + StripeClient.payment_intents is deprecated, use StripeClient.v1.payment_intents instead. + All functionality under it has been copied over to StripeClient.v1.payment_intents. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payment_intents(self) -> "PaymentIntentService": + return self.v1.payment_intents + + @property + @deprecated( + """ + StripeClient.payment_links is deprecated, use StripeClient.v1.payment_links instead. + All functionality under it has been copied over to StripeClient.v1.payment_links. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payment_links(self) -> "PaymentLinkService": + return self.v1.payment_links + + @property + @deprecated( + """ + StripeClient.payment_methods is deprecated, use StripeClient.v1.payment_methods instead. + All functionality under it has been copied over to StripeClient.v1.payment_methods. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payment_methods(self) -> "PaymentMethodService": + return self.v1.payment_methods + + @property + @deprecated( + """ + StripeClient.payment_method_configurations is deprecated, use StripeClient.v1.payment_method_configurations instead. + All functionality under it has been copied over to StripeClient.v1.payment_method_configurations. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payment_method_configurations( + self, + ) -> "PaymentMethodConfigurationService": + return self.v1.payment_method_configurations + + @property + @deprecated( + """ + StripeClient.payment_method_domains is deprecated, use StripeClient.v1.payment_method_domains instead. + All functionality under it has been copied over to StripeClient.v1.payment_method_domains. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payment_method_domains(self) -> "PaymentMethodDomainService": + return self.v1.payment_method_domains + + @property + @deprecated( + """ + StripeClient.payment_records is deprecated, use StripeClient.v1.payment_records instead. + All functionality under it has been copied over to StripeClient.v1.payment_records. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payment_records(self) -> "PaymentRecordService": + return self.v1.payment_records + + @property + @deprecated( + """ + StripeClient.payouts is deprecated, use StripeClient.v1.payouts instead. + All functionality under it has been copied over to StripeClient.v1.payouts. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def payouts(self) -> "PayoutService": + return self.v1.payouts + + @property + @deprecated( + """ + StripeClient.plans is deprecated, use StripeClient.v1.plans instead. + All functionality under it has been copied over to StripeClient.v1.plans. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def plans(self) -> "PlanService": + return self.v1.plans + + @property + @deprecated( + """ + StripeClient.prices is deprecated, use StripeClient.v1.prices instead. + All functionality under it has been copied over to StripeClient.v1.prices. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def prices(self) -> "PriceService": + return self.v1.prices + + @property + @deprecated( + """ + StripeClient.products is deprecated, use StripeClient.v1.products instead. + All functionality under it has been copied over to StripeClient.v1.products. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def products(self) -> "ProductService": + return self.v1.products + + @property + @deprecated( + """ + StripeClient.promotion_codes is deprecated, use StripeClient.v1.promotion_codes instead. + All functionality under it has been copied over to StripeClient.v1.promotion_codes. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def promotion_codes(self) -> "PromotionCodeService": + return self.v1.promotion_codes + + @property + @deprecated( + """ + StripeClient.quotes is deprecated, use StripeClient.v1.quotes instead. + All functionality under it has been copied over to StripeClient.v1.quotes. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def quotes(self) -> "QuoteService": + return self.v1.quotes + + @property + @deprecated( + """ + StripeClient.radar is deprecated, use StripeClient.v1.radar instead. + All functionality under it has been copied over to StripeClient.v1.radar. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def radar(self) -> "RadarService": + return self.v1.radar + + @property + @deprecated( + """ + StripeClient.refunds is deprecated, use StripeClient.v1.refunds instead. + All functionality under it has been copied over to StripeClient.v1.refunds. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def refunds(self) -> "RefundService": + return self.v1.refunds + + @property + @deprecated( + """ + StripeClient.reporting is deprecated, use StripeClient.v1.reporting instead. + All functionality under it has been copied over to StripeClient.v1.reporting. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def reporting(self) -> "ReportingService": + return self.v1.reporting + + @property + @deprecated( + """ + StripeClient.reviews is deprecated, use StripeClient.v1.reviews instead. + All functionality under it has been copied over to StripeClient.v1.reviews. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def reviews(self) -> "ReviewService": + return self.v1.reviews + + @property + @deprecated( + """ + StripeClient.setup_attempts is deprecated, use StripeClient.v1.setup_attempts instead. + All functionality under it has been copied over to StripeClient.v1.setup_attempts. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def setup_attempts(self) -> "SetupAttemptService": + return self.v1.setup_attempts + + @property + @deprecated( + """ + StripeClient.setup_intents is deprecated, use StripeClient.v1.setup_intents instead. + All functionality under it has been copied over to StripeClient.v1.setup_intents. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def setup_intents(self) -> "SetupIntentService": + return self.v1.setup_intents + + @property + @deprecated( + """ + StripeClient.shipping_rates is deprecated, use StripeClient.v1.shipping_rates instead. + All functionality under it has been copied over to StripeClient.v1.shipping_rates. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def shipping_rates(self) -> "ShippingRateService": + return self.v1.shipping_rates + + @property + @deprecated( + """ + StripeClient.sigma is deprecated, use StripeClient.v1.sigma instead. + All functionality under it has been copied over to StripeClient.v1.sigma. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def sigma(self) -> "SigmaService": + return self.v1.sigma + + @property + @deprecated( + """ + StripeClient.sources is deprecated, use StripeClient.v1.sources instead. + All functionality under it has been copied over to StripeClient.v1.sources. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def sources(self) -> "SourceService": + return self.v1.sources + + @property + @deprecated( + """ + StripeClient.subscriptions is deprecated, use StripeClient.v1.subscriptions instead. + All functionality under it has been copied over to StripeClient.v1.subscriptions. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def subscriptions(self) -> "SubscriptionService": + return self.v1.subscriptions + + @property + @deprecated( + """ + StripeClient.subscription_items is deprecated, use StripeClient.v1.subscription_items instead. + All functionality under it has been copied over to StripeClient.v1.subscription_items. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def subscription_items(self) -> "SubscriptionItemService": + return self.v1.subscription_items + + @property + @deprecated( + """ + StripeClient.subscription_schedules is deprecated, use StripeClient.v1.subscription_schedules instead. + All functionality under it has been copied over to StripeClient.v1.subscription_schedules. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def subscription_schedules(self) -> "SubscriptionScheduleService": + return self.v1.subscription_schedules + + @property + @deprecated( + """ + StripeClient.tax is deprecated, use StripeClient.v1.tax instead. + All functionality under it has been copied over to StripeClient.v1.tax. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def tax(self) -> "TaxService": + return self.v1.tax + + @property + @deprecated( + """ + StripeClient.tax_codes is deprecated, use StripeClient.v1.tax_codes instead. + All functionality under it has been copied over to StripeClient.v1.tax_codes. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def tax_codes(self) -> "TaxCodeService": + return self.v1.tax_codes + + @property + @deprecated( + """ + StripeClient.tax_ids is deprecated, use StripeClient.v1.tax_ids instead. + All functionality under it has been copied over to StripeClient.v1.tax_ids. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def tax_ids(self) -> "TaxIdService": + return self.v1.tax_ids + + @property + @deprecated( + """ + StripeClient.tax_rates is deprecated, use StripeClient.v1.tax_rates instead. + All functionality under it has been copied over to StripeClient.v1.tax_rates. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def tax_rates(self) -> "TaxRateService": + return self.v1.tax_rates + + @property + @deprecated( + """ + StripeClient.terminal is deprecated, use StripeClient.v1.terminal instead. + All functionality under it has been copied over to StripeClient.v1.terminal. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def terminal(self) -> "TerminalService": + return self.v1.terminal + + @property + @deprecated( + """ + StripeClient.test_helpers is deprecated, use StripeClient.v1.test_helpers instead. + All functionality under it has been copied over to StripeClient.v1.test_helpers. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def test_helpers(self) -> "TestHelpersService": + return self.v1.test_helpers + + @property + @deprecated( + """ + StripeClient.tokens is deprecated, use StripeClient.v1.tokens instead. + All functionality under it has been copied over to StripeClient.v1.tokens. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def tokens(self) -> "TokenService": + return self.v1.tokens + + @property + @deprecated( + """ + StripeClient.topups is deprecated, use StripeClient.v1.topups instead. + All functionality under it has been copied over to StripeClient.v1.topups. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def topups(self) -> "TopupService": + return self.v1.topups + + @property + @deprecated( + """ + StripeClient.transfers is deprecated, use StripeClient.v1.transfers instead. + All functionality under it has been copied over to StripeClient.v1.transfers. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def transfers(self) -> "TransferService": + return self.v1.transfers + + @property + @deprecated( + """ + StripeClient.treasury is deprecated, use StripeClient.v1.treasury instead. + All functionality under it has been copied over to StripeClient.v1.treasury. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def treasury(self) -> "TreasuryService": + return self.v1.treasury + + @property + @deprecated( + """ + StripeClient.webhook_endpoints is deprecated, use StripeClient.v1.webhook_endpoints instead. + All functionality under it has been copied over to StripeClient.v1.webhook_endpoints. + See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace. + """, + ) + def webhook_endpoints(self) -> "WebhookEndpointService": + return self.v1.webhook_endpoints + + # deprecated v1 services: The end of the section generated from our OpenAPI spec diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_context.py b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_context.py new file mode 100644 index 00000000..48fa3d9f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_context.py @@ -0,0 +1,40 @@ +from typing import List, Optional + + +class StripeContext: + """ + The StripeContext class provides an immutable container and convenience methods for interacting with the `Stripe-Context` header. All methods return a new instance of StripeContext. + + You can use it whenever you're initializing a `StripeClient` or sending `stripe_context` with a request. It's also found in the `EventNotification.context` property. + """ + + def __init__(self, segments: Optional[List[str]] = None): + self._segments = segments or [] + + def push(self, segment: str) -> "StripeContext": + return StripeContext(self._segments + [segment]) + + def pop(self) -> "StripeContext": + if not self._segments: + raise ValueError("Cannot pop from an empty StripeContext") + + return StripeContext(self._segments[:-1]) + + def __str__(self) -> str: + return "/".join(self._segments) + + def __repr__(self) -> str: + return f"StripeContext({self._segments!r})" + + def __eq__(self, other) -> bool: + if not isinstance(other, StripeContext): + return False + return self._segments == other._segments + + @staticmethod + def parse(context_str: str) -> "StripeContext": + if not context_str: + return StripeContext() + + segments = context_str.split("/") + return StripeContext(segments) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_object.py b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_object.py new file mode 100644 index 00000000..0f44342f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_object.py @@ -0,0 +1,621 @@ +# pyright: strict +import datetime +import json +from copy import deepcopy +from typing_extensions import TYPE_CHECKING, Type, Literal, Self +from typing import ( + Any, + Dict, + List, + Optional, + Mapping, + Set, + Tuple, + ClassVar, + Union, + cast, + overload, +) + +# Used to break circular imports +import stripe # noqa: IMP101 +from stripe import _util + +from stripe._stripe_response import ( + StripeResponse, + StripeStreamResponse, + StripeStreamResponseAsync, +) +from stripe._encode import _encode_datetime # pyright: ignore +from stripe._request_options import ( + PERSISTENT_OPTIONS_KEYS, + extract_options_from_dict, +) +from stripe._api_mode import ApiMode +from stripe._base_address import BaseAddress + +if TYPE_CHECKING: + from stripe._api_requestor import _APIRequestor # pyright: ignore[reportPrivateUsage] + + +@overload +def _compute_diff( + current: Dict[str, Any], previous: Optional[Dict[str, Any]] +) -> Dict[str, Any]: ... + + +@overload +def _compute_diff( + current: object, previous: Optional[Dict[str, Any]] +) -> object: ... + + +def _compute_diff( + current: object, previous: Optional[Dict[str, Any]] +) -> object: + if isinstance(current, dict): + current = cast(Dict[str, Any], current) + previous = previous or {} + diff = current.copy() + for key in set(previous.keys()) - set(diff.keys()): + diff[key] = "" + return diff + return current if current is not None else "" + + +def _serialize_list( + array: Optional[List[Any]], previous: List[Any] +) -> Dict[str, Any]: + array = array or [] + previous = previous or [] + params: Dict[str, Any] = {} + + for i, v in enumerate(array): + previous_item = previous[i] if len(previous) > i else None + if hasattr(v, "serialize"): + params[str(i)] = v.serialize(previous_item) + else: + params[str(i)] = _compute_diff(v, previous_item) + + return params + + +class StripeObject(Dict[str, Any]): + class _ReprJSONEncoder(json.JSONEncoder): + def default(self, o: Any) -> Any: + if isinstance(o, datetime.datetime): + return _encode_datetime(o) + return super(StripeObject._ReprJSONEncoder, self).default(o) + + _retrieve_params: Mapping[str, Any] + _previous: Optional[Mapping[str, Any]] + + def __init__( + self, + id: Optional[str] = None, + api_key: Optional[str] = None, + stripe_version: Optional[str] = None, + stripe_account: Optional[str] = None, + last_response: Optional[StripeResponse] = None, + *, + _requestor: Optional["_APIRequestor"] = None, + # TODO: is a more specific type possible here? + **params: Any, + ): + super(StripeObject, self).__init__() + + self._unsaved_values: Set[str] = set() + self._transient_values: Set[str] = set() + self._last_response = last_response + + self._retrieve_params = params + self._previous = None + + from stripe._api_requestor import _APIRequestor # pyright: ignore[reportPrivateUsage] + + self._requestor = ( + _APIRequestor._global_with_options( # pyright: ignore[reportPrivateUsage] + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + ) + if _requestor is None + else _requestor + ) + + if id: + self["id"] = id + + @property + def api_key(self): + return self._requestor.api_key + + @property + def stripe_account(self): + return self._requestor.stripe_account + + @property + def stripe_version(self): + return self._requestor.stripe_version + + @property + def last_response(self) -> Optional[StripeResponse]: + return self._last_response + + # StripeObject inherits from `dict` which has an update method, and this doesn't quite match + # the full signature of the update method in MutableMapping. But we ignore. + def update( # pyright: ignore + self, update_dict: Mapping[str, Any] + ) -> None: + for k in update_dict: + self._unsaved_values.add(k) + + return super(StripeObject, self).update(update_dict) + + if not TYPE_CHECKING: + + def __setattr__(self, k, v): + if k in PERSISTENT_OPTIONS_KEYS: + self._requestor = self._requestor._new_requestor_with_options( + {k: v} + ) + return None + + if k[0] == "_" or k in self.__dict__: + return super(StripeObject, self).__setattr__(k, v) + + self[k] = v + return None + + def __getattr__(self, k): + if k[0] == "_": + raise AttributeError(k) + + try: + if k in self._field_remappings: + k = self._field_remappings[k] + return self[k] + except KeyError as err: + raise AttributeError(*err.args) from err + + def __delattr__(self, k): + if k[0] == "_" or k in self.__dict__: + return super(StripeObject, self).__delattr__(k) + else: + del self[k] + + def __setitem__(self, k: str, v: Any) -> None: + if v == "": + raise ValueError( + "You cannot set %s to an empty string on this object. " + "The empty string is treated specially in our requests. " + "If you'd like to delete the property using the save() method on this object, you may set %s.%s=None. " + "Alternatively, you can pass %s='' to delete the property when using a resource method such as modify()." + % (k, str(self), k, k) + ) + + # Allows for unpickling in Python 3.x + if not hasattr(self, "_unsaved_values"): + self._unsaved_values = set() + + self._unsaved_values.add(k) + + super(StripeObject, self).__setitem__(k, v) + + def __getitem__(self, k: str) -> Any: + try: + return super(StripeObject, self).__getitem__(k) + except KeyError as err: + if k in self._transient_values: + raise KeyError( + "%r. HINT: The %r attribute was set in the past." + "It was then wiped when refreshing the object with " + "the result returned by Stripe's API, probably as a " + "result of a save(). The attributes currently " + "available on this object are: %s" + % (k, k, ", ".join(list(self.keys()))) + ) + else: + raise err + + def __delitem__(self, k: str) -> None: + super(StripeObject, self).__delitem__(k) + + # Allows for unpickling in Python 3.x + if hasattr(self, "_unsaved_values") and k in self._unsaved_values: + self._unsaved_values.remove(k) + + # Custom unpickling method that uses `update` to update the dictionary + # without calling __setitem__, which would fail if any value is an empty + # string + def __setstate__(self, state: Dict[str, Any]) -> None: + self.update(state) + + # Custom pickling method to ensure the instance is pickled as a custom + # class and not as a dict, otherwise __setstate__ would not be called when + # unpickling. + def __reduce__(self) -> Tuple[Any, ...]: + reduce_value = ( + type(self), # callable + ( # args + self.get("id", None), + self.api_key, + self.stripe_version, + self.stripe_account, + ), + dict(self), # state + ) + return reduce_value + + @classmethod + def construct_from( + cls, + values: Dict[str, Any], + key: Optional[str], + stripe_version: Optional[str] = None, + stripe_account: Optional[str] = None, + last_response: Optional[StripeResponse] = None, + *, + api_mode: ApiMode = "V1", + ) -> Self: + from stripe._api_requestor import _APIRequestor # pyright: ignore[reportPrivateUsage] + + return cls._construct_from( + values=values, + requestor=_APIRequestor._global_with_options( # pyright: ignore[reportPrivateUsage] + api_key=key, + stripe_version=stripe_version, + stripe_account=stripe_account, + ), + api_mode=api_mode, + last_response=last_response, + ) + + @classmethod + def _construct_from( + cls, + *, + values: Dict[str, Any], + last_response: Optional[StripeResponse] = None, + requestor: "_APIRequestor", + api_mode: ApiMode, + ) -> Self: + instance = cls( + values.get("id"), + last_response=last_response, + _requestor=requestor, + ) + instance._refresh_from( + values=values, + last_response=last_response, + requestor=requestor, + api_mode=api_mode, + ) + return instance + + def refresh_from( + self, + values: Dict[str, Any], + api_key: Optional[str] = None, + partial: Optional[bool] = False, + stripe_version: Optional[str] = None, + stripe_account: Optional[str] = None, + last_response: Optional[StripeResponse] = None, + *, + api_mode: ApiMode = "V1", + ) -> None: + self._refresh_from( + values=values, + partial=partial, + last_response=last_response, + requestor=self._requestor._new_requestor_with_options( # pyright: ignore[reportPrivateUsage] + { + "api_key": api_key, + "stripe_version": stripe_version, + "stripe_account": stripe_account, + } + ), + api_mode=api_mode, + ) + + def _refresh_from( + self, + *, + values: Dict[str, Any], + partial: Optional[bool] = False, + last_response: Optional[StripeResponse] = None, + requestor: Optional["_APIRequestor"] = None, + api_mode: ApiMode, + ) -> None: + self._requestor = requestor or self._requestor + self._last_response = last_response or getattr( + values, "_last_response", None + ) + + # Wipe old state before setting new. This is useful for e.g. + # updating a customer, where there is no persistent card + # parameter. Mark those values which don't persist as transient + if partial: + self._unsaved_values = self._unsaved_values - set(values) + else: + removed = set(self.keys()) - set(values) + self._transient_values = self._transient_values | removed + self._unsaved_values = set() + self.clear() + + self._transient_values = self._transient_values - set(values) + + for k, v in values.items(): + inner_class = self._get_inner_class_type(k) + is_dict = self._get_inner_class_is_beneath_dict(k) + if is_dict: + obj = { + k: None + if v is None + else cast( + StripeObject, + _util._convert_to_stripe_object( # pyright: ignore[reportPrivateUsage] + resp=v, + params=None, + klass_=inner_class, + requestor=self._requestor, + api_mode=api_mode, + ), + ) + for k, v in v.items() + } + else: + obj = cast( + Union[StripeObject, List[StripeObject]], + _util._convert_to_stripe_object( # pyright: ignore[reportPrivateUsage] + resp=v, + params=None, + klass_=inner_class, + requestor=self._requestor, + api_mode=api_mode, + ), + ) + super(StripeObject, self).__setitem__(k, obj) + + self._previous = values + + @_util.deprecated( + "This will be removed in a future version of stripe-python." + ) + def request( + self, + method: Literal["get", "post", "delete"], + url: str, + params: Optional[Dict[str, Any]] = None, + *, + base_address: BaseAddress = "api", + ) -> "StripeObject": + return StripeObject._request( + self, + method, + url, + params=params, + base_address=base_address, + ) + + def _request( + self, + method: Literal["get", "post", "delete"], + url: str, + params: Optional[Mapping[str, Any]] = None, + usage: Optional[List[str]] = None, + *, + base_address: BaseAddress, + ) -> "StripeObject": + if params is None: + params = self._retrieve_params + + request_options, request_params = extract_options_from_dict(params) + + return self._requestor.request( + method, + url, + params=request_params, + options=request_options, + base_address=base_address, + usage=usage, + ) + + async def _request_async( + self, + method: Literal["get", "post", "delete"], + url: str, + params: Optional[Mapping[str, Any]] = None, + usage: Optional[List[str]] = None, + *, + base_address: BaseAddress, + ) -> "StripeObject": + if params is None: + params = self._retrieve_params + + request_options, request_params = extract_options_from_dict(params) + + return await self._requestor.request_async( + method, + url, + params=request_params, + options=request_options, + base_address=base_address, + usage=usage, + ) + + def _request_stream( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + *, + base_address: BaseAddress = "api", + ) -> StripeStreamResponse: + if params is None: + params = self._retrieve_params + + request_options, request_params = extract_options_from_dict(params) + return self._requestor.request_stream( + method, + url, + params=request_params, + options=request_options, + base_address=base_address, + ) + + async def _request_stream_async( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + *, + base_address: BaseAddress = "api", + ) -> StripeStreamResponseAsync: + if params is None: + params = self._retrieve_params + + request_options, request_params = extract_options_from_dict(params) + return await self._requestor.request_stream_async( + method, + url, + params=request_params, + options=request_options, + base_address=base_address, + ) + + def __repr__(self) -> str: + ident_parts = [type(self).__name__] + + obj_str = self.get("object") + if isinstance(obj_str, str): + ident_parts.append(obj_str) + + if isinstance(self.get("id"), str): + ident_parts.append("id=%s" % (self.get("id"),)) + + unicode_repr = "<%s at %s> JSON: %s" % ( + " ".join(ident_parts), + hex(id(self)), + str(self), + ) + return unicode_repr + + def __str__(self) -> str: + return json.dumps( + self._to_dict_recursive(), + sort_keys=True, + indent=2, + cls=self._ReprJSONEncoder, + ) + + @_util.deprecated( + "Deprecated. The public interface will be removed in a future version." + ) + def to_dict(self) -> Dict[str, Any]: + return dict(self) + + def _to_dict_recursive(self) -> Dict[str, Any]: + def maybe_to_dict_recursive( + value: Optional[Union[StripeObject, Dict[str, Any]]], + ) -> Optional[Dict[str, Any]]: + if value is None: + return None + elif isinstance(value, StripeObject): + return value._to_dict_recursive() + else: + return value + + return { + key: list(map(maybe_to_dict_recursive, cast(List[Any], value))) + if isinstance(value, list) + else maybe_to_dict_recursive(value) + for key, value in dict(self).items() + } + + @_util.deprecated( + "For internal stripe-python use only. The public interface will be removed in a future version." + ) + def to_dict_recursive(self) -> Dict[str, Any]: + return self._to_dict_recursive() + + @property + @_util.deprecated( + "For internal stripe-python use only. The public interface will be removed in a future version." + ) + def stripe_id(self) -> Optional[str]: + return getattr(self, "id") + + def serialize( + self, previous: Optional[Mapping[str, Any]] + ) -> Dict[str, Any]: + params: Dict[str, Any] = {} + unsaved_keys = self._unsaved_values or set() + previous = previous or self._previous or {} + + for k, v in self.items(): + if k == "id" or k.startswith("_"): + continue + elif isinstance(v, stripe.APIResource): + continue + elif hasattr(v, "serialize"): + child = v.serialize(previous.get(k, None)) + if child != {}: + params[k] = child + elif k in unsaved_keys: + params[k] = _compute_diff(v, previous.get(k, None)) + elif k == "additional_owners" and v is not None: + params[k] = _serialize_list(v, previous.get(k, None)) + + return params + + # This class overrides __setitem__ to throw exceptions on inputs that it + # doesn't like. This can cause problems when we try to copy an object + # wholesale because some data that's returned from the API may not be valid + # if it was set to be set manually. Here we override the class' copy + # arguments so that we can bypass these possible exceptions on __setitem__. + def __copy__(self) -> "StripeObject": + copied = StripeObject( + self.get("id"), + self.api_key, + stripe_version=self.stripe_version, + stripe_account=self.stripe_account, + ) + + copied._retrieve_params = self._retrieve_params + + for k, v in self.items(): + # Call parent's __setitem__ to avoid checks that we've added in the + # overridden version that can throw exceptions. + super(StripeObject, copied).__setitem__(k, v) + + return copied + + # This class overrides __setitem__ to throw exceptions on inputs that it + # doesn't like. This can cause problems when we try to copy an object + # wholesale because some data that's returned from the API may not be valid + # if it was set to be set manually. Here we override the class' copy + # arguments so that we can bypass these possible exceptions on __setitem__. + def __deepcopy__(self, memo: Dict[int, Any]) -> "StripeObject": + copied = self.__copy__() + memo[id(self)] = copied + + for k, v in self.items(): + # Call parent's __setitem__ to avoid checks that we've added in the + # overridden version that can throw exceptions. + super(StripeObject, copied).__setitem__(k, deepcopy(v, memo)) + + return copied + + _field_remappings: ClassVar[Dict[str, str]] = {} + + _inner_class_types: ClassVar[Dict[str, Type["StripeObject"]]] = {} + _inner_class_dicts: ClassVar[List[str]] = [] + + def _get_inner_class_type( + self, field_name: str + ) -> Optional[Type["StripeObject"]]: + return self._inner_class_types.get(field_name) + + def _get_inner_class_is_beneath_dict(self, field_name: str): + return field_name in self._inner_class_dicts diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_response.py b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_response.py new file mode 100644 index 00000000..28f0d69e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_response.py @@ -0,0 +1,65 @@ +# pyright: strict +from io import IOBase +import json +from collections import OrderedDict +from typing import Mapping, Optional, AsyncIterable + + +class StripeResponseBase(object): + code: int + headers: Mapping[str, str] + + def __init__(self, code: int, headers: Mapping[str, str]): + self.code = code + self.headers = headers + + @property + def idempotency_key(self) -> Optional[str]: + try: + return self.headers["idempotency-key"] + except KeyError: + return None + + @property + def request_id(self) -> Optional[str]: + try: + return self.headers["request-id"] + except KeyError: + return None + + +class StripeResponse(StripeResponseBase): + body: str + data: object + + def __init__(self, body: str, code: int, headers: Mapping[str, str]): + StripeResponseBase.__init__(self, code, headers) + self.body = body + self.data = json.loads(body, object_pairs_hook=OrderedDict) + + +class StripeStreamResponse(StripeResponseBase): + io: IOBase + + def __init__(self, io: IOBase, code: int, headers: Mapping[str, str]): + StripeResponseBase.__init__(self, code, headers) + self.io = io + + +class StripeStreamResponseAsync(StripeResponseBase): + _stream: AsyncIterable[bytes] + + def __init__( + self, + stream: AsyncIterable[bytes], + code: int, + headers: Mapping[str, str], + ): + StripeResponseBase.__init__(self, code, headers) + self._stream = stream + + def stream(self) -> AsyncIterable[bytes]: + return self._stream + + async def read_async(self) -> bytes: + return b"".join([chunk async for chunk in self._stream]) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_service.py new file mode 100644 index 00000000..e72279f4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_stripe_service.py @@ -0,0 +1,91 @@ +from stripe._api_requestor import ( + _APIRequestor, +) +from stripe._stripe_response import ( + StripeStreamResponse, + StripeStreamResponseAsync, +) +from stripe._stripe_object import StripeObject +from stripe._request_options import RequestOptions +from stripe._base_address import BaseAddress + +from typing import Any, Mapping, Optional + + +class StripeService(object): + _requestor: _APIRequestor + + def __init__(self, requestor): + self._requestor = requestor + + def _request( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + ) -> StripeObject: + return self._requestor.request( + method, + url, + params, + options, + base_address=base_address, + usage=["stripe_client"], + ) + + async def _request_async( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + ) -> StripeObject: + return await self._requestor.request_async( + method, + url, + params, + options, + base_address=base_address, + usage=["stripe_client"], + ) + + def _request_stream( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + ) -> StripeStreamResponse: + return self._requestor.request_stream( + method, + url, + params, + options, + base_address=base_address, + usage=["stripe_client"], + ) + + async def _request_stream_async( + self, + method: str, + url: str, + params: Optional[Mapping[str, Any]] = None, + options: Optional[RequestOptions] = None, + *, + base_address: BaseAddress, + ) -> StripeStreamResponseAsync: + return await self._requestor.request_stream_async( + method, + url, + params, + options, + base_address=base_address, + usage=["stripe_client"], + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_subscription.py b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription.py new file mode 100644 index 00000000..05db3e64 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription.py @@ -0,0 +1,1433 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._search_result_object import SearchResultObject +from stripe._searchable_api_resource import SearchableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ( + AsyncIterator, + ClassVar, + Dict, + Iterator, + List, + Optional, + Union, + cast, + overload, +) +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._bank_account import BankAccount + from stripe._card import Card as CardResource + from stripe._customer import Customer + from stripe._discount import Discount + from stripe._invoice import Invoice + from stripe._payment_method import PaymentMethod + from stripe._setup_intent import SetupIntent + from stripe._source import Source + from stripe._subscription_item import SubscriptionItem + from stripe._subscription_schedule import SubscriptionSchedule + from stripe._tax_id import TaxId + from stripe._tax_rate import TaxRate + from stripe.params._subscription_cancel_params import ( + SubscriptionCancelParams, + ) + from stripe.params._subscription_create_params import ( + SubscriptionCreateParams, + ) + from stripe.params._subscription_delete_discount_params import ( + SubscriptionDeleteDiscountParams, + ) + from stripe.params._subscription_list_params import SubscriptionListParams + from stripe.params._subscription_migrate_params import ( + SubscriptionMigrateParams, + ) + from stripe.params._subscription_modify_params import ( + SubscriptionModifyParams, + ) + from stripe.params._subscription_resume_params import ( + SubscriptionResumeParams, + ) + from stripe.params._subscription_retrieve_params import ( + SubscriptionRetrieveParams, + ) + from stripe.params._subscription_search_params import ( + SubscriptionSearchParams, + ) + from stripe.test_helpers._test_clock import TestClock + + +class Subscription( + CreateableAPIResource["Subscription"], + DeletableAPIResource["Subscription"], + ListableAPIResource["Subscription"], + SearchableAPIResource["Subscription"], + UpdateableAPIResource["Subscription"], +): + """ + Subscriptions allow you to charge a customer on a recurring basis. + + Related guide: [Creating subscriptions](https://stripe.com/docs/billing/subscriptions/creating) + """ + + OBJECT_NAME: ClassVar[Literal["subscription"]] = "subscription" + + class AutomaticTax(StripeObject): + class Liability(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + disabled_reason: Optional[Literal["requires_location_inputs"]] + """ + If Stripe disabled automatic tax, this enum describes why. + """ + enabled: bool + """ + Whether Stripe automatically computes tax on this subscription. + """ + liability: Optional[Liability] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + _inner_class_types = {"liability": Liability} + + class BillingCycleAnchorConfig(StripeObject): + day_of_month: int + """ + The day of the month of the billing_cycle_anchor. + """ + hour: Optional[int] + """ + The hour of the day of the billing_cycle_anchor. + """ + minute: Optional[int] + """ + The minute of the hour of the billing_cycle_anchor. + """ + month: Optional[int] + """ + The month to start full cycle billing periods. + """ + second: Optional[int] + """ + The second of the minute of the billing_cycle_anchor. + """ + + class BillingMode(StripeObject): + class Flexible(StripeObject): + proration_discounts: Optional[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + flexible: Optional[Flexible] + """ + Configure behavior for flexible billing mode + """ + type: Literal["classic", "flexible"] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + updated_at: Optional[int] + """ + Details on when the current billing_mode was adopted. + """ + _inner_class_types = {"flexible": Flexible} + + class BillingThresholds(StripeObject): + amount_gte: Optional[int] + """ + Monetary threshold that triggers the subscription to create an invoice + """ + reset_billing_cycle_anchor: Optional[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`. + """ + + class CancellationDetails(StripeObject): + comment: Optional[str] + """ + Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user. + """ + feedback: Optional[ + Literal[ + "customer_service", + "low_quality", + "missing_features", + "other", + "switched_service", + "too_complex", + "too_expensive", + "unused", + ] + ] + """ + The customer submitted reason for why they canceled, if the subscription was canceled explicitly by the user. + """ + reason: Optional[ + Literal[ + "cancellation_requested", "payment_disputed", "payment_failed" + ] + ] + """ + Why this subscription was canceled. + """ + + class InvoiceSettings(StripeObject): + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + account_tax_ids: Optional[List[ExpandableField["TaxId"]]] + """ + The account tax IDs associated with the subscription. Will be set on invoices generated by the subscription. + """ + issuer: Issuer + _inner_class_types = {"issuer": Issuer} + + class PauseCollection(StripeObject): + behavior: Literal["keep_as_draft", "mark_uncollectible", "void"] + """ + The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`. + """ + resumes_at: Optional[int] + """ + The time after which the subscription will resume collecting payments. + """ + + class PaymentSettings(StripeObject): + class PaymentMethodOptions(StripeObject): + class AcssDebit(StripeObject): + class MandateOptions(StripeObject): + transaction_type: Optional[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + mandate_options: Optional[MandateOptions] + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Bancontact(StripeObject): + preferred_language: Literal["de", "en", "fr", "nl"] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + class Card(StripeObject): + class MandateOptions(StripeObject): + amount: Optional[int] + """ + Amount to be charged for future payments. + """ + amount_type: Optional[Literal["fixed", "maximum"]] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: Optional[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + + mandate_options: Optional[MandateOptions] + network: Optional[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this Subscription on. Depends on the available networks of the card attached to the Subscription. Can be only set confirm-time. + """ + request_three_d_secure: Optional[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class CustomerBalance(StripeObject): + class BankTransfer(StripeObject): + class EuBankTransfer(StripeObject): + country: Literal["BE", "DE", "ES", "FR", "IE", "NL"] + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + eu_bank_transfer: Optional[EuBankTransfer] + type: Optional[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + _inner_class_types = {"eu_bank_transfer": EuBankTransfer} + + bank_transfer: Optional[BankTransfer] + funding_type: Optional[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + _inner_class_types = {"bank_transfer": BankTransfer} + + class Konbini(StripeObject): + pass + + class SepaDebit(StripeObject): + pass + + class UsBankAccount(StripeObject): + class FinancialConnections(StripeObject): + class Filters(StripeObject): + account_subcategories: Optional[ + List[Literal["checking", "savings"]] + ] + """ + The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`. + """ + + filters: Optional[Filters] + permissions: Optional[ + List[ + Literal[ + "balances", + "ownership", + "payment_method", + "transactions", + ] + ] + ] + """ + The list of permissions to request. The `payment_method` permission must be included. + """ + prefetch: Optional[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + Data features requested to be retrieved upon account creation. + """ + _inner_class_types = {"filters": Filters} + + financial_connections: Optional[FinancialConnections] + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = { + "financial_connections": FinancialConnections, + } + + acss_debit: Optional[AcssDebit] + """ + This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to invoices created by the subscription. + """ + bancontact: Optional[Bancontact] + """ + This sub-hash contains details about the Bancontact payment method options to pass to invoices created by the subscription. + """ + card: Optional[Card] + """ + This sub-hash contains details about the Card payment method options to pass to invoices created by the subscription. + """ + customer_balance: Optional[CustomerBalance] + """ + This sub-hash contains details about the Bank transfer payment method options to pass to invoices created by the subscription. + """ + konbini: Optional[Konbini] + """ + This sub-hash contains details about the Konbini payment method options to pass to invoices created by the subscription. + """ + sepa_debit: Optional[SepaDebit] + """ + This sub-hash contains details about the SEPA Direct Debit payment method options to pass to invoices created by the subscription. + """ + us_bank_account: Optional[UsBankAccount] + """ + This sub-hash contains details about the ACH direct debit payment method options to pass to invoices created by the subscription. + """ + _inner_class_types = { + "acss_debit": AcssDebit, + "bancontact": Bancontact, + "card": Card, + "customer_balance": CustomerBalance, + "konbini": Konbini, + "sepa_debit": SepaDebit, + "us_bank_account": UsBankAccount, + } + + payment_method_options: Optional[PaymentMethodOptions] + """ + Payment-method-specific configuration to provide to invoices created by the subscription. + """ + payment_method_types: Optional[ + List[ + Literal[ + "ach_credit_transfer", + "ach_debit", + "acss_debit", + "affirm", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "boleto", + "card", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "jp_credit_transfer", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "multibanco", + "naver_pay", + "nz_bank_account", + "p24", + "payco", + "paynow", + "paypal", + "promptpay", + "revolut_pay", + "sepa_credit_transfer", + "sepa_debit", + "sofort", + "swish", + "us_bank_account", + "wechat_pay", + ] + ] + ] + """ + The list of payment method types to provide to every invoice created by the subscription. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). + """ + save_default_payment_method: Optional[ + Literal["off", "on_subscription"] + ] + """ + Configure whether Stripe updates `subscription.default_payment_method` when payment succeeds. Defaults to `off`. + """ + _inner_class_types = {"payment_method_options": PaymentMethodOptions} + + class PendingInvoiceItemInterval(StripeObject): + interval: Literal["day", "month", "week", "year"] + """ + Specifies invoicing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: int + """ + The number of intervals between invoices. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). + """ + + class PendingUpdate(StripeObject): + billing_cycle_anchor: Optional[int] + """ + If the update is applied, determines the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. The timestamp is in UTC format. + """ + expires_at: int + """ + The point after which the changes reflected by this update will be discarded and no longer applied. + """ + subscription_items: Optional[List["SubscriptionItem"]] + """ + List of subscription items, each with an attached plan, that will be set if the update is applied. + """ + trial_end: Optional[int] + """ + Unix timestamp representing the end of the trial period the customer will get before being charged for the first time, if the update is applied. + """ + trial_from_plan: Optional[bool] + """ + Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more. + """ + + class TransferData(StripeObject): + amount_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: ExpandableField["Account"] + """ + The account where funds from the payment will be transferred to upon payment success. + """ + + class TrialSettings(StripeObject): + class EndBehavior(StripeObject): + missing_payment_method: Literal[ + "cancel", "create_invoice", "pause" + ] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ + + end_behavior: EndBehavior + """ + Defines how a subscription behaves when a free trial ends. + """ + _inner_class_types = {"end_behavior": EndBehavior} + + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect Application that created the subscription. + """ + application_fee_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. + """ + automatic_tax: AutomaticTax + billing_cycle_anchor: int + """ + The reference point that aligns future [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle) dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals. The timestamp is in UTC format. + """ + billing_cycle_anchor_config: Optional[BillingCycleAnchorConfig] + """ + The fixed values used to calculate the `billing_cycle_anchor`. + """ + billing_mode: BillingMode + """ + The billing mode of the subscription. + """ + billing_thresholds: Optional[BillingThresholds] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period + """ + cancel_at: Optional[int] + """ + A date in the future at which the subscription will automatically get canceled + """ + cancel_at_period_end: bool + """ + Whether this subscription will (if `status=active`) or did (if `status=canceled`) cancel at the end of the current billing period. + """ + canceled_at: Optional[int] + """ + If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with `cancel_at_period_end`, `canceled_at` will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state. + """ + cancellation_details: Optional[CancellationDetails] + """ + Details about why this subscription was cancelled + """ + collection_method: Literal["charge_automatically", "send_invoice"] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: ExpandableField["Customer"] + """ + ID of the customer who owns the subscription. + """ + days_until_due: Optional[int] + """ + Number of days a customer has to pay invoices generated by this subscription. This value will be `null` for subscriptions where `collection_method=charge_automatically`. + """ + default_payment_method: Optional[ExpandableField["PaymentMethod"]] + """ + ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_source: Optional[ + ExpandableField[ + Union["Account", "BankAccount", "CardResource", "Source"] + ] + ] + """ + ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_tax_rates: Optional[List["TaxRate"]] + """ + The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. + """ + description: Optional[str] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: List[ExpandableField["Discount"]] + """ + The discounts applied to the subscription. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount. + """ + ended_at: Optional[int] + """ + If the subscription has ended, the date the subscription ended. + """ + id: str + """ + Unique identifier for the object. + """ + invoice_settings: InvoiceSettings + items: ListObject["SubscriptionItem"] + """ + List of subscription items, each with an attached price. + """ + latest_invoice: Optional[ExpandableField["Invoice"]] + """ + The most recent invoice this subscription has generated. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + next_pending_invoice_item_invoice: Optional[int] + """ + Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at `pending_invoice_item_interval`. + """ + object: Literal["subscription"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account (if any) the charge was made on behalf of for charges associated with this subscription. See the [Connect documentation](https://stripe.com/docs/connect/subscriptions#on-behalf-of) for details. + """ + pause_collection: Optional[PauseCollection] + """ + If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment). + """ + payment_settings: Optional[PaymentSettings] + """ + Payment settings passed on to invoices created by the subscription. + """ + pending_invoice_item_interval: Optional[PendingInvoiceItemInterval] + """ + Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval. + """ + pending_setup_intent: Optional[ExpandableField["SetupIntent"]] + """ + You can use this [SetupIntent](https://stripe.com/docs/api/setup_intents) to collect user authentication when creating a subscription without immediate payment or updating a subscription's payment method, allowing you to optimize for off-session payments. Learn more in the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication#scenario-2). + """ + pending_update: Optional[PendingUpdate] + """ + If specified, [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates) that will be applied to the subscription once the `latest_invoice` has been paid. + """ + schedule: Optional[ExpandableField["SubscriptionSchedule"]] + """ + The schedule attached to the subscription + """ + start_date: int + """ + Date when the subscription was first created. The date might differ from the `created` date due to backdating. + """ + status: Literal[ + "active", + "canceled", + "incomplete", + "incomplete_expired", + "past_due", + "paused", + "trialing", + "unpaid", + ] + """ + Possible values are `incomplete`, `incomplete_expired`, `trialing`, `active`, `past_due`, `canceled`, `unpaid`, or `paused`. + + For `collection_method=charge_automatically` a subscription moves into `incomplete` if the initial payment attempt fails. A subscription in this status can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an `active` status. If the first invoice is not paid within 23 hours, the subscription transitions to `incomplete_expired`. This is a terminal status, the open invoice will be voided and no further invoices will be generated. + + A subscription that is currently in a trial period is `trialing` and moves to `active` when the trial period is over. + + A subscription can only enter a `paused` status [when a trial ends without a payment method](https://stripe.com/docs/billing/subscriptions/trials#create-free-trials-without-payment). A `paused` subscription doesn't generate invoices and can be resumed after your customer adds their payment method. The `paused` status is different from [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment), which still generates invoices and leaves the subscription's status unchanged. + + If subscription `collection_method=charge_automatically`, it becomes `past_due` when payment is required but cannot be paid (due to failed payment or awaiting additional user actions). Once Stripe has exhausted all payment retry attempts, the subscription will become `canceled` or `unpaid` (depending on your subscriptions settings). + + If subscription `collection_method=send_invoice` it becomes `past_due` when its invoice is not paid by the due date, and `canceled` or `unpaid` if it is still not paid by an additional deadline after that. Note that when a subscription has a status of `unpaid`, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices. + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock this subscription belongs to. + """ + transfer_data: Optional[TransferData] + """ + The account (if any) the subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices. + """ + trial_end: Optional[int] + """ + If the subscription has a trial, the end of that trial. + """ + trial_settings: Optional[TrialSettings] + """ + Settings related to subscription trials. + """ + trial_start: Optional[int] + """ + If the subscription has a trial, the beginning of that trial. + """ + + @classmethod + def _cls_cancel( + cls, + subscription_exposed_id: str, + **params: Unpack["SubscriptionCancelParams"], + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + return cast( + "Subscription", + cls._static_request( + "delete", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + subscription_exposed_id: str, + **params: Unpack["SubscriptionCancelParams"], + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + ... + + @overload + def cancel( + self, **params: Unpack["SubscriptionCancelParams"] + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionCancelParams"] + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + return cast( + "Subscription", + self._request( + "delete", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, + subscription_exposed_id: str, + **params: Unpack["SubscriptionCancelParams"], + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + return cast( + "Subscription", + await cls._static_request_async( + "delete", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + subscription_exposed_id: str, + **params: Unpack["SubscriptionCancelParams"], + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["SubscriptionCancelParams"] + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionCancelParams"] + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + return cast( + "Subscription", + await self._request_async( + "delete", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["SubscriptionCreateParams"] + ) -> "Subscription": + """ + Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions. + + When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request. + The payment_behavior parameter determines the exact behavior of the initial payment. + + To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://docs.stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead. + Schedules provide the flexibility to model more complex billing configurations that change over time. + """ + return cast( + "Subscription", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SubscriptionCreateParams"] + ) -> "Subscription": + """ + Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions. + + When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request. + The payment_behavior parameter determines the exact behavior of the initial payment. + + To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://docs.stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead. + Schedules provide the flexibility to model more complex billing configurations that change over time. + """ + return cast( + "Subscription", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete_discount( + cls, + subscription_exposed_id: str, + **params: Unpack["SubscriptionDeleteDiscountParams"], + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + return cast( + "Discount", + cls._static_request( + "delete", + "/v1/subscriptions/{subscription_exposed_id}/discount".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + def delete_discount( + subscription_exposed_id: str, + **params: Unpack["SubscriptionDeleteDiscountParams"], + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + ... + + @overload + def delete_discount( + self, **params: Unpack["SubscriptionDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + ... + + @class_method_variant("_cls_delete_discount") + def delete_discount( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + return cast( + "Discount", + self._request( + "delete", + "/v1/subscriptions/{subscription_exposed_id}/discount".format( + subscription_exposed_id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_delete_discount_async( + cls, + subscription_exposed_id: str, + **params: Unpack["SubscriptionDeleteDiscountParams"], + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + return cast( + "Discount", + await cls._static_request_async( + "delete", + "/v1/subscriptions/{subscription_exposed_id}/discount".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def delete_discount_async( + subscription_exposed_id: str, + **params: Unpack["SubscriptionDeleteDiscountParams"], + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + ... + + @overload + async def delete_discount_async( + self, **params: Unpack["SubscriptionDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + ... + + @class_method_variant("_cls_delete_discount_async") + async def delete_discount_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionDeleteDiscountParams"] + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + return cast( + "Discount", + await self._request_async( + "delete", + "/v1/subscriptions/{subscription_exposed_id}/discount".format( + subscription_exposed_id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["SubscriptionListParams"] + ) -> ListObject["Subscription"]: + """ + By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SubscriptionListParams"] + ) -> ListObject["Subscription"]: + """ + By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_migrate( + cls, subscription: str, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + return cast( + "Subscription", + cls._static_request( + "post", + "/v1/subscriptions/{subscription}/migrate".format( + subscription=sanitize_id(subscription) + ), + params=params, + ), + ) + + @overload + @staticmethod + def migrate( + subscription: str, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + ... + + @overload + def migrate( + self, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + ... + + @class_method_variant("_cls_migrate") + def migrate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + return cast( + "Subscription", + self._request( + "post", + "/v1/subscriptions/{subscription}/migrate".format( + subscription=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_migrate_async( + cls, subscription: str, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + return cast( + "Subscription", + await cls._static_request_async( + "post", + "/v1/subscriptions/{subscription}/migrate".format( + subscription=sanitize_id(subscription) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def migrate_async( + subscription: str, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + ... + + @overload + async def migrate_async( + self, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + ... + + @class_method_variant("_cls_migrate_async") + async def migrate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionMigrateParams"] + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + return cast( + "Subscription", + await self._request_async( + "post", + "/v1/subscriptions/{subscription}/migrate".format( + subscription=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def modify( + cls, id: str, **params: Unpack["SubscriptionModifyParams"] + ) -> "Subscription": + """ + Updates an existing subscription to match the specified parameters. + When changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes. + To preview how the proration is calculated, use the [create preview](https://docs.stripe.com/docs/api/invoices/create_preview) endpoint. + + By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they'll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they'll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month's 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes. + + Switching prices does not normally change the billing date or generate an immediate charge unless: + + + The billing interval is changed (for example, from monthly to yearly). + The subscription moves from free to paid. + A trial starts or ends. + + + In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date. Learn about how [Stripe immediately attempts payment for subscription changes](https://docs.stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment). + + If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://docs.stripe.com/docs/api/invoices/create). + + If you don't want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don't generate any credits for the old subscription's unused time. We still reset the billing date and bill immediately for the new subscription. + + Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating usage-based billing](https://docs.stripe.com/docs/rate-limits) instead. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Subscription", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["SubscriptionModifyParams"] + ) -> "Subscription": + """ + Updates an existing subscription to match the specified parameters. + When changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes. + To preview how the proration is calculated, use the [create preview](https://docs.stripe.com/docs/api/invoices/create_preview) endpoint. + + By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they'll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they'll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month's 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes. + + Switching prices does not normally change the billing date or generate an immediate charge unless: + + + The billing interval is changed (for example, from monthly to yearly). + The subscription moves from free to paid. + A trial starts or ends. + + + In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date. Learn about how [Stripe immediately attempts payment for subscription changes](https://docs.stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment). + + If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://docs.stripe.com/docs/api/invoices/create). + + If you don't want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don't generate any credits for the old subscription's unused time. We still reset the billing date and bill immediately for the new subscription. + + Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating usage-based billing](https://docs.stripe.com/docs/rate-limits) instead. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Subscription", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def _cls_resume( + cls, subscription: str, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + return cast( + "Subscription", + cls._static_request( + "post", + "/v1/subscriptions/{subscription}/resume".format( + subscription=sanitize_id(subscription) + ), + params=params, + ), + ) + + @overload + @staticmethod + def resume( + subscription: str, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + ... + + @overload + def resume( + self, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + ... + + @class_method_variant("_cls_resume") + def resume( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + return cast( + "Subscription", + self._request( + "post", + "/v1/subscriptions/{subscription}/resume".format( + subscription=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_resume_async( + cls, subscription: str, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + return cast( + "Subscription", + await cls._static_request_async( + "post", + "/v1/subscriptions/{subscription}/resume".format( + subscription=sanitize_id(subscription) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def resume_async( + subscription: str, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + ... + + @overload + async def resume_async( + self, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + ... + + @class_method_variant("_cls_resume_async") + async def resume_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionResumeParams"] + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + return cast( + "Subscription", + await self._request_async( + "post", + "/v1/subscriptions/{subscription}/resume".format( + subscription=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SubscriptionRetrieveParams"] + ) -> "Subscription": + """ + Retrieves the subscription with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SubscriptionRetrieveParams"] + ) -> "Subscription": + """ + Retrieves the subscription with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def search( + cls, *args, **kwargs: Unpack["SubscriptionSearchParams"] + ) -> SearchResultObject["Subscription"]: + """ + Search for subscriptions you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cls._search( + search_url="/v1/subscriptions/search", *args, **kwargs + ) + + @classmethod + async def search_async( + cls, *args, **kwargs: Unpack["SubscriptionSearchParams"] + ) -> SearchResultObject["Subscription"]: + """ + Search for subscriptions you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return await cls._search_async( + search_url="/v1/subscriptions/search", *args, **kwargs + ) + + @classmethod + def search_auto_paging_iter( + cls, *args, **kwargs: Unpack["SubscriptionSearchParams"] + ) -> Iterator["Subscription"]: + return cls.search(*args, **kwargs).auto_paging_iter() + + @classmethod + async def search_auto_paging_iter_async( + cls, *args, **kwargs: Unpack["SubscriptionSearchParams"] + ) -> AsyncIterator["Subscription"]: + return (await cls.search_async(*args, **kwargs)).auto_paging_iter() + + _inner_class_types = { + "automatic_tax": AutomaticTax, + "billing_cycle_anchor_config": BillingCycleAnchorConfig, + "billing_mode": BillingMode, + "billing_thresholds": BillingThresholds, + "cancellation_details": CancellationDetails, + "invoice_settings": InvoiceSettings, + "pause_collection": PauseCollection, + "payment_settings": PaymentSettings, + "pending_invoice_item_interval": PendingInvoiceItemInterval, + "pending_update": PendingUpdate, + "transfer_data": TransferData, + "trial_settings": TrialSettings, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_item.py new file mode 100644 index 00000000..939eb0b8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_item.py @@ -0,0 +1,350 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._discount import Discount + from stripe._plan import Plan + from stripe._price import Price + from stripe._tax_rate import TaxRate + from stripe.params._subscription_item_create_params import ( + SubscriptionItemCreateParams, + ) + from stripe.params._subscription_item_delete_params import ( + SubscriptionItemDeleteParams, + ) + from stripe.params._subscription_item_list_params import ( + SubscriptionItemListParams, + ) + from stripe.params._subscription_item_modify_params import ( + SubscriptionItemModifyParams, + ) + from stripe.params._subscription_item_retrieve_params import ( + SubscriptionItemRetrieveParams, + ) + + +class SubscriptionItem( + CreateableAPIResource["SubscriptionItem"], + DeletableAPIResource["SubscriptionItem"], + ListableAPIResource["SubscriptionItem"], + UpdateableAPIResource["SubscriptionItem"], +): + """ + Subscription items allow you to create customer subscriptions with more than + one plan, making it easy to represent complex billing relationships. + """ + + OBJECT_NAME: ClassVar[Literal["subscription_item"]] = "subscription_item" + + class BillingThresholds(StripeObject): + usage_gte: Optional[int] + """ + Usage threshold that triggers the subscription to create an invoice + """ + + billing_thresholds: Optional[BillingThresholds] + """ + Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + current_period_end: int + """ + The end time of this subscription item's current billing period. + """ + current_period_start: int + """ + The start time of this subscription item's current billing period. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + discounts: List[ExpandableField["Discount"]] + """ + The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount. + """ + id: str + """ + Unique identifier for the object. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["subscription_item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + plan: "Plan" + """ + You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. + + Plans define the base price, currency, and billing cycle for recurring purchases of products. + [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme. + + For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year. + + Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription) and more about [products and prices](https://stripe.com/docs/products-prices/overview). + """ + price: "Price" + """ + Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. + [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme. + + For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once. + + Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription), [create an invoice](https://stripe.com/docs/billing/invoices/create), and more about [products and prices](https://stripe.com/docs/products-prices/overview). + """ + quantity: Optional[int] + """ + The [quantity](https://stripe.com/docs/subscriptions/quantities) of the plan to which the customer should be subscribed. + """ + subscription: str + """ + The `subscription` this `subscription_item` belongs to. + """ + tax_rates: Optional[List["TaxRate"]] + """ + The tax rates which apply to this `subscription_item`. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`. + """ + + @classmethod + def create( + cls, **params: Unpack["SubscriptionItemCreateParams"] + ) -> "SubscriptionItem": + """ + Adds a new item to an existing subscription. No existing items will be changed or replaced. + """ + return cast( + "SubscriptionItem", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SubscriptionItemCreateParams"] + ) -> "SubscriptionItem": + """ + Adds a new item to an existing subscription. No existing items will be changed or replaced. + """ + return cast( + "SubscriptionItem", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "SubscriptionItem", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + ... + + @overload + def delete( + self, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "SubscriptionItem", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionItemDeleteParams"] + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["SubscriptionItemListParams"] + ) -> ListObject["SubscriptionItem"]: + """ + Returns a list of your subscription items for a given subscription. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SubscriptionItemListParams"] + ) -> ListObject["SubscriptionItem"]: + """ + Returns a list of your subscription items for a given subscription. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["SubscriptionItemModifyParams"] + ) -> "SubscriptionItem": + """ + Updates the plan or quantity of an item on a current subscription. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "SubscriptionItem", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["SubscriptionItemModifyParams"] + ) -> "SubscriptionItem": + """ + Updates the plan or quantity of an item on a current subscription. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "SubscriptionItem", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SubscriptionItemRetrieveParams"] + ) -> "SubscriptionItem": + """ + Retrieves the subscription item with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SubscriptionItemRetrieveParams"] + ) -> "SubscriptionItem": + """ + Retrieves the subscription item with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"billing_thresholds": BillingThresholds} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_item_service.py new file mode 100644 index 00000000..30440433 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_item_service.py @@ -0,0 +1,224 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._subscription_item import SubscriptionItem + from stripe.params._subscription_item_create_params import ( + SubscriptionItemCreateParams, + ) + from stripe.params._subscription_item_delete_params import ( + SubscriptionItemDeleteParams, + ) + from stripe.params._subscription_item_list_params import ( + SubscriptionItemListParams, + ) + from stripe.params._subscription_item_retrieve_params import ( + SubscriptionItemRetrieveParams, + ) + from stripe.params._subscription_item_update_params import ( + SubscriptionItemUpdateParams, + ) + + +class SubscriptionItemService(StripeService): + def delete( + self, + item: str, + params: Optional["SubscriptionItemDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + return cast( + "SubscriptionItem", + self._request( + "delete", + "/v1/subscription_items/{item}".format(item=sanitize_id(item)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + item: str, + params: Optional["SubscriptionItemDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription. + """ + return cast( + "SubscriptionItem", + await self._request_async( + "delete", + "/v1/subscription_items/{item}".format(item=sanitize_id(item)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + item: str, + params: Optional["SubscriptionItemRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Retrieves the subscription item with the given ID. + """ + return cast( + "SubscriptionItem", + self._request( + "get", + "/v1/subscription_items/{item}".format(item=sanitize_id(item)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + item: str, + params: Optional["SubscriptionItemRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Retrieves the subscription item with the given ID. + """ + return cast( + "SubscriptionItem", + await self._request_async( + "get", + "/v1/subscription_items/{item}".format(item=sanitize_id(item)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + item: str, + params: Optional["SubscriptionItemUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Updates the plan or quantity of an item on a current subscription. + """ + return cast( + "SubscriptionItem", + self._request( + "post", + "/v1/subscription_items/{item}".format(item=sanitize_id(item)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + item: str, + params: Optional["SubscriptionItemUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Updates the plan or quantity of an item on a current subscription. + """ + return cast( + "SubscriptionItem", + await self._request_async( + "post", + "/v1/subscription_items/{item}".format(item=sanitize_id(item)), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: "SubscriptionItemListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SubscriptionItem]": + """ + Returns a list of your subscription items for a given subscription. + """ + return cast( + "ListObject[SubscriptionItem]", + self._request( + "get", + "/v1/subscription_items", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "SubscriptionItemListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SubscriptionItem]": + """ + Returns a list of your subscription items for a given subscription. + """ + return cast( + "ListObject[SubscriptionItem]", + await self._request_async( + "get", + "/v1/subscription_items", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "SubscriptionItemCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Adds a new item to an existing subscription. No existing items will be changed or replaced. + """ + return cast( + "SubscriptionItem", + self._request( + "post", + "/v1/subscription_items", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "SubscriptionItemCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionItem": + """ + Adds a new item to an existing subscription. No existing items will be changed or replaced. + """ + return cast( + "SubscriptionItem", + await self._request_async( + "post", + "/v1/subscription_items", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_schedule.py b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_schedule.py new file mode 100644 index 00000000..3a2279d1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_schedule.py @@ -0,0 +1,938 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._coupon import Coupon + from stripe._customer import Customer + from stripe._discount import Discount as DiscountResource + from stripe._payment_method import PaymentMethod + from stripe._plan import Plan + from stripe._price import Price + from stripe._promotion_code import PromotionCode + from stripe._subscription import Subscription + from stripe._tax_id import TaxId + from stripe._tax_rate import TaxRate + from stripe.params._subscription_schedule_cancel_params import ( + SubscriptionScheduleCancelParams, + ) + from stripe.params._subscription_schedule_create_params import ( + SubscriptionScheduleCreateParams, + ) + from stripe.params._subscription_schedule_list_params import ( + SubscriptionScheduleListParams, + ) + from stripe.params._subscription_schedule_modify_params import ( + SubscriptionScheduleModifyParams, + ) + from stripe.params._subscription_schedule_release_params import ( + SubscriptionScheduleReleaseParams, + ) + from stripe.params._subscription_schedule_retrieve_params import ( + SubscriptionScheduleRetrieveParams, + ) + from stripe.test_helpers._test_clock import TestClock + + +class SubscriptionSchedule( + CreateableAPIResource["SubscriptionSchedule"], + ListableAPIResource["SubscriptionSchedule"], + UpdateableAPIResource["SubscriptionSchedule"], +): + """ + A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes. + + Related guide: [Subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules) + """ + + OBJECT_NAME: ClassVar[Literal["subscription_schedule"]] = ( + "subscription_schedule" + ) + + class BillingMode(StripeObject): + class Flexible(StripeObject): + proration_discounts: Optional[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + flexible: Optional[Flexible] + """ + Configure behavior for flexible billing mode + """ + type: Literal["classic", "flexible"] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + updated_at: Optional[int] + """ + Details on when the current billing_mode was adopted. + """ + _inner_class_types = {"flexible": Flexible} + + class CurrentPhase(StripeObject): + end_date: int + """ + The end of this phase of the subscription schedule. + """ + start_date: int + """ + The start of this phase of the subscription schedule. + """ + + class DefaultSettings(StripeObject): + class AutomaticTax(StripeObject): + class Liability(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + disabled_reason: Optional[Literal["requires_location_inputs"]] + """ + If Stripe disabled automatic tax, this enum describes why. + """ + enabled: bool + """ + Whether Stripe automatically computes tax on invoices created during this phase. + """ + liability: Optional[Liability] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + _inner_class_types = {"liability": Liability} + + class BillingThresholds(StripeObject): + amount_gte: Optional[int] + """ + Monetary threshold that triggers the subscription to create an invoice + """ + reset_billing_cycle_anchor: Optional[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`. + """ + + class InvoiceSettings(StripeObject): + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + account_tax_ids: Optional[List[ExpandableField["TaxId"]]] + """ + The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule. + """ + days_until_due: Optional[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`. + """ + issuer: Issuer + _inner_class_types = {"issuer": Issuer} + + class TransferData(StripeObject): + amount_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: ExpandableField["Account"] + """ + The account where funds from the payment will be transferred to upon payment success. + """ + + application_fee_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule. + """ + automatic_tax: Optional[AutomaticTax] + billing_cycle_anchor: Literal["automatic", "phase_start"] + """ + Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: Optional[BillingThresholds] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period + """ + collection_method: Optional[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. + """ + default_payment_method: Optional[ExpandableField["PaymentMethod"]] + """ + ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + description: Optional[str] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + invoice_settings: InvoiceSettings + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details. + """ + transfer_data: Optional[TransferData] + """ + The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices. + """ + _inner_class_types = { + "automatic_tax": AutomaticTax, + "billing_thresholds": BillingThresholds, + "invoice_settings": InvoiceSettings, + "transfer_data": TransferData, + } + + class Phase(StripeObject): + class AddInvoiceItem(StripeObject): + class Discount(StripeObject): + coupon: Optional[ExpandableField["Coupon"]] + """ + ID of the coupon to create a new discount for. + """ + discount: Optional[ExpandableField["DiscountResource"]] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: Optional[ExpandableField["PromotionCode"]] + """ + ID of the promotion code to create a new discount for. + """ + + class Period(StripeObject): + class End(StripeObject): + timestamp: Optional[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal[ + "min_item_period_end", "phase_end", "timestamp" + ] + """ + Select how to calculate the end of the invoice item period. + """ + + class Start(StripeObject): + timestamp: Optional[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal[ + "max_item_period_start", "phase_start", "timestamp" + ] + """ + Select how to calculate the start of the invoice item period. + """ + + end: End + start: Start + _inner_class_types = {"end": End, "start": Start} + + discounts: List[Discount] + """ + The stackable discounts that will be applied to the item. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + period: Period + price: ExpandableField["Price"] + """ + ID of the price used to generate the invoice item. + """ + quantity: Optional[int] + """ + The quantity of the invoice item. + """ + tax_rates: Optional[List["TaxRate"]] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + _inner_class_types = {"discounts": Discount, "period": Period} + + class AutomaticTax(StripeObject): + class Liability(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + disabled_reason: Optional[Literal["requires_location_inputs"]] + """ + If Stripe disabled automatic tax, this enum describes why. + """ + enabled: bool + """ + Whether Stripe automatically computes tax on invoices created during this phase. + """ + liability: Optional[Liability] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + _inner_class_types = {"liability": Liability} + + class BillingThresholds(StripeObject): + amount_gte: Optional[int] + """ + Monetary threshold that triggers the subscription to create an invoice + """ + reset_billing_cycle_anchor: Optional[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`. + """ + + class Discount(StripeObject): + coupon: Optional[ExpandableField["Coupon"]] + """ + ID of the coupon to create a new discount for. + """ + discount: Optional[ExpandableField["DiscountResource"]] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: Optional[ExpandableField["PromotionCode"]] + """ + ID of the promotion code to create a new discount for. + """ + + class InvoiceSettings(StripeObject): + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + account_tax_ids: Optional[List[ExpandableField["TaxId"]]] + """ + The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule. + """ + days_until_due: Optional[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`. + """ + issuer: Optional[Issuer] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + _inner_class_types = {"issuer": Issuer} + + class Item(StripeObject): + class BillingThresholds(StripeObject): + usage_gte: Optional[int] + """ + Usage threshold that triggers the subscription to create an invoice + """ + + class Discount(StripeObject): + coupon: Optional[ExpandableField["Coupon"]] + """ + ID of the coupon to create a new discount for. + """ + discount: Optional[ExpandableField["DiscountResource"]] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: Optional[ExpandableField["PromotionCode"]] + """ + ID of the promotion code to create a new discount for. + """ + + billing_thresholds: Optional[BillingThresholds] + """ + Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period + """ + discounts: List[Discount] + """ + The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an item. Metadata on this item will update the underlying subscription item's `metadata` when the phase is entered. + """ + plan: ExpandableField["Plan"] + """ + ID of the plan to which the customer should be subscribed. + """ + price: ExpandableField["Price"] + """ + ID of the price to which the customer should be subscribed. + """ + quantity: Optional[int] + """ + Quantity of the plan to which the customer should be subscribed. + """ + tax_rates: Optional[List["TaxRate"]] + """ + The tax rates which apply to this `phase_item`. When set, the `default_tax_rates` on the phase do not apply to this `phase_item`. + """ + _inner_class_types = { + "billing_thresholds": BillingThresholds, + "discounts": Discount, + } + + class TransferData(StripeObject): + amount_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: ExpandableField["Account"] + """ + The account where funds from the payment will be transferred to upon payment success. + """ + + add_invoice_items: List[AddInvoiceItem] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. + """ + application_fee_percent: Optional[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule. + """ + automatic_tax: Optional[AutomaticTax] + billing_cycle_anchor: Optional[Literal["automatic", "phase_start"]] + """ + Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: Optional[BillingThresholds] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period + """ + collection_method: Optional[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + default_payment_method: Optional[ExpandableField["PaymentMethod"]] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + default_tax_rates: Optional[List["TaxRate"]] + """ + The default tax rates to apply to the subscription during this phase of the subscription schedule. + """ + description: Optional[str] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: List[Discount] + """ + The stackable discounts that will be applied to the subscription on this phase. Subscription item discounts are applied before subscription discounts. + """ + end_date: int + """ + The end of this phase of the subscription schedule. + """ + invoice_settings: Optional[InvoiceSettings] + """ + The invoice settings applicable during this phase. + """ + items: List[Item] + """ + Subscription items to configure the subscription to during this phase of the subscription schedule. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered. Updating the underlying subscription's `metadata` directly will not affect the current phase's `metadata`. + """ + on_behalf_of: Optional[ExpandableField["Account"]] + """ + The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details. + """ + proration_behavior: Literal[ + "always_invoice", "create_prorations", "none" + ] + """ + When transitioning phases, controls how prorations are handled (if any). Possible values are `create_prorations`, `none`, and `always_invoice`. + """ + start_date: int + """ + The start of this phase of the subscription schedule. + """ + transfer_data: Optional[TransferData] + """ + The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices. + """ + trial_end: Optional[int] + """ + When the trial ends within the phase. + """ + _inner_class_types = { + "add_invoice_items": AddInvoiceItem, + "automatic_tax": AutomaticTax, + "billing_thresholds": BillingThresholds, + "discounts": Discount, + "invoice_settings": InvoiceSettings, + "items": Item, + "transfer_data": TransferData, + } + + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect Application that created the schedule. + """ + billing_mode: BillingMode + """ + The billing mode of the subscription. + """ + canceled_at: Optional[int] + """ + Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch. + """ + completed_at: Optional[int] + """ + Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + current_phase: Optional[CurrentPhase] + """ + Object representing the start and end dates for the current phase of the subscription schedule, if it is `active`. + """ + customer: ExpandableField["Customer"] + """ + ID of the customer who owns the subscription schedule. + """ + default_settings: DefaultSettings + end_behavior: Literal["cancel", "none", "release", "renew"] + """ + Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["subscription_schedule"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + phases: List[Phase] + """ + Configuration for the subscription schedule's phases. + """ + released_at: Optional[int] + """ + Time at which the subscription schedule was released. Measured in seconds since the Unix epoch. + """ + released_subscription: Optional[str] + """ + ID of the subscription once managed by the subscription schedule (if it is released). + """ + status: Literal[ + "active", "canceled", "completed", "not_started", "released" + ] + """ + The present status of the subscription schedule. Possible values are `not_started`, `active`, `completed`, `released`, and `canceled`. You can read more about the different states in our [behavior guide](https://stripe.com/docs/billing/subscriptions/subscription-schedules). + """ + subscription: Optional[ExpandableField["Subscription"]] + """ + ID of the subscription managed by the subscription schedule. + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock this subscription schedule belongs to. + """ + + @classmethod + def _cls_cancel( + cls, + schedule: str, + **params: Unpack["SubscriptionScheduleCancelParams"], + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + return cast( + "SubscriptionSchedule", + cls._static_request( + "post", + "/v1/subscription_schedules/{schedule}/cancel".format( + schedule=sanitize_id(schedule) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + schedule: str, **params: Unpack["SubscriptionScheduleCancelParams"] + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + ... + + @overload + def cancel( + self, **params: Unpack["SubscriptionScheduleCancelParams"] + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionScheduleCancelParams"] + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + return cast( + "SubscriptionSchedule", + self._request( + "post", + "/v1/subscription_schedules/{schedule}/cancel".format( + schedule=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, + schedule: str, + **params: Unpack["SubscriptionScheduleCancelParams"], + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + return cast( + "SubscriptionSchedule", + await cls._static_request_async( + "post", + "/v1/subscription_schedules/{schedule}/cancel".format( + schedule=sanitize_id(schedule) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + schedule: str, **params: Unpack["SubscriptionScheduleCancelParams"] + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["SubscriptionScheduleCancelParams"] + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionScheduleCancelParams"] + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + return cast( + "SubscriptionSchedule", + await self._request_async( + "post", + "/v1/subscription_schedules/{schedule}/cancel".format( + schedule=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["SubscriptionScheduleCreateParams"] + ) -> "SubscriptionSchedule": + """ + Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions. + """ + return cast( + "SubscriptionSchedule", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SubscriptionScheduleCreateParams"] + ) -> "SubscriptionSchedule": + """ + Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions. + """ + return cast( + "SubscriptionSchedule", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["SubscriptionScheduleListParams"] + ) -> ListObject["SubscriptionSchedule"]: + """ + Retrieves the list of your subscription schedules. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SubscriptionScheduleListParams"] + ) -> ListObject["SubscriptionSchedule"]: + """ + Retrieves the list of your subscription schedules. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["SubscriptionScheduleModifyParams"] + ) -> "SubscriptionSchedule": + """ + Updates an existing subscription schedule. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "SubscriptionSchedule", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["SubscriptionScheduleModifyParams"] + ) -> "SubscriptionSchedule": + """ + Updates an existing subscription schedule. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "SubscriptionSchedule", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def _cls_release( + cls, + schedule: str, + **params: Unpack["SubscriptionScheduleReleaseParams"], + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + return cast( + "SubscriptionSchedule", + cls._static_request( + "post", + "/v1/subscription_schedules/{schedule}/release".format( + schedule=sanitize_id(schedule) + ), + params=params, + ), + ) + + @overload + @staticmethod + def release( + schedule: str, **params: Unpack["SubscriptionScheduleReleaseParams"] + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + ... + + @overload + def release( + self, **params: Unpack["SubscriptionScheduleReleaseParams"] + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + ... + + @class_method_variant("_cls_release") + def release( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionScheduleReleaseParams"] + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + return cast( + "SubscriptionSchedule", + self._request( + "post", + "/v1/subscription_schedules/{schedule}/release".format( + schedule=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_release_async( + cls, + schedule: str, + **params: Unpack["SubscriptionScheduleReleaseParams"], + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + return cast( + "SubscriptionSchedule", + await cls._static_request_async( + "post", + "/v1/subscription_schedules/{schedule}/release".format( + schedule=sanitize_id(schedule) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def release_async( + schedule: str, **params: Unpack["SubscriptionScheduleReleaseParams"] + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + ... + + @overload + async def release_async( + self, **params: Unpack["SubscriptionScheduleReleaseParams"] + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + ... + + @class_method_variant("_cls_release_async") + async def release_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SubscriptionScheduleReleaseParams"] + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + return cast( + "SubscriptionSchedule", + await self._request_async( + "post", + "/v1/subscription_schedules/{schedule}/release".format( + schedule=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SubscriptionScheduleRetrieveParams"] + ) -> "SubscriptionSchedule": + """ + Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SubscriptionScheduleRetrieveParams"] + ) -> "SubscriptionSchedule": + """ + Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "billing_mode": BillingMode, + "current_phase": CurrentPhase, + "default_settings": DefaultSettings, + "phases": Phase, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_schedule_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_schedule_service.py new file mode 100644 index 00000000..ec9e7441 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_schedule_service.py @@ -0,0 +1,283 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._subscription_schedule import SubscriptionSchedule + from stripe.params._subscription_schedule_cancel_params import ( + SubscriptionScheduleCancelParams, + ) + from stripe.params._subscription_schedule_create_params import ( + SubscriptionScheduleCreateParams, + ) + from stripe.params._subscription_schedule_list_params import ( + SubscriptionScheduleListParams, + ) + from stripe.params._subscription_schedule_release_params import ( + SubscriptionScheduleReleaseParams, + ) + from stripe.params._subscription_schedule_retrieve_params import ( + SubscriptionScheduleRetrieveParams, + ) + from stripe.params._subscription_schedule_update_params import ( + SubscriptionScheduleUpdateParams, + ) + + +class SubscriptionScheduleService(StripeService): + def list( + self, + params: Optional["SubscriptionScheduleListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SubscriptionSchedule]": + """ + Retrieves the list of your subscription schedules. + """ + return cast( + "ListObject[SubscriptionSchedule]", + self._request( + "get", + "/v1/subscription_schedules", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["SubscriptionScheduleListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[SubscriptionSchedule]": + """ + Retrieves the list of your subscription schedules. + """ + return cast( + "ListObject[SubscriptionSchedule]", + await self._request_async( + "get", + "/v1/subscription_schedules", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["SubscriptionScheduleCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions. + """ + return cast( + "SubscriptionSchedule", + self._request( + "post", + "/v1/subscription_schedules", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["SubscriptionScheduleCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions. + """ + return cast( + "SubscriptionSchedule", + await self._request_async( + "post", + "/v1/subscription_schedules", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + schedule: str, + params: Optional["SubscriptionScheduleRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation. + """ + return cast( + "SubscriptionSchedule", + self._request( + "get", + "/v1/subscription_schedules/{schedule}".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + schedule: str, + params: Optional["SubscriptionScheduleRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation. + """ + return cast( + "SubscriptionSchedule", + await self._request_async( + "get", + "/v1/subscription_schedules/{schedule}".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + schedule: str, + params: Optional["SubscriptionScheduleUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Updates an existing subscription schedule. + """ + return cast( + "SubscriptionSchedule", + self._request( + "post", + "/v1/subscription_schedules/{schedule}".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + schedule: str, + params: Optional["SubscriptionScheduleUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Updates an existing subscription schedule. + """ + return cast( + "SubscriptionSchedule", + await self._request_async( + "post", + "/v1/subscription_schedules/{schedule}".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + schedule: str, + params: Optional["SubscriptionScheduleCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + return cast( + "SubscriptionSchedule", + self._request( + "post", + "/v1/subscription_schedules/{schedule}/cancel".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + schedule: str, + params: Optional["SubscriptionScheduleCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. + """ + return cast( + "SubscriptionSchedule", + await self._request_async( + "post", + "/v1/subscription_schedules/{schedule}/cancel".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def release( + self, + schedule: str, + params: Optional["SubscriptionScheduleReleaseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + return cast( + "SubscriptionSchedule", + self._request( + "post", + "/v1/subscription_schedules/{schedule}/release".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def release_async( + self, + schedule: str, + params: Optional["SubscriptionScheduleReleaseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "SubscriptionSchedule": + """ + Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property. + """ + return cast( + "SubscriptionSchedule", + await self._request_async( + "post", + "/v1/subscription_schedules/{schedule}/release".format( + schedule=sanitize_id(schedule), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_service.py new file mode 100644 index 00000000..a6ee5f99 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_subscription_service.py @@ -0,0 +1,500 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._discount import Discount + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._search_result_object import SearchResultObject + from stripe._subscription import Subscription + from stripe.params._subscription_cancel_params import ( + SubscriptionCancelParams, + ) + from stripe.params._subscription_create_params import ( + SubscriptionCreateParams, + ) + from stripe.params._subscription_delete_discount_params import ( + SubscriptionDeleteDiscountParams, + ) + from stripe.params._subscription_list_params import SubscriptionListParams + from stripe.params._subscription_migrate_params import ( + SubscriptionMigrateParams, + ) + from stripe.params._subscription_resume_params import ( + SubscriptionResumeParams, + ) + from stripe.params._subscription_retrieve_params import ( + SubscriptionRetrieveParams, + ) + from stripe.params._subscription_search_params import ( + SubscriptionSearchParams, + ) + from stripe.params._subscription_update_params import ( + SubscriptionUpdateParams, + ) + + +class SubscriptionService(StripeService): + def cancel( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + return cast( + "Subscription", + self._request( + "delete", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata). + + Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true. + + By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all. + """ + return cast( + "Subscription", + await self._request_async( + "delete", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Retrieves the subscription with the given ID. + """ + return cast( + "Subscription", + self._request( + "get", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Retrieves the subscription with the given ID. + """ + return cast( + "Subscription", + await self._request_async( + "get", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Updates an existing subscription to match the specified parameters. + When changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes. + To preview how the proration is calculated, use the [create preview](https://docs.stripe.com/docs/api/invoices/create_preview) endpoint. + + By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they'll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they'll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month's 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes. + + Switching prices does not normally change the billing date or generate an immediate charge unless: + + + The billing interval is changed (for example, from monthly to yearly). + The subscription moves from free to paid. + A trial starts or ends. + + + In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date. Learn about how [Stripe immediately attempts payment for subscription changes](https://docs.stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment). + + If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://docs.stripe.com/docs/api/invoices/create). + + If you don't want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don't generate any credits for the old subscription's unused time. We still reset the billing date and bill immediately for the new subscription. + + Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating usage-based billing](https://docs.stripe.com/docs/rate-limits) instead. + """ + return cast( + "Subscription", + self._request( + "post", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Updates an existing subscription to match the specified parameters. + When changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes. + To preview how the proration is calculated, use the [create preview](https://docs.stripe.com/docs/api/invoices/create_preview) endpoint. + + By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they'll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they'll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month's 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes. + + Switching prices does not normally change the billing date or generate an immediate charge unless: + + + The billing interval is changed (for example, from monthly to yearly). + The subscription moves from free to paid. + A trial starts or ends. + + + In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date. Learn about how [Stripe immediately attempts payment for subscription changes](https://docs.stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment). + + If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://docs.stripe.com/docs/api/invoices/create). + + If you don't want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don't generate any credits for the old subscription's unused time. We still reset the billing date and bill immediately for the new subscription. + + Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating usage-based billing](https://docs.stripe.com/docs/rate-limits) instead. + """ + return cast( + "Subscription", + await self._request_async( + "post", + "/v1/subscriptions/{subscription_exposed_id}".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def delete_discount( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionDeleteDiscountParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + return cast( + "Discount", + self._request( + "delete", + "/v1/subscriptions/{subscription_exposed_id}/discount".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_discount_async( + self, + subscription_exposed_id: str, + params: Optional["SubscriptionDeleteDiscountParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Discount": + """ + Removes the currently applied discount on a subscription. + """ + return cast( + "Discount", + await self._request_async( + "delete", + "/v1/subscriptions/{subscription_exposed_id}/discount".format( + subscription_exposed_id=sanitize_id( + subscription_exposed_id + ), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["SubscriptionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Subscription]": + """ + By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled. + """ + return cast( + "ListObject[Subscription]", + self._request( + "get", + "/v1/subscriptions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["SubscriptionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Subscription]": + """ + By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled. + """ + return cast( + "ListObject[Subscription]", + await self._request_async( + "get", + "/v1/subscriptions", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "SubscriptionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions. + + When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request. + The payment_behavior parameter determines the exact behavior of the initial payment. + + To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://docs.stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead. + Schedules provide the flexibility to model more complex billing configurations that change over time. + """ + return cast( + "Subscription", + self._request( + "post", + "/v1/subscriptions", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "SubscriptionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions. + + When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request. + The payment_behavior parameter determines the exact behavior of the initial payment. + + To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://docs.stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead. + Schedules provide the flexibility to model more complex billing configurations that change over time. + """ + return cast( + "Subscription", + await self._request_async( + "post", + "/v1/subscriptions", + base_address="api", + params=params, + options=options, + ), + ) + + def search( + self, + params: "SubscriptionSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Subscription]": + """ + Search for subscriptions you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Subscription]", + self._request( + "get", + "/v1/subscriptions/search", + base_address="api", + params=params, + options=options, + ), + ) + + async def search_async( + self, + params: "SubscriptionSearchParams", + options: Optional["RequestOptions"] = None, + ) -> "SearchResultObject[Subscription]": + """ + Search for subscriptions you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language). + Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating + conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + to an hour behind during outages. Search functionality is not available to merchants in India. + """ + return cast( + "SearchResultObject[Subscription]", + await self._request_async( + "get", + "/v1/subscriptions/search", + base_address="api", + params=params, + options=options, + ), + ) + + def migrate( + self, + subscription: str, + params: "SubscriptionMigrateParams", + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + return cast( + "Subscription", + self._request( + "post", + "/v1/subscriptions/{subscription}/migrate".format( + subscription=sanitize_id(subscription), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def migrate_async( + self, + subscription: str, + params: "SubscriptionMigrateParams", + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Upgrade the billing_mode of an existing subscription. + """ + return cast( + "Subscription", + await self._request_async( + "post", + "/v1/subscriptions/{subscription}/migrate".format( + subscription=sanitize_id(subscription), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def resume( + self, + subscription: str, + params: Optional["SubscriptionResumeParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + return cast( + "Subscription", + self._request( + "post", + "/v1/subscriptions/{subscription}/resume".format( + subscription=sanitize_id(subscription), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def resume_async( + self, + subscription: str, + params: Optional["SubscriptionResumeParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Subscription": + """ + Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date. + """ + return cast( + "Subscription", + await self._request_async( + "post", + "/v1/subscriptions/{subscription}/resume".format( + subscription=sanitize_id(subscription), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_code.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_code.py new file mode 100644 index 00000000..281a4985 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_code.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from typing import ClassVar +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._tax_code_list_params import TaxCodeListParams + from stripe.params._tax_code_retrieve_params import TaxCodeRetrieveParams + + +class TaxCode(ListableAPIResource["TaxCode"]): + """ + [Tax codes](https://stripe.com/docs/tax/tax-categories) classify goods and services for tax purposes. + """ + + OBJECT_NAME: ClassVar[Literal["tax_code"]] = "tax_code" + description: str + """ + A detailed description of which types of products the tax code represents. + """ + id: str + """ + Unique identifier for the object. + """ + name: str + """ + A short name for the tax code. + """ + object: Literal["tax_code"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def list( + cls, **params: Unpack["TaxCodeListParams"] + ) -> ListObject["TaxCode"]: + """ + A list of [all tax codes available](https://stripe.com/docs/tax/tax-categories) to add to Products in order to allow specific tax calculations. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TaxCodeListParams"] + ) -> ListObject["TaxCode"]: + """ + A list of [all tax codes available](https://stripe.com/docs/tax/tax-categories) to add to Products in order to allow specific tax calculations. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TaxCodeRetrieveParams"] + ) -> "TaxCode": + """ + Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TaxCodeRetrieveParams"] + ) -> "TaxCode": + """ + Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_code_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_code_service.py new file mode 100644 index 00000000..ed5f2a54 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_code_service.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._tax_code import TaxCode + from stripe.params._tax_code_list_params import TaxCodeListParams + from stripe.params._tax_code_retrieve_params import TaxCodeRetrieveParams + + +class TaxCodeService(StripeService): + def list( + self, + params: Optional["TaxCodeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxCode]": + """ + A list of [all tax codes available](https://stripe.com/docs/tax/tax-categories) to add to Products in order to allow specific tax calculations. + """ + return cast( + "ListObject[TaxCode]", + self._request( + "get", + "/v1/tax_codes", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["TaxCodeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxCode]": + """ + A list of [all tax codes available](https://stripe.com/docs/tax/tax-categories) to add to Products in order to allow specific tax calculations. + """ + return cast( + "ListObject[TaxCode]", + await self._request_async( + "get", + "/v1/tax_codes", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["TaxCodeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxCode": + """ + Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information. + """ + return cast( + "TaxCode", + self._request( + "get", + "/v1/tax_codes/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["TaxCodeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxCode": + """ + Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information. + """ + return cast( + "TaxCode", + await self._request_async( + "get", + "/v1/tax_codes/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_deducted_at_source.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_deducted_at_source.py new file mode 100644 index 00000000..a07bcf4c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_deducted_at_source.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal + + +class TaxDeductedAtSource(StripeObject): + OBJECT_NAME: ClassVar[Literal["tax_deducted_at_source"]] = ( + "tax_deducted_at_source" + ) + id: str + """ + Unique identifier for the object. + """ + object: Literal["tax_deducted_at_source"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + period_end: int + """ + The end of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period. + """ + period_start: int + """ + The start of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period. + """ + tax_deduction_account_number: str + """ + The TAN that was supplied to Stripe when TDS was assessed + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_id.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_id.py new file mode 100644 index 00000000..2a508a40 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_id.py @@ -0,0 +1,410 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._application import Application + from stripe._customer import Customer + from stripe.params._tax_id_create_params import TaxIdCreateParams + from stripe.params._tax_id_delete_params import TaxIdDeleteParams + from stripe.params._tax_id_list_params import TaxIdListParams + from stripe.params._tax_id_retrieve_params import TaxIdRetrieveParams + + +class TaxId( + CreateableAPIResource["TaxId"], + DeletableAPIResource["TaxId"], + ListableAPIResource["TaxId"], +): + """ + You can add one or multiple tax IDs to a [customer](https://stripe.com/docs/api/customers) or account. + Customer and account tax IDs get displayed on related invoices and credit notes. + + Related guides: [Customer tax identification numbers](https://stripe.com/docs/billing/taxes/tax-ids), [Account tax IDs](https://stripe.com/docs/invoicing/connect#account-tax-ids) + """ + + OBJECT_NAME: ClassVar[Literal["tax_id"]] = "tax_id" + + class Owner(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The account being referenced when `type` is `account`. + """ + application: Optional[ExpandableField["Application"]] + """ + The Connect Application being referenced when `type` is `application`. + """ + customer: Optional[ExpandableField["Customer"]] + """ + The customer being referenced when `type` is `customer`. + """ + type: Literal["account", "application", "customer", "self"] + """ + Type of owner referenced. + """ + + class Verification(StripeObject): + status: Literal["pending", "unavailable", "unverified", "verified"] + """ + Verification status, one of `pending`, `verified`, `unverified`, or `unavailable`. + """ + verified_address: Optional[str] + """ + Verified address. + """ + verified_name: Optional[str] + """ + Verified name. + """ + + country: Optional[str] + """ + Two-letter ISO code representing the country of the tax ID. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: Optional[ExpandableField["Customer"]] + """ + ID of the customer. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["tax_id"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + owner: Optional[Owner] + """ + The account or customer the tax ID belongs to. + """ + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "unknown", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin`. Note that some legacy tax IDs have type `unknown` + """ + value: str + """ + Value of the tax ID. + """ + verification: Optional[Verification] + """ + Tax ID verification information. + """ + + @classmethod + def create(cls, **params: Unpack["TaxIdCreateParams"]) -> "TaxId": + """ + Creates a new account or customer tax_id object. + """ + return cast( + "TaxId", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["TaxIdCreateParams"] + ) -> "TaxId": + """ + Creates a new account or customer tax_id object. + """ + return cast( + "TaxId", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["TaxIdDeleteParams"] + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "TaxId", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete(sid: str, **params: Unpack["TaxIdDeleteParams"]) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + ... + + @overload + def delete(self, **params: Unpack["TaxIdDeleteParams"]) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TaxIdDeleteParams"] + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["TaxIdDeleteParams"] + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "TaxId", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["TaxIdDeleteParams"] + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["TaxIdDeleteParams"] + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TaxIdDeleteParams"] + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list(cls, **params: Unpack["TaxIdListParams"]) -> ListObject["TaxId"]: + """ + Returns a list of tax IDs. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TaxIdListParams"] + ) -> ListObject["TaxId"]: + """ + Returns a list of tax IDs. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TaxIdRetrieveParams"] + ) -> "TaxId": + """ + Retrieves an account or customer tax_id object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TaxIdRetrieveParams"] + ) -> "TaxId": + """ + Retrieves an account or customer tax_id object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"owner": Owner, "verification": Verification} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_id_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_id_service.py new file mode 100644 index 00000000..8b3dbefc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_id_service.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._tax_id import TaxId + from stripe.params._tax_id_create_params import TaxIdCreateParams + from stripe.params._tax_id_delete_params import TaxIdDeleteParams + from stripe.params._tax_id_list_params import TaxIdListParams + from stripe.params._tax_id_retrieve_params import TaxIdRetrieveParams + + +class TaxIdService(StripeService): + def delete( + self, + id: str, + params: Optional["TaxIdDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + return cast( + "TaxId", + self._request( + "delete", + "/v1/tax_ids/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + id: str, + params: Optional["TaxIdDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Deletes an existing account or customer tax_id object. + """ + return cast( + "TaxId", + await self._request_async( + "delete", + "/v1/tax_ids/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["TaxIdRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Retrieves an account or customer tax_id object. + """ + return cast( + "TaxId", + self._request( + "get", + "/v1/tax_ids/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["TaxIdRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Retrieves an account or customer tax_id object. + """ + return cast( + "TaxId", + await self._request_async( + "get", + "/v1/tax_ids/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["TaxIdListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxId]": + """ + Returns a list of tax IDs. + """ + return cast( + "ListObject[TaxId]", + self._request( + "get", + "/v1/tax_ids", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["TaxIdListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxId]": + """ + Returns a list of tax IDs. + """ + return cast( + "ListObject[TaxId]", + await self._request_async( + "get", + "/v1/tax_ids", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "TaxIdCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Creates a new account or customer tax_id object. + """ + return cast( + "TaxId", + self._request( + "post", + "/v1/tax_ids", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "TaxIdCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TaxId": + """ + Creates a new account or customer tax_id object. + """ + return cast( + "TaxId", + await self._request_async( + "post", + "/v1/tax_ids", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_rate.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_rate.py new file mode 100644 index 00000000..ec57166e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_rate.py @@ -0,0 +1,262 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._tax_rate_create_params import TaxRateCreateParams + from stripe.params._tax_rate_list_params import TaxRateListParams + from stripe.params._tax_rate_modify_params import TaxRateModifyParams + from stripe.params._tax_rate_retrieve_params import TaxRateRetrieveParams + + +class TaxRate( + CreateableAPIResource["TaxRate"], + ListableAPIResource["TaxRate"], + UpdateableAPIResource["TaxRate"], +): + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + + OBJECT_NAME: ClassVar[Literal["tax_rate"]] = "tax_rate" + + class FlatAmount(StripeObject): + amount: int + """ + Amount of the tax when the `rate_type` is `flat_amount`. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + currency: str + """ + Three-letter ISO currency code, in lowercase. + """ + + active: bool + """ + Defaults to `true`. When set to `false`, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + description: Optional[str] + """ + An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + """ + display_name: str + """ + The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page. + """ + effective_percentage: Optional[float] + """ + Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, + this percentage reflects the rate actually used to calculate tax based on the product's taxability + and whether the user is registered to collect taxes in the corresponding jurisdiction. + """ + flat_amount: Optional[FlatAmount] + """ + The amount of the tax rate when the `rate_type` is `flat_amount`. Tax rates with `rate_type` `percentage` can vary based on the transaction, resulting in this field being `null`. This field exposes the amount and currency of the flat tax rate. + """ + id: str + """ + Unique identifier for the object. + """ + inclusive: bool + """ + This specifies if the tax rate is inclusive or exclusive. + """ + jurisdiction: Optional[str] + """ + The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer's invoice. + """ + jurisdiction_level: Optional[ + Literal["city", "country", "county", "district", "multiple", "state"] + ] + """ + The level of the jurisdiction that imposes this tax rate. Will be `null` for manually defined tax rates. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["tax_rate"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + percentage: float + """ + Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions. + """ + rate_type: Optional[Literal["flat_amount", "percentage"]] + """ + Indicates the type of tax rate applied to the taxable amount. This value can be `null` when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax. + """ + state: Optional[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States. + """ + tax_type: Optional[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The high-level tax type, such as `vat` or `sales_tax`. + """ + + @classmethod + def create(cls, **params: Unpack["TaxRateCreateParams"]) -> "TaxRate": + """ + Creates a new tax rate. + """ + return cast( + "TaxRate", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["TaxRateCreateParams"] + ) -> "TaxRate": + """ + Creates a new tax rate. + """ + return cast( + "TaxRate", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["TaxRateListParams"] + ) -> ListObject["TaxRate"]: + """ + Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TaxRateListParams"] + ) -> ListObject["TaxRate"]: + """ + Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["TaxRateModifyParams"] + ) -> "TaxRate": + """ + Updates an existing tax rate. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "TaxRate", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["TaxRateModifyParams"] + ) -> "TaxRate": + """ + Updates an existing tax rate. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "TaxRate", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TaxRateRetrieveParams"] + ) -> "TaxRate": + """ + Retrieves a tax rate with the given ID + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TaxRateRetrieveParams"] + ) -> "TaxRate": + """ + Retrieves a tax rate with the given ID + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"flat_amount": FlatAmount} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_rate_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_rate_service.py new file mode 100644 index 00000000..8645575d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_rate_service.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._tax_rate import TaxRate + from stripe.params._tax_rate_create_params import TaxRateCreateParams + from stripe.params._tax_rate_list_params import TaxRateListParams + from stripe.params._tax_rate_retrieve_params import TaxRateRetrieveParams + from stripe.params._tax_rate_update_params import TaxRateUpdateParams + + +class TaxRateService(StripeService): + def list( + self, + params: Optional["TaxRateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxRate]": + """ + Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first. + """ + return cast( + "ListObject[TaxRate]", + self._request( + "get", + "/v1/tax_rates", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["TaxRateListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TaxRate]": + """ + Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first. + """ + return cast( + "ListObject[TaxRate]", + await self._request_async( + "get", + "/v1/tax_rates", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "TaxRateCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TaxRate": + """ + Creates a new tax rate. + """ + return cast( + "TaxRate", + self._request( + "post", + "/v1/tax_rates", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "TaxRateCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TaxRate": + """ + Creates a new tax rate. + """ + return cast( + "TaxRate", + await self._request_async( + "post", + "/v1/tax_rates", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + tax_rate: str, + params: Optional["TaxRateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxRate": + """ + Retrieves a tax rate with the given ID + """ + return cast( + "TaxRate", + self._request( + "get", + "/v1/tax_rates/{tax_rate}".format( + tax_rate=sanitize_id(tax_rate), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + tax_rate: str, + params: Optional["TaxRateRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxRate": + """ + Retrieves a tax rate with the given ID + """ + return cast( + "TaxRate", + await self._request_async( + "get", + "/v1/tax_rates/{tax_rate}".format( + tax_rate=sanitize_id(tax_rate), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + tax_rate: str, + params: Optional["TaxRateUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxRate": + """ + Updates an existing tax rate. + """ + return cast( + "TaxRate", + self._request( + "post", + "/v1/tax_rates/{tax_rate}".format( + tax_rate=sanitize_id(tax_rate), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + tax_rate: str, + params: Optional["TaxRateUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TaxRate": + """ + Updates an existing tax rate. + """ + return cast( + "TaxRate", + await self._request_async( + "post", + "/v1/tax_rates/{tax_rate}".format( + tax_rate=sanitize_id(tax_rate), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_tax_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_service.py new file mode 100644 index 00000000..57c29159 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_tax_service.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.tax._calculation_service import CalculationService + from stripe.tax._registration_service import RegistrationService + from stripe.tax._settings_service import SettingsService + from stripe.tax._transaction_service import TransactionService + +_subservices = { + "calculations": ["stripe.tax._calculation_service", "CalculationService"], + "registrations": [ + "stripe.tax._registration_service", + "RegistrationService", + ], + "settings": ["stripe.tax._settings_service", "SettingsService"], + "transactions": ["stripe.tax._transaction_service", "TransactionService"], +} + + +class TaxService(StripeService): + calculations: "CalculationService" + registrations: "RegistrationService" + settings: "SettingsService" + transactions: "TransactionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_terminal_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_terminal_service.py new file mode 100644 index 00000000..33415c11 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_terminal_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.terminal._configuration_service import ConfigurationService + from stripe.terminal._connection_token_service import ( + ConnectionTokenService, + ) + from stripe.terminal._location_service import LocationService + from stripe.terminal._reader_service import ReaderService + +_subservices = { + "configurations": [ + "stripe.terminal._configuration_service", + "ConfigurationService", + ], + "connection_tokens": [ + "stripe.terminal._connection_token_service", + "ConnectionTokenService", + ], + "locations": ["stripe.terminal._location_service", "LocationService"], + "readers": ["stripe.terminal._reader_service", "ReaderService"], +} + + +class TerminalService(StripeService): + configurations: "ConfigurationService" + connection_tokens: "ConnectionTokenService" + locations: "LocationService" + readers: "ReaderService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_test_helpers.py b/Backend/venv/lib/python3.12/site-packages/stripe/_test_helpers.py new file mode 100644 index 00000000..5b398f85 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_test_helpers.py @@ -0,0 +1,65 @@ +from stripe._error import InvalidRequestError +from urllib.parse import quote_plus + +from typing import TypeVar, ClassVar, Any +from typing_extensions import Protocol +from stripe._api_resource import APIResource + +T = TypeVar("T", bound=APIResource[Any]) + + +class APIResourceTestHelpers(Protocol[T]): + """ + The base type for the TestHelper nested classes. + Handles request URL generation for test_helper custom methods. + Should be used in combination with the @test_helpers decorator. + + @test_helpers + class Foo(APIResource): + class TestHelpers(APIResourceTestHelpers): + """ + + _resource_cls: ClassVar[Any] + resource: T + + def __init__(self, resource): + self.resource = resource + + @classmethod + def _static_request(cls, *args, **kwargs): + return cls._resource_cls._static_request(*args, **kwargs) + + @classmethod + async def _static_request_async(cls, *args, **kwargs): + return await cls._resource_cls._static_request_async(*args, **kwargs) + + @classmethod + def _static_request_stream(cls, *args, **kwargs): + return cls._resource_cls._static_request_stream(*args, **kwargs) + + @classmethod + def class_url(cls): + if cls == APIResourceTestHelpers: + raise NotImplementedError( + "APIResourceTestHelpers is an abstract class. You should perform " + "actions on its subclasses (e.g. Charge, Customer)" + ) + # Namespaces are separated in object names with periods (.) and in URLs + # with forward slashes (/), so replace the former with the latter. + base = cls._resource_cls.OBJECT_NAME.replace(".", "/") + return "/v1/test_helpers/%ss" % (base,) + + def instance_url(self): + id = getattr(self.resource, "id", None) + + if not isinstance(id, str): + raise InvalidRequestError( + "Could not determine which URL to request: %s instance " + "has invalid ID: %r, %s. ID should be of type `str` (or" + " `unicode`)" % (type(self).__name__, id, type(id)), + "id", + ) + + base = self.class_url() + extn = quote_plus(id) + return "%s/%s" % (base, extn) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_test_helpers_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_test_helpers_service.py new file mode 100644 index 00000000..8138b15f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_test_helpers_service.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers._confirmation_token_service import ( + ConfirmationTokenService, + ) + from stripe.test_helpers._customer_service import CustomerService + from stripe.test_helpers._issuing_service import IssuingService + from stripe.test_helpers._refund_service import RefundService + from stripe.test_helpers._terminal_service import TerminalService + from stripe.test_helpers._test_clock_service import TestClockService + from stripe.test_helpers._treasury_service import TreasuryService + +_subservices = { + "confirmation_tokens": [ + "stripe.test_helpers._confirmation_token_service", + "ConfirmationTokenService", + ], + "customers": ["stripe.test_helpers._customer_service", "CustomerService"], + "issuing": ["stripe.test_helpers._issuing_service", "IssuingService"], + "refunds": ["stripe.test_helpers._refund_service", "RefundService"], + "terminal": ["stripe.test_helpers._terminal_service", "TerminalService"], + "test_clocks": [ + "stripe.test_helpers._test_clock_service", + "TestClockService", + ], + "treasury": ["stripe.test_helpers._treasury_service", "TreasuryService"], +} + + +class TestHelpersService(StripeService): + confirmation_tokens: "ConfirmationTokenService" + customers: "CustomerService" + issuing: "IssuingService" + refunds: "RefundService" + terminal: "TerminalService" + test_clocks: "TestClockService" + treasury: "TreasuryService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_token.py b/Backend/venv/lib/python3.12/site-packages/stripe/_token.py new file mode 100644 index 00000000..bf02e107 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_token.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._bank_account import BankAccount + from stripe._card import Card + from stripe.params._token_create_params import TokenCreateParams + from stripe.params._token_retrieve_params import TokenRetrieveParams + + +class Token(CreateableAPIResource["Token"]): + """ + Tokenization is the process Stripe uses to collect sensitive card or bank + account details, or personally identifiable information (PII), directly from + your customers in a secure manner. A token representing this information is + returned to your server to use. Use our + [recommended payments integrations](https://stripe.com/docs/payments) to perform this process + on the client-side. This guarantees that no sensitive card data touches your server, + and allows your integration to operate in a PCI-compliant way. + + If you can't use client-side tokenization, you can also create tokens using + the API with either your publishable or secret API key. If + your integration uses this method, you're responsible for any PCI compliance + that it might require, and you must keep your secret API key safe. Unlike with + client-side tokenization, your customer's information isn't sent directly to + Stripe, so we can't determine how it's handled or stored. + + You can't store or use tokens more than once. To store card or bank account + information for later use, create [Customer](https://stripe.com/docs/api#customers) + objects or [External accounts](https://docs.stripe.com/api#external_accounts). + [Radar](https://stripe.com/docs/radar), our integrated solution for automatic fraud protection, + performs best with integrations that use client-side tokenization. + """ + + OBJECT_NAME: ClassVar[Literal["token"]] = "token" + bank_account: Optional["BankAccount"] + """ + These bank accounts are payment methods on `Customer` objects. + + On the other hand [External Accounts](https://docs.stripe.com/api#external_accounts) are transfer + destinations on `Account` objects for connected accounts. + They can be bank accounts or debit cards as well, and are documented in the links above. + + Related guide: [Bank debits and transfers](https://docs.stripe.com/payments/bank-debits-transfers) + """ + card: Optional["Card"] + """ + You can store multiple cards on a customer in order to charge the customer + later. You can also store multiple debit cards on a recipient in order to + transfer to those cards later. + + Related guide: [Card payments with Sources](https://stripe.com/docs/sources/cards) + """ + client_ip: Optional[str] + """ + IP address of the client that generates the token. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["token"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + type: str + """ + Type of the token: `account`, `bank_account`, `card`, or `pii`. + """ + used: bool + """ + Determines if you have already used this token (you can only use tokens once). + """ + + @classmethod + def create(cls, **params: Unpack["TokenCreateParams"]) -> "Token": + """ + Creates a single-use token that represents a bank account's details. + You can use this token with any v1 API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a [connected account](https://docs.stripe.com/api#accounts) where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is application, which includes Custom accounts. + """ + return cast( + "Token", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["TokenCreateParams"] + ) -> "Token": + """ + Creates a single-use token that represents a bank account's details. + You can use this token with any v1 API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a [connected account](https://docs.stripe.com/api#accounts) where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is application, which includes Custom accounts. + """ + return cast( + "Token", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TokenRetrieveParams"] + ) -> "Token": + """ + Retrieves the token with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TokenRetrieveParams"] + ) -> "Token": + """ + Retrieves the token with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_token_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_token_service.py new file mode 100644 index 00000000..a5cd81c2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_token_service.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe._token import Token + from stripe.params._token_create_params import TokenCreateParams + from stripe.params._token_retrieve_params import TokenRetrieveParams + + +class TokenService(StripeService): + def retrieve( + self, + token: str, + params: Optional["TokenRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Retrieves the token with the given ID. + """ + return cast( + "Token", + self._request( + "get", + "/v1/tokens/{token}".format(token=sanitize_id(token)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + token: str, + params: Optional["TokenRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Retrieves the token with the given ID. + """ + return cast( + "Token", + await self._request_async( + "get", + "/v1/tokens/{token}".format(token=sanitize_id(token)), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["TokenCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Creates a single-use token that represents a bank account's details. + You can use this token with any v1 API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a [connected account](https://docs.stripe.com/api#accounts) where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is application, which includes Custom accounts. + """ + return cast( + "Token", + self._request( + "post", + "/v1/tokens", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["TokenCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Creates a single-use token that represents a bank account's details. + You can use this token with any v1 API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a [connected account](https://docs.stripe.com/api#accounts) where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is application, which includes Custom accounts. + """ + return cast( + "Token", + await self._request_async( + "post", + "/v1/tokens", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_topup.py b/Backend/venv/lib/python3.12/site-packages/stripe/_topup.py new file mode 100644 index 00000000..e95ddfd2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_topup.py @@ -0,0 +1,323 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe._source import Source + from stripe.params._topup_cancel_params import TopupCancelParams + from stripe.params._topup_create_params import TopupCreateParams + from stripe.params._topup_list_params import TopupListParams + from stripe.params._topup_modify_params import TopupModifyParams + from stripe.params._topup_retrieve_params import TopupRetrieveParams + + +class Topup( + CreateableAPIResource["Topup"], + ListableAPIResource["Topup"], + UpdateableAPIResource["Topup"], +): + """ + To top up your Stripe balance, you create a top-up object. You can retrieve + individual top-ups, as well as list all top-ups. Top-ups are identified by a + unique, random ID. + + Related guide: [Topping up your platform account](https://stripe.com/docs/connect/top-ups) + """ + + OBJECT_NAME: ClassVar[Literal["topup"]] = "topup" + amount: int + """ + Amount transferred. + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expected_availability_date: Optional[int] + """ + Date the funds are expected to arrive in your Stripe account for payouts. This factors in delays like weekends or bank holidays. May not be specified depending on status of top-up. + """ + failure_code: Optional[str] + """ + Error code explaining reason for top-up failure if available (see [the errors section](https://stripe.com/docs/api#errors) for a list of codes). + """ + failure_message: Optional[str] + """ + Message to user further explaining reason for top-up failure if available. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["topup"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + source: Optional["Source"] + """ + The source field is deprecated. It might not always be present in the API response. + """ + statement_descriptor: Optional[str] + """ + Extra information about a top-up. This will appear on your source's bank statement. It must contain at least one letter. + """ + status: Literal["canceled", "failed", "pending", "reversed", "succeeded"] + """ + The status of the top-up is either `canceled`, `failed`, `pending`, `reversed`, or `succeeded`. + """ + transfer_group: Optional[str] + """ + A string that identifies this top-up as part of a group. + """ + + @classmethod + def _cls_cancel( + cls, topup: str, **params: Unpack["TopupCancelParams"] + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + return cast( + "Topup", + cls._static_request( + "post", + "/v1/topups/{topup}/cancel".format(topup=sanitize_id(topup)), + params=params, + ), + ) + + @overload + @staticmethod + def cancel(topup: str, **params: Unpack["TopupCancelParams"]) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + ... + + @overload + def cancel(self, **params: Unpack["TopupCancelParams"]) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TopupCancelParams"] + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + return cast( + "Topup", + self._request( + "post", + "/v1/topups/{topup}/cancel".format( + topup=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, topup: str, **params: Unpack["TopupCancelParams"] + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + return cast( + "Topup", + await cls._static_request_async( + "post", + "/v1/topups/{topup}/cancel".format(topup=sanitize_id(topup)), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + topup: str, **params: Unpack["TopupCancelParams"] + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["TopupCancelParams"] + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TopupCancelParams"] + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + return cast( + "Topup", + await self._request_async( + "post", + "/v1/topups/{topup}/cancel".format( + topup=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["TopupCreateParams"]) -> "Topup": + """ + Top up the balance of an account + """ + return cast( + "Topup", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["TopupCreateParams"] + ) -> "Topup": + """ + Top up the balance of an account + """ + return cast( + "Topup", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list(cls, **params: Unpack["TopupListParams"]) -> ListObject["Topup"]: + """ + Returns a list of top-ups. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TopupListParams"] + ) -> ListObject["Topup"]: + """ + Returns a list of top-ups. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify(cls, id: str, **params: Unpack["TopupModifyParams"]) -> "Topup": + """ + Updates the metadata of a top-up. Other top-up details are not editable by design. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Topup", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["TopupModifyParams"] + ) -> "Topup": + """ + Updates the metadata of a top-up. Other top-up details are not editable by design. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Topup", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TopupRetrieveParams"] + ) -> "Topup": + """ + Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TopupRetrieveParams"] + ) -> "Topup": + """ + Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_topup_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_topup_service.py new file mode 100644 index 00000000..0f8b849f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_topup_service.py @@ -0,0 +1,214 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._topup import Topup + from stripe.params._topup_cancel_params import TopupCancelParams + from stripe.params._topup_create_params import TopupCreateParams + from stripe.params._topup_list_params import TopupListParams + from stripe.params._topup_retrieve_params import TopupRetrieveParams + from stripe.params._topup_update_params import TopupUpdateParams + + +class TopupService(StripeService): + def list( + self, + params: Optional["TopupListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Topup]": + """ + Returns a list of top-ups. + """ + return cast( + "ListObject[Topup]", + self._request( + "get", + "/v1/topups", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["TopupListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Topup]": + """ + Returns a list of top-ups. + """ + return cast( + "ListObject[Topup]", + await self._request_async( + "get", + "/v1/topups", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "TopupCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Top up the balance of an account + """ + return cast( + "Topup", + self._request( + "post", + "/v1/topups", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "TopupCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Top up the balance of an account + """ + return cast( + "Topup", + await self._request_async( + "post", + "/v1/topups", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + topup: str, + params: Optional["TopupRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information. + """ + return cast( + "Topup", + self._request( + "get", + "/v1/topups/{topup}".format(topup=sanitize_id(topup)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + topup: str, + params: Optional["TopupRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information. + """ + return cast( + "Topup", + await self._request_async( + "get", + "/v1/topups/{topup}".format(topup=sanitize_id(topup)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + topup: str, + params: Optional["TopupUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Updates the metadata of a top-up. Other top-up details are not editable by design. + """ + return cast( + "Topup", + self._request( + "post", + "/v1/topups/{topup}".format(topup=sanitize_id(topup)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + topup: str, + params: Optional["TopupUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Updates the metadata of a top-up. Other top-up details are not editable by design. + """ + return cast( + "Topup", + await self._request_async( + "post", + "/v1/topups/{topup}".format(topup=sanitize_id(topup)), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + topup: str, + params: Optional["TopupCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + return cast( + "Topup", + self._request( + "post", + "/v1/topups/{topup}/cancel".format(topup=sanitize_id(topup)), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + topup: str, + params: Optional["TopupCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Topup": + """ + Cancels a top-up. Only pending top-ups can be canceled. + """ + return cast( + "Topup", + await self._request_async( + "post", + "/v1/topups/{topup}/cancel".format(topup=sanitize_id(topup)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_transfer.py b/Backend/venv/lib/python3.12/site-packages/stripe/_transfer.py new file mode 100644 index 00000000..b45980e9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_transfer.py @@ -0,0 +1,413 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._balance_transaction import BalanceTransaction + from stripe._charge import Charge + from stripe._reversal import Reversal + from stripe.params._transfer_create_params import TransferCreateParams + from stripe.params._transfer_create_reversal_params import ( + TransferCreateReversalParams, + ) + from stripe.params._transfer_list_params import TransferListParams + from stripe.params._transfer_list_reversals_params import ( + TransferListReversalsParams, + ) + from stripe.params._transfer_modify_params import TransferModifyParams + from stripe.params._transfer_modify_reversal_params import ( + TransferModifyReversalParams, + ) + from stripe.params._transfer_retrieve_params import TransferRetrieveParams + from stripe.params._transfer_retrieve_reversal_params import ( + TransferRetrieveReversalParams, + ) + + +@nested_resource_class_methods("reversal") +class Transfer( + CreateableAPIResource["Transfer"], + ListableAPIResource["Transfer"], + UpdateableAPIResource["Transfer"], +): + """ + A `Transfer` object is created when you move funds between Stripe accounts as + part of Connect. + + Before April 6, 2017, transfers also represented movement of funds from a + Stripe account to a card or bank account. This behavior has since been split + out into a [Payout](https://stripe.com/docs/api#payout_object) object, with corresponding payout endpoints. For more + information, read about the + [transfer/payout split](https://stripe.com/docs/transfer-payout-split). + + Related guide: [Creating separate charges and transfers](https://stripe.com/docs/connect/separate-charges-and-transfers) + """ + + OBJECT_NAME: ClassVar[Literal["transfer"]] = "transfer" + amount: int + """ + Amount in cents (or local equivalent) to be transferred. + """ + amount_reversed: int + """ + Amount in cents (or local equivalent) reversed (can be less than the amount attribute on the transfer if a partial reversal was issued). + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + Balance transaction that describes the impact of this transfer on your account balance. + """ + created: int + """ + Time that this record of the transfer was first created. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination: Optional[ExpandableField["Account"]] + """ + ID of the Stripe account the transfer was sent to. + """ + destination_payment: Optional[ExpandableField["Charge"]] + """ + If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["transfer"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + reversals: ListObject["Reversal"] + """ + A list of reversals that have been applied to the transfer. + """ + reversed: bool + """ + Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false. + """ + source_transaction: Optional[ExpandableField["Charge"]] + """ + ID of the charge that was used to fund the transfer. If null, the transfer was funded from the available balance. + """ + source_type: Optional[str] + """ + The source balance this transfer came from. One of `card`, `fpx`, or `bank_account`. + """ + transfer_group: Optional[str] + """ + A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details. + """ + + @classmethod + def create(cls, **params: Unpack["TransferCreateParams"]) -> "Transfer": + """ + To send funds from your Stripe account to a connected account, you create a new transfer object. Your [Stripe balance](https://docs.stripe.com/api#balance) must be able to cover the transfer amount, or you'll receive an “Insufficient Funds” error. + """ + return cast( + "Transfer", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["TransferCreateParams"] + ) -> "Transfer": + """ + To send funds from your Stripe account to a connected account, you create a new transfer object. Your [Stripe balance](https://docs.stripe.com/api#balance) must be able to cover the transfer amount, or you'll receive an “Insufficient Funds” error. + """ + return cast( + "Transfer", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["TransferListParams"] + ) -> ListObject["Transfer"]: + """ + Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TransferListParams"] + ) -> ListObject["Transfer"]: + """ + Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["TransferModifyParams"] + ) -> "Transfer": + """ + Updates the specified transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts only metadata as an argument. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Transfer", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["TransferModifyParams"] + ) -> "Transfer": + """ + Updates the specified transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts only metadata as an argument. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Transfer", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TransferRetrieveParams"] + ) -> "Transfer": + """ + Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TransferRetrieveParams"] + ) -> "Transfer": + """ + Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def list_reversals( + cls, id: str, **params: Unpack["TransferListReversalsParams"] + ) -> ListObject["Reversal"]: + """ + You can see a list of the reversals belonging to a specific transfer. Note that the 10 most recent reversals are always available by default on the transfer object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional reversals. + """ + return cast( + ListObject["Reversal"], + cls._static_request( + "get", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + params=params, + ), + ) + + @classmethod + async def list_reversals_async( + cls, id: str, **params: Unpack["TransferListReversalsParams"] + ) -> ListObject["Reversal"]: + """ + You can see a list of the reversals belonging to a specific transfer. Note that the 10 most recent reversals are always available by default on the transfer object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional reversals. + """ + return cast( + ListObject["Reversal"], + await cls._static_request_async( + "get", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + params=params, + ), + ) + + @classmethod + def create_reversal( + cls, id: str, **params: Unpack["TransferCreateReversalParams"] + ) -> "Reversal": + """ + When you create a new reversal, you must specify a transfer to create it on. + + When reversing transfers, you can optionally reverse part of the transfer. You can do so as many times as you wish until the entire transfer has been reversed. + + Once entirely reversed, a transfer can't be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer. + """ + return cast( + "Reversal", + cls._static_request( + "post", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + params=params, + ), + ) + + @classmethod + async def create_reversal_async( + cls, id: str, **params: Unpack["TransferCreateReversalParams"] + ) -> "Reversal": + """ + When you create a new reversal, you must specify a transfer to create it on. + + When reversing transfers, you can optionally reverse part of the transfer. You can do so as many times as you wish until the entire transfer has been reversed. + + Once entirely reversed, a transfer can't be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer. + """ + return cast( + "Reversal", + await cls._static_request_async( + "post", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + params=params, + ), + ) + + @classmethod + def retrieve_reversal( + cls, + transfer: str, + id: str, + **params: Unpack["TransferRetrieveReversalParams"], + ) -> "Reversal": + """ + By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer. + """ + return cast( + "Reversal", + cls._static_request( + "get", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def retrieve_reversal_async( + cls, + transfer: str, + id: str, + **params: Unpack["TransferRetrieveReversalParams"], + ) -> "Reversal": + """ + By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer. + """ + return cast( + "Reversal", + await cls._static_request_async( + "get", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + def modify_reversal( + cls, + transfer: str, + id: str, + **params: Unpack["TransferModifyReversalParams"], + ) -> "Reversal": + """ + Updates the specified reversal by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata and description as arguments. + """ + return cast( + "Reversal", + cls._static_request( + "post", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def modify_reversal_async( + cls, + transfer: str, + id: str, + **params: Unpack["TransferModifyReversalParams"], + ) -> "Reversal": + """ + Updates the specified reversal by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata and description as arguments. + """ + return cast( + "Reversal", + await cls._static_request_async( + "post", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), id=sanitize_id(id) + ), + params=params, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_transfer_reversal_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_transfer_reversal_service.py new file mode 100644 index 00000000..0d74e068 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_transfer_reversal_service.py @@ -0,0 +1,213 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._reversal import Reversal + from stripe.params._transfer_reversal_create_params import ( + TransferReversalCreateParams, + ) + from stripe.params._transfer_reversal_list_params import ( + TransferReversalListParams, + ) + from stripe.params._transfer_reversal_retrieve_params import ( + TransferReversalRetrieveParams, + ) + from stripe.params._transfer_reversal_update_params import ( + TransferReversalUpdateParams, + ) + + +class TransferReversalService(StripeService): + def list( + self, + id: str, + params: Optional["TransferReversalListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Reversal]": + """ + You can see a list of the reversals belonging to a specific transfer. Note that the 10 most recent reversals are always available by default on the transfer object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional reversals. + """ + return cast( + "ListObject[Reversal]", + self._request( + "get", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + id: str, + params: Optional["TransferReversalListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Reversal]": + """ + You can see a list of the reversals belonging to a specific transfer. Note that the 10 most recent reversals are always available by default on the transfer object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional reversals. + """ + return cast( + "ListObject[Reversal]", + await self._request_async( + "get", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + id: str, + params: Optional["TransferReversalCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reversal": + """ + When you create a new reversal, you must specify a transfer to create it on. + + When reversing transfers, you can optionally reverse part of the transfer. You can do so as many times as you wish until the entire transfer has been reversed. + + Once entirely reversed, a transfer can't be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer. + """ + return cast( + "Reversal", + self._request( + "post", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + id: str, + params: Optional["TransferReversalCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reversal": + """ + When you create a new reversal, you must specify a transfer to create it on. + + When reversing transfers, you can optionally reverse part of the transfer. You can do so as many times as you wish until the entire transfer has been reversed. + + Once entirely reversed, a transfer can't be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer. + """ + return cast( + "Reversal", + await self._request_async( + "post", + "/v1/transfers/{id}/reversals".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + transfer: str, + id: str, + params: Optional["TransferReversalRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reversal": + """ + By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer. + """ + return cast( + "Reversal", + self._request( + "get", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + transfer: str, + id: str, + params: Optional["TransferReversalRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reversal": + """ + By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer. + """ + return cast( + "Reversal", + await self._request_async( + "get", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + transfer: str, + id: str, + params: Optional["TransferReversalUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reversal": + """ + Updates the specified reversal by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata and description as arguments. + """ + return cast( + "Reversal", + self._request( + "post", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + transfer: str, + id: str, + params: Optional["TransferReversalUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reversal": + """ + Updates the specified reversal by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request only accepts metadata and description as arguments. + """ + return cast( + "Reversal", + await self._request_async( + "post", + "/v1/transfers/{transfer}/reversals/{id}".format( + transfer=sanitize_id(transfer), + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_transfer_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_transfer_service.py new file mode 100644 index 00000000..4a32fb4f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_transfer_service.py @@ -0,0 +1,215 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._transfer import Transfer + from stripe._transfer_reversal_service import TransferReversalService + from stripe.params._transfer_create_params import TransferCreateParams + from stripe.params._transfer_list_params import TransferListParams + from stripe.params._transfer_retrieve_params import TransferRetrieveParams + from stripe.params._transfer_update_params import TransferUpdateParams + +_subservices = { + "reversals": [ + "stripe._transfer_reversal_service", + "TransferReversalService", + ], +} + + +class TransferService(StripeService): + reversals: "TransferReversalService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["TransferListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transfer]": + """ + Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first. + """ + return cast( + "ListObject[Transfer]", + self._request( + "get", + "/v1/transfers", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["TransferListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transfer]": + """ + Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first. + """ + return cast( + "ListObject[Transfer]", + await self._request_async( + "get", + "/v1/transfers", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "TransferCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Transfer": + """ + To send funds from your Stripe account to a connected account, you create a new transfer object. Your [Stripe balance](https://docs.stripe.com/api#balance) must be able to cover the transfer amount, or you'll receive an “Insufficient Funds” error. + """ + return cast( + "Transfer", + self._request( + "post", + "/v1/transfers", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "TransferCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Transfer": + """ + To send funds from your Stripe account to a connected account, you create a new transfer object. Your [Stripe balance](https://docs.stripe.com/api#balance) must be able to cover the transfer amount, or you'll receive an “Insufficient Funds” error. + """ + return cast( + "Transfer", + await self._request_async( + "post", + "/v1/transfers", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + transfer: str, + params: Optional["TransferRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transfer": + """ + Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information. + """ + return cast( + "Transfer", + self._request( + "get", + "/v1/transfers/{transfer}".format( + transfer=sanitize_id(transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + transfer: str, + params: Optional["TransferRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transfer": + """ + Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information. + """ + return cast( + "Transfer", + await self._request_async( + "get", + "/v1/transfers/{transfer}".format( + transfer=sanitize_id(transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + transfer: str, + params: Optional["TransferUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transfer": + """ + Updates the specified transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts only metadata as an argument. + """ + return cast( + "Transfer", + self._request( + "post", + "/v1/transfers/{transfer}".format( + transfer=sanitize_id(transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + transfer: str, + params: Optional["TransferUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transfer": + """ + Updates the specified transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + + This request accepts only metadata as an argument. + """ + return cast( + "Transfer", + await self._request_async( + "post", + "/v1/transfers/{transfer}".format( + transfer=sanitize_id(transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_treasury_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_treasury_service.py new file mode 100644 index 00000000..803cac51 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_treasury_service.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.treasury._credit_reversal_service import CreditReversalService + from stripe.treasury._debit_reversal_service import DebitReversalService + from stripe.treasury._financial_account_service import ( + FinancialAccountService, + ) + from stripe.treasury._inbound_transfer_service import ( + InboundTransferService, + ) + from stripe.treasury._outbound_payment_service import ( + OutboundPaymentService, + ) + from stripe.treasury._outbound_transfer_service import ( + OutboundTransferService, + ) + from stripe.treasury._received_credit_service import ReceivedCreditService + from stripe.treasury._received_debit_service import ReceivedDebitService + from stripe.treasury._transaction_entry_service import ( + TransactionEntryService, + ) + from stripe.treasury._transaction_service import TransactionService + +_subservices = { + "credit_reversals": [ + "stripe.treasury._credit_reversal_service", + "CreditReversalService", + ], + "debit_reversals": [ + "stripe.treasury._debit_reversal_service", + "DebitReversalService", + ], + "financial_accounts": [ + "stripe.treasury._financial_account_service", + "FinancialAccountService", + ], + "inbound_transfers": [ + "stripe.treasury._inbound_transfer_service", + "InboundTransferService", + ], + "outbound_payments": [ + "stripe.treasury._outbound_payment_service", + "OutboundPaymentService", + ], + "outbound_transfers": [ + "stripe.treasury._outbound_transfer_service", + "OutboundTransferService", + ], + "received_credits": [ + "stripe.treasury._received_credit_service", + "ReceivedCreditService", + ], + "received_debits": [ + "stripe.treasury._received_debit_service", + "ReceivedDebitService", + ], + "transactions": [ + "stripe.treasury._transaction_service", + "TransactionService", + ], + "transaction_entries": [ + "stripe.treasury._transaction_entry_service", + "TransactionEntryService", + ], +} + + +class TreasuryService(StripeService): + credit_reversals: "CreditReversalService" + debit_reversals: "DebitReversalService" + financial_accounts: "FinancialAccountService" + inbound_transfers: "InboundTransferService" + outbound_payments: "OutboundPaymentService" + outbound_transfers: "OutboundTransferService" + received_credits: "ReceivedCreditService" + received_debits: "ReceivedDebitService" + transactions: "TransactionService" + transaction_entries: "TransactionEntryService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_updateable_api_resource.py b/Backend/venv/lib/python3.12/site-packages/stripe/_updateable_api_resource.py new file mode 100644 index 00000000..4088dc51 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_updateable_api_resource.py @@ -0,0 +1,31 @@ +from stripe import _util +from stripe._api_resource import APIResource +from urllib.parse import quote_plus +from typing import TypeVar, cast +from stripe._stripe_object import StripeObject + +T = TypeVar("T", bound=StripeObject) + + +class UpdateableAPIResource(APIResource[T]): + @classmethod + def modify(cls, sid, **params) -> T: + url = "%s/%s" % (cls.class_url(), quote_plus(sid)) + return cast(T, cls._static_request("post", url, params=params)) + + @_util.deprecated( + "The `save` method is deprecated and will be removed in a future major version of the library. Use the class method `modify` on the resource instead." + ) + def save(self, idempotency_key=None): + updated_params = self.serialize(None) + if updated_params: + updated_params["idempotency_key"] = idempotency_key + self._request_and_refresh( + "post", + self.instance_url(), + params=updated_params, + usage=["save"], + ) + else: + _util.logger.debug("Trying to save already saved object %r", self) + return self diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_util.py b/Backend/venv/lib/python3.12/site-packages/stripe/_util.py new file mode 100644 index 00000000..9e121e35 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_util.py @@ -0,0 +1,452 @@ +import functools +import hmac +import logging +import sys +import os +import re +import warnings + +from stripe._api_mode import ApiMode + +from urllib.parse import quote_plus + +from typing_extensions import Type, TYPE_CHECKING +from typing import ( + Callable, + TypeVar, + Union, + overload, + Dict, + List, + cast, + Any, + Optional, + Mapping, +) +import typing_extensions + + +# Used for global variables +import stripe # noqa: IMP101 + +if TYPE_CHECKING: + from stripe._stripe_response import StripeResponse + from stripe._stripe_object import StripeObject + from stripe._api_requestor import _APIRequestor + +STRIPE_LOG = os.environ.get("STRIPE_LOG") + +logger: logging.Logger = logging.getLogger("stripe") + +if TYPE_CHECKING: + deprecated = typing_extensions.deprecated +else: + _T = TypeVar("_T") + + # Copied from python/typing_extensions, as this was added in typing_extensions 4.5.0 which is incompatible with + # python 3.6. We still need `deprecated = typing_extensions.deprecated` in addition to this fallback, as + # IDEs (pylance) specially detect references to symbols defined in `typing_extensions` + # + # https://github.com/python/typing_extensions/blob/5d20e9eed31de88667542ba5a6f66e6dc439b681/src/typing_extensions.py#L2289-L2370 + def deprecated( + __msg: str, + *, + category: Optional[Type[Warning]] = DeprecationWarning, + stacklevel: int = 1, + ) -> Callable[[_T], _T]: + def decorator(__arg: _T) -> _T: + if category is None: + __arg.__deprecated__ = __msg + return __arg + elif isinstance(__arg, type): + original_new = __arg.__new__ + has_init = __arg.__init__ is not object.__init__ + + @functools.wraps(original_new) + def __new__(cls, *args, **kwargs): + warnings.warn( + __msg, category=category, stacklevel=stacklevel + 1 + ) + if original_new is not object.__new__: + return original_new(cls, *args, **kwargs) + # Mirrors a similar check in object.__new__. + elif not has_init and (args or kwargs): + raise TypeError(f"{cls.__name__}() takes no arguments") + else: + return original_new(cls) + + __arg.__new__ = staticmethod(__new__) + __arg.__deprecated__ = __new__.__deprecated__ = __msg + return __arg + elif callable(__arg): + + @functools.wraps(__arg) + def wrapper(*args, **kwargs): + warnings.warn( + __msg, category=category, stacklevel=stacklevel + 1 + ) + return __arg(*args, **kwargs) + + __arg.__deprecated__ = wrapper.__deprecated__ = __msg + return wrapper + else: + raise TypeError( + "@deprecated decorator with non-None category must be applied to " + f"a class or callable, not {__arg!r}" + ) + + return decorator + + +def is_appengine_dev(): + return "APPENGINE_RUNTIME" in os.environ and "Dev" in os.environ.get( + "SERVER_SOFTWARE", "" + ) + + +def _console_log_level(): + if stripe.log in ["debug", "info"]: + return stripe.log + elif STRIPE_LOG in ["debug", "info"]: + return STRIPE_LOG + else: + return None + + +def log_debug(message, **params): + msg = logfmt(dict(message=message, **params)) + if _console_log_level() == "debug": + print(msg, file=sys.stderr) + logger.debug(msg) + + +def log_info(message, **params): + msg = logfmt(dict(message=message, **params)) + if _console_log_level() in ["debug", "info"]: + print(msg, file=sys.stderr) + logger.info(msg) + + +def _test_or_live_environment(): + if stripe.api_key is None: + return + match = re.match(r"sk_(live|test)_", stripe.api_key) + if match is None: + return + return match.groups()[0] + + +def dashboard_link(request_id): + return "https://dashboard.stripe.com/{env}/logs/{reqid}".format( + env=_test_or_live_environment() or "test", reqid=request_id + ) + + +def logfmt(props): + def fmt(key, val): + # Handle case where val is a bytes or bytesarray + if hasattr(val, "decode"): + val = val.decode("utf-8") + # Check if val is already a string to avoid re-encoding into + # ascii. Since the code is sent through 2to3, we can't just + # use unicode(val, encoding='utf8') since it will be + # translated incorrectly. + if not isinstance(val, str): + val = str(val) + if re.search(r"\s", val): + val = repr(val) + # key should already be a string + if re.search(r"\s", key): + key = repr(key) + return "{key}={val}".format(key=key, val=val) + + return " ".join([fmt(key, val) for key, val in sorted(props.items())]) + + +# Borrowed from Django's source code +if hasattr(hmac, "compare_digest"): + # Prefer the stdlib implementation, when available. + def secure_compare(val1, val2): + return hmac.compare_digest(val1, val2) + +else: + + def secure_compare(val1, val2): + """ + Returns True if the two strings are equal, False otherwise. + The time taken is independent of the number of characters that match. + For the sake of simplicity, this function executes in constant time + only when the two strings have the same length. It short-circuits when + they have different lengths. + """ + if len(val1) != len(val2): + return False + result = 0 + if isinstance(val1, bytes) and isinstance(val2, bytes): + for x, y in zip(val1, val2): + result |= x ^ y + else: + for x, y in zip(val1, val2): + result |= ord(cast(str, x)) ^ ord(cast(str, y)) + return result == 0 + + +Resp = Union["StripeResponse", Dict[str, Any], List["Resp"]] + + +@overload +def convert_to_stripe_object( + resp: Union["StripeResponse", Dict[str, Any]], + api_key: Optional[str] = None, + stripe_version: Optional[str] = None, + stripe_account: Optional[str] = None, + params: Optional[Mapping[str, Any]] = None, + klass_: Optional[Type["StripeObject"]] = None, + *, + api_mode: ApiMode = "V1", +) -> "StripeObject": ... + + +@overload +def convert_to_stripe_object( + resp: List[Resp], + api_key: Optional[str] = None, + stripe_version: Optional[str] = None, + stripe_account: Optional[str] = None, + params: Optional[Mapping[str, Any]] = None, + klass_: Optional[Type["StripeObject"]] = None, + *, + api_mode: ApiMode = "V1", +) -> List["StripeObject"]: ... + + +def convert_to_stripe_object( + resp: Resp, + api_key: Optional[str] = None, + stripe_version: Optional[str] = None, + stripe_account: Optional[str] = None, + params: Optional[Mapping[str, Any]] = None, + klass_: Optional[Type["StripeObject"]] = None, + *, + api_mode: ApiMode = "V1", +) -> Union["StripeObject", List["StripeObject"]]: + from stripe._api_requestor import _APIRequestor + + return _convert_to_stripe_object( + resp=resp, + params=params, + klass_=klass_, + requestor=_APIRequestor._global_with_options( + api_key=api_key, + stripe_version=stripe_version, + stripe_account=stripe_account, + ), + api_mode=api_mode, + ) + + +@overload +def _convert_to_stripe_object( + *, + resp: Union["StripeResponse", Dict[str, Any]], + params: Optional[Mapping[str, Any]] = None, + klass_: Optional[Type["StripeObject"]] = None, + requestor: "_APIRequestor", + api_mode: ApiMode, + is_v2_deleted_object: bool = False, +) -> "StripeObject": ... + + +@overload +def _convert_to_stripe_object( + *, + resp: List[Resp], + params: Optional[Mapping[str, Any]] = None, + klass_: Optional[Type["StripeObject"]] = None, + requestor: "_APIRequestor", + api_mode: ApiMode, + is_v2_deleted_object: bool = False, +) -> List["StripeObject"]: ... + + +def _convert_to_stripe_object( + *, + resp: Resp, + params: Optional[Mapping[str, Any]] = None, + klass_: Optional[Type["StripeObject"]] = None, + requestor: "_APIRequestor", + api_mode: ApiMode, + # if true, we should ignore the `object` field for finding the class name. This is set by the API requestor + is_v2_deleted_object: bool = False, +) -> Union["StripeObject", List["StripeObject"]]: + # If we get a StripeResponse, we'll want to return a + # StripeObject with the last_response field filled out with + # the raw API response information + stripe_response = None + + # Imports here at runtime to avoid circular dependencies + from stripe._stripe_response import StripeResponse + from stripe._stripe_object import StripeObject + + if isinstance(resp, StripeResponse): + stripe_response = resp + resp = cast(Resp, stripe_response.data) + + if isinstance(resp, list): + return [ + _convert_to_stripe_object( + resp=cast("Union[StripeResponse, Dict[str, Any]]", i), + requestor=requestor, + api_mode=api_mode, + klass_=klass_, + ) + for i in resp + ] + elif isinstance(resp, dict) and not isinstance(resp, StripeObject): + resp = resp.copy() + klass_name = resp.get("object") + if isinstance(klass_name, str): + if is_v2_deleted_object: + # circular import + from stripe.v2._deleted_object import DeletedObject + + klass = DeletedObject + elif api_mode == "V2" and klass_name == "v2.core.event": + from stripe.events._event_classes import get_v2_event_class + + event_type = resp.get("type", "") + klass = get_v2_event_class(event_type) + else: + from stripe._object_classes import get_object_class + + klass = get_object_class(api_mode, klass_name) + # TODO: this is a horrible hack. The API needs + # to return something for `object` here. + + elif "data" in resp and "next_page_url" in resp: + klass = stripe.v2.ListObject + elif klass_ is not None: + klass = klass_ + else: + klass = StripeObject + + obj = klass._construct_from( + values=resp, + last_response=stripe_response, + requestor=requestor, + api_mode=api_mode, + ) + + # We only need to update _retrieve_params when special params were + # actually passed. Otherwise, leave it as is as the list / search result + # constructors will instantiate their own params. + if ( + params is not None + and hasattr(obj, "object") + and ( + (getattr(obj, "object") == "list") + or (getattr(obj, "object") == "search_result") + ) + ): + obj._retrieve_params = params + + return obj + else: + return cast("StripeObject", resp) + + +def convert_to_dict(obj): + """Converts a StripeObject back to a regular dict. + + Nested StripeObjects are also converted back to regular dicts. + + :param obj: The StripeObject to convert. + + :returns: The StripeObject as a dict. + """ + if isinstance(obj, list): + return [convert_to_dict(i) for i in obj] + # This works by virtue of the fact that StripeObjects _are_ dicts. The dict + # comprehension returns a regular dict and recursively applies the + # conversion to each value. + elif isinstance(obj, dict): + return {k: convert_to_dict(v) for k, v in obj.items()} + else: + return obj + + +@overload +def populate_headers( + idempotency_key: str, +) -> Dict[str, str]: ... + + +@overload +def populate_headers(idempotency_key: None) -> None: ... + + +def populate_headers( + idempotency_key: Union[str, None], +) -> Union[Dict[str, str], None]: + if idempotency_key is not None: + return {"Idempotency-Key": idempotency_key} + return None + + +T = TypeVar("T") + + +def merge_dicts(x, y): + z = x.copy() + z.update(y) + return z + + +def sanitize_id(id): + quotedId = quote_plus(id) + return quotedId + + +def get_api_mode(url: str) -> ApiMode: + if url.startswith("/v2"): + return "V2" + + # if urls aren't explicitly marked as v1, they're assumed to be v1 + else: + return "V1" + + +class class_method_variant(object): + def __init__(self, class_method_name): + self.class_method_name = class_method_name + + T = TypeVar("T") + + method: Any + + def __call__(self, method: T) -> T: + self.method = method + return cast(T, self) + + def __get__(self, obj, objtype: Optional[Type[Any]] = None): + @functools.wraps(self.method) + def _wrapper(*args, **kwargs): + if obj is not None: + # Method was called as an instance method, e.g. + # instance.method(...) + return self.method(obj, *args, **kwargs) + elif ( + len(args) > 0 + and objtype is not None + and isinstance(args[0], objtype) + ): + # Method was called as a class method with the instance as the + # first argument, e.g. Class.method(instance, ...) which in + # Python is the same thing as calling an instance method + return self.method(args[0], *args[1:], **kwargs) + else: + # Method was called as a class method, e.g. Class.method(...) + class_method = getattr(objtype, self.class_method_name) + return class_method(*args, **kwargs) + + return _wrapper diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_v1_services.py b/Backend/venv/lib/python3.12/site-packages/stripe/_v1_services.py new file mode 100644 index 00000000..ca9cc05b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_v1_services.py @@ -0,0 +1,323 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account_link_service import AccountLinkService + from stripe._account_service import AccountService + from stripe._account_session_service import AccountSessionService + from stripe._apple_pay_domain_service import ApplePayDomainService + from stripe._application_fee_service import ApplicationFeeService + from stripe._apps_service import AppsService + from stripe._balance_service import BalanceService + from stripe._balance_settings_service import BalanceSettingsService + from stripe._balance_transaction_service import BalanceTransactionService + from stripe._billing_portal_service import BillingPortalService + from stripe._billing_service import BillingService + from stripe._charge_service import ChargeService + from stripe._checkout_service import CheckoutService + from stripe._climate_service import ClimateService + from stripe._confirmation_token_service import ConfirmationTokenService + from stripe._country_spec_service import CountrySpecService + from stripe._coupon_service import CouponService + from stripe._credit_note_service import CreditNoteService + from stripe._customer_service import CustomerService + from stripe._customer_session_service import CustomerSessionService + from stripe._dispute_service import DisputeService + from stripe._entitlements_service import EntitlementsService + from stripe._ephemeral_key_service import EphemeralKeyService + from stripe._event_service import EventService + from stripe._exchange_rate_service import ExchangeRateService + from stripe._file_link_service import FileLinkService + from stripe._file_service import FileService + from stripe._financial_connections_service import ( + FinancialConnectionsService, + ) + from stripe._forwarding_service import ForwardingService + from stripe._identity_service import IdentityService + from stripe._invoice_item_service import InvoiceItemService + from stripe._invoice_payment_service import InvoicePaymentService + from stripe._invoice_rendering_template_service import ( + InvoiceRenderingTemplateService, + ) + from stripe._invoice_service import InvoiceService + from stripe._issuing_service import IssuingService + from stripe._mandate_service import MandateService + from stripe._payment_attempt_record_service import ( + PaymentAttemptRecordService, + ) + from stripe._payment_intent_service import PaymentIntentService + from stripe._payment_link_service import PaymentLinkService + from stripe._payment_method_configuration_service import ( + PaymentMethodConfigurationService, + ) + from stripe._payment_method_domain_service import ( + PaymentMethodDomainService, + ) + from stripe._payment_method_service import PaymentMethodService + from stripe._payment_record_service import PaymentRecordService + from stripe._payout_service import PayoutService + from stripe._plan_service import PlanService + from stripe._price_service import PriceService + from stripe._product_service import ProductService + from stripe._promotion_code_service import PromotionCodeService + from stripe._quote_service import QuoteService + from stripe._radar_service import RadarService + from stripe._refund_service import RefundService + from stripe._reporting_service import ReportingService + from stripe._review_service import ReviewService + from stripe._setup_attempt_service import SetupAttemptService + from stripe._setup_intent_service import SetupIntentService + from stripe._shipping_rate_service import ShippingRateService + from stripe._sigma_service import SigmaService + from stripe._source_service import SourceService + from stripe._subscription_item_service import SubscriptionItemService + from stripe._subscription_schedule_service import ( + SubscriptionScheduleService, + ) + from stripe._subscription_service import SubscriptionService + from stripe._tax_code_service import TaxCodeService + from stripe._tax_id_service import TaxIdService + from stripe._tax_rate_service import TaxRateService + from stripe._tax_service import TaxService + from stripe._terminal_service import TerminalService + from stripe._test_helpers_service import TestHelpersService + from stripe._token_service import TokenService + from stripe._topup_service import TopupService + from stripe._transfer_service import TransferService + from stripe._treasury_service import TreasuryService + from stripe._webhook_endpoint_service import WebhookEndpointService + +_subservices = { + "accounts": ["stripe._account_service", "AccountService"], + "account_links": ["stripe._account_link_service", "AccountLinkService"], + "account_sessions": [ + "stripe._account_session_service", + "AccountSessionService", + ], + "apple_pay_domains": [ + "stripe._apple_pay_domain_service", + "ApplePayDomainService", + ], + "application_fees": [ + "stripe._application_fee_service", + "ApplicationFeeService", + ], + "apps": ["stripe._apps_service", "AppsService"], + "balance": ["stripe._balance_service", "BalanceService"], + "balance_settings": [ + "stripe._balance_settings_service", + "BalanceSettingsService", + ], + "balance_transactions": [ + "stripe._balance_transaction_service", + "BalanceTransactionService", + ], + "billing": ["stripe._billing_service", "BillingService"], + "billing_portal": [ + "stripe._billing_portal_service", + "BillingPortalService", + ], + "charges": ["stripe._charge_service", "ChargeService"], + "checkout": ["stripe._checkout_service", "CheckoutService"], + "climate": ["stripe._climate_service", "ClimateService"], + "confirmation_tokens": [ + "stripe._confirmation_token_service", + "ConfirmationTokenService", + ], + "country_specs": ["stripe._country_spec_service", "CountrySpecService"], + "coupons": ["stripe._coupon_service", "CouponService"], + "credit_notes": ["stripe._credit_note_service", "CreditNoteService"], + "customers": ["stripe._customer_service", "CustomerService"], + "customer_sessions": [ + "stripe._customer_session_service", + "CustomerSessionService", + ], + "disputes": ["stripe._dispute_service", "DisputeService"], + "entitlements": ["stripe._entitlements_service", "EntitlementsService"], + "ephemeral_keys": ["stripe._ephemeral_key_service", "EphemeralKeyService"], + "events": ["stripe._event_service", "EventService"], + "exchange_rates": ["stripe._exchange_rate_service", "ExchangeRateService"], + "files": ["stripe._file_service", "FileService"], + "file_links": ["stripe._file_link_service", "FileLinkService"], + "financial_connections": [ + "stripe._financial_connections_service", + "FinancialConnectionsService", + ], + "forwarding": ["stripe._forwarding_service", "ForwardingService"], + "identity": ["stripe._identity_service", "IdentityService"], + "invoices": ["stripe._invoice_service", "InvoiceService"], + "invoice_items": ["stripe._invoice_item_service", "InvoiceItemService"], + "invoice_payments": [ + "stripe._invoice_payment_service", + "InvoicePaymentService", + ], + "invoice_rendering_templates": [ + "stripe._invoice_rendering_template_service", + "InvoiceRenderingTemplateService", + ], + "issuing": ["stripe._issuing_service", "IssuingService"], + "mandates": ["stripe._mandate_service", "MandateService"], + "payment_attempt_records": [ + "stripe._payment_attempt_record_service", + "PaymentAttemptRecordService", + ], + "payment_intents": [ + "stripe._payment_intent_service", + "PaymentIntentService", + ], + "payment_links": ["stripe._payment_link_service", "PaymentLinkService"], + "payment_methods": [ + "stripe._payment_method_service", + "PaymentMethodService", + ], + "payment_method_configurations": [ + "stripe._payment_method_configuration_service", + "PaymentMethodConfigurationService", + ], + "payment_method_domains": [ + "stripe._payment_method_domain_service", + "PaymentMethodDomainService", + ], + "payment_records": [ + "stripe._payment_record_service", + "PaymentRecordService", + ], + "payouts": ["stripe._payout_service", "PayoutService"], + "plans": ["stripe._plan_service", "PlanService"], + "prices": ["stripe._price_service", "PriceService"], + "products": ["stripe._product_service", "ProductService"], + "promotion_codes": [ + "stripe._promotion_code_service", + "PromotionCodeService", + ], + "quotes": ["stripe._quote_service", "QuoteService"], + "radar": ["stripe._radar_service", "RadarService"], + "refunds": ["stripe._refund_service", "RefundService"], + "reporting": ["stripe._reporting_service", "ReportingService"], + "reviews": ["stripe._review_service", "ReviewService"], + "setup_attempts": ["stripe._setup_attempt_service", "SetupAttemptService"], + "setup_intents": ["stripe._setup_intent_service", "SetupIntentService"], + "shipping_rates": ["stripe._shipping_rate_service", "ShippingRateService"], + "sigma": ["stripe._sigma_service", "SigmaService"], + "sources": ["stripe._source_service", "SourceService"], + "subscriptions": ["stripe._subscription_service", "SubscriptionService"], + "subscription_items": [ + "stripe._subscription_item_service", + "SubscriptionItemService", + ], + "subscription_schedules": [ + "stripe._subscription_schedule_service", + "SubscriptionScheduleService", + ], + "tax": ["stripe._tax_service", "TaxService"], + "tax_codes": ["stripe._tax_code_service", "TaxCodeService"], + "tax_ids": ["stripe._tax_id_service", "TaxIdService"], + "tax_rates": ["stripe._tax_rate_service", "TaxRateService"], + "terminal": ["stripe._terminal_service", "TerminalService"], + "test_helpers": ["stripe._test_helpers_service", "TestHelpersService"], + "tokens": ["stripe._token_service", "TokenService"], + "topups": ["stripe._topup_service", "TopupService"], + "transfers": ["stripe._transfer_service", "TransferService"], + "treasury": ["stripe._treasury_service", "TreasuryService"], + "webhook_endpoints": [ + "stripe._webhook_endpoint_service", + "WebhookEndpointService", + ], +} + + +class V1Services(StripeService): + accounts: "AccountService" + account_links: "AccountLinkService" + account_sessions: "AccountSessionService" + apple_pay_domains: "ApplePayDomainService" + application_fees: "ApplicationFeeService" + apps: "AppsService" + balance: "BalanceService" + balance_settings: "BalanceSettingsService" + balance_transactions: "BalanceTransactionService" + billing: "BillingService" + billing_portal: "BillingPortalService" + charges: "ChargeService" + checkout: "CheckoutService" + climate: "ClimateService" + confirmation_tokens: "ConfirmationTokenService" + country_specs: "CountrySpecService" + coupons: "CouponService" + credit_notes: "CreditNoteService" + customers: "CustomerService" + customer_sessions: "CustomerSessionService" + disputes: "DisputeService" + entitlements: "EntitlementsService" + ephemeral_keys: "EphemeralKeyService" + events: "EventService" + exchange_rates: "ExchangeRateService" + files: "FileService" + file_links: "FileLinkService" + financial_connections: "FinancialConnectionsService" + forwarding: "ForwardingService" + identity: "IdentityService" + invoices: "InvoiceService" + invoice_items: "InvoiceItemService" + invoice_payments: "InvoicePaymentService" + invoice_rendering_templates: "InvoiceRenderingTemplateService" + issuing: "IssuingService" + mandates: "MandateService" + payment_attempt_records: "PaymentAttemptRecordService" + payment_intents: "PaymentIntentService" + payment_links: "PaymentLinkService" + payment_methods: "PaymentMethodService" + payment_method_configurations: "PaymentMethodConfigurationService" + payment_method_domains: "PaymentMethodDomainService" + payment_records: "PaymentRecordService" + payouts: "PayoutService" + plans: "PlanService" + prices: "PriceService" + products: "ProductService" + promotion_codes: "PromotionCodeService" + quotes: "QuoteService" + radar: "RadarService" + refunds: "RefundService" + reporting: "ReportingService" + reviews: "ReviewService" + setup_attempts: "SetupAttemptService" + setup_intents: "SetupIntentService" + shipping_rates: "ShippingRateService" + sigma: "SigmaService" + sources: "SourceService" + subscriptions: "SubscriptionService" + subscription_items: "SubscriptionItemService" + subscription_schedules: "SubscriptionScheduleService" + tax: "TaxService" + tax_codes: "TaxCodeService" + tax_ids: "TaxIdService" + tax_rates: "TaxRateService" + terminal: "TerminalService" + test_helpers: "TestHelpersService" + tokens: "TokenService" + topups: "TopupService" + transfers: "TransferService" + treasury: "TreasuryService" + webhook_endpoints: "WebhookEndpointService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_v2_services.py b/Backend/venv/lib/python3.12/site-packages/stripe/_v2_services.py new file mode 100644 index 00000000..ebc1434a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_v2_services.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.v2._billing_service import BillingService + from stripe.v2._core_service import CoreService + +_subservices = { + "billing": ["stripe.v2._billing_service", "BillingService"], + "core": ["stripe.v2._core_service", "CoreService"], +} + + +class V2Services(StripeService): + billing: "BillingService" + core: "CoreService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_verify_mixin.py b/Backend/venv/lib/python3.12/site-packages/stripe/_verify_mixin.py new file mode 100644 index 00000000..bf779c61 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_verify_mixin.py @@ -0,0 +1,21 @@ +from typing import Any, Dict +from typing_extensions import Protocol + +from stripe._stripe_object import StripeObject + + +class _Verifiable(Protocol): + def instance_url(self) -> str: ... + + def _request( + self, + method: str, + url: str, + params: Dict[str, Any], + ) -> StripeObject: ... + + +class VerifyMixin(object): + def verify(self: _Verifiable, **params): + url = self.instance_url() + "/verify" + return self._request("post", url, params=params) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_version.py b/Backend/venv/lib/python3.12/site-packages/stripe/_version.py new file mode 100644 index 00000000..1cdb1633 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_version.py @@ -0,0 +1 @@ +VERSION = "13.2.0" diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_webhook.py b/Backend/venv/lib/python3.12/site-packages/stripe/_webhook.py new file mode 100644 index 00000000..61686386 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_webhook.py @@ -0,0 +1,96 @@ +import hmac +import json +import time +from collections import OrderedDict +from hashlib import sha256 + +# Used for global variables +import stripe # noqa: IMP101 +from stripe._event import Event +from stripe._util import secure_compare +from stripe._error import SignatureVerificationError +from stripe._api_requestor import _APIRequestor + + +class Webhook(object): + DEFAULT_TOLERANCE = 300 + + @staticmethod + def construct_event( + payload, sig_header, secret, tolerance=DEFAULT_TOLERANCE, api_key=None + ): + if hasattr(payload, "decode"): + payload = payload.decode("utf-8") + + WebhookSignature.verify_header(payload, sig_header, secret, tolerance) + + data = json.loads(payload, object_pairs_hook=OrderedDict) + event = Event._construct_from( + values=data, + requestor=_APIRequestor._global_with_options( + api_key=api_key or stripe.api_key + ), + api_mode="V1", + ) + + return event + + +class WebhookSignature(object): + EXPECTED_SCHEME = "v1" + + @staticmethod + def _compute_signature(payload, secret): + mac = hmac.new( + secret.encode("utf-8"), + msg=payload.encode("utf-8"), + digestmod=sha256, + ) + return mac.hexdigest() + + @staticmethod + def _get_timestamp_and_signatures(header, scheme): + list_items = [i.split("=", 2) for i in header.split(",")] + timestamp = int([i[1] for i in list_items if i[0] == "t"][0]) + signatures = [i[1] for i in list_items if i[0] == scheme] + return timestamp, signatures + + @classmethod + def verify_header(cls, payload, header, secret, tolerance=None): + try: + timestamp, signatures = cls._get_timestamp_and_signatures( + header, cls.EXPECTED_SCHEME + ) + except Exception: + raise SignatureVerificationError( + "Unable to extract timestamp and signatures from header", + header, + payload, + ) + + if not signatures: + raise SignatureVerificationError( + "No signatures found with expected scheme " + "%s" % cls.EXPECTED_SCHEME, + header, + payload, + ) + + signed_payload = "%d.%s" % (timestamp, payload) + expected_sig = cls._compute_signature(signed_payload, secret) + if not any(secure_compare(expected_sig, s) for s in signatures): + raise SignatureVerificationError( + "No signatures found matching the expected signature for " + "payload", + header, + payload, + ) + + if tolerance and timestamp < time.time() - tolerance: + raise SignatureVerificationError( + "Timestamp outside the tolerance zone (%d)" % timestamp, + header, + payload, + ) + + return True diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_webhook_endpoint.py b/Backend/venv/lib/python3.12/site-packages/stripe/_webhook_endpoint.py new file mode 100644 index 00000000..50c1d8cf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_webhook_endpoint.py @@ -0,0 +1,324 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params._webhook_endpoint_create_params import ( + WebhookEndpointCreateParams, + ) + from stripe.params._webhook_endpoint_delete_params import ( + WebhookEndpointDeleteParams, + ) + from stripe.params._webhook_endpoint_list_params import ( + WebhookEndpointListParams, + ) + from stripe.params._webhook_endpoint_modify_params import ( + WebhookEndpointModifyParams, + ) + from stripe.params._webhook_endpoint_retrieve_params import ( + WebhookEndpointRetrieveParams, + ) + + +class WebhookEndpoint( + CreateableAPIResource["WebhookEndpoint"], + DeletableAPIResource["WebhookEndpoint"], + ListableAPIResource["WebhookEndpoint"], + UpdateableAPIResource["WebhookEndpoint"], +): + """ + You can configure [webhook endpoints](https://docs.stripe.com/webhooks/) via the API to be + notified about events that happen in your Stripe account or connected + accounts. + + Most users configure webhooks from [the dashboard](https://dashboard.stripe.com/webhooks), which provides a user interface for registering and testing your webhook endpoints. + + Related guide: [Setting up webhooks](https://docs.stripe.com/webhooks/configure) + """ + + OBJECT_NAME: ClassVar[Literal["webhook_endpoint"]] = "webhook_endpoint" + api_version: Optional[str] + """ + The API version events are rendered as for this webhook endpoint. + """ + application: Optional[str] + """ + The ID of the associated Connect application. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + description: Optional[str] + """ + An optional description of what the webhook is used for. + """ + enabled_events: List[str] + """ + The list of events to enable for this endpoint. `['*']` indicates that all events are enabled, except those that require explicit selection. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["webhook_endpoint"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + secret: Optional[str] + """ + The endpoint's secret, used to generate [webhook signatures](https://docs.stripe.com/webhooks/signatures). Only returned at creation. + """ + status: str + """ + The status of the webhook. It can be `enabled` or `disabled`. + """ + url: str + """ + The URL of the webhook endpoint. + """ + + @classmethod + def create( + cls, **params: Unpack["WebhookEndpointCreateParams"] + ) -> "WebhookEndpoint": + """ + A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the [webhooks settings](https://dashboard.stripe.com/account/webhooks) section of the Dashboard. + """ + return cast( + "WebhookEndpoint", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["WebhookEndpointCreateParams"] + ) -> "WebhookEndpoint": + """ + A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the [webhooks settings](https://dashboard.stripe.com/account/webhooks) section of the Dashboard. + """ + return cast( + "WebhookEndpoint", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "WebhookEndpoint", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + ... + + @overload + def delete( + self, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "WebhookEndpoint", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["WebhookEndpointDeleteParams"] + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["WebhookEndpointListParams"] + ) -> ListObject["WebhookEndpoint"]: + """ + Returns a list of your webhook endpoints. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["WebhookEndpointListParams"] + ) -> ListObject["WebhookEndpoint"]: + """ + Returns a list of your webhook endpoints. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["WebhookEndpointModifyParams"] + ) -> "WebhookEndpoint": + """ + Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "WebhookEndpoint", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["WebhookEndpointModifyParams"] + ) -> "WebhookEndpoint": + """ + Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "WebhookEndpoint", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["WebhookEndpointRetrieveParams"] + ) -> "WebhookEndpoint": + """ + Retrieves the webhook endpoint with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["WebhookEndpointRetrieveParams"] + ) -> "WebhookEndpoint": + """ + Retrieves the webhook endpoint with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/_webhook_endpoint_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/_webhook_endpoint_service.py new file mode 100644 index 00000000..22c51718 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/_webhook_endpoint_service.py @@ -0,0 +1,236 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe._webhook_endpoint import WebhookEndpoint + from stripe.params._webhook_endpoint_create_params import ( + WebhookEndpointCreateParams, + ) + from stripe.params._webhook_endpoint_delete_params import ( + WebhookEndpointDeleteParams, + ) + from stripe.params._webhook_endpoint_list_params import ( + WebhookEndpointListParams, + ) + from stripe.params._webhook_endpoint_retrieve_params import ( + WebhookEndpointRetrieveParams, + ) + from stripe.params._webhook_endpoint_update_params import ( + WebhookEndpointUpdateParams, + ) + + +class WebhookEndpointService(StripeService): + def delete( + self, + webhook_endpoint: str, + params: Optional["WebhookEndpointDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + return cast( + "WebhookEndpoint", + self._request( + "delete", + "/v1/webhook_endpoints/{webhook_endpoint}".format( + webhook_endpoint=sanitize_id(webhook_endpoint), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + webhook_endpoint: str, + params: Optional["WebhookEndpointDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard. + """ + return cast( + "WebhookEndpoint", + await self._request_async( + "delete", + "/v1/webhook_endpoints/{webhook_endpoint}".format( + webhook_endpoint=sanitize_id(webhook_endpoint), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + webhook_endpoint: str, + params: Optional["WebhookEndpointRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + Retrieves the webhook endpoint with the given ID. + """ + return cast( + "WebhookEndpoint", + self._request( + "get", + "/v1/webhook_endpoints/{webhook_endpoint}".format( + webhook_endpoint=sanitize_id(webhook_endpoint), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + webhook_endpoint: str, + params: Optional["WebhookEndpointRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + Retrieves the webhook endpoint with the given ID. + """ + return cast( + "WebhookEndpoint", + await self._request_async( + "get", + "/v1/webhook_endpoints/{webhook_endpoint}".format( + webhook_endpoint=sanitize_id(webhook_endpoint), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + webhook_endpoint: str, + params: Optional["WebhookEndpointUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint. + """ + return cast( + "WebhookEndpoint", + self._request( + "post", + "/v1/webhook_endpoints/{webhook_endpoint}".format( + webhook_endpoint=sanitize_id(webhook_endpoint), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + webhook_endpoint: str, + params: Optional["WebhookEndpointUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint. + """ + return cast( + "WebhookEndpoint", + await self._request_async( + "post", + "/v1/webhook_endpoints/{webhook_endpoint}".format( + webhook_endpoint=sanitize_id(webhook_endpoint), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["WebhookEndpointListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[WebhookEndpoint]": + """ + Returns a list of your webhook endpoints. + """ + return cast( + "ListObject[WebhookEndpoint]", + self._request( + "get", + "/v1/webhook_endpoints", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["WebhookEndpointListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[WebhookEndpoint]": + """ + Returns a list of your webhook endpoints. + """ + return cast( + "ListObject[WebhookEndpoint]", + await self._request_async( + "get", + "/v1/webhook_endpoints", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "WebhookEndpointCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the [webhooks settings](https://dashboard.stripe.com/account/webhooks) section of the Dashboard. + """ + return cast( + "WebhookEndpoint", + self._request( + "post", + "/v1/webhook_endpoints", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "WebhookEndpointCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "WebhookEndpoint": + """ + A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the [webhooks settings](https://dashboard.stripe.com/account/webhooks) section of the Dashboard. + """ + return cast( + "WebhookEndpoint", + await self._request_async( + "post", + "/v1/webhook_endpoints", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/apps/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__init__.py new file mode 100644 index 00000000..f4e11b24 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__init__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.apps._secret import Secret as Secret + from stripe.apps._secret_service import SecretService as SecretService + +# name -> (import_target, is_submodule) +_import_map = { + "Secret": ("stripe.apps._secret", False), + "SecretService": ("stripe.apps._secret_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..a801fbb5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/_secret.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/_secret.cpython-312.pyc new file mode 100644 index 00000000..d97bc6fc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/_secret.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/_secret_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/_secret_service.cpython-312.pyc new file mode 100644 index 00000000..820e9e31 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/apps/__pycache__/_secret_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/apps/_secret.py b/Backend/venv/lib/python3.12/site-packages/stripe/apps/_secret.py new file mode 100644 index 00000000..9ff3f402 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/apps/_secret.py @@ -0,0 +1,210 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.apps._secret_create_params import SecretCreateParams + from stripe.params.apps._secret_delete_where_params import ( + SecretDeleteWhereParams, + ) + from stripe.params.apps._secret_find_params import SecretFindParams + from stripe.params.apps._secret_list_params import SecretListParams + + +class Secret(CreateableAPIResource["Secret"], ListableAPIResource["Secret"]): + """ + Secret Store is an API that allows Stripe Apps developers to securely persist secrets for use by UI Extensions and app backends. + + The primary resource in Secret Store is a `secret`. Other apps can't view secrets created by an app. Additionally, secrets are scoped to provide further permission control. + + All Dashboard users and the app backend share `account` scoped secrets. Use the `account` scope for secrets that don't change per-user, like a third-party API key. + + A `user` scoped secret is accessible by the app backend and one specific Dashboard user. Use the `user` scope for per-user secrets like per-user OAuth tokens, where different users might have different permissions. + + Related guide: [Store data between page reloads](https://stripe.com/docs/stripe-apps/store-auth-data-custom-objects) + """ + + OBJECT_NAME: ClassVar[Literal["apps.secret"]] = "apps.secret" + + class Scope(StripeObject): + type: Literal["account", "user"] + """ + The secret scope type. + """ + user: Optional[str] + """ + The user ID, if type is set to "user" + """ + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + deleted: Optional[bool] + """ + If true, indicates that this secret has been deleted + """ + expires_at: Optional[int] + """ + The Unix timestamp for the expiry time of the secret, after which the secret deletes. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + name: str + """ + A name for the secret that's unique within the scope. + """ + object: Literal["apps.secret"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payload: Optional[str] + """ + The plaintext secret value to be stored. + """ + scope: Scope + + @classmethod + def create(cls, **params: Unpack["SecretCreateParams"]) -> "Secret": + """ + Create or replace a secret in the secret store. + """ + return cast( + "Secret", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SecretCreateParams"] + ) -> "Secret": + """ + Create or replace a secret in the secret store. + """ + return cast( + "Secret", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def delete_where( + cls, **params: Unpack["SecretDeleteWhereParams"] + ) -> "Secret": + """ + Deletes a secret from the secret store by name and scope. + """ + return cast( + "Secret", + cls._static_request( + "post", + "/v1/apps/secrets/delete", + params=params, + ), + ) + + @classmethod + async def delete_where_async( + cls, **params: Unpack["SecretDeleteWhereParams"] + ) -> "Secret": + """ + Deletes a secret from the secret store by name and scope. + """ + return cast( + "Secret", + await cls._static_request_async( + "post", + "/v1/apps/secrets/delete", + params=params, + ), + ) + + @classmethod + def find(cls, **params: Unpack["SecretFindParams"]) -> "Secret": + """ + Finds a secret in the secret store by name and scope. + """ + return cast( + "Secret", + cls._static_request( + "get", + "/v1/apps/secrets/find", + params=params, + ), + ) + + @classmethod + async def find_async( + cls, **params: Unpack["SecretFindParams"] + ) -> "Secret": + """ + Finds a secret in the secret store by name and scope. + """ + return cast( + "Secret", + await cls._static_request_async( + "get", + "/v1/apps/secrets/find", + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["SecretListParams"] + ) -> ListObject["Secret"]: + """ + List all secrets stored on the given scope. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SecretListParams"] + ) -> ListObject["Secret"]: + """ + List all secrets stored on the given scope. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + _inner_class_types = {"scope": Scope} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/apps/_secret_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/apps/_secret_service.py new file mode 100644 index 00000000..2a164c43 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/apps/_secret_service.py @@ -0,0 +1,170 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.apps._secret import Secret + from stripe.params.apps._secret_create_params import SecretCreateParams + from stripe.params.apps._secret_delete_where_params import ( + SecretDeleteWhereParams, + ) + from stripe.params.apps._secret_find_params import SecretFindParams + from stripe.params.apps._secret_list_params import SecretListParams + + +class SecretService(StripeService): + def list( + self, + params: "SecretListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Secret]": + """ + List all secrets stored on the given scope. + """ + return cast( + "ListObject[Secret]", + self._request( + "get", + "/v1/apps/secrets", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "SecretListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Secret]": + """ + List all secrets stored on the given scope. + """ + return cast( + "ListObject[Secret]", + await self._request_async( + "get", + "/v1/apps/secrets", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "SecretCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Secret": + """ + Create or replace a secret in the secret store. + """ + return cast( + "Secret", + self._request( + "post", + "/v1/apps/secrets", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "SecretCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Secret": + """ + Create or replace a secret in the secret store. + """ + return cast( + "Secret", + await self._request_async( + "post", + "/v1/apps/secrets", + base_address="api", + params=params, + options=options, + ), + ) + + def find( + self, + params: "SecretFindParams", + options: Optional["RequestOptions"] = None, + ) -> "Secret": + """ + Finds a secret in the secret store by name and scope. + """ + return cast( + "Secret", + self._request( + "get", + "/v1/apps/secrets/find", + base_address="api", + params=params, + options=options, + ), + ) + + async def find_async( + self, + params: "SecretFindParams", + options: Optional["RequestOptions"] = None, + ) -> "Secret": + """ + Finds a secret in the secret store by name and scope. + """ + return cast( + "Secret", + await self._request_async( + "get", + "/v1/apps/secrets/find", + base_address="api", + params=params, + options=options, + ), + ) + + def delete_where( + self, + params: "SecretDeleteWhereParams", + options: Optional["RequestOptions"] = None, + ) -> "Secret": + """ + Deletes a secret from the secret store by name and scope. + """ + return cast( + "Secret", + self._request( + "post", + "/v1/apps/secrets/delete", + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_where_async( + self, + params: "SecretDeleteWhereParams", + options: Optional["RequestOptions"] = None, + ) -> "Secret": + """ + Deletes a secret from the secret store by name and scope. + """ + return cast( + "Secret", + await self._request_async( + "post", + "/v1/apps/secrets/delete", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__init__.py new file mode 100644 index 00000000..d6b7582d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__init__.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.billing._alert import Alert as Alert + from stripe.billing._alert_service import AlertService as AlertService + from stripe.billing._alert_triggered import ( + AlertTriggered as AlertTriggered, + ) + from stripe.billing._credit_balance_summary import ( + CreditBalanceSummary as CreditBalanceSummary, + ) + from stripe.billing._credit_balance_summary_service import ( + CreditBalanceSummaryService as CreditBalanceSummaryService, + ) + from stripe.billing._credit_balance_transaction import ( + CreditBalanceTransaction as CreditBalanceTransaction, + ) + from stripe.billing._credit_balance_transaction_service import ( + CreditBalanceTransactionService as CreditBalanceTransactionService, + ) + from stripe.billing._credit_grant import CreditGrant as CreditGrant + from stripe.billing._credit_grant_service import ( + CreditGrantService as CreditGrantService, + ) + from stripe.billing._meter import Meter as Meter + from stripe.billing._meter_event import MeterEvent as MeterEvent + from stripe.billing._meter_event_adjustment import ( + MeterEventAdjustment as MeterEventAdjustment, + ) + from stripe.billing._meter_event_adjustment_service import ( + MeterEventAdjustmentService as MeterEventAdjustmentService, + ) + from stripe.billing._meter_event_service import ( + MeterEventService as MeterEventService, + ) + from stripe.billing._meter_event_summary import ( + MeterEventSummary as MeterEventSummary, + ) + from stripe.billing._meter_event_summary_service import ( + MeterEventSummaryService as MeterEventSummaryService, + ) + from stripe.billing._meter_service import MeterService as MeterService + +# name -> (import_target, is_submodule) +_import_map = { + "Alert": ("stripe.billing._alert", False), + "AlertService": ("stripe.billing._alert_service", False), + "AlertTriggered": ("stripe.billing._alert_triggered", False), + "CreditBalanceSummary": ("stripe.billing._credit_balance_summary", False), + "CreditBalanceSummaryService": ( + "stripe.billing._credit_balance_summary_service", + False, + ), + "CreditBalanceTransaction": ( + "stripe.billing._credit_balance_transaction", + False, + ), + "CreditBalanceTransactionService": ( + "stripe.billing._credit_balance_transaction_service", + False, + ), + "CreditGrant": ("stripe.billing._credit_grant", False), + "CreditGrantService": ("stripe.billing._credit_grant_service", False), + "Meter": ("stripe.billing._meter", False), + "MeterEvent": ("stripe.billing._meter_event", False), + "MeterEventAdjustment": ("stripe.billing._meter_event_adjustment", False), + "MeterEventAdjustmentService": ( + "stripe.billing._meter_event_adjustment_service", + False, + ), + "MeterEventService": ("stripe.billing._meter_event_service", False), + "MeterEventSummary": ("stripe.billing._meter_event_summary", False), + "MeterEventSummaryService": ( + "stripe.billing._meter_event_summary_service", + False, + ), + "MeterService": ("stripe.billing._meter_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..879fbd7c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert.cpython-312.pyc new file mode 100644 index 00000000..9a29f573 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert_service.cpython-312.pyc new file mode 100644 index 00000000..cd023d2f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert_triggered.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert_triggered.cpython-312.pyc new file mode 100644 index 00000000..41c28e23 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_alert_triggered.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_summary.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_summary.cpython-312.pyc new file mode 100644 index 00000000..3f5ab803 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_summary.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_summary_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_summary_service.cpython-312.pyc new file mode 100644 index 00000000..cf8490ea Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_summary_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_transaction.cpython-312.pyc new file mode 100644 index 00000000..d55c565b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..770fb715 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_balance_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_grant.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_grant.cpython-312.pyc new file mode 100644 index 00000000..81c2daf6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_grant.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_grant_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_grant_service.cpython-312.pyc new file mode 100644 index 00000000..4e0de479 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_credit_grant_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter.cpython-312.pyc new file mode 100644 index 00000000..35e51d79 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event.cpython-312.pyc new file mode 100644 index 00000000..64ed241c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc new file mode 100644 index 00000000..d5cbfc5a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc new file mode 100644 index 00000000..ec75de45 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_service.cpython-312.pyc new file mode 100644 index 00000000..2cd8fed8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_summary.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_summary.cpython-312.pyc new file mode 100644 index 00000000..e629fe25 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_summary.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_summary_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_summary_service.cpython-312.pyc new file mode 100644 index 00000000..bd8daf4b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_event_summary_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_service.cpython-312.pyc new file mode 100644 index 00000000..945e302f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing/__pycache__/_meter_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert.py new file mode 100644 index 00000000..e7b6b800 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert.py @@ -0,0 +1,493 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer import Customer + from stripe.billing._meter import Meter + from stripe.params.billing._alert_activate_params import ( + AlertActivateParams, + ) + from stripe.params.billing._alert_archive_params import AlertArchiveParams + from stripe.params.billing._alert_create_params import AlertCreateParams + from stripe.params.billing._alert_deactivate_params import ( + AlertDeactivateParams, + ) + from stripe.params.billing._alert_list_params import AlertListParams + from stripe.params.billing._alert_retrieve_params import ( + AlertRetrieveParams, + ) + + +class Alert(CreateableAPIResource["Alert"], ListableAPIResource["Alert"]): + """ + A billing alert is a resource that notifies you when a certain usage threshold on a meter is crossed. For example, you might create a billing alert to notify you when a certain user made 100 API requests. + """ + + OBJECT_NAME: ClassVar[Literal["billing.alert"]] = "billing.alert" + + class UsageThreshold(StripeObject): + class Filter(StripeObject): + customer: Optional[ExpandableField["Customer"]] + """ + Limit the scope of the alert to this customer ID + """ + type: Literal["customer"] + + filters: Optional[List[Filter]] + """ + The filters allow limiting the scope of this usage alert. You can only specify up to one filter at this time. + """ + gte: int + """ + The value at which this alert will trigger. + """ + meter: ExpandableField["Meter"] + """ + The [Billing Meter](https://docs.stripe.com/api/billing/meter) ID whose usage is monitored. + """ + recurrence: Literal["one_time"] + """ + Defines how the alert will behave. + """ + _inner_class_types = {"filters": Filter} + + alert_type: Literal["usage_threshold"] + """ + Defines the type of the alert. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["billing.alert"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Optional[Literal["active", "archived", "inactive"]] + """ + Status of the alert. This can be active, inactive or archived. + """ + title: str + """ + Title of the alert. + """ + usage_threshold: Optional[UsageThreshold] + """ + Encapsulates configuration of the alert to monitor usage on a specific [Billing Meter](https://stripe.com/docs/api/billing/meter). + """ + + @classmethod + def _cls_activate( + cls, id: str, **params: Unpack["AlertActivateParams"] + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + return cast( + "Alert", + cls._static_request( + "post", + "/v1/billing/alerts/{id}/activate".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + def activate(id: str, **params: Unpack["AlertActivateParams"]) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + ... + + @overload + def activate(self, **params: Unpack["AlertActivateParams"]) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + ... + + @class_method_variant("_cls_activate") + def activate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AlertActivateParams"] + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + return cast( + "Alert", + self._request( + "post", + "/v1/billing/alerts/{id}/activate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_activate_async( + cls, id: str, **params: Unpack["AlertActivateParams"] + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + return cast( + "Alert", + await cls._static_request_async( + "post", + "/v1/billing/alerts/{id}/activate".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + async def activate_async( + id: str, **params: Unpack["AlertActivateParams"] + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + ... + + @overload + async def activate_async( + self, **params: Unpack["AlertActivateParams"] + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + ... + + @class_method_variant("_cls_activate_async") + async def activate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AlertActivateParams"] + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + return cast( + "Alert", + await self._request_async( + "post", + "/v1/billing/alerts/{id}/activate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_archive( + cls, id: str, **params: Unpack["AlertArchiveParams"] + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + return cast( + "Alert", + cls._static_request( + "post", + "/v1/billing/alerts/{id}/archive".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + def archive(id: str, **params: Unpack["AlertArchiveParams"]) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + ... + + @overload + def archive(self, **params: Unpack["AlertArchiveParams"]) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + ... + + @class_method_variant("_cls_archive") + def archive( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AlertArchiveParams"] + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + return cast( + "Alert", + self._request( + "post", + "/v1/billing/alerts/{id}/archive".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_archive_async( + cls, id: str, **params: Unpack["AlertArchiveParams"] + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + return cast( + "Alert", + await cls._static_request_async( + "post", + "/v1/billing/alerts/{id}/archive".format(id=sanitize_id(id)), + params=params, + ), + ) + + @overload + @staticmethod + async def archive_async( + id: str, **params: Unpack["AlertArchiveParams"] + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + ... + + @overload + async def archive_async( + self, **params: Unpack["AlertArchiveParams"] + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + ... + + @class_method_variant("_cls_archive_async") + async def archive_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AlertArchiveParams"] + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + return cast( + "Alert", + await self._request_async( + "post", + "/v1/billing/alerts/{id}/archive".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["AlertCreateParams"]) -> "Alert": + """ + Creates a billing alert + """ + return cast( + "Alert", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["AlertCreateParams"] + ) -> "Alert": + """ + Creates a billing alert + """ + return cast( + "Alert", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_deactivate( + cls, id: str, **params: Unpack["AlertDeactivateParams"] + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + return cast( + "Alert", + cls._static_request( + "post", + "/v1/billing/alerts/{id}/deactivate".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def deactivate( + id: str, **params: Unpack["AlertDeactivateParams"] + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + ... + + @overload + def deactivate(self, **params: Unpack["AlertDeactivateParams"]) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + ... + + @class_method_variant("_cls_deactivate") + def deactivate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AlertDeactivateParams"] + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + return cast( + "Alert", + self._request( + "post", + "/v1/billing/alerts/{id}/deactivate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_deactivate_async( + cls, id: str, **params: Unpack["AlertDeactivateParams"] + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + return cast( + "Alert", + await cls._static_request_async( + "post", + "/v1/billing/alerts/{id}/deactivate".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def deactivate_async( + id: str, **params: Unpack["AlertDeactivateParams"] + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + ... + + @overload + async def deactivate_async( + self, **params: Unpack["AlertDeactivateParams"] + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + ... + + @class_method_variant("_cls_deactivate_async") + async def deactivate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AlertDeactivateParams"] + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + return cast( + "Alert", + await self._request_async( + "post", + "/v1/billing/alerts/{id}/deactivate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list(cls, **params: Unpack["AlertListParams"]) -> ListObject["Alert"]: + """ + Lists billing active and inactive alerts + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["AlertListParams"] + ) -> ListObject["Alert"]: + """ + Lists billing active and inactive alerts + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["AlertRetrieveParams"] + ) -> "Alert": + """ + Retrieves a billing alert given an ID + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["AlertRetrieveParams"] + ) -> "Alert": + """ + Retrieves a billing alert given an ID + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"usage_threshold": UsageThreshold} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert_service.py new file mode 100644 index 00000000..88840dc2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert_service.py @@ -0,0 +1,265 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.billing._alert import Alert + from stripe.params.billing._alert_activate_params import ( + AlertActivateParams, + ) + from stripe.params.billing._alert_archive_params import AlertArchiveParams + from stripe.params.billing._alert_create_params import AlertCreateParams + from stripe.params.billing._alert_deactivate_params import ( + AlertDeactivateParams, + ) + from stripe.params.billing._alert_list_params import AlertListParams + from stripe.params.billing._alert_retrieve_params import ( + AlertRetrieveParams, + ) + + +class AlertService(StripeService): + def list( + self, + params: Optional["AlertListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Alert]": + """ + Lists billing active and inactive alerts + """ + return cast( + "ListObject[Alert]", + self._request( + "get", + "/v1/billing/alerts", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["AlertListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Alert]": + """ + Lists billing active and inactive alerts + """ + return cast( + "ListObject[Alert]", + await self._request_async( + "get", + "/v1/billing/alerts", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "AlertCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Creates a billing alert + """ + return cast( + "Alert", + self._request( + "post", + "/v1/billing/alerts", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "AlertCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Creates a billing alert + """ + return cast( + "Alert", + await self._request_async( + "post", + "/v1/billing/alerts", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["AlertRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Retrieves a billing alert given an ID + """ + return cast( + "Alert", + self._request( + "get", + "/v1/billing/alerts/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["AlertRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Retrieves a billing alert given an ID + """ + return cast( + "Alert", + await self._request_async( + "get", + "/v1/billing/alerts/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def activate( + self, + id: str, + params: Optional["AlertActivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + return cast( + "Alert", + self._request( + "post", + "/v1/billing/alerts/{id}/activate".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def activate_async( + self, + id: str, + params: Optional["AlertActivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Reactivates this alert, allowing it to trigger again. + """ + return cast( + "Alert", + await self._request_async( + "post", + "/v1/billing/alerts/{id}/activate".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def archive( + self, + id: str, + params: Optional["AlertArchiveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + return cast( + "Alert", + self._request( + "post", + "/v1/billing/alerts/{id}/archive".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def archive_async( + self, + id: str, + params: Optional["AlertArchiveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Archives this alert, removing it from the list view and APIs. This is non-reversible. + """ + return cast( + "Alert", + await self._request_async( + "post", + "/v1/billing/alerts/{id}/archive".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def deactivate( + self, + id: str, + params: Optional["AlertDeactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + return cast( + "Alert", + self._request( + "post", + "/v1/billing/alerts/{id}/deactivate".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def deactivate_async( + self, + id: str, + params: Optional["AlertDeactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Alert": + """ + Deactivates this alert, preventing it from triggering. + """ + return cast( + "Alert", + await self._request_async( + "post", + "/v1/billing/alerts/{id}/deactivate".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert_triggered.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert_triggered.py new file mode 100644 index 00000000..3e33e940 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_alert_triggered.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.billing._alert import Alert + + +class AlertTriggered(StripeObject): + OBJECT_NAME: ClassVar[Literal["billing.alert_triggered"]] = ( + "billing.alert_triggered" + ) + alert: "Alert" + """ + A billing alert is a resource that notifies you when a certain usage threshold on a meter is crossed. For example, you might create a billing alert to notify you when a certain user made 100 API requests. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: str + """ + ID of customer for which the alert triggered + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["billing.alert_triggered"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + value: int + """ + The value triggering the alert + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_summary.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_summary.py new file mode 100644 index 00000000..27c5eedc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_summary.py @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._singleton_api_resource import SingletonAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer import Customer + from stripe.params.billing._credit_balance_summary_retrieve_params import ( + CreditBalanceSummaryRetrieveParams, + ) + + +class CreditBalanceSummary(SingletonAPIResource["CreditBalanceSummary"]): + """ + Indicates the billing credit balance for billing credits granted to a customer. + """ + + OBJECT_NAME: ClassVar[Literal["billing.credit_balance_summary"]] = ( + "billing.credit_balance_summary" + ) + + class Balance(StripeObject): + class AvailableBalance(StripeObject): + class Monetary(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount. + """ + + monetary: Optional[Monetary] + """ + The monetary amount. + """ + type: Literal["monetary"] + """ + The type of this amount. We currently only support `monetary` billing credits. + """ + _inner_class_types = {"monetary": Monetary} + + class LedgerBalance(StripeObject): + class Monetary(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount. + """ + + monetary: Optional[Monetary] + """ + The monetary amount. + """ + type: Literal["monetary"] + """ + The type of this amount. We currently only support `monetary` billing credits. + """ + _inner_class_types = {"monetary": Monetary} + + available_balance: AvailableBalance + ledger_balance: LedgerBalance + _inner_class_types = { + "available_balance": AvailableBalance, + "ledger_balance": LedgerBalance, + } + + balances: List[Balance] + """ + The billing credit balances. One entry per credit grant currency. If a customer only has credit grants in a single currency, then this will have a single balance entry. + """ + customer: ExpandableField["Customer"] + """ + The customer the balance is for. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["billing.credit_balance_summary"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def retrieve( + cls, **params: Unpack["CreditBalanceSummaryRetrieveParams"] + ) -> "CreditBalanceSummary": + """ + Retrieves the credit balance summary for a customer. + """ + instance = cls(None, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, **params: Unpack["CreditBalanceSummaryRetrieveParams"] + ) -> "CreditBalanceSummary": + """ + Retrieves the credit balance summary for a customer. + """ + instance = cls(None, **params) + await instance.refresh_async() + return instance + + @classmethod + def class_url(cls): + return "/v1/billing/credit_balance_summary" + + _inner_class_types = {"balances": Balance} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_summary_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_summary_service.py new file mode 100644 index 00000000..b911f56e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_summary_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.billing._credit_balance_summary import CreditBalanceSummary + from stripe.params.billing._credit_balance_summary_retrieve_params import ( + CreditBalanceSummaryRetrieveParams, + ) + + +class CreditBalanceSummaryService(StripeService): + def retrieve( + self, + params: "CreditBalanceSummaryRetrieveParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditBalanceSummary": + """ + Retrieves the credit balance summary for a customer. + """ + return cast( + "CreditBalanceSummary", + self._request( + "get", + "/v1/billing/credit_balance_summary", + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + params: "CreditBalanceSummaryRetrieveParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditBalanceSummary": + """ + Retrieves the credit balance summary for a customer. + """ + return cast( + "CreditBalanceSummary", + await self._request_async( + "get", + "/v1/billing/credit_balance_summary", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_transaction.py new file mode 100644 index 00000000..f66eb7b0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_transaction.py @@ -0,0 +1,234 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._invoice import Invoice + from stripe.billing._credit_grant import CreditGrant + from stripe.params.billing._credit_balance_transaction_list_params import ( + CreditBalanceTransactionListParams, + ) + from stripe.params.billing._credit_balance_transaction_retrieve_params import ( + CreditBalanceTransactionRetrieveParams, + ) + from stripe.test_helpers._test_clock import TestClock + + +class CreditBalanceTransaction( + ListableAPIResource["CreditBalanceTransaction"] +): + """ + A credit balance transaction is a resource representing a transaction (either a credit or a debit) against an existing credit grant. + """ + + OBJECT_NAME: ClassVar[Literal["billing.credit_balance_transaction"]] = ( + "billing.credit_balance_transaction" + ) + + class Credit(StripeObject): + class Amount(StripeObject): + class Monetary(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount. + """ + + monetary: Optional[Monetary] + """ + The monetary amount. + """ + type: Literal["monetary"] + """ + The type of this amount. We currently only support `monetary` billing credits. + """ + _inner_class_types = {"monetary": Monetary} + + class CreditsApplicationInvoiceVoided(StripeObject): + invoice: ExpandableField["Invoice"] + """ + The invoice to which the reinstated billing credits were originally applied. + """ + invoice_line_item: str + """ + The invoice line item to which the reinstated billing credits were originally applied. + """ + + amount: Amount + credits_application_invoice_voided: Optional[ + CreditsApplicationInvoiceVoided + ] + """ + Details of the invoice to which the reinstated credits were originally applied. Only present if `type` is `credits_application_invoice_voided`. + """ + type: Literal["credits_application_invoice_voided", "credits_granted"] + """ + The type of credit transaction. + """ + _inner_class_types = { + "amount": Amount, + "credits_application_invoice_voided": CreditsApplicationInvoiceVoided, + } + + class Debit(StripeObject): + class Amount(StripeObject): + class Monetary(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount. + """ + + monetary: Optional[Monetary] + """ + The monetary amount. + """ + type: Literal["monetary"] + """ + The type of this amount. We currently only support `monetary` billing credits. + """ + _inner_class_types = {"monetary": Monetary} + + class CreditsApplied(StripeObject): + invoice: ExpandableField["Invoice"] + """ + The invoice to which the billing credits were applied. + """ + invoice_line_item: str + """ + The invoice line item to which the billing credits were applied. + """ + + amount: Amount + credits_applied: Optional[CreditsApplied] + """ + Details of how the billing credits were applied to an invoice. Only present if `type` is `credits_applied`. + """ + type: Literal["credits_applied", "credits_expired", "credits_voided"] + """ + The type of debit transaction. + """ + _inner_class_types = { + "amount": Amount, + "credits_applied": CreditsApplied, + } + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + credit: Optional[Credit] + """ + Credit details for this credit balance transaction. Only present if type is `credit`. + """ + credit_grant: ExpandableField["CreditGrant"] + """ + The credit grant associated with this credit balance transaction. + """ + debit: Optional[Debit] + """ + Debit details for this credit balance transaction. Only present if type is `debit`. + """ + effective_at: int + """ + The effective time of this credit balance transaction. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["billing.credit_balance_transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock this credit balance transaction belongs to. + """ + type: Optional[Literal["credit", "debit"]] + """ + The type of credit balance transaction (credit or debit). + """ + + @classmethod + def list( + cls, **params: Unpack["CreditBalanceTransactionListParams"] + ) -> ListObject["CreditBalanceTransaction"]: + """ + Retrieve a list of credit balance transactions. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CreditBalanceTransactionListParams"] + ) -> ListObject["CreditBalanceTransaction"]: + """ + Retrieve a list of credit balance transactions. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, + id: str, + **params: Unpack["CreditBalanceTransactionRetrieveParams"], + ) -> "CreditBalanceTransaction": + """ + Retrieves a credit balance transaction. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, + id: str, + **params: Unpack["CreditBalanceTransactionRetrieveParams"], + ) -> "CreditBalanceTransaction": + """ + Retrieves a credit balance transaction. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"credit": Credit, "debit": Debit} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_transaction_service.py new file mode 100644 index 00000000..5aea7ea7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_balance_transaction_service.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.billing._credit_balance_transaction import ( + CreditBalanceTransaction, + ) + from stripe.params.billing._credit_balance_transaction_list_params import ( + CreditBalanceTransactionListParams, + ) + from stripe.params.billing._credit_balance_transaction_retrieve_params import ( + CreditBalanceTransactionRetrieveParams, + ) + + +class CreditBalanceTransactionService(StripeService): + def list( + self, + params: "CreditBalanceTransactionListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditBalanceTransaction]": + """ + Retrieve a list of credit balance transactions. + """ + return cast( + "ListObject[CreditBalanceTransaction]", + self._request( + "get", + "/v1/billing/credit_balance_transactions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "CreditBalanceTransactionListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditBalanceTransaction]": + """ + Retrieve a list of credit balance transactions. + """ + return cast( + "ListObject[CreditBalanceTransaction]", + await self._request_async( + "get", + "/v1/billing/credit_balance_transactions", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["CreditBalanceTransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditBalanceTransaction": + """ + Retrieves a credit balance transaction. + """ + return cast( + "CreditBalanceTransaction", + self._request( + "get", + "/v1/billing/credit_balance_transactions/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["CreditBalanceTransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditBalanceTransaction": + """ + Retrieves a credit balance transaction. + """ + return cast( + "CreditBalanceTransaction", + await self._request_async( + "get", + "/v1/billing/credit_balance_transactions/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_grant.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_grant.py new file mode 100644 index 00000000..fda5610a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_grant.py @@ -0,0 +1,503 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer import Customer + from stripe.params.billing._credit_grant_create_params import ( + CreditGrantCreateParams, + ) + from stripe.params.billing._credit_grant_expire_params import ( + CreditGrantExpireParams, + ) + from stripe.params.billing._credit_grant_list_params import ( + CreditGrantListParams, + ) + from stripe.params.billing._credit_grant_modify_params import ( + CreditGrantModifyParams, + ) + from stripe.params.billing._credit_grant_retrieve_params import ( + CreditGrantRetrieveParams, + ) + from stripe.params.billing._credit_grant_void_grant_params import ( + CreditGrantVoidGrantParams, + ) + from stripe.test_helpers._test_clock import TestClock + + +class CreditGrant( + CreateableAPIResource["CreditGrant"], + ListableAPIResource["CreditGrant"], + UpdateableAPIResource["CreditGrant"], +): + """ + A credit grant is an API resource that documents the allocation of some billing credits to a customer. + + Related guide: [Billing credits](https://docs.stripe.com/billing/subscriptions/usage-based/billing-credits) + """ + + OBJECT_NAME: ClassVar[Literal["billing.credit_grant"]] = ( + "billing.credit_grant" + ) + + class Amount(StripeObject): + class Monetary(StripeObject): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount. + """ + + monetary: Optional[Monetary] + """ + The monetary amount. + """ + type: Literal["monetary"] + """ + The type of this amount. We currently only support `monetary` billing credits. + """ + _inner_class_types = {"monetary": Monetary} + + class ApplicabilityConfig(StripeObject): + class Scope(StripeObject): + class Price(StripeObject): + id: Optional[str] + """ + Unique identifier for the object. + """ + + price_type: Optional[Literal["metered"]] + """ + The price type that credit grants can apply to. We currently only support the `metered` price type. This refers to prices that have a [Billing Meter](https://docs.stripe.com/api/billing/meter) attached to them. Cannot be used in combination with `prices`. + """ + prices: Optional[List[Price]] + """ + The prices that credit grants can apply to. We currently only support `metered` prices. This refers to prices that have a [Billing Meter](https://docs.stripe.com/api/billing/meter) attached to them. Cannot be used in combination with `price_type`. + """ + _inner_class_types = {"prices": Price} + + scope: Scope + _inner_class_types = {"scope": Scope} + + amount: Amount + applicability_config: ApplicabilityConfig + category: Literal["paid", "promotional"] + """ + The category of this credit grant. This is for tracking purposes and isn't displayed to the customer. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: ExpandableField["Customer"] + """ + ID of the customer receiving the billing credits. + """ + effective_at: Optional[int] + """ + The time when the billing credits become effective-when they're eligible for use. + """ + expires_at: Optional[int] + """ + The time when the billing credits expire. If not present, the billing credits don't expire. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: Optional[str] + """ + A descriptive name shown in dashboard. + """ + object: Literal["billing.credit_grant"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + priority: Optional[int] + """ + The priority for applying this credit grant. The highest priority is 0 and the lowest is 100. + """ + test_clock: Optional[ExpandableField["TestClock"]] + """ + ID of the test clock this credit grant belongs to. + """ + updated: int + """ + Time at which the object was last updated. Measured in seconds since the Unix epoch. + """ + voided_at: Optional[int] + """ + The time when this credit grant was voided. If not present, the credit grant hasn't been voided. + """ + + @classmethod + def create( + cls, **params: Unpack["CreditGrantCreateParams"] + ) -> "CreditGrant": + """ + Creates a credit grant. + """ + return cast( + "CreditGrant", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CreditGrantCreateParams"] + ) -> "CreditGrant": + """ + Creates a credit grant. + """ + return cast( + "CreditGrant", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_expire( + cls, id: str, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + return cast( + "CreditGrant", + cls._static_request( + "post", + "/v1/billing/credit_grants/{id}/expire".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def expire( + id: str, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + ... + + @overload + def expire( + self, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + ... + + @class_method_variant("_cls_expire") + def expire( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + return cast( + "CreditGrant", + self._request( + "post", + "/v1/billing/credit_grants/{id}/expire".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_expire_async( + cls, id: str, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + return cast( + "CreditGrant", + await cls._static_request_async( + "post", + "/v1/billing/credit_grants/{id}/expire".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def expire_async( + id: str, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + ... + + @overload + async def expire_async( + self, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + ... + + @class_method_variant("_cls_expire_async") + async def expire_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CreditGrantExpireParams"] + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + return cast( + "CreditGrant", + await self._request_async( + "post", + "/v1/billing/credit_grants/{id}/expire".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["CreditGrantListParams"] + ) -> ListObject["CreditGrant"]: + """ + Retrieve a list of credit grants. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CreditGrantListParams"] + ) -> ListObject["CreditGrant"]: + """ + Retrieve a list of credit grants. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["CreditGrantModifyParams"] + ) -> "CreditGrant": + """ + Updates a credit grant. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "CreditGrant", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["CreditGrantModifyParams"] + ) -> "CreditGrant": + """ + Updates a credit grant. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "CreditGrant", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CreditGrantRetrieveParams"] + ) -> "CreditGrant": + """ + Retrieves a credit grant. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CreditGrantRetrieveParams"] + ) -> "CreditGrant": + """ + Retrieves a credit grant. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_void_grant( + cls, id: str, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + return cast( + "CreditGrant", + cls._static_request( + "post", + "/v1/billing/credit_grants/{id}/void".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def void_grant( + id: str, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + ... + + @overload + def void_grant( + self, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + ... + + @class_method_variant("_cls_void_grant") + def void_grant( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + return cast( + "CreditGrant", + self._request( + "post", + "/v1/billing/credit_grants/{id}/void".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_void_grant_async( + cls, id: str, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + return cast( + "CreditGrant", + await cls._static_request_async( + "post", + "/v1/billing/credit_grants/{id}/void".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def void_grant_async( + id: str, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + ... + + @overload + async def void_grant_async( + self, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + ... + + @class_method_variant("_cls_void_grant_async") + async def void_grant_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CreditGrantVoidGrantParams"] + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + return cast( + "CreditGrant", + await self._request_async( + "post", + "/v1/billing/credit_grants/{id}/void".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + _inner_class_types = { + "amount": Amount, + "applicability_config": ApplicabilityConfig, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_grant_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_grant_service.py new file mode 100644 index 00000000..047cf0f5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_credit_grant_service.py @@ -0,0 +1,275 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.billing._credit_grant import CreditGrant + from stripe.params.billing._credit_grant_create_params import ( + CreditGrantCreateParams, + ) + from stripe.params.billing._credit_grant_expire_params import ( + CreditGrantExpireParams, + ) + from stripe.params.billing._credit_grant_list_params import ( + CreditGrantListParams, + ) + from stripe.params.billing._credit_grant_retrieve_params import ( + CreditGrantRetrieveParams, + ) + from stripe.params.billing._credit_grant_update_params import ( + CreditGrantUpdateParams, + ) + from stripe.params.billing._credit_grant_void_grant_params import ( + CreditGrantVoidGrantParams, + ) + + +class CreditGrantService(StripeService): + def list( + self, + params: Optional["CreditGrantListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditGrant]": + """ + Retrieve a list of credit grants. + """ + return cast( + "ListObject[CreditGrant]", + self._request( + "get", + "/v1/billing/credit_grants", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["CreditGrantListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditGrant]": + """ + Retrieve a list of credit grants. + """ + return cast( + "ListObject[CreditGrant]", + await self._request_async( + "get", + "/v1/billing/credit_grants", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "CreditGrantCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Creates a credit grant. + """ + return cast( + "CreditGrant", + self._request( + "post", + "/v1/billing/credit_grants", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "CreditGrantCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Creates a credit grant. + """ + return cast( + "CreditGrant", + await self._request_async( + "post", + "/v1/billing/credit_grants", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["CreditGrantRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Retrieves a credit grant. + """ + return cast( + "CreditGrant", + self._request( + "get", + "/v1/billing/credit_grants/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["CreditGrantRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Retrieves a credit grant. + """ + return cast( + "CreditGrant", + await self._request_async( + "get", + "/v1/billing/credit_grants/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + id: str, + params: Optional["CreditGrantUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Updates a credit grant. + """ + return cast( + "CreditGrant", + self._request( + "post", + "/v1/billing/credit_grants/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: Optional["CreditGrantUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Updates a credit grant. + """ + return cast( + "CreditGrant", + await self._request_async( + "post", + "/v1/billing/credit_grants/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def expire( + self, + id: str, + params: Optional["CreditGrantExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + return cast( + "CreditGrant", + self._request( + "post", + "/v1/billing/credit_grants/{id}/expire".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def expire_async( + self, + id: str, + params: Optional["CreditGrantExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Expires a credit grant. + """ + return cast( + "CreditGrant", + await self._request_async( + "post", + "/v1/billing/credit_grants/{id}/expire".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def void_grant( + self, + id: str, + params: Optional["CreditGrantVoidGrantParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + return cast( + "CreditGrant", + self._request( + "post", + "/v1/billing/credit_grants/{id}/void".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def void_grant_async( + self, + id: str, + params: Optional["CreditGrantVoidGrantParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditGrant": + """ + Voids a credit grant. + """ + return cast( + "CreditGrant", + await self._request_async( + "post", + "/v1/billing/credit_grants/{id}/void".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter.py new file mode 100644 index 00000000..5f7d7b11 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter.py @@ -0,0 +1,494 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._nested_resource_class_methods import nested_resource_class_methods +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.billing._meter_event_summary import MeterEventSummary + from stripe.params.billing._meter_create_params import MeterCreateParams + from stripe.params.billing._meter_deactivate_params import ( + MeterDeactivateParams, + ) + from stripe.params.billing._meter_list_event_summaries_params import ( + MeterListEventSummariesParams, + ) + from stripe.params.billing._meter_list_params import MeterListParams + from stripe.params.billing._meter_modify_params import MeterModifyParams + from stripe.params.billing._meter_reactivate_params import ( + MeterReactivateParams, + ) + from stripe.params.billing._meter_retrieve_params import ( + MeterRetrieveParams, + ) + + +@nested_resource_class_methods("event_summary") +class Meter( + CreateableAPIResource["Meter"], + ListableAPIResource["Meter"], + UpdateableAPIResource["Meter"], +): + """ + Meters specify how to aggregate meter events over a billing period. Meter events represent the actions that customers take in your system. Meters attach to prices and form the basis of the bill. + + Related guide: [Usage based billing](https://docs.stripe.com/billing/subscriptions/usage-based) + """ + + OBJECT_NAME: ClassVar[Literal["billing.meter"]] = "billing.meter" + + class CustomerMapping(StripeObject): + event_payload_key: str + """ + The key in the meter event payload to use for mapping the event to a customer. + """ + type: Literal["by_id"] + """ + The method for mapping a meter event to a customer. + """ + + class DefaultAggregation(StripeObject): + formula: Literal["count", "last", "sum"] + """ + Specifies how events are aggregated. + """ + + class StatusTransitions(StripeObject): + deactivated_at: Optional[int] + """ + The time the meter was deactivated, if any. Measured in seconds since Unix epoch. + """ + + class ValueSettings(StripeObject): + event_payload_key: str + """ + The key in the meter event payload to use as the value for this meter. + """ + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer_mapping: CustomerMapping + default_aggregation: DefaultAggregation + display_name: str + """ + The meter's name. + """ + event_name: str + """ + The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events. + """ + event_time_window: Optional[Literal["day", "hour"]] + """ + The time window which meter events have been pre-aggregated for, if any. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["billing.meter"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["active", "inactive"] + """ + The meter's status. + """ + status_transitions: StatusTransitions + updated: int + """ + Time at which the object was last updated. Measured in seconds since the Unix epoch. + """ + value_settings: ValueSettings + + @classmethod + def create(cls, **params: Unpack["MeterCreateParams"]) -> "Meter": + """ + Creates a billing meter. + """ + return cast( + "Meter", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["MeterCreateParams"] + ) -> "Meter": + """ + Creates a billing meter. + """ + return cast( + "Meter", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_deactivate( + cls, id: str, **params: Unpack["MeterDeactivateParams"] + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + return cast( + "Meter", + cls._static_request( + "post", + "/v1/billing/meters/{id}/deactivate".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def deactivate( + id: str, **params: Unpack["MeterDeactivateParams"] + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + ... + + @overload + def deactivate(self, **params: Unpack["MeterDeactivateParams"]) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + ... + + @class_method_variant("_cls_deactivate") + def deactivate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["MeterDeactivateParams"] + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + return cast( + "Meter", + self._request( + "post", + "/v1/billing/meters/{id}/deactivate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_deactivate_async( + cls, id: str, **params: Unpack["MeterDeactivateParams"] + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + return cast( + "Meter", + await cls._static_request_async( + "post", + "/v1/billing/meters/{id}/deactivate".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def deactivate_async( + id: str, **params: Unpack["MeterDeactivateParams"] + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + ... + + @overload + async def deactivate_async( + self, **params: Unpack["MeterDeactivateParams"] + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + ... + + @class_method_variant("_cls_deactivate_async") + async def deactivate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["MeterDeactivateParams"] + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + return cast( + "Meter", + await self._request_async( + "post", + "/v1/billing/meters/{id}/deactivate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list(cls, **params: Unpack["MeterListParams"]) -> ListObject["Meter"]: + """ + Retrieve a list of billing meters. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["MeterListParams"] + ) -> ListObject["Meter"]: + """ + Retrieve a list of billing meters. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify(cls, id: str, **params: Unpack["MeterModifyParams"]) -> "Meter": + """ + Updates a billing meter. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Meter", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["MeterModifyParams"] + ) -> "Meter": + """ + Updates a billing meter. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Meter", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def _cls_reactivate( + cls, id: str, **params: Unpack["MeterReactivateParams"] + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + return cast( + "Meter", + cls._static_request( + "post", + "/v1/billing/meters/{id}/reactivate".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def reactivate( + id: str, **params: Unpack["MeterReactivateParams"] + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + ... + + @overload + def reactivate(self, **params: Unpack["MeterReactivateParams"]) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + ... + + @class_method_variant("_cls_reactivate") + def reactivate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["MeterReactivateParams"] + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + return cast( + "Meter", + self._request( + "post", + "/v1/billing/meters/{id}/reactivate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_reactivate_async( + cls, id: str, **params: Unpack["MeterReactivateParams"] + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + return cast( + "Meter", + await cls._static_request_async( + "post", + "/v1/billing/meters/{id}/reactivate".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def reactivate_async( + id: str, **params: Unpack["MeterReactivateParams"] + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + ... + + @overload + async def reactivate_async( + self, **params: Unpack["MeterReactivateParams"] + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + ... + + @class_method_variant("_cls_reactivate_async") + async def reactivate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["MeterReactivateParams"] + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + return cast( + "Meter", + await self._request_async( + "post", + "/v1/billing/meters/{id}/reactivate".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["MeterRetrieveParams"] + ) -> "Meter": + """ + Retrieves a billing meter given an ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["MeterRetrieveParams"] + ) -> "Meter": + """ + Retrieves a billing meter given an ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def list_event_summaries( + cls, id: str, **params: Unpack["MeterListEventSummariesParams"] + ) -> ListObject["MeterEventSummary"]: + """ + Retrieve a list of billing meter event summaries. + """ + return cast( + ListObject["MeterEventSummary"], + cls._static_request( + "get", + "/v1/billing/meters/{id}/event_summaries".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @classmethod + async def list_event_summaries_async( + cls, id: str, **params: Unpack["MeterListEventSummariesParams"] + ) -> ListObject["MeterEventSummary"]: + """ + Retrieve a list of billing meter event summaries. + """ + return cast( + ListObject["MeterEventSummary"], + await cls._static_request_async( + "get", + "/v1/billing/meters/{id}/event_summaries".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + _inner_class_types = { + "customer_mapping": CustomerMapping, + "default_aggregation": DefaultAggregation, + "status_transitions": StatusTransitions, + "value_settings": ValueSettings, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event.py new file mode 100644 index 00000000..53dcfa56 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from typing import ClassVar, Dict, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.billing._meter_event_create_params import ( + MeterEventCreateParams, + ) + + +class MeterEvent(CreateableAPIResource["MeterEvent"]): + """ + Meter events represent actions that customers take in your system. You can use meter events to bill a customer based on their usage. Meter events are associated with billing meters, which define both the contents of the event's payload and how to aggregate those events. + """ + + OBJECT_NAME: ClassVar[Literal["billing.meter_event"]] = ( + "billing.meter_event" + ) + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + identifier: str + """ + A unique identifier for the event. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["billing.meter_event"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payload: Dict[str, str] + """ + The payload of the event. This contains the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://stripe.com/docs/billing/subscriptions/usage-based/recording-usage#payload-key-overrides). + """ + timestamp: int + """ + The timestamp passed in when creating the event. Measured in seconds since the Unix epoch. + """ + + @classmethod + def create( + cls, **params: Unpack["MeterEventCreateParams"] + ) -> "MeterEvent": + """ + Creates a billing meter event. + """ + return cast( + "MeterEvent", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["MeterEventCreateParams"] + ) -> "MeterEvent": + """ + Creates a billing meter event. + """ + return cast( + "MeterEvent", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_adjustment.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_adjustment.py new file mode 100644 index 00000000..be7a0b93 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_adjustment.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.billing._meter_event_adjustment_create_params import ( + MeterEventAdjustmentCreateParams, + ) + + +class MeterEventAdjustment(CreateableAPIResource["MeterEventAdjustment"]): + """ + A billing meter event adjustment is a resource that allows you to cancel a meter event. For example, you might create a billing meter event adjustment to cancel a meter event that was created in error or attached to the wrong customer. + """ + + OBJECT_NAME: ClassVar[Literal["billing.meter_event_adjustment"]] = ( + "billing.meter_event_adjustment" + ) + + class Cancel(StripeObject): + identifier: Optional[str] + """ + Unique identifier for the event. + """ + + cancel: Optional[Cancel] + """ + Specifies which event to cancel. + """ + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["billing.meter_event_adjustment"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["complete", "pending"] + """ + The meter event adjustment's status. + """ + type: Literal["cancel"] + """ + Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet. + """ + + @classmethod + def create( + cls, **params: Unpack["MeterEventAdjustmentCreateParams"] + ) -> "MeterEventAdjustment": + """ + Creates a billing meter event adjustment. + """ + return cast( + "MeterEventAdjustment", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["MeterEventAdjustmentCreateParams"] + ) -> "MeterEventAdjustment": + """ + Creates a billing meter event adjustment. + """ + return cast( + "MeterEventAdjustment", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + _inner_class_types = {"cancel": Cancel} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_adjustment_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_adjustment_service.py new file mode 100644 index 00000000..eb292d60 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_adjustment_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.billing._meter_event_adjustment import MeterEventAdjustment + from stripe.params.billing._meter_event_adjustment_create_params import ( + MeterEventAdjustmentCreateParams, + ) + + +class MeterEventAdjustmentService(StripeService): + def create( + self, + params: "MeterEventAdjustmentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEventAdjustment": + """ + Creates a billing meter event adjustment. + """ + return cast( + "MeterEventAdjustment", + self._request( + "post", + "/v1/billing/meter_event_adjustments", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "MeterEventAdjustmentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEventAdjustment": + """ + Creates a billing meter event adjustment. + """ + return cast( + "MeterEventAdjustment", + await self._request_async( + "post", + "/v1/billing/meter_event_adjustments", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_service.py new file mode 100644 index 00000000..93588099 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.billing._meter_event import MeterEvent + from stripe.params.billing._meter_event_create_params import ( + MeterEventCreateParams, + ) + + +class MeterEventService(StripeService): + def create( + self, + params: "MeterEventCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEvent": + """ + Creates a billing meter event. + """ + return cast( + "MeterEvent", + self._request( + "post", + "/v1/billing/meter_events", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "MeterEventCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEvent": + """ + Creates a billing meter event. + """ + return cast( + "MeterEvent", + await self._request_async( + "post", + "/v1/billing/meter_events", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_summary.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_summary.py new file mode 100644 index 00000000..823b330c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_summary.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal + + +class MeterEventSummary(StripeObject): + """ + A billing meter event summary represents an aggregated view of a customer's billing meter events within a specified timeframe. It indicates how much + usage was accrued by a customer for that period. + + Note: Meters events are aggregated asynchronously so the meter event summaries provide an eventually consistent view of the reported usage. + """ + + OBJECT_NAME: ClassVar[Literal["billing.meter_event_summary"]] = ( + "billing.meter_event_summary" + ) + aggregated_value: float + """ + Aggregated value of all the events within `start_time` (inclusive) and `end_time` (inclusive). The aggregation strategy is defined on meter via `default_aggregation`. + """ + end_time: int + """ + End timestamp for this event summary (exclusive). Must be aligned with minute boundaries. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + meter: str + """ + The meter associated with this event summary. + """ + object: Literal["billing.meter_event_summary"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + start_time: int + """ + Start timestamp for this event summary (inclusive). Must be aligned with minute boundaries. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_summary_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_summary_service.py new file mode 100644 index 00000000..3cc196d0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_event_summary_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.billing._meter_event_summary import MeterEventSummary + from stripe.params.billing._meter_event_summary_list_params import ( + MeterEventSummaryListParams, + ) + + +class MeterEventSummaryService(StripeService): + def list( + self, + id: str, + params: "MeterEventSummaryListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[MeterEventSummary]": + """ + Retrieve a list of billing meter event summaries. + """ + return cast( + "ListObject[MeterEventSummary]", + self._request( + "get", + "/v1/billing/meters/{id}/event_summaries".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + id: str, + params: "MeterEventSummaryListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[MeterEventSummary]": + """ + Retrieve a list of billing meter event summaries. + """ + return cast( + "ListObject[MeterEventSummary]", + await self._request_async( + "get", + "/v1/billing/meters/{id}/event_summaries".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_service.py new file mode 100644 index 00000000..018b4ff7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing/_meter_service.py @@ -0,0 +1,301 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.billing._meter import Meter + from stripe.billing._meter_event_summary_service import ( + MeterEventSummaryService, + ) + from stripe.params.billing._meter_create_params import MeterCreateParams + from stripe.params.billing._meter_deactivate_params import ( + MeterDeactivateParams, + ) + from stripe.params.billing._meter_list_params import MeterListParams + from stripe.params.billing._meter_reactivate_params import ( + MeterReactivateParams, + ) + from stripe.params.billing._meter_retrieve_params import ( + MeterRetrieveParams, + ) + from stripe.params.billing._meter_update_params import MeterUpdateParams + +_subservices = { + "event_summaries": [ + "stripe.billing._meter_event_summary_service", + "MeterEventSummaryService", + ], +} + + +class MeterService(StripeService): + event_summaries: "MeterEventSummaryService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["MeterListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Meter]": + """ + Retrieve a list of billing meters. + """ + return cast( + "ListObject[Meter]", + self._request( + "get", + "/v1/billing/meters", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["MeterListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Meter]": + """ + Retrieve a list of billing meters. + """ + return cast( + "ListObject[Meter]", + await self._request_async( + "get", + "/v1/billing/meters", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "MeterCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + Creates a billing meter. + """ + return cast( + "Meter", + self._request( + "post", + "/v1/billing/meters", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "MeterCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + Creates a billing meter. + """ + return cast( + "Meter", + await self._request_async( + "post", + "/v1/billing/meters", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["MeterRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + Retrieves a billing meter given an ID. + """ + return cast( + "Meter", + self._request( + "get", + "/v1/billing/meters/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["MeterRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + Retrieves a billing meter given an ID. + """ + return cast( + "Meter", + await self._request_async( + "get", + "/v1/billing/meters/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + id: str, + params: Optional["MeterUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + Updates a billing meter. + """ + return cast( + "Meter", + self._request( + "post", + "/v1/billing/meters/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: Optional["MeterUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + Updates a billing meter. + """ + return cast( + "Meter", + await self._request_async( + "post", + "/v1/billing/meters/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def deactivate( + self, + id: str, + params: Optional["MeterDeactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + return cast( + "Meter", + self._request( + "post", + "/v1/billing/meters/{id}/deactivate".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def deactivate_async( + self, + id: str, + params: Optional["MeterDeactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + When a meter is deactivated, no more meter events will be accepted for this meter. You can't attach a deactivated meter to a price. + """ + return cast( + "Meter", + await self._request_async( + "post", + "/v1/billing/meters/{id}/deactivate".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) + + def reactivate( + self, + id: str, + params: Optional["MeterReactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + return cast( + "Meter", + self._request( + "post", + "/v1/billing/meters/{id}/reactivate".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def reactivate_async( + self, + id: str, + params: Optional["MeterReactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Meter": + """ + When a meter is reactivated, events for this meter can be accepted and you can attach the meter to a price. + """ + return cast( + "Meter", + await self._request_async( + "post", + "/v1/billing/meters/{id}/reactivate".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__init__.py new file mode 100644 index 00000000..d3b7fb37 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__init__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.billing_portal._configuration import ( + Configuration as Configuration, + ) + from stripe.billing_portal._configuration_service import ( + ConfigurationService as ConfigurationService, + ) + from stripe.billing_portal._session import Session as Session + from stripe.billing_portal._session_service import ( + SessionService as SessionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "Configuration": ("stripe.billing_portal._configuration", False), + "ConfigurationService": ( + "stripe.billing_portal._configuration_service", + False, + ), + "Session": ("stripe.billing_portal._session", False), + "SessionService": ("stripe.billing_portal._session_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..806a5b4c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_configuration.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_configuration.cpython-312.pyc new file mode 100644 index 00000000..28f4092d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_configuration.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_configuration_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_configuration_service.cpython-312.pyc new file mode 100644 index 00000000..87a3a000 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_configuration_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_session.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_session.cpython-312.pyc new file mode 100644 index 00000000..9a869b13 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_session.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_session_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_session_service.cpython-312.pyc new file mode 100644 index 00000000..06545eee Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/__pycache__/_session_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_configuration.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_configuration.py new file mode 100644 index 00000000..7006d604 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_configuration.py @@ -0,0 +1,401 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._application import Application + from stripe.params.billing_portal._configuration_create_params import ( + ConfigurationCreateParams, + ) + from stripe.params.billing_portal._configuration_list_params import ( + ConfigurationListParams, + ) + from stripe.params.billing_portal._configuration_modify_params import ( + ConfigurationModifyParams, + ) + from stripe.params.billing_portal._configuration_retrieve_params import ( + ConfigurationRetrieveParams, + ) + + +class Configuration( + CreateableAPIResource["Configuration"], + ListableAPIResource["Configuration"], + UpdateableAPIResource["Configuration"], +): + """ + A portal configuration describes the functionality and behavior you embed in a portal session. Related guide: [Configure the customer portal](https://docs.stripe.com/customer-management/configure-portal). + """ + + OBJECT_NAME: ClassVar[Literal["billing_portal.configuration"]] = ( + "billing_portal.configuration" + ) + + class BusinessProfile(StripeObject): + headline: Optional[str] + """ + The messaging shown to customers in the portal. + """ + privacy_policy_url: Optional[str] + """ + A link to the business's publicly available privacy policy. + """ + terms_of_service_url: Optional[str] + """ + A link to the business's publicly available terms of service. + """ + + class Features(StripeObject): + class CustomerUpdate(StripeObject): + allowed_updates: List[ + Literal[ + "address", "email", "name", "phone", "shipping", "tax_id" + ] + ] + """ + The types of customer updates that are supported. When empty, customers are not updateable. + """ + enabled: bool + """ + Whether the feature is enabled. + """ + + class InvoiceHistory(StripeObject): + enabled: bool + """ + Whether the feature is enabled. + """ + + class PaymentMethodUpdate(StripeObject): + enabled: bool + """ + Whether the feature is enabled. + """ + + class SubscriptionCancel(StripeObject): + class CancellationReason(StripeObject): + enabled: bool + """ + Whether the feature is enabled. + """ + options: List[ + Literal[ + "customer_service", + "low_quality", + "missing_features", + "other", + "switched_service", + "too_complex", + "too_expensive", + "unused", + ] + ] + """ + Which cancellation reasons will be given as options to the customer. + """ + + cancellation_reason: CancellationReason + enabled: bool + """ + Whether the feature is enabled. + """ + mode: Literal["at_period_end", "immediately"] + """ + Whether to cancel subscriptions immediately or at the end of the billing period. + """ + proration_behavior: Literal[ + "always_invoice", "create_prorations", "none" + ] + """ + Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`. + """ + _inner_class_types = {"cancellation_reason": CancellationReason} + + class SubscriptionUpdate(StripeObject): + class Product(StripeObject): + class AdjustableQuantity(StripeObject): + enabled: bool + """ + If true, the quantity can be adjusted to any non-negative integer. + """ + maximum: Optional[int] + """ + The maximum quantity that can be set for the product. + """ + minimum: int + """ + The minimum quantity that can be set for the product. + """ + + adjustable_quantity: AdjustableQuantity + prices: List[str] + """ + The list of price IDs which, when subscribed to, a subscription can be updated. + """ + product: str + """ + The product ID. + """ + _inner_class_types = { + "adjustable_quantity": AdjustableQuantity + } + + class ScheduleAtPeriodEnd(StripeObject): + class Condition(StripeObject): + type: Literal[ + "decreasing_item_amount", "shortening_interval" + ] + """ + The type of condition. + """ + + conditions: List[Condition] + """ + List of conditions. When any condition is true, an update will be scheduled at the end of the current period. + """ + _inner_class_types = {"conditions": Condition} + + default_allowed_updates: List[ + Literal["price", "promotion_code", "quantity"] + ] + """ + The types of subscription updates that are supported for items listed in the `products` attribute. When empty, subscriptions are not updateable. + """ + enabled: bool + """ + Whether the feature is enabled. + """ + products: Optional[List[Product]] + """ + The list of up to 10 products that support subscription updates. + """ + proration_behavior: Literal[ + "always_invoice", "create_prorations", "none" + ] + """ + Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. Defaults to a value of `none` if you don't set it during creation. + """ + schedule_at_period_end: ScheduleAtPeriodEnd + trial_update_behavior: Literal["continue_trial", "end_trial"] + """ + Determines how handle updates to trialing subscriptions. Valid values are `end_trial` and `continue_trial`. Defaults to a value of `end_trial` if you don't set it during creation. + """ + _inner_class_types = { + "products": Product, + "schedule_at_period_end": ScheduleAtPeriodEnd, + } + + customer_update: CustomerUpdate + invoice_history: InvoiceHistory + payment_method_update: PaymentMethodUpdate + subscription_cancel: SubscriptionCancel + subscription_update: SubscriptionUpdate + _inner_class_types = { + "customer_update": CustomerUpdate, + "invoice_history": InvoiceHistory, + "payment_method_update": PaymentMethodUpdate, + "subscription_cancel": SubscriptionCancel, + "subscription_update": SubscriptionUpdate, + } + + class LoginPage(StripeObject): + enabled: bool + """ + If `true`, a shareable `url` will be generated that will take your customers to a hosted login page for the customer portal. + + If `false`, the previously generated `url`, if any, will be deactivated. + """ + url: Optional[str] + """ + A shareable URL to the hosted portal login page. Your customers will be able to log in with their [email](https://stripe.com/docs/api/customers/object#customer_object-email) and receive a link to their customer portal. + """ + + active: bool + """ + Whether the configuration is active and can be used to create portal sessions. + """ + application: Optional[ExpandableField["Application"]] + """ + ID of the Connect Application that created the configuration. + """ + business_profile: BusinessProfile + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + default_return_url: Optional[str] + """ + The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session. + """ + features: Features + id: str + """ + Unique identifier for the object. + """ + is_default: bool + """ + Whether the configuration is the default. If `true`, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + login_page: LoginPage + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: Optional[str] + """ + The name of the configuration. + """ + object: Literal["billing_portal.configuration"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + updated: int + """ + Time at which the object was last updated. Measured in seconds since the Unix epoch. + """ + + @classmethod + def create( + cls, **params: Unpack["ConfigurationCreateParams"] + ) -> "Configuration": + """ + Creates a configuration that describes the functionality and behavior of a PortalSession + """ + return cast( + "Configuration", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ConfigurationCreateParams"] + ) -> "Configuration": + """ + Creates a configuration that describes the functionality and behavior of a PortalSession + """ + return cast( + "Configuration", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["ConfigurationListParams"] + ) -> ListObject["Configuration"]: + """ + Returns a list of configurations that describe the functionality of the customer portal. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ConfigurationListParams"] + ) -> ListObject["Configuration"]: + """ + Returns a list of configurations that describe the functionality of the customer portal. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["ConfigurationModifyParams"] + ) -> "Configuration": + """ + Updates a configuration that describes the functionality of the customer portal. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Configuration", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["ConfigurationModifyParams"] + ) -> "Configuration": + """ + Updates a configuration that describes the functionality of the customer portal. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Configuration", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ConfigurationRetrieveParams"] + ) -> "Configuration": + """ + Retrieves a configuration that describes the functionality of the customer portal. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ConfigurationRetrieveParams"] + ) -> "Configuration": + """ + Retrieves a configuration that describes the functionality of the customer portal. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "business_profile": BusinessProfile, + "features": Features, + "login_page": LoginPage, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_configuration_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_configuration_service.py new file mode 100644 index 00000000..ba9084e7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_configuration_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.billing_portal._configuration import Configuration + from stripe.params.billing_portal._configuration_create_params import ( + ConfigurationCreateParams, + ) + from stripe.params.billing_portal._configuration_list_params import ( + ConfigurationListParams, + ) + from stripe.params.billing_portal._configuration_retrieve_params import ( + ConfigurationRetrieveParams, + ) + from stripe.params.billing_portal._configuration_update_params import ( + ConfigurationUpdateParams, + ) + + +class ConfigurationService(StripeService): + def list( + self, + params: Optional["ConfigurationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Configuration]": + """ + Returns a list of configurations that describe the functionality of the customer portal. + """ + return cast( + "ListObject[Configuration]", + self._request( + "get", + "/v1/billing_portal/configurations", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ConfigurationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Configuration]": + """ + Returns a list of configurations that describe the functionality of the customer portal. + """ + return cast( + "ListObject[Configuration]", + await self._request_async( + "get", + "/v1/billing_portal/configurations", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ConfigurationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Creates a configuration that describes the functionality and behavior of a PortalSession + """ + return cast( + "Configuration", + self._request( + "post", + "/v1/billing_portal/configurations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ConfigurationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Creates a configuration that describes the functionality and behavior of a PortalSession + """ + return cast( + "Configuration", + await self._request_async( + "post", + "/v1/billing_portal/configurations", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + configuration: str, + params: Optional["ConfigurationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Retrieves a configuration that describes the functionality of the customer portal. + """ + return cast( + "Configuration", + self._request( + "get", + "/v1/billing_portal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + configuration: str, + params: Optional["ConfigurationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Retrieves a configuration that describes the functionality of the customer portal. + """ + return cast( + "Configuration", + await self._request_async( + "get", + "/v1/billing_portal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + configuration: str, + params: Optional["ConfigurationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Updates a configuration that describes the functionality of the customer portal. + """ + return cast( + "Configuration", + self._request( + "post", + "/v1/billing_portal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + configuration: str, + params: Optional["ConfigurationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Updates a configuration that describes the functionality of the customer portal. + """ + return cast( + "Configuration", + await self._request_async( + "post", + "/v1/billing_portal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_session.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_session.py new file mode 100644 index 00000000..c8d22f30 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_session.py @@ -0,0 +1,296 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.billing_portal._configuration import Configuration + from stripe.params.billing_portal._session_create_params import ( + SessionCreateParams, + ) + + +class Session(CreateableAPIResource["Session"]): + """ + The Billing customer portal is a Stripe-hosted UI for subscription and + billing management. + + A portal configuration describes the functionality and features that you + want to provide to your customers through the portal. + + A portal session describes the instantiation of the customer portal for + a particular customer. By visiting the session's URL, the customer + can manage their subscriptions and billing details. For security reasons, + sessions are short-lived and will expire if the customer does not visit the URL. + Create sessions on-demand when customers intend to manage their subscriptions + and billing details. + + Related guide: [Customer management](https://docs.stripe.com/customer-management) + """ + + OBJECT_NAME: ClassVar[Literal["billing_portal.session"]] = ( + "billing_portal.session" + ) + + class Flow(StripeObject): + class AfterCompletion(StripeObject): + class HostedConfirmation(StripeObject): + custom_message: Optional[str] + """ + A custom message to display to the customer after the flow is completed. + """ + + class Redirect(StripeObject): + return_url: str + """ + The URL the customer will be redirected to after the flow is completed. + """ + + hosted_confirmation: Optional[HostedConfirmation] + """ + Configuration when `after_completion.type=hosted_confirmation`. + """ + redirect: Optional[Redirect] + """ + Configuration when `after_completion.type=redirect`. + """ + type: Literal["hosted_confirmation", "portal_homepage", "redirect"] + """ + The specified type of behavior after the flow is completed. + """ + _inner_class_types = { + "hosted_confirmation": HostedConfirmation, + "redirect": Redirect, + } + + class SubscriptionCancel(StripeObject): + class Retention(StripeObject): + class CouponOffer(StripeObject): + coupon: str + """ + The ID of the coupon to be offered. + """ + + coupon_offer: Optional[CouponOffer] + """ + Configuration when `retention.type=coupon_offer`. + """ + type: Literal["coupon_offer"] + """ + Type of retention strategy that will be used. + """ + _inner_class_types = {"coupon_offer": CouponOffer} + + retention: Optional[Retention] + """ + Specify a retention strategy to be used in the cancellation flow. + """ + subscription: str + """ + The ID of the subscription to be canceled. + """ + _inner_class_types = {"retention": Retention} + + class SubscriptionUpdate(StripeObject): + subscription: str + """ + The ID of the subscription to be updated. + """ + + class SubscriptionUpdateConfirm(StripeObject): + class Discount(StripeObject): + coupon: Optional[str] + """ + The ID of the coupon to apply to this subscription update. + """ + promotion_code: Optional[str] + """ + The ID of a promotion code to apply to this subscription update. + """ + + class Item(StripeObject): + id: Optional[str] + """ + The ID of the [subscription item](https://stripe.com/docs/api/subscriptions/object#subscription_object-items-data-id) to be updated. + """ + price: Optional[str] + """ + The price the customer should subscribe to through this flow. The price must also be included in the configuration's [`features.subscription_update.products`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-features-subscription_update-products). + """ + quantity: Optional[int] + """ + [Quantity](https://stripe.com/docs/subscriptions/quantities) for this item that the customer should subscribe to through this flow. + """ + + discounts: Optional[List[Discount]] + """ + The coupon or promotion code to apply to this subscription update. + """ + items: List[Item] + """ + The [subscription item](https://stripe.com/docs/api/subscription_items) to be updated through this flow. Currently, only up to one may be specified and subscriptions with multiple items are not updatable. + """ + subscription: str + """ + The ID of the subscription to be updated. + """ + _inner_class_types = {"discounts": Discount, "items": Item} + + after_completion: AfterCompletion + subscription_cancel: Optional[SubscriptionCancel] + """ + Configuration when `flow.type=subscription_cancel`. + """ + subscription_update: Optional[SubscriptionUpdate] + """ + Configuration when `flow.type=subscription_update`. + """ + subscription_update_confirm: Optional[SubscriptionUpdateConfirm] + """ + Configuration when `flow.type=subscription_update_confirm`. + """ + type: Literal[ + "payment_method_update", + "subscription_cancel", + "subscription_update", + "subscription_update_confirm", + ] + """ + Type of flow that the customer will go through. + """ + _inner_class_types = { + "after_completion": AfterCompletion, + "subscription_cancel": SubscriptionCancel, + "subscription_update": SubscriptionUpdate, + "subscription_update_confirm": SubscriptionUpdateConfirm, + } + + configuration: ExpandableField["Configuration"] + """ + The configuration used by this session, describing the features available. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + customer: str + """ + The ID of the customer for this session. + """ + flow: Optional[Flow] + """ + Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + locale: Optional[ + Literal[ + "auto", + "bg", + "cs", + "da", + "de", + "el", + "en", + "en-AU", + "en-CA", + "en-GB", + "en-IE", + "en-IN", + "en-NZ", + "en-SG", + "es", + "es-419", + "et", + "fi", + "fil", + "fr", + "fr-CA", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "lv", + "ms", + "mt", + "nb", + "nl", + "pl", + "pt", + "pt-BR", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tr", + "vi", + "zh", + "zh-HK", + "zh-TW", + ] + ] + """ + The IETF language tag of the locale Customer Portal is displayed in. If blank or auto, the customer's `preferred_locales` or browser's locale is used. + """ + object: Literal["billing_portal.session"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + on_behalf_of: Optional[str] + """ + The account for which the session was created on behalf of. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays. + """ + return_url: Optional[str] + """ + The URL to redirect customers to when they click on the portal's link to return to your website. + """ + url: str + """ + The short-lived URL of the session that gives customers access to the customer portal. + """ + + @classmethod + def create(cls, **params: Unpack["SessionCreateParams"]) -> "Session": + """ + Creates a session of the customer portal. + """ + return cast( + "Session", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SessionCreateParams"] + ) -> "Session": + """ + Creates a session of the customer portal. + """ + return cast( + "Session", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + _inner_class_types = {"flow": Flow} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_session_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_session_service.py new file mode 100644 index 00000000..c8e8224a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/billing_portal/_session_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.billing_portal._session import Session + from stripe.params.billing_portal._session_create_params import ( + SessionCreateParams, + ) + + +class SessionService(StripeService): + def create( + self, + params: "SessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Creates a session of the customer portal. + """ + return cast( + "Session", + self._request( + "post", + "/v1/billing_portal/sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "SessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Creates a session of the customer portal. + """ + return cast( + "Session", + await self._request_async( + "post", + "/v1/billing_portal/sessions", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__init__.py new file mode 100644 index 00000000..f1c4611b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__init__.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.checkout._session import Session as Session + from stripe.checkout._session_line_item_service import ( + SessionLineItemService as SessionLineItemService, + ) + from stripe.checkout._session_service import ( + SessionService as SessionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "Session": ("stripe.checkout._session", False), + "SessionLineItemService": ( + "stripe.checkout._session_line_item_service", + False, + ), + "SessionService": ("stripe.checkout._session_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..ead25c9c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session.cpython-312.pyc new file mode 100644 index 00000000..be0c4ee3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..c43eb9c3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session_service.cpython-312.pyc new file mode 100644 index 00000000..a0669699 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/__pycache__/_session_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session.py b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session.py new file mode 100644 index 00000000..469ccbfa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session.py @@ -0,0 +1,2779 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account + from stripe._coupon import Coupon + from stripe._customer import Customer + from stripe._discount import Discount as DiscountResource + from stripe._invoice import Invoice + from stripe._line_item import LineItem + from stripe._payment_intent import PaymentIntent + from stripe._payment_link import PaymentLink + from stripe._promotion_code import PromotionCode + from stripe._setup_intent import SetupIntent + from stripe._shipping_rate import ShippingRate + from stripe._subscription import Subscription + from stripe._tax_id import TaxId as TaxIdResource + from stripe._tax_rate import TaxRate + from stripe.params.checkout._session_create_params import ( + SessionCreateParams, + ) + from stripe.params.checkout._session_expire_params import ( + SessionExpireParams, + ) + from stripe.params.checkout._session_list_line_items_params import ( + SessionListLineItemsParams, + ) + from stripe.params.checkout._session_list_params import SessionListParams + from stripe.params.checkout._session_modify_params import ( + SessionModifyParams, + ) + from stripe.params.checkout._session_retrieve_params import ( + SessionRetrieveParams, + ) + + +class Session( + CreateableAPIResource["Session"], + ListableAPIResource["Session"], + UpdateableAPIResource["Session"], +): + """ + A Checkout Session represents your customer's session as they pay for + one-time purchases or subscriptions through [Checkout](https://stripe.com/docs/payments/checkout) + or [Payment Links](https://stripe.com/docs/payments/payment-links). We recommend creating a + new Session each time your customer attempts to pay. + + Once payment is successful, the Checkout Session will contain a reference + to the [Customer](https://stripe.com/docs/api/customers), and either the successful + [PaymentIntent](https://stripe.com/docs/api/payment_intents) or an active + [Subscription](https://stripe.com/docs/api/subscriptions). + + You can create a Checkout Session on your server and redirect to its URL + to begin Checkout. + + Related guide: [Checkout quickstart](https://stripe.com/docs/checkout/quickstart) + """ + + OBJECT_NAME: ClassVar[Literal["checkout.session"]] = "checkout.session" + + class AdaptivePricing(StripeObject): + enabled: bool + """ + If enabled, Adaptive Pricing is available on [eligible sessions](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing?payment-ui=stripe-hosted#restrictions). + """ + + class AfterExpiration(StripeObject): + class Recovery(StripeObject): + allow_promotion_codes: bool + """ + Enables user redeemable promotion codes on the recovered Checkout Sessions. Defaults to `false` + """ + enabled: bool + """ + If `true`, a recovery url will be generated to recover this Checkout Session if it + expires before a transaction is completed. It will be attached to the + Checkout Session object upon expiration. + """ + expires_at: Optional[int] + """ + The timestamp at which the recovery URL will expire. + """ + url: Optional[str] + """ + URL that creates a new Checkout Session when clicked that is a copy of this expired Checkout Session + """ + + recovery: Optional[Recovery] + """ + When set, configuration used to recover the Checkout Session on expiry. + """ + _inner_class_types = {"recovery": Recovery} + + class AutomaticTax(StripeObject): + class Liability(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + enabled: bool + """ + Indicates whether automatic tax is enabled for the session + """ + liability: Optional[Liability] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + provider: Optional[str] + """ + The tax provider powering automatic tax. + """ + status: Optional[ + Literal["complete", "failed", "requires_location_inputs"] + ] + """ + The status of the most recent automated tax calculation for this session. + """ + _inner_class_types = {"liability": Liability} + + class BrandingSettings(StripeObject): + class Icon(StripeObject): + file: Optional[str] + """ + The ID of a [File upload](https://stripe.com/docs/api/files) representing the icon. Purpose must be `business_icon`. Required if `type` is `file` and disallowed otherwise. + """ + type: Literal["file", "url"] + """ + The type of image for the icon. Must be one of `file` or `url`. + """ + url: Optional[str] + """ + The URL of the image. Present when `type` is `url`. + """ + + class Logo(StripeObject): + file: Optional[str] + """ + The ID of a [File upload](https://stripe.com/docs/api/files) representing the logo. Purpose must be `business_logo`. Required if `type` is `file` and disallowed otherwise. + """ + type: Literal["file", "url"] + """ + The type of image for the logo. Must be one of `file` or `url`. + """ + url: Optional[str] + """ + The URL of the image. Present when `type` is `url`. + """ + + background_color: str + """ + A hex color value starting with `#` representing the background color for the Checkout Session. + """ + border_style: Literal["pill", "rectangular", "rounded"] + """ + The border style for the Checkout Session. Must be one of `rounded`, `rectangular`, or `pill`. + """ + button_color: str + """ + A hex color value starting with `#` representing the button color for the Checkout Session. + """ + display_name: str + """ + The display name shown on the Checkout Session. + """ + font_family: str + """ + The font family for the Checkout Session. Must be one of the [supported font families](https://docs.stripe.com/payments/checkout/customization/appearance?payment-ui=stripe-hosted#font-compatibility). + """ + icon: Optional[Icon] + """ + The icon for the Checkout Session. You cannot set both `logo` and `icon`. + """ + logo: Optional[Logo] + """ + The logo for the Checkout Session. You cannot set both `logo` and `icon`. + """ + _inner_class_types = {"icon": Icon, "logo": Logo} + + class CollectedInformation(StripeObject): + class ShippingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + name: str + """ + Customer name. + """ + _inner_class_types = {"address": Address} + + business_name: Optional[str] + """ + Customer's business name for this Checkout Session + """ + individual_name: Optional[str] + """ + Customer's individual name for this Checkout Session + """ + shipping_details: Optional[ShippingDetails] + """ + Shipping information for this Checkout Session. + """ + _inner_class_types = {"shipping_details": ShippingDetails} + + class Consent(StripeObject): + promotions: Optional[Literal["opt_in", "opt_out"]] + """ + If `opt_in`, the customer consents to receiving promotional communications + from the merchant about this Checkout Session. + """ + terms_of_service: Optional[Literal["accepted"]] + """ + If `accepted`, the customer in this Checkout Session has agreed to the merchant's terms of service. + """ + + class ConsentCollection(StripeObject): + class PaymentMethodReuseAgreement(StripeObject): + position: Literal["auto", "hidden"] + """ + Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's defaults will be used. + + When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI. + """ + + payment_method_reuse_agreement: Optional[PaymentMethodReuseAgreement] + """ + If set to `hidden`, it will hide legal text related to the reuse of a payment method. + """ + promotions: Optional[Literal["auto", "none"]] + """ + If set to `auto`, enables the collection of customer consent for promotional communications. The Checkout + Session will determine whether to display an option to opt into promotional communication + from the merchant depending on the customer's locale. Only available to US merchants. + """ + terms_of_service: Optional[Literal["none", "required"]] + """ + If set to `required`, it requires customers to accept the terms of service before being able to pay. + """ + _inner_class_types = { + "payment_method_reuse_agreement": PaymentMethodReuseAgreement, + } + + class CurrencyConversion(StripeObject): + amount_subtotal: int + """ + Total of all items in source currency before discounts or taxes are applied. + """ + amount_total: int + """ + Total of all items in source currency after discounts and taxes are applied. + """ + fx_rate: str + """ + Exchange rate used to convert source currency amounts to customer currency amounts + """ + source_currency: str + """ + Creation currency of the CheckoutSession before localization + """ + + class CustomField(StripeObject): + class Dropdown(StripeObject): + class Option(StripeObject): + label: str + """ + The label for the option, displayed to the customer. Up to 100 characters. + """ + value: str + """ + The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters. + """ + + default_value: Optional[str] + """ + The value that will pre-fill on the payment page. + """ + options: List[Option] + """ + The options available for the customer to select. Up to 200 options allowed. + """ + value: Optional[str] + """ + The option selected by the customer. This will be the `value` for the option. + """ + _inner_class_types = {"options": Option} + + class Label(StripeObject): + custom: Optional[str] + """ + Custom text for the label, displayed to the customer. Up to 50 characters. + """ + type: Literal["custom"] + """ + The type of the label. + """ + + class Numeric(StripeObject): + default_value: Optional[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: Optional[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: Optional[int] + """ + The minimum character length requirement for the customer's input. + """ + value: Optional[str] + """ + The value entered by the customer, containing only digits. + """ + + class Text(StripeObject): + default_value: Optional[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: Optional[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: Optional[int] + """ + The minimum character length requirement for the customer's input. + """ + value: Optional[str] + """ + The value entered by the customer. + """ + + dropdown: Optional[Dropdown] + key: str + """ + String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters. + """ + label: Label + numeric: Optional[Numeric] + optional: bool + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + text: Optional[Text] + type: Literal["dropdown", "numeric", "text"] + """ + The type of the field. + """ + _inner_class_types = { + "dropdown": Dropdown, + "label": Label, + "numeric": Numeric, + "text": Text, + } + + class CustomText(StripeObject): + class AfterSubmit(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + class ShippingAddress(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + class Submit(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + class TermsOfServiceAcceptance(StripeObject): + message: str + """ + Text may be up to 1200 characters in length. + """ + + after_submit: Optional[AfterSubmit] + """ + Custom text that should be displayed after the payment confirmation button. + """ + shipping_address: Optional[ShippingAddress] + """ + Custom text that should be displayed alongside shipping address collection. + """ + submit: Optional[Submit] + """ + Custom text that should be displayed alongside the payment confirmation button. + """ + terms_of_service_acceptance: Optional[TermsOfServiceAcceptance] + """ + Custom text that should be displayed in place of the default terms of service agreement text. + """ + _inner_class_types = { + "after_submit": AfterSubmit, + "shipping_address": ShippingAddress, + "submit": Submit, + "terms_of_service_acceptance": TermsOfServiceAcceptance, + } + + class CustomerDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class TaxId(StripeObject): + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "unknown", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, `aw_tin`, `az_tin`, `bd_bin`, `bj_ifu`, `et_tin`, `kg_tin`, `la_tin`, `cm_niu`, `cv_nif`, `bf_ifu`, or `unknown` + """ + value: Optional[str] + """ + The value of the tax ID. + """ + + address: Optional[Address] + """ + The customer's address after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022. + """ + business_name: Optional[str] + """ + The customer's business name after a completed Checkout Session. + """ + email: Optional[str] + """ + The email associated with the Customer, if one exists, on the Checkout Session after a completed Checkout Session or at time of session expiry. + Otherwise, if the customer has consented to promotional content, this value is the most recent valid email provided by the customer on the Checkout form. + """ + individual_name: Optional[str] + """ + The customer's individual name after a completed Checkout Session. + """ + name: Optional[str] + """ + The customer's name after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022. + """ + phone: Optional[str] + """ + The customer's phone number after a completed Checkout Session. + """ + tax_exempt: Optional[Literal["exempt", "none", "reverse"]] + """ + The customer's tax exempt status after a completed Checkout Session. + """ + tax_ids: Optional[List[TaxId]] + """ + The customer's tax IDs after a completed Checkout Session. + """ + _inner_class_types = {"address": Address, "tax_ids": TaxId} + + class Discount(StripeObject): + coupon: Optional[ExpandableField["Coupon"]] + """ + Coupon attached to the Checkout Session. + """ + promotion_code: Optional[ExpandableField["PromotionCode"]] + """ + Promotion code attached to the Checkout Session. + """ + + class InvoiceCreation(StripeObject): + class InvoiceData(StripeObject): + class CustomField(StripeObject): + name: str + """ + The name of the custom field. + """ + value: str + """ + The value of the custom field. + """ + + class Issuer(StripeObject): + account: Optional[ExpandableField["Account"]] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced. + """ + + class RenderingOptions(StripeObject): + amount_tax_display: Optional[str] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. + """ + template: Optional[str] + """ + ID of the invoice rendering template to be used for the generated invoice. + """ + + account_tax_ids: Optional[List[ExpandableField["TaxIdResource"]]] + """ + The account tax IDs associated with the invoice. + """ + custom_fields: Optional[List[CustomField]] + """ + Custom fields displayed on the invoice. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + footer: Optional[str] + """ + Footer displayed on the invoice. + """ + issuer: Optional[Issuer] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + rendering_options: Optional[RenderingOptions] + """ + Options for invoice PDF rendering. + """ + _inner_class_types = { + "custom_fields": CustomField, + "issuer": Issuer, + "rendering_options": RenderingOptions, + } + + enabled: bool + """ + Indicates whether invoice creation is enabled for the Checkout Session. + """ + invoice_data: InvoiceData + _inner_class_types = {"invoice_data": InvoiceData} + + class NameCollection(StripeObject): + class Business(StripeObject): + enabled: bool + """ + Indicates whether business name collection is enabled for the session + """ + optional: bool + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + + class Individual(StripeObject): + enabled: bool + """ + Indicates whether individual name collection is enabled for the session + """ + optional: bool + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + + business: Optional[Business] + individual: Optional[Individual] + _inner_class_types = {"business": Business, "individual": Individual} + + class OptionalItem(StripeObject): + class AdjustableQuantity(StripeObject): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: Optional[int] + """ + The maximum quantity of this item the customer can purchase. By default this value is 99. You can specify a value up to 999999. + """ + minimum: Optional[int] + """ + The minimum quantity of this item the customer must purchase, if they choose to purchase it. Because this item is optional, the customer will always be able to remove it from their order, even if the `minimum` configured here is greater than 0. By default this value is 0. + """ + + adjustable_quantity: Optional[AdjustableQuantity] + price: str + quantity: int + _inner_class_types = {"adjustable_quantity": AdjustableQuantity} + + class PaymentMethodConfigurationDetails(StripeObject): + id: str + """ + ID of the payment method configuration used. + """ + parent: Optional[str] + """ + ID of the parent payment method configuration used. + """ + + class PaymentMethodOptions(StripeObject): + class AcssDebit(StripeObject): + class MandateOptions(StripeObject): + custom_mandate_url: Optional[str] + """ + A URL for custom mandate text + """ + default_for: Optional[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. Returned when the Session is in `setup` mode. + """ + interval_description: Optional[str] + """ + Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: Optional[ + Literal["combined", "interval", "sporadic"] + ] + """ + Payment schedule for the mandate. + """ + transaction_type: Optional[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + currency: Optional[Literal["cad", "usd"]] + """ + Currency supported by the bank account. Returned when the Session is in `setup` mode. + """ + mandate_options: Optional[MandateOptions] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: Optional[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Affirm(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class AfterpayClearpay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Alipay(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Alma(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class AmazonPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class AuBecsDebit(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + class BacsDebit(StripeObject): + class MandateOptions(StripeObject): + reference_prefix: Optional[str] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + mandate_options: Optional[MandateOptions] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Bancontact(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Billie(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class Boleto(StripeObject): + expires_after_days: int + """ + The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time. + """ + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Card(StripeObject): + class Installments(StripeObject): + enabled: Optional[bool] + """ + Indicates if installments are enabled + """ + + class Restrictions(StripeObject): + brands_blocked: Optional[ + List[ + Literal[ + "american_express", + "discover_global_network", + "mastercard", + "visa", + ] + ] + ] + """ + Specify the card brands to block in the Checkout Session. If a customer enters or selects a card belonging to a blocked brand, they can't complete the Session. + """ + + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + installments: Optional[Installments] + request_extended_authorization: Optional[ + Literal["if_available", "never"] + ] + """ + Request ability to [capture beyond the standard authorization validity window](https://docs.stripe.com/payments/extended-authorization) for this CheckoutSession. + """ + request_incremental_authorization: Optional[ + Literal["if_available", "never"] + ] + """ + Request ability to [increment the authorization](https://docs.stripe.com/payments/incremental-authorization) for this CheckoutSession. + """ + request_multicapture: Optional[Literal["if_available", "never"]] + """ + Request ability to make [multiple captures](https://docs.stripe.com/payments/multicapture) for this CheckoutSession. + """ + request_overcapture: Optional[Literal["if_available", "never"]] + """ + Request ability to [overcapture](https://docs.stripe.com/payments/overcapture) for this CheckoutSession. + """ + request_three_d_secure: Literal["any", "automatic", "challenge"] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + restrictions: Optional[Restrictions] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + statement_descriptor_suffix_kana: Optional[str] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters. + """ + statement_descriptor_suffix_kanji: Optional[str] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters. + """ + _inner_class_types = { + "installments": Installments, + "restrictions": Restrictions, + } + + class Cashapp(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class CustomerBalance(StripeObject): + class BankTransfer(StripeObject): + class EuBankTransfer(StripeObject): + country: Literal["BE", "DE", "ES", "FR", "IE", "NL"] + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + eu_bank_transfer: Optional[EuBankTransfer] + requested_address_types: Optional[ + List[ + Literal[ + "aba", + "iban", + "sepa", + "sort_code", + "spei", + "swift", + "zengin", + ] + ] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Optional[ + Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + ] + """ + The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + _inner_class_types = {"eu_bank_transfer": EuBankTransfer} + + bank_transfer: Optional[BankTransfer] + funding_type: Optional[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + _inner_class_types = {"bank_transfer": BankTransfer} + + class Eps(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Fpx(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Giropay(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Grabpay(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Ideal(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class KakaoPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Klarna(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Konbini(StripeObject): + expires_after_days: Optional[int] + """ + The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class KrCard(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Link(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Mobilepay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Multibanco(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class NaverPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Oxxo(StripeObject): + expires_after_days: int + """ + The number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class P24(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Payco(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class Paynow(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Paypal(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: Optional[str] + """ + Preferred locale of the PayPal checkout page that the customer is redirected to. + """ + reference: Optional[str] + """ + A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Pix(StripeObject): + amount_includes_iof: Optional[Literal["always", "never"]] + """ + Determines if the amount includes the IOF tax. + """ + expires_after_seconds: Optional[int] + """ + The number of seconds after which Pix payment will expire. + """ + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class RevolutPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: Optional[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class SamsungPay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class Satispay(StripeObject): + capture_method: Optional[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + class SepaDebit(StripeObject): + class MandateOptions(StripeObject): + reference_prefix: Optional[str] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + mandate_options: Optional[MandateOptions] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + _inner_class_types = {"mandate_options": MandateOptions} + + class Sofort(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class Swish(StripeObject): + reference: Optional[str] + """ + The order reference that will be displayed to customers in the Swish application. Defaults to the `id` of the Payment Intent. + """ + + class Twint(StripeObject): + setup_future_usage: Optional[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + class UsBankAccount(StripeObject): + class FinancialConnections(StripeObject): + class Filters(StripeObject): + account_subcategories: Optional[ + List[Literal["checking", "savings"]] + ] + """ + The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`. + """ + + filters: Optional[Filters] + permissions: Optional[ + List[ + Literal[ + "balances", + "ownership", + "payment_method", + "transactions", + ] + ] + ] + """ + The list of permissions to request. The `payment_method` permission must be included. + """ + prefetch: Optional[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + Data features requested to be retrieved upon account creation. + """ + return_url: Optional[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + _inner_class_types = {"filters": Filters} + + financial_connections: Optional[FinancialConnections] + setup_future_usage: Optional[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: Optional[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: Optional[Literal["automatic", "instant"]] + """ + Bank account verification method. + """ + _inner_class_types = { + "financial_connections": FinancialConnections + } + + acss_debit: Optional[AcssDebit] + affirm: Optional[Affirm] + afterpay_clearpay: Optional[AfterpayClearpay] + alipay: Optional[Alipay] + alma: Optional[Alma] + amazon_pay: Optional[AmazonPay] + au_becs_debit: Optional[AuBecsDebit] + bacs_debit: Optional[BacsDebit] + bancontact: Optional[Bancontact] + billie: Optional[Billie] + boleto: Optional[Boleto] + card: Optional[Card] + cashapp: Optional[Cashapp] + customer_balance: Optional[CustomerBalance] + eps: Optional[Eps] + fpx: Optional[Fpx] + giropay: Optional[Giropay] + grabpay: Optional[Grabpay] + ideal: Optional[Ideal] + kakao_pay: Optional[KakaoPay] + klarna: Optional[Klarna] + konbini: Optional[Konbini] + kr_card: Optional[KrCard] + link: Optional[Link] + mobilepay: Optional[Mobilepay] + multibanco: Optional[Multibanco] + naver_pay: Optional[NaverPay] + oxxo: Optional[Oxxo] + p24: Optional[P24] + payco: Optional[Payco] + paynow: Optional[Paynow] + paypal: Optional[Paypal] + pix: Optional[Pix] + revolut_pay: Optional[RevolutPay] + samsung_pay: Optional[SamsungPay] + satispay: Optional[Satispay] + sepa_debit: Optional[SepaDebit] + sofort: Optional[Sofort] + swish: Optional[Swish] + twint: Optional[Twint] + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "acss_debit": AcssDebit, + "affirm": Affirm, + "afterpay_clearpay": AfterpayClearpay, + "alipay": Alipay, + "alma": Alma, + "amazon_pay": AmazonPay, + "au_becs_debit": AuBecsDebit, + "bacs_debit": BacsDebit, + "bancontact": Bancontact, + "billie": Billie, + "boleto": Boleto, + "card": Card, + "cashapp": Cashapp, + "customer_balance": CustomerBalance, + "eps": Eps, + "fpx": Fpx, + "giropay": Giropay, + "grabpay": Grabpay, + "ideal": Ideal, + "kakao_pay": KakaoPay, + "klarna": Klarna, + "konbini": Konbini, + "kr_card": KrCard, + "link": Link, + "mobilepay": Mobilepay, + "multibanco": Multibanco, + "naver_pay": NaverPay, + "oxxo": Oxxo, + "p24": P24, + "payco": Payco, + "paynow": Paynow, + "paypal": Paypal, + "pix": Pix, + "revolut_pay": RevolutPay, + "samsung_pay": SamsungPay, + "satispay": Satispay, + "sepa_debit": SepaDebit, + "sofort": Sofort, + "swish": Swish, + "twint": Twint, + "us_bank_account": UsBankAccount, + } + + class Permissions(StripeObject): + update_shipping_details: Optional[ + Literal["client_only", "server_only"] + ] + """ + Determines which entity is allowed to update the shipping details. + + Default is `client_only`. Stripe Checkout client will automatically update the shipping details. If set to `server_only`, only your server is allowed to update the shipping details. + + When set to `server_only`, you must add the onShippingDetailsChange event handler when initializing the Stripe Checkout client and manually update the shipping details from your server using the Stripe API. + """ + + class PhoneNumberCollection(StripeObject): + enabled: bool + """ + Indicates whether phone number collection is enabled for the session + """ + + class PresentmentDetails(StripeObject): + presentment_amount: int + """ + Amount intended to be collected by this payment, denominated in `presentment_currency`. + """ + presentment_currency: str + """ + Currency presented to the customer during payment. + """ + + class SavedPaymentMethodOptions(StripeObject): + allow_redisplay_filters: Optional[ + List[Literal["always", "limited", "unspecified"]] + ] + """ + Uses the `allow_redisplay` value of each saved payment method to filter the set presented to a returning customer. By default, only saved payment methods with 'allow_redisplay: ‘always' are shown in Checkout. + """ + payment_method_remove: Optional[Literal["disabled", "enabled"]] + """ + Enable customers to choose if they wish to remove their saved payment methods. Disabled by default. + """ + payment_method_save: Optional[Literal["disabled", "enabled"]] + """ + Enable customers to choose if they wish to save their payment method for future use. Disabled by default. + """ + + class ShippingAddressCollection(StripeObject): + allowed_countries: List[ + Literal[ + "AC", + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MK", + "ML", + "MM", + "MN", + "MO", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SZ", + "TA", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + "ZZ", + ] + ] + """ + An array of two-letter ISO country codes representing which countries Checkout should provide as options for + shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SY, UM, VI`. + """ + + class ShippingCost(StripeObject): + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + amount_subtotal: int + """ + Total shipping cost before any discounts or taxes are applied. + """ + amount_tax: int + """ + Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0. + """ + amount_total: int + """ + Total shipping cost after discounts and taxes are applied. + """ + shipping_rate: Optional[ExpandableField["ShippingRate"]] + """ + The ID of the ShippingRate for this order. + """ + taxes: Optional[List[Tax]] + """ + The taxes applied to the shipping rate. + """ + _inner_class_types = {"taxes": Tax} + + class ShippingOption(StripeObject): + shipping_amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + shipping_rate: ExpandableField["ShippingRate"] + """ + The shipping rate. + """ + + class TaxIdCollection(StripeObject): + enabled: bool + """ + Indicates whether tax ID collection is enabled for the session + """ + required: Literal["if_supported", "never"] + """ + Indicates whether a tax ID is required on the payment page + """ + + class TotalDetails(StripeObject): + class Breakdown(StripeObject): + class Discount(StripeObject): + amount: int + """ + The amount discounted. + """ + discount: "DiscountResource" + """ + A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes). + It contains information about when the discount began, when it will end, and what it is applied to. + + Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) + """ + + class Tax(StripeObject): + amount: int + """ + Amount of tax applied for this rate. + """ + rate: "TaxRate" + """ + Tax rates can be applied to [invoices](https://docs.stripe.com/invoicing/taxes/tax-rates), [subscriptions](https://docs.stripe.com/billing/taxes/tax-rates) and [Checkout Sessions](https://docs.stripe.com/payments/checkout/use-manual-tax-rates) to collect tax. + + Related guide: [Tax rates](https://docs.stripe.com/billing/taxes/tax-rates) + """ + taxability_reason: Optional[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: Optional[int] + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + discounts: List[Discount] + """ + The aggregated discounts. + """ + taxes: List[Tax] + """ + The aggregated tax amounts by rate. + """ + _inner_class_types = {"discounts": Discount, "taxes": Tax} + + amount_discount: int + """ + This is the sum of all the discounts. + """ + amount_shipping: Optional[int] + """ + This is the sum of all the shipping amounts. + """ + amount_tax: int + """ + This is the sum of all the tax amounts. + """ + breakdown: Optional[Breakdown] + _inner_class_types = {"breakdown": Breakdown} + + class WalletOptions(StripeObject): + class Link(StripeObject): + display: Optional[Literal["auto", "never"]] + """ + Describes whether Checkout should display Link. Defaults to `auto`. + """ + + link: Optional[Link] + _inner_class_types = {"link": Link} + + adaptive_pricing: Optional[AdaptivePricing] + """ + Settings for price localization with [Adaptive Pricing](https://docs.stripe.com/payments/checkout/adaptive-pricing). + """ + after_expiration: Optional[AfterExpiration] + """ + When set, provides configuration for actions to take if this Checkout Session expires. + """ + allow_promotion_codes: Optional[bool] + """ + Enables user redeemable promotion codes. + """ + amount_subtotal: Optional[int] + """ + Total of all items before discounts or taxes are applied. + """ + amount_total: Optional[int] + """ + Total of all items after discounts and taxes are applied. + """ + automatic_tax: AutomaticTax + billing_address_collection: Optional[Literal["auto", "required"]] + """ + Describes whether Checkout should collect the customer's billing address. Defaults to `auto`. + """ + branding_settings: Optional[BrandingSettings] + cancel_url: Optional[str] + """ + If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. + """ + client_reference_id: Optional[str] + """ + A unique string to reference the Checkout Session. This can be a + customer ID, a cart ID, or similar, and can be used to reconcile the + Session with your internal systems. + """ + client_secret: Optional[str] + """ + The client secret of your Checkout Session. Applies to Checkout Sessions with `ui_mode: embedded` or `ui_mode: custom`. For `ui_mode: embedded`, the client secret is to be used when initializing Stripe.js embedded checkout. + For `ui_mode: custom`, use the client secret with [initCheckout](https://stripe.com/docs/js/custom_checkout/init) on your front end. + """ + collected_information: Optional[CollectedInformation] + """ + Information about the customer collected within the Checkout Session. + """ + consent: Optional[Consent] + """ + Results of `consent_collection` for this session. + """ + consent_collection: Optional[ConsentCollection] + """ + When set, provides configuration for the Checkout Session to gather active consent from customers. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: Optional[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_conversion: Optional[CurrencyConversion] + """ + Currency conversion details for [Adaptive Pricing](https://docs.stripe.com/payments/checkout/adaptive-pricing) sessions created before 2025-03-31. + """ + custom_fields: List[CustomField] + """ + Collect additional information from your customer using custom fields. Up to 3 fields are supported. + """ + custom_text: CustomText + customer: Optional[ExpandableField["Customer"]] + """ + The ID of the customer for this Session. + For Checkout Sessions in `subscription` mode or Checkout Sessions with `customer_creation` set as `always` in `payment` mode, Checkout + will create a new customer object based on information provided + during the payment flow unless an existing customer was provided when + the Session was created. + """ + customer_creation: Optional[Literal["always", "if_required"]] + """ + Configure whether a Checkout Session creates a Customer when the Checkout Session completes. + """ + customer_details: Optional[CustomerDetails] + """ + The customer details including the customer's tax exempt status and the customer's tax IDs. Customer's address details are not present on Sessions in `setup` mode. + """ + customer_email: Optional[str] + """ + If provided, this value will be used when the Customer object is created. + If not provided, customers will be asked to enter their email address. + Use this parameter to prefill customer data if you already have an email + on file. To access information about the customer once the payment flow is + complete, use the `customer` attribute. + """ + discounts: Optional[List[Discount]] + """ + List of coupons and promotion codes attached to the Checkout Session. + """ + excluded_payment_method_types: Optional[List[str]] + """ + A list of the types of payment methods (e.g., `card`) that should be excluded from this Checkout Session. This should only be used when payment methods for this Checkout Session are managed through the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). + """ + expires_at: int + """ + The timestamp at which the Checkout Session will expire. + """ + id: str + """ + Unique identifier for the object. + """ + invoice: Optional[ExpandableField["Invoice"]] + """ + ID of the invoice created by the Checkout Session, if it exists. + """ + invoice_creation: Optional[InvoiceCreation] + """ + Details on the state of invoice creation for the Checkout Session. + """ + line_items: Optional[ListObject["LineItem"]] + """ + The line items purchased by the customer. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + locale: Optional[ + Literal[ + "auto", + "bg", + "cs", + "da", + "de", + "el", + "en", + "en-GB", + "es", + "es-419", + "et", + "fi", + "fil", + "fr", + "fr-CA", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "lv", + "ms", + "mt", + "nb", + "nl", + "pl", + "pt", + "pt-BR", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tr", + "vi", + "zh", + "zh-HK", + "zh-TW", + ] + ] + """ + The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + mode: Literal["payment", "setup", "subscription"] + """ + The mode of the Checkout Session. + """ + name_collection: Optional[NameCollection] + object: Literal["checkout.session"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + optional_items: Optional[List[OptionalItem]] + """ + The optional items presented to the customer at checkout. + """ + origin_context: Optional[Literal["mobile_app", "web"]] + """ + Where the user is coming from. This informs the optimizations that are applied to the session. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + The ID of the PaymentIntent for Checkout Sessions in `payment` mode. You can't confirm or cancel the PaymentIntent for a Checkout Session. To cancel, [expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead. + """ + payment_link: Optional[ExpandableField["PaymentLink"]] + """ + The ID of the Payment Link that created this Session. + """ + payment_method_collection: Optional[Literal["always", "if_required"]] + """ + Configure whether a Checkout Session should collect a payment method. Defaults to `always`. + """ + payment_method_configuration_details: Optional[ + PaymentMethodConfigurationDetails + ] + """ + Information about the payment method configuration used for this Checkout session if using dynamic payment methods. + """ + payment_method_options: Optional[PaymentMethodOptions] + """ + Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession. + """ + payment_method_types: List[str] + """ + A list of the types of payment methods (e.g. card) this Checkout + Session is allowed to accept. + """ + payment_status: Literal["no_payment_required", "paid", "unpaid"] + """ + The payment status of the Checkout Session, one of `paid`, `unpaid`, or `no_payment_required`. + You can use this value to decide when to fulfill your customer's order. + """ + permissions: Optional[Permissions] + """ + This property is used to set up permissions for various actions (e.g., update) on the CheckoutSession object. + + For specific permissions, please refer to their dedicated subsections, such as `permissions.update_shipping_details`. + """ + phone_number_collection: Optional[PhoneNumberCollection] + presentment_details: Optional[PresentmentDetails] + recovered_from: Optional[str] + """ + The ID of the original expired Checkout Session that triggered the recovery flow. + """ + redirect_on_completion: Optional[Literal["always", "if_required", "never"]] + """ + This parameter applies to `ui_mode: embedded`. Learn more about the [redirect behavior](https://stripe.com/docs/payments/checkout/custom-success-page?payment-ui=embedded-form) of embedded sessions. Defaults to `always`. + """ + return_url: Optional[str] + """ + Applies to Checkout Sessions with `ui_mode: embedded` or `ui_mode: custom`. The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. + """ + saved_payment_method_options: Optional[SavedPaymentMethodOptions] + """ + Controls saved payment method settings for the session. Only available in `payment` and `subscription` mode. + """ + setup_intent: Optional[ExpandableField["SetupIntent"]] + """ + The ID of the SetupIntent for Checkout Sessions in `setup` mode. You can't confirm or cancel the SetupIntent for a Checkout Session. To cancel, [expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead. + """ + shipping_address_collection: Optional[ShippingAddressCollection] + """ + When set, provides configuration for Checkout to collect a shipping address from a customer. + """ + shipping_cost: Optional[ShippingCost] + """ + The details of the customer cost of shipping, including the customer chosen ShippingRate. + """ + shipping_options: List[ShippingOption] + """ + The shipping rate options applied to this Session. + """ + status: Optional[Literal["complete", "expired", "open"]] + """ + The status of the Checkout Session, one of `open`, `complete`, or `expired`. + """ + submit_type: Optional[ + Literal["auto", "book", "donate", "pay", "subscribe"] + ] + """ + Describes the type of transaction being performed by Checkout in order to customize + relevant text on the page, such as the submit button. `submit_type` can only be + specified on Checkout Sessions in `payment` mode. If blank or `auto`, `pay` is used. + """ + subscription: Optional[ExpandableField["Subscription"]] + """ + The ID of the [Subscription](https://stripe.com/docs/api/subscriptions) for Checkout Sessions in `subscription` mode. + """ + success_url: Optional[str] + """ + The URL the customer will be directed to after the payment or + subscription creation is successful. + """ + tax_id_collection: Optional[TaxIdCollection] + total_details: Optional[TotalDetails] + """ + Tax and discount details for the computed total amount. + """ + ui_mode: Optional[Literal["custom", "embedded", "hosted"]] + """ + The UI mode of the Session. Defaults to `hosted`. + """ + url: Optional[str] + """ + The URL to the Checkout Session. Applies to Checkout Sessions with `ui_mode: hosted`. Redirect customers to this URL to take them to Checkout. If you're using [Custom Domains](https://stripe.com/docs/payments/checkout/custom-domains), the URL will use your subdomain. Otherwise, it'll use `checkout.stripe.com.` + This value is only present when the session is active. + """ + wallet_options: Optional[WalletOptions] + """ + Wallet-specific configuration for this Checkout Session. + """ + + @classmethod + def create(cls, **params: Unpack["SessionCreateParams"]) -> "Session": + """ + Creates a Checkout Session object. + """ + return cast( + "Session", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SessionCreateParams"] + ) -> "Session": + """ + Creates a Checkout Session object. + """ + return cast( + "Session", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_expire( + cls, session: str, **params: Unpack["SessionExpireParams"] + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + return cast( + "Session", + cls._static_request( + "post", + "/v1/checkout/sessions/{session}/expire".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + def expire( + session: str, **params: Unpack["SessionExpireParams"] + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + ... + + @overload + def expire(self, **params: Unpack["SessionExpireParams"]) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + ... + + @class_method_variant("_cls_expire") + def expire( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SessionExpireParams"] + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + return cast( + "Session", + self._request( + "post", + "/v1/checkout/sessions/{session}/expire".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_expire_async( + cls, session: str, **params: Unpack["SessionExpireParams"] + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + return cast( + "Session", + await cls._static_request_async( + "post", + "/v1/checkout/sessions/{session}/expire".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def expire_async( + session: str, **params: Unpack["SessionExpireParams"] + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + ... + + @overload + async def expire_async( + self, **params: Unpack["SessionExpireParams"] + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + ... + + @class_method_variant("_cls_expire_async") + async def expire_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SessionExpireParams"] + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + return cast( + "Session", + await self._request_async( + "post", + "/v1/checkout/sessions/{session}/expire".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["SessionListParams"] + ) -> ListObject["Session"]: + """ + Returns a list of Checkout Sessions. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SessionListParams"] + ) -> ListObject["Session"]: + """ + Returns a list of Checkout Sessions. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_list_line_items( + cls, session: str, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + cls._static_request( + "get", + "/v1/checkout/sessions/{session}/line_items".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_line_items( + session: str, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @overload + def list_line_items( + self, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @class_method_variant("_cls_list_line_items") + def list_line_items( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + self._request( + "get", + "/v1/checkout/sessions/{session}/line_items".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_line_items_async( + cls, session: str, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + await cls._static_request_async( + "get", + "/v1/checkout/sessions/{session}/line_items".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_line_items_async( + session: str, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @overload + async def list_line_items_async( + self, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + ... + + @class_method_variant("_cls_list_line_items_async") + async def list_line_items_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["SessionListLineItemsParams"] + ) -> ListObject["LineItem"]: + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + ListObject["LineItem"], + await self._request_async( + "get", + "/v1/checkout/sessions/{session}/line_items".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def modify( + cls, id: str, **params: Unpack["SessionModifyParams"] + ) -> "Session": + """ + Updates a Checkout Session object. + + Related guide: [Dynamically update Checkout](https://docs.stripe.com/payments/checkout/dynamic-updates) + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Session", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["SessionModifyParams"] + ) -> "Session": + """ + Updates a Checkout Session object. + + Related guide: [Dynamically update Checkout](https://docs.stripe.com/payments/checkout/dynamic-updates) + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Session", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SessionRetrieveParams"] + ) -> "Session": + """ + Retrieves a Checkout Session object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SessionRetrieveParams"] + ) -> "Session": + """ + Retrieves a Checkout Session object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "adaptive_pricing": AdaptivePricing, + "after_expiration": AfterExpiration, + "automatic_tax": AutomaticTax, + "branding_settings": BrandingSettings, + "collected_information": CollectedInformation, + "consent": Consent, + "consent_collection": ConsentCollection, + "currency_conversion": CurrencyConversion, + "custom_fields": CustomField, + "custom_text": CustomText, + "customer_details": CustomerDetails, + "discounts": Discount, + "invoice_creation": InvoiceCreation, + "name_collection": NameCollection, + "optional_items": OptionalItem, + "payment_method_configuration_details": PaymentMethodConfigurationDetails, + "payment_method_options": PaymentMethodOptions, + "permissions": Permissions, + "phone_number_collection": PhoneNumberCollection, + "presentment_details": PresentmentDetails, + "saved_payment_method_options": SavedPaymentMethodOptions, + "shipping_address_collection": ShippingAddressCollection, + "shipping_cost": ShippingCost, + "shipping_options": ShippingOption, + "tax_id_collection": TaxIdCollection, + "total_details": TotalDetails, + "wallet_options": WalletOptions, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session_line_item_service.py new file mode 100644 index 00000000..e056ae2b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session_line_item_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._line_item import LineItem + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.checkout._session_line_item_list_params import ( + SessionLineItemListParams, + ) + + +class SessionLineItemService(StripeService): + def list( + self, + session: str, + params: Optional["SessionLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[LineItem]", + self._request( + "get", + "/v1/checkout/sessions/{session}/line_items".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + session: str, + params: Optional["SessionLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[LineItem]": + """ + When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. + """ + return cast( + "ListObject[LineItem]", + await self._request_async( + "get", + "/v1/checkout/sessions/{session}/line_items".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session_service.py new file mode 100644 index 00000000..afe68a85 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/checkout/_session_service.py @@ -0,0 +1,274 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.checkout._session import Session + from stripe.checkout._session_line_item_service import ( + SessionLineItemService, + ) + from stripe.params.checkout._session_create_params import ( + SessionCreateParams, + ) + from stripe.params.checkout._session_expire_params import ( + SessionExpireParams, + ) + from stripe.params.checkout._session_list_params import SessionListParams + from stripe.params.checkout._session_retrieve_params import ( + SessionRetrieveParams, + ) + from stripe.params.checkout._session_update_params import ( + SessionUpdateParams, + ) + +_subservices = { + "line_items": [ + "stripe.checkout._session_line_item_service", + "SessionLineItemService", + ], +} + + +class SessionService(StripeService): + line_items: "SessionLineItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["SessionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Session]": + """ + Returns a list of Checkout Sessions. + """ + return cast( + "ListObject[Session]", + self._request( + "get", + "/v1/checkout/sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["SessionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Session]": + """ + Returns a list of Checkout Sessions. + """ + return cast( + "ListObject[Session]", + await self._request_async( + "get", + "/v1/checkout/sessions", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["SessionCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Creates a Checkout Session object. + """ + return cast( + "Session", + self._request( + "post", + "/v1/checkout/sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["SessionCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Creates a Checkout Session object. + """ + return cast( + "Session", + await self._request_async( + "post", + "/v1/checkout/sessions", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + session: str, + params: Optional["SessionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Retrieves a Checkout Session object. + """ + return cast( + "Session", + self._request( + "get", + "/v1/checkout/sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + session: str, + params: Optional["SessionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Retrieves a Checkout Session object. + """ + return cast( + "Session", + await self._request_async( + "get", + "/v1/checkout/sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + session: str, + params: Optional["SessionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Updates a Checkout Session object. + + Related guide: [Dynamically update Checkout](https://docs.stripe.com/payments/checkout/dynamic-updates) + """ + return cast( + "Session", + self._request( + "post", + "/v1/checkout/sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + session: str, + params: Optional["SessionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Updates a Checkout Session object. + + Related guide: [Dynamically update Checkout](https://docs.stripe.com/payments/checkout/dynamic-updates) + """ + return cast( + "Session", + await self._request_async( + "post", + "/v1/checkout/sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def expire( + self, + session: str, + params: Optional["SessionExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + return cast( + "Session", + self._request( + "post", + "/v1/checkout/sessions/{session}/expire".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def expire_async( + self, + session: str, + params: Optional["SessionExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + A Checkout Session can be expired when it is in one of these statuses: open + + After it expires, a customer can't complete a Checkout Session and customers loading the Checkout Session see a message saying the Checkout Session is expired. + """ + return cast( + "Session", + await self._request_async( + "post", + "/v1/checkout/sessions/{session}/expire".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__init__.py new file mode 100644 index 00000000..18b3c174 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__init__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.climate._order import Order as Order + from stripe.climate._order_service import OrderService as OrderService + from stripe.climate._product import Product as Product + from stripe.climate._product_service import ( + ProductService as ProductService, + ) + from stripe.climate._supplier import Supplier as Supplier + from stripe.climate._supplier_service import ( + SupplierService as SupplierService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "Order": ("stripe.climate._order", False), + "OrderService": ("stripe.climate._order_service", False), + "Product": ("stripe.climate._product", False), + "ProductService": ("stripe.climate._product_service", False), + "Supplier": ("stripe.climate._supplier", False), + "SupplierService": ("stripe.climate._supplier_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..48323d24 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_order.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_order.cpython-312.pyc new file mode 100644 index 00000000..0d341957 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_order.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_order_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_order_service.cpython-312.pyc new file mode 100644 index 00000000..011686cd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_order_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_product.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_product.cpython-312.pyc new file mode 100644 index 00000000..a1d0c8ea Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_product.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_product_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_product_service.cpython-312.pyc new file mode 100644 index 00000000..3878b8ba Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_product_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_supplier.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_supplier.cpython-312.pyc new file mode 100644 index 00000000..e67ee6d4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_supplier.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_supplier_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_supplier_service.cpython-312.pyc new file mode 100644 index 00000000..e6ecc5b6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/climate/__pycache__/_supplier_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/_order.py b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_order.py new file mode 100644 index 00000000..477690ee --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_order.py @@ -0,0 +1,437 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.climate._product import Product + from stripe.climate._supplier import Supplier + from stripe.params.climate._order_cancel_params import OrderCancelParams + from stripe.params.climate._order_create_params import OrderCreateParams + from stripe.params.climate._order_list_params import OrderListParams + from stripe.params.climate._order_modify_params import OrderModifyParams + from stripe.params.climate._order_retrieve_params import ( + OrderRetrieveParams, + ) + + +class Order( + CreateableAPIResource["Order"], + ListableAPIResource["Order"], + UpdateableAPIResource["Order"], +): + """ + Orders represent your intent to purchase a particular Climate product. When you create an order, the + payment is deducted from your merchant balance. + """ + + OBJECT_NAME: ClassVar[Literal["climate.order"]] = "climate.order" + + class Beneficiary(StripeObject): + public_name: str + """ + Publicly displayable name for the end beneficiary of carbon removal. + """ + + class DeliveryDetail(StripeObject): + class Location(StripeObject): + city: Optional[str] + """ + The city where the supplier is located. + """ + country: str + """ + Two-letter ISO code representing the country where the supplier is located. + """ + latitude: Optional[float] + """ + The geographic latitude where the supplier is located. + """ + longitude: Optional[float] + """ + The geographic longitude where the supplier is located. + """ + region: Optional[str] + """ + The state/county/province/region where the supplier is located. + """ + + delivered_at: int + """ + Time at which the delivery occurred. Measured in seconds since the Unix epoch. + """ + location: Optional[Location] + """ + Specific location of this delivery. + """ + metric_tons: str + """ + Quantity of carbon removal supplied by this delivery. + """ + registry_url: Optional[str] + """ + Once retired, a URL to the registry entry for the tons from this delivery. + """ + supplier: "Supplier" + """ + A supplier of carbon removal. + """ + _inner_class_types = {"location": Location} + + amount_fees: int + """ + Total amount of [Frontier](https://frontierclimate.com/)'s service fees in the currency's smallest unit. + """ + amount_subtotal: int + """ + Total amount of the carbon removal in the currency's smallest unit. + """ + amount_total: int + """ + Total amount of the order including fees in the currency's smallest unit. + """ + beneficiary: Optional[Beneficiary] + canceled_at: Optional[int] + """ + Time at which the order was canceled. Measured in seconds since the Unix epoch. + """ + cancellation_reason: Optional[ + Literal["expired", "product_unavailable", "requested"] + ] + """ + Reason for the cancellation of this order. + """ + certificate: Optional[str] + """ + For delivered orders, a URL to a delivery certificate for the order. + """ + confirmed_at: Optional[int] + """ + Time at which the order was confirmed. Measured in seconds since the Unix epoch. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase, representing the currency for this order. + """ + delayed_at: Optional[int] + """ + Time at which the order's expected_delivery_year was delayed. Measured in seconds since the Unix epoch. + """ + delivered_at: Optional[int] + """ + Time at which the order was delivered. Measured in seconds since the Unix epoch. + """ + delivery_details: List[DeliveryDetail] + """ + Details about the delivery of carbon removal for this order. + """ + expected_delivery_year: int + """ + The year this order is expected to be delivered. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + metric_tons: str + """ + Quantity of carbon removal that is included in this order. + """ + object: Literal["climate.order"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + product: ExpandableField["Product"] + """ + Unique ID for the Climate `Product` this order is purchasing. + """ + product_substituted_at: Optional[int] + """ + Time at which the order's product was substituted for a different product. Measured in seconds since the Unix epoch. + """ + status: Literal[ + "awaiting_funds", "canceled", "confirmed", "delivered", "open" + ] + """ + The current status of this order. + """ + + @classmethod + def _cls_cancel( + cls, order: str, **params: Unpack["OrderCancelParams"] + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + return cast( + "Order", + cls._static_request( + "post", + "/v1/climate/orders/{order}/cancel".format( + order=sanitize_id(order) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel(order: str, **params: Unpack["OrderCancelParams"]) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + ... + + @overload + def cancel(self, **params: Unpack["OrderCancelParams"]) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OrderCancelParams"] + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + return cast( + "Order", + self._request( + "post", + "/v1/climate/orders/{order}/cancel".format( + order=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, order: str, **params: Unpack["OrderCancelParams"] + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + return cast( + "Order", + await cls._static_request_async( + "post", + "/v1/climate/orders/{order}/cancel".format( + order=sanitize_id(order) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + order: str, **params: Unpack["OrderCancelParams"] + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["OrderCancelParams"] + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OrderCancelParams"] + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + return cast( + "Order", + await self._request_async( + "post", + "/v1/climate/orders/{order}/cancel".format( + order=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["OrderCreateParams"]) -> "Order": + """ + Creates a Climate order object for a given Climate product. The order will be processed immediately + after creation and payment will be deducted your Stripe balance. + """ + return cast( + "Order", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["OrderCreateParams"] + ) -> "Order": + """ + Creates a Climate order object for a given Climate product. The order will be processed immediately + after creation and payment will be deducted your Stripe balance. + """ + return cast( + "Order", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list(cls, **params: Unpack["OrderListParams"]) -> ListObject["Order"]: + """ + Lists all Climate order objects. The orders are returned sorted by creation date, with the + most recently created orders appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["OrderListParams"] + ) -> ListObject["Order"]: + """ + Lists all Climate order objects. The orders are returned sorted by creation date, with the + most recently created orders appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify(cls, id: str, **params: Unpack["OrderModifyParams"]) -> "Order": + """ + Updates the specified order by setting the values of the parameters passed. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Order", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["OrderModifyParams"] + ) -> "Order": + """ + Updates the specified order by setting the values of the parameters passed. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Order", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["OrderRetrieveParams"] + ) -> "Order": + """ + Retrieves the details of a Climate order object with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["OrderRetrieveParams"] + ) -> "Order": + """ + Retrieves the details of a Climate order object with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "beneficiary": Beneficiary, + "delivery_details": DeliveryDetail, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/_order_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_order_service.py new file mode 100644 index 00000000..0eb3b485 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_order_service.py @@ -0,0 +1,230 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.climate._order import Order + from stripe.params.climate._order_cancel_params import OrderCancelParams + from stripe.params.climate._order_create_params import OrderCreateParams + from stripe.params.climate._order_list_params import OrderListParams + from stripe.params.climate._order_retrieve_params import ( + OrderRetrieveParams, + ) + from stripe.params.climate._order_update_params import OrderUpdateParams + + +class OrderService(StripeService): + def list( + self, + params: Optional["OrderListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Order]": + """ + Lists all Climate order objects. The orders are returned sorted by creation date, with the + most recently created orders appearing first. + """ + return cast( + "ListObject[Order]", + self._request( + "get", + "/v1/climate/orders", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["OrderListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Order]": + """ + Lists all Climate order objects. The orders are returned sorted by creation date, with the + most recently created orders appearing first. + """ + return cast( + "ListObject[Order]", + await self._request_async( + "get", + "/v1/climate/orders", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "OrderCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Creates a Climate order object for a given Climate product. The order will be processed immediately + after creation and payment will be deducted your Stripe balance. + """ + return cast( + "Order", + self._request( + "post", + "/v1/climate/orders", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "OrderCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Creates a Climate order object for a given Climate product. The order will be processed immediately + after creation and payment will be deducted your Stripe balance. + """ + return cast( + "Order", + await self._request_async( + "post", + "/v1/climate/orders", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + order: str, + params: Optional["OrderRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Retrieves the details of a Climate order object with the given ID. + """ + return cast( + "Order", + self._request( + "get", + "/v1/climate/orders/{order}".format(order=sanitize_id(order)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + order: str, + params: Optional["OrderRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Retrieves the details of a Climate order object with the given ID. + """ + return cast( + "Order", + await self._request_async( + "get", + "/v1/climate/orders/{order}".format(order=sanitize_id(order)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + order: str, + params: Optional["OrderUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Updates the specified order by setting the values of the parameters passed. + """ + return cast( + "Order", + self._request( + "post", + "/v1/climate/orders/{order}".format(order=sanitize_id(order)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + order: str, + params: Optional["OrderUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Updates the specified order by setting the values of the parameters passed. + """ + return cast( + "Order", + await self._request_async( + "post", + "/v1/climate/orders/{order}".format(order=sanitize_id(order)), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + order: str, + params: Optional["OrderCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + return cast( + "Order", + self._request( + "post", + "/v1/climate/orders/{order}/cancel".format( + order=sanitize_id(order), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + order: str, + params: Optional["OrderCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Order": + """ + Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + provides 90 days advance notice and refunds the amount_total. + """ + return cast( + "Order", + await self._request_async( + "post", + "/v1/climate/orders/{order}/cancel".format( + order=sanitize_id(order), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/_product.py b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_product.py new file mode 100644 index 00000000..613352ec --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_product.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.climate._supplier import Supplier + from stripe.params.climate._product_list_params import ProductListParams + from stripe.params.climate._product_retrieve_params import ( + ProductRetrieveParams, + ) + + +class Product(ListableAPIResource["Product"]): + """ + A Climate product represents a type of carbon removal unit available for reservation. + You can retrieve it to see the current price and availability. + """ + + OBJECT_NAME: ClassVar[Literal["climate.product"]] = "climate.product" + + class CurrentPricesPerMetricTon(StripeObject): + amount_fees: int + """ + Fees for one metric ton of carbon removal in the currency's smallest unit. + """ + amount_subtotal: int + """ + Subtotal for one metric ton of carbon removal (excluding fees) in the currency's smallest unit. + """ + amount_total: int + """ + Total for one metric ton of carbon removal (including fees) in the currency's smallest unit. + """ + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + current_prices_per_metric_ton: Dict[str, CurrentPricesPerMetricTon] + """ + Current prices for a metric ton of carbon removal in a currency's smallest unit. + """ + delivery_year: Optional[int] + """ + The year in which the carbon removal is expected to be delivered. + """ + id: str + """ + Unique identifier for the object. For convenience, Climate product IDs are human-readable strings + that start with `climsku_`. See [carbon removal inventory](https://stripe.com/docs/climate/orders/carbon-removal-inventory) + for a list of available carbon removal products. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metric_tons_available: str + """ + The quantity of metric tons available for reservation. + """ + name: str + """ + The Climate product's name. + """ + object: Literal["climate.product"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + suppliers: List["Supplier"] + """ + The carbon removal suppliers that fulfill orders for this Climate product. + """ + + @classmethod + def list( + cls, **params: Unpack["ProductListParams"] + ) -> ListObject["Product"]: + """ + Lists all available Climate product objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ProductListParams"] + ) -> ListObject["Product"]: + """ + Lists all available Climate product objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ProductRetrieveParams"] + ) -> "Product": + """ + Retrieves the details of a Climate product with the given ID. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ProductRetrieveParams"] + ) -> "Product": + """ + Retrieves the details of a Climate product with the given ID. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "current_prices_per_metric_ton": CurrentPricesPerMetricTon, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/_product_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_product_service.py new file mode 100644 index 00000000..d58cd419 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_product_service.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.climate._product import Product + from stripe.params.climate._product_list_params import ProductListParams + from stripe.params.climate._product_retrieve_params import ( + ProductRetrieveParams, + ) + + +class ProductService(StripeService): + def list( + self, + params: Optional["ProductListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Product]": + """ + Lists all available Climate product objects. + """ + return cast( + "ListObject[Product]", + self._request( + "get", + "/v1/climate/products", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ProductListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Product]": + """ + Lists all available Climate product objects. + """ + return cast( + "ListObject[Product]", + await self._request_async( + "get", + "/v1/climate/products", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + product: str, + params: Optional["ProductRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Retrieves the details of a Climate product with the given ID. + """ + return cast( + "Product", + self._request( + "get", + "/v1/climate/products/{product}".format( + product=sanitize_id(product), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + product: str, + params: Optional["ProductRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Product": + """ + Retrieves the details of a Climate product with the given ID. + """ + return cast( + "Product", + await self._request_async( + "get", + "/v1/climate/products/{product}".format( + product=sanitize_id(product), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/_supplier.py b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_supplier.py new file mode 100644 index 00000000..d65e2100 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_supplier.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.climate._supplier_list_params import SupplierListParams + from stripe.params.climate._supplier_retrieve_params import ( + SupplierRetrieveParams, + ) + + +class Supplier(ListableAPIResource["Supplier"]): + """ + A supplier of carbon removal. + """ + + OBJECT_NAME: ClassVar[Literal["climate.supplier"]] = "climate.supplier" + + class Location(StripeObject): + city: Optional[str] + """ + The city where the supplier is located. + """ + country: str + """ + Two-letter ISO code representing the country where the supplier is located. + """ + latitude: Optional[float] + """ + The geographic latitude where the supplier is located. + """ + longitude: Optional[float] + """ + The geographic longitude where the supplier is located. + """ + region: Optional[str] + """ + The state/county/province/region where the supplier is located. + """ + + id: str + """ + Unique identifier for the object. + """ + info_url: str + """ + Link to a webpage to learn more about the supplier. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + locations: List[Location] + """ + The locations in which this supplier operates. + """ + name: str + """ + Name of this carbon removal supplier. + """ + object: Literal["climate.supplier"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + removal_pathway: Literal[ + "biomass_carbon_removal_and_storage", + "direct_air_capture", + "enhanced_weathering", + ] + """ + The scientific pathway used for carbon removal. + """ + + @classmethod + def list( + cls, **params: Unpack["SupplierListParams"] + ) -> ListObject["Supplier"]: + """ + Lists all available Climate supplier objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["SupplierListParams"] + ) -> ListObject["Supplier"]: + """ + Lists all available Climate supplier objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SupplierRetrieveParams"] + ) -> "Supplier": + """ + Retrieves a Climate supplier object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SupplierRetrieveParams"] + ) -> "Supplier": + """ + Retrieves a Climate supplier object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"locations": Location} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/climate/_supplier_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_supplier_service.py new file mode 100644 index 00000000..f31a10f9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/climate/_supplier_service.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.climate._supplier import Supplier + from stripe.params.climate._supplier_list_params import SupplierListParams + from stripe.params.climate._supplier_retrieve_params import ( + SupplierRetrieveParams, + ) + + +class SupplierService(StripeService): + def list( + self, + params: Optional["SupplierListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Supplier]": + """ + Lists all available Climate supplier objects. + """ + return cast( + "ListObject[Supplier]", + self._request( + "get", + "/v1/climate/suppliers", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["SupplierListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Supplier]": + """ + Lists all available Climate supplier objects. + """ + return cast( + "ListObject[Supplier]", + await self._request_async( + "get", + "/v1/climate/suppliers", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + supplier: str, + params: Optional["SupplierRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Supplier": + """ + Retrieves a Climate supplier object. + """ + return cast( + "Supplier", + self._request( + "get", + "/v1/climate/suppliers/{supplier}".format( + supplier=sanitize_id(supplier), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + supplier: str, + params: Optional["SupplierRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Supplier": + """ + Retrieves a Climate supplier object. + """ + return cast( + "Supplier", + await self._request_async( + "get", + "/v1/climate/suppliers/{supplier}".format( + supplier=sanitize_id(supplier), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/data/ca-certificates.crt b/Backend/venv/lib/python3.12/site-packages/stripe/data/ca-certificates.crt new file mode 100644 index 00000000..26f13504 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/data/ca-certificates.crt @@ -0,0 +1,3347 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Apr 26 03:12:05 2022 GMT +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.29. +## SHA256: 34a54d5191775c1bd37be6cfd3f09e831e072555dc3a2e51f4a2c4b0f8ada5cc +## + + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) Főtanúsítvány +======================================== +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG +EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz +MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu +QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ +03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK +ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU ++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC +PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT +OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK +F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK +0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ +0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB +leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID +AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ +SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG +NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l +Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga +kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q +hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs +g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 +aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 +nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC +ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo +Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z +WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM +BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE +AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky +MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz +IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ +wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa +by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 +zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f +YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 +oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l +EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 +hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 +EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 +jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY +iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI +WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 +JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx +K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ +Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC +4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo +2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz +lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem +OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 +vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +E-Tugra Certification Authority +=============================== +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w +DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls +ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw +NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx +QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl +cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD +DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd +hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K +CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g +ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ +BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 +E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz +rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq +jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 +dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG +MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK +kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO +XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 +VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo +a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc +dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV +KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT +Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 +8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G +C7TbO6Orb1wdtn7os4I07QZcJA== +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn +dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ +FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ +5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG +x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX +2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL +OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 +sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C +GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 +WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt +rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ +nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg +tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW +sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp +pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA +zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq +ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 +7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz +0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j +Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn +RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O ++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq +/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE +Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM +lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 +yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ +eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW +FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ +7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ +Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM +8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi +FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi +yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c +J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw +sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +Staat der Nederlanden EV Root CA +================================ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M +MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl +cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk +SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW +O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r +0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 +Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV +XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr +08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV +0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd +74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx +fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa +ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu +c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq +5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN +b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN +f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi +5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 +WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK +DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy +eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GB CA +=============================== +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG +EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw +MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds +b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX +scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP +rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk +9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o +Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg +GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI +hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD +dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 +VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui +HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +SZAFIR ROOT CA2 +=============== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV +BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ +BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD +VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q +qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK +DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE +2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ +ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi +ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC +AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 +O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 +oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul +4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 ++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +Certum Trusted Network CA 2 +=========================== +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE +BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 +bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y +ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ +TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB +IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 +7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o +CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b +Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p +uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 +GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ +9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB +Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye +hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM +BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW +Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA +L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo +clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM +pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb +w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo +J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm +ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX +is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 +zAYspsbiDrW5viSP +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2015 +======================================================= +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT +BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 +aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx +MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg +QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV +BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw +MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv +bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh +iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ +6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd +FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr +i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F +GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 +fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu +iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI +hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ +D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM +d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y +d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn +82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb +davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F +Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt +J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa +JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q +p/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions ECC RootCA 2015 +=========================================================== +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 +aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw +MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj +IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD +VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 +Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP +dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK +Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA +GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn +dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +ISRG Root X1 +============ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE +BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD +EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG +EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT +DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r +Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 +3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K +b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN +Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ +4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf +1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu +hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH +usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r +OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY +9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV +0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt +hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw +TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx +e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA +JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD +YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n +JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ +m+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM +================ +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT +AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw +MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD +TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf +qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr +btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL +j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou +08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw +WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT +tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ +47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC +ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa +i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o +dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s +D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ +j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT +Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW ++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 +Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d +8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm +5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG +rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +Amazon Root CA 1 +================ +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 +MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH +FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ +gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t +dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce +VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 +DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM +CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy +8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa +2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 +xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +Amazon Root CA 2 +================ +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 +MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 +kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp +N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 +AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd +fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx +kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS +btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 +Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN +c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ +3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw +DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA +A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE +YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW +xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ +gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW +aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV +Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 +KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi +JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= +-----END CERTIFICATE----- + +Amazon Root CA 3 +================ +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB +f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr +Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 +rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc +eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +Amazon Root CA 4 +================ +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN +/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri +83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA +MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 +AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT +D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr +IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g +TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp +ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD +VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt +c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth +bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 +IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 +6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc +wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 +3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 +WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU +ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc +lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R +e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j +q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +GDCA TrustAUTH R5 ROOT +====================== +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw +BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD +DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow +YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs +AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p +OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr +pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ +9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ +xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM +R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ +D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 +oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx +9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 +H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 +6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd ++PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ +HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD +F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ +8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv +/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT +aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +TrustCor RootCert CA-1 +====================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx +MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu +YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe +VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy +dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq +jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 +pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 +JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h +gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw +/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j +BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 +mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf +ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C +qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P +3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= +-----END CERTIFICATE----- + +TrustCor RootCert CA-2 +====================== +-----BEGIN CERTIFICATE----- +MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w +DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT +eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0 +eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy +MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h +bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U +cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0 +IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb +ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk +RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1 +oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb +XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1 +/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q +jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP +eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg +rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh +8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU +2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h +Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp +kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv +2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3 +S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw +PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv +DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU +RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE +xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX +RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ +-----END CERTIFICATE----- + +TrustCor ECA-1 +============== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw +N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 +MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y +IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR +MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 +xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc +p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ +fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj +YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL +f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF +AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u +/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F +hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs +J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC +jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== +-----END CERTIFICATE----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM +BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x +MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw +MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM +LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C +Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8 +P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge +oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp +k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z +fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ +gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2 +UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8 +1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s +bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr +dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf +ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl +u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq +erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj +MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ +vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI +Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y +wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI +WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +SSL.com Root Certification Authority ECC +======================================== +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv +BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy +MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ +8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR +hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT +jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW +e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z +5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority RSA R2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w +DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u +MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI +DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD +VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh +hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w +cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO +Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ +B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh +CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim +9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto +RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm +JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 ++qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp +qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 +++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx +Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G +guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz +OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 +CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq +lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR +rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 +hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX +9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority ECC +=========================================== +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy +BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw +MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM +LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy +3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O +BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe +5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ +N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm +m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +GlobalSign Root CA - R6 +======================= +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX +R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i +YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs +U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss +grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE +3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF +vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM +PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ +azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O +WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy +CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP +0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN +b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE +AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV +HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 +lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY +BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym +Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr +3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 +0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T +uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK +oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t +JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GC CA +=============================== +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD +SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo +MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa +Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL +ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr +VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab +NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E +AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk +AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +UCA Global G2 Root +================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x +NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU +cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT +oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV +8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS +h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o +LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ +R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe +KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa +4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc +OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 +8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo +5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A +Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 +yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX +c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo +jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk +bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x +ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn +RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== +-----END CERTIFICATE----- + +UCA Extended Validation Root +============================ +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u +IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G +A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs +iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF +Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu +eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR +59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH +0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR +el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv +B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth +WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS +NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS +3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL +BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM +aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 +dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb ++7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW +F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi +GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc +GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi +djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr +dhh2n1ax +-----END CERTIFICATE----- + +Certigna Root CA +================ +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE +BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ +MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda +MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz +MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX +stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz +KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 +JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 +XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq +4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej +wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ +lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI +jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ +/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy +dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h +LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl +cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt +OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP +TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq +7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 +4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd +8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS +6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY +tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS +aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde +E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQELBQAwbzELMAkG +A1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJSG9uZyBLb25nMRYwFAYDVQQK +Ew1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25na29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2 +MDMwMjI5NDZaFw00MjA2MDMwMjI5NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtv +bmcxEjAQBgNVBAcTCUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMX +SG9uZ2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz +iNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFOdem1p+/l6TWZ5Mwc50tf +jTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mIVoBc+L0sPOFMV4i707mV78vH9toxdCim +5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOe +sL4jpNrcyCse2m5FHomY2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj +0mRiikKYvLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+TtbNe/ +JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZbx39ri1UbSsUgYT2u +y1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+l2oBlKN8W4UdKjk60FSh0Tlxnf0h ++bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YKTE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsG +xVd7GYYKecsAyVKvQv83j+GjHno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwID +AQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e +i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEwDQYJKoZIhvcN +AQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG7BJ8dNVI0lkUmcDrudHr9Egw +W62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCkMpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWld +y8joRTnU+kLBEUx3XZL7av9YROXrgZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov ++BS5gLNdTaqX4fnkGMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDc +eqFS3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJmOzj/2ZQw +9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+l6mc1X5VTMbeRRAc6uk7 +nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6cJfTzPV4e0hz5sy229zdcxsshTrD3mUcY +hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB +60PZ2Pierc+xYw5F9KBaLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fq +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G4 +========================================= +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu +bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1 +dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT +AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D +umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV +3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds +8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ +e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7 +ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X +xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV +7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8 +dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW +Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n +MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q +jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht +7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK +YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt +jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+ +m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW +RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA +JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G ++TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT +kcpG2om3PVODLAgfi49T3f+sHw== +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJV +UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 +ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0xNzA4MjMxOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJV +UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 +ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALldUShLPDeS0YLOvR29 +zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0XznswuvCAAJWX/NKSqIk4cXGIDtiLK0thAf +LdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4Bq +stTnoApTAbqOl5F2brz81Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9o +WN0EACyW80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotPJqX+ +OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1lRtzuzWniTY+HKE40 +Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfwhI0Vcnyh78zyiGG69Gm7DIwLdVcE +uE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm ++9jaJXLE9gCxInm943xZYkqcBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqj +ifLJS3tBEW1ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1UdDwEB/wQEAwIB +BjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W0OhUKDtkLSGm+J1WE2pIPU/H +PinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfeuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0H +ZJDmHvUqoai7PF35owgLEQzxPy0QlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla +4gt5kNdXElE1GYhBaCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5R +vbbEsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPTMaCm/zjd +zyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qequ5AvzSxnI9O4fKSTx+O +856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxhVicGaeVyQYHTtgGJoC86cnn+OjC/QezH +Yj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu +3R3y4G5OBVixwJAWKqQ9EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNVBAUTCUc2MzI4 +NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lv +bjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNVBAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3Qg +Q0EwHhcNMTkwOTA0MTAwMDM4WhcNMzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEw +MQswCQYDVQQGEwJFUzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQw +EgYDVQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9vdCBDQTCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCjcqQZAZ2cC4Ffc0m6p6zz +BE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9qyGFOtibBTI3/TO80sh9l2Ll49a2pcbnv +T1gdpd50IJeh7WhM3pIXS7yr/2WanvtH2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcv +B2VSAKduyK9o7PQUlrZXH1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXse +zx76W0OLzc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyRp1RM +VwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQzW7i1o0TJrH93PB0j +7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/SiOL9V8BY9KHcyi1Swr1+KuCLH5z +JTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJnLNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe +8TZBAQIvfXOn3kLMTOmJDVb3n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVO +Hj1tyRRM4y5Bu8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj +o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEATh65isagmD9uw2nAalxJ +UqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzx +j6ptBZNscsdW699QIyjlRRA96Gejrw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDt +dD+4E5UGUcjohybKpFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM +5gf0vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjqOknkJjCb +5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ/zo1PqVUSlJZS2Db7v54 +EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ92zg/LFis6ELhDtjTO0wugumDLmsx2d1H +hk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGy +g77FGr8H6lnco4g175x2MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3 +r5+qPeoott7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw= +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6MQswCQYDVQQG +EwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0g +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0Ew +HhcNMTgwMzE2MTIxMDEzWhcNNDMwMzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMY +QXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZn0EGze2jusDbCSzBfN8p +fktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/qp1x4EaTByIVcJdPTsuclzxFUl6s1wB52 +HO8AU5853BSlLCIls3Jy/I2z5T4IHhQqNwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2 +fJmItdUDmj0VDT06qKhF8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGt +g/BKEiJ3HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGamqi4 +NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi7VdNIuJGmj8PkTQk +fVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSFytKAQd8FqKPVhJBPC/PgP5sZ0jeJ +P/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0PqafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSY +njYJdmZm/Bo/6khUHL4wvYBQv3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHK +HRzQ+8S1h9E6Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1 +vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBAEii1QAL +LtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4WxmB82M+w85bj/UvXgF2Ez8s +ALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvozMrnadyHncI013nR03e4qllY/p0m+jiGPp2K +h2RX5Rc64vmNueMzeMGQ2Ljdt4NR5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8 +CYyqOhNf6DR5UMEQGfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA +4kZf5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq0Uc9Nneo +WWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7DP78v3DSk+yshzWePS/Tj +6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTMqJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmT +OPQD8rv7gmsHINFSH5pkAnuYZttcTVoP0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZck +bxJF0WddCajJFdr60qZfE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQELBQAwYTELMAkG +A1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUgQ2VydGlmaWNhdGlvbiBFbGVj +dHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJvb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQw +NDI2MDg1NzU2WjBhMQswCQYDVQQGEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBD +ZXJ0aWZpY2F0aW9uIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZn56eY+hz +2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd2JQDoOw05TDENX37Jk0b +bjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgFVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7 +NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAd +gjH8KcwAWJeRTIAAHDOFli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViW +VSHbhlnUr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2eY8f +Tpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIbMlEsPvLfe/ZdeikZ +juXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISgjwBUFfyRbVinljvrS5YnzWuioYas +DXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwS +VXAkPcvCFDVDXSdOvsC9qnyW5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI +04Y+oXNZtPdEITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+zxiD2BkewhpMl +0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYuQEkHDVneixCwSQXi/5E/S7fd +Ao74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRY +YdZ2vyJ/0Adqp2RT8JeNnYA/u8EH22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJp +adbGNjHh/PqAulxPxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65x +xBzndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5Xc0yGYuP +jCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7bnV2UqL1g52KAdoGDDIzM +MEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9z +ZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZHu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3r +AZ3r2OvEhJn7wAzMMujjd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__init__.py new file mode 100644 index 00000000..dcb37929 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__init__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.entitlements._active_entitlement import ( + ActiveEntitlement as ActiveEntitlement, + ) + from stripe.entitlements._active_entitlement_service import ( + ActiveEntitlementService as ActiveEntitlementService, + ) + from stripe.entitlements._active_entitlement_summary import ( + ActiveEntitlementSummary as ActiveEntitlementSummary, + ) + from stripe.entitlements._feature import Feature as Feature + from stripe.entitlements._feature_service import ( + FeatureService as FeatureService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ActiveEntitlement": ("stripe.entitlements._active_entitlement", False), + "ActiveEntitlementService": ( + "stripe.entitlements._active_entitlement_service", + False, + ), + "ActiveEntitlementSummary": ( + "stripe.entitlements._active_entitlement_summary", + False, + ), + "Feature": ("stripe.entitlements._feature", False), + "FeatureService": ("stripe.entitlements._feature_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..360ffd7a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement.cpython-312.pyc new file mode 100644 index 00000000..0537bfe3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement_service.cpython-312.pyc new file mode 100644 index 00000000..a97849d7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement_summary.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement_summary.cpython-312.pyc new file mode 100644 index 00000000..4643954b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_active_entitlement_summary.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_feature.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_feature.cpython-312.pyc new file mode 100644 index 00000000..26e3ddf1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_feature.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_feature_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_feature_service.cpython-312.pyc new file mode 100644 index 00000000..7085e044 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/__pycache__/_feature_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement.py b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement.py new file mode 100644 index 00000000..9e95b282 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from typing import ClassVar +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.entitlements._feature import Feature + from stripe.params.entitlements._active_entitlement_list_params import ( + ActiveEntitlementListParams, + ) + from stripe.params.entitlements._active_entitlement_retrieve_params import ( + ActiveEntitlementRetrieveParams, + ) + + +class ActiveEntitlement(ListableAPIResource["ActiveEntitlement"]): + """ + An active entitlement describes access to a feature for a customer. + """ + + OBJECT_NAME: ClassVar[Literal["entitlements.active_entitlement"]] = ( + "entitlements.active_entitlement" + ) + feature: ExpandableField["Feature"] + """ + The [Feature](https://stripe.com/docs/api/entitlements/feature) that the customer is entitled to. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + lookup_key: str + """ + A unique key you provide as your own system identifier. This may be up to 80 characters. + """ + object: Literal["entitlements.active_entitlement"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def list( + cls, **params: Unpack["ActiveEntitlementListParams"] + ) -> ListObject["ActiveEntitlement"]: + """ + Retrieve a list of active entitlements for a customer + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ActiveEntitlementListParams"] + ) -> ListObject["ActiveEntitlement"]: + """ + Retrieve a list of active entitlements for a customer + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ActiveEntitlementRetrieveParams"] + ) -> "ActiveEntitlement": + """ + Retrieve an active entitlement + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ActiveEntitlementRetrieveParams"] + ) -> "ActiveEntitlement": + """ + Retrieve an active entitlement + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement_service.py new file mode 100644 index 00000000..db359907 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.entitlements._active_entitlement import ActiveEntitlement + from stripe.params.entitlements._active_entitlement_list_params import ( + ActiveEntitlementListParams, + ) + from stripe.params.entitlements._active_entitlement_retrieve_params import ( + ActiveEntitlementRetrieveParams, + ) + + +class ActiveEntitlementService(StripeService): + def list( + self, + params: "ActiveEntitlementListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ActiveEntitlement]": + """ + Retrieve a list of active entitlements for a customer + """ + return cast( + "ListObject[ActiveEntitlement]", + self._request( + "get", + "/v1/entitlements/active_entitlements", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "ActiveEntitlementListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ActiveEntitlement]": + """ + Retrieve a list of active entitlements for a customer + """ + return cast( + "ListObject[ActiveEntitlement]", + await self._request_async( + "get", + "/v1/entitlements/active_entitlements", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["ActiveEntitlementRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ActiveEntitlement": + """ + Retrieve an active entitlement + """ + return cast( + "ActiveEntitlement", + self._request( + "get", + "/v1/entitlements/active_entitlements/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["ActiveEntitlementRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ActiveEntitlement": + """ + Retrieve an active entitlement + """ + return cast( + "ActiveEntitlement", + await self._request_async( + "get", + "/v1/entitlements/active_entitlements/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement_summary.py b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement_summary.py new file mode 100644 index 00000000..d6eb62ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_active_entitlement_summary.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.entitlements._active_entitlement import ActiveEntitlement + + +class ActiveEntitlementSummary(StripeObject): + """ + A summary of a customer's active entitlements. + """ + + OBJECT_NAME: ClassVar[ + Literal["entitlements.active_entitlement_summary"] + ] = "entitlements.active_entitlement_summary" + customer: str + """ + The customer that is entitled to this feature. + """ + entitlements: ListObject["ActiveEntitlement"] + """ + The list of entitlements this customer has. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["entitlements.active_entitlement_summary"] + """ + String representing the object's type. Objects of the same type share the same value. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_feature.py b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_feature.py new file mode 100644 index 00000000..c9954ef1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_feature.py @@ -0,0 +1,192 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.entitlements._feature_create_params import ( + FeatureCreateParams, + ) + from stripe.params.entitlements._feature_list_params import ( + FeatureListParams, + ) + from stripe.params.entitlements._feature_modify_params import ( + FeatureModifyParams, + ) + from stripe.params.entitlements._feature_retrieve_params import ( + FeatureRetrieveParams, + ) + + +class Feature( + CreateableAPIResource["Feature"], + ListableAPIResource["Feature"], + UpdateableAPIResource["Feature"], +): + """ + A feature represents a monetizable ability or functionality in your system. + Features can be assigned to products, and when those products are purchased, Stripe will create an entitlement to the feature for the purchasing customer. + """ + + OBJECT_NAME: ClassVar[Literal["entitlements.feature"]] = ( + "entitlements.feature" + ) + active: bool + """ + Inactive features cannot be attached to new products and will not be returned from the features list endpoint. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + lookup_key: str + """ + A unique key you provide as your own system identifier. This may be up to 80 characters. + """ + metadata: Dict[str, str] + """ + Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: str + """ + The feature's name, for your own purpose, not meant to be displayable to the customer. + """ + object: Literal["entitlements.feature"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def create(cls, **params: Unpack["FeatureCreateParams"]) -> "Feature": + """ + Creates a feature + """ + return cast( + "Feature", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["FeatureCreateParams"] + ) -> "Feature": + """ + Creates a feature + """ + return cast( + "Feature", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["FeatureListParams"] + ) -> ListObject["Feature"]: + """ + Retrieve a list of features + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["FeatureListParams"] + ) -> ListObject["Feature"]: + """ + Retrieve a list of features + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["FeatureModifyParams"] + ) -> "Feature": + """ + Update a feature's metadata or permanently deactivate it. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Feature", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["FeatureModifyParams"] + ) -> "Feature": + """ + Update a feature's metadata or permanently deactivate it. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Feature", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["FeatureRetrieveParams"] + ) -> "Feature": + """ + Retrieves a feature + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["FeatureRetrieveParams"] + ) -> "Feature": + """ + Retrieves a feature + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_feature_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_feature_service.py new file mode 100644 index 00000000..6844a337 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/entitlements/_feature_service.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.entitlements._feature import Feature + from stripe.params.entitlements._feature_create_params import ( + FeatureCreateParams, + ) + from stripe.params.entitlements._feature_list_params import ( + FeatureListParams, + ) + from stripe.params.entitlements._feature_retrieve_params import ( + FeatureRetrieveParams, + ) + from stripe.params.entitlements._feature_update_params import ( + FeatureUpdateParams, + ) + + +class FeatureService(StripeService): + def list( + self, + params: Optional["FeatureListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Feature]": + """ + Retrieve a list of features + """ + return cast( + "ListObject[Feature]", + self._request( + "get", + "/v1/entitlements/features", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["FeatureListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Feature]": + """ + Retrieve a list of features + """ + return cast( + "ListObject[Feature]", + await self._request_async( + "get", + "/v1/entitlements/features", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "FeatureCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Feature": + """ + Creates a feature + """ + return cast( + "Feature", + self._request( + "post", + "/v1/entitlements/features", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "FeatureCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Feature": + """ + Creates a feature + """ + return cast( + "Feature", + await self._request_async( + "post", + "/v1/entitlements/features", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["FeatureRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Feature": + """ + Retrieves a feature + """ + return cast( + "Feature", + self._request( + "get", + "/v1/entitlements/features/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["FeatureRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Feature": + """ + Retrieves a feature + """ + return cast( + "Feature", + await self._request_async( + "get", + "/v1/entitlements/features/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + id: str, + params: Optional["FeatureUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Feature": + """ + Update a feature's metadata or permanently deactivate it. + """ + return cast( + "Feature", + self._request( + "post", + "/v1/entitlements/features/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: Optional["FeatureUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Feature": + """ + Update a feature's metadata or permanently deactivate it. + """ + return cast( + "Feature", + await self._request_async( + "post", + "/v1/entitlements/features/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/events/__init__.py new file mode 100644 index 00000000..89de30b7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/events/__init__.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- + +from typing_extensions import TYPE_CHECKING +from stripe.v2.core._event import ( + UnknownEventNotification as UnknownEventNotification, +) + + +# The beginning of the section generated from our OpenAPI spec +from importlib import import_module + +if TYPE_CHECKING: + from stripe.events._event_classes import ( + ALL_EVENT_NOTIFICATIONS as ALL_EVENT_NOTIFICATIONS, + ) + from stripe.events._v1_billing_meter_error_report_triggered_event import ( + V1BillingMeterErrorReportTriggeredEvent as V1BillingMeterErrorReportTriggeredEvent, + V1BillingMeterErrorReportTriggeredEventNotification as V1BillingMeterErrorReportTriggeredEventNotification, + ) + from stripe.events._v1_billing_meter_no_meter_found_event import ( + V1BillingMeterNoMeterFoundEvent as V1BillingMeterNoMeterFoundEvent, + V1BillingMeterNoMeterFoundEventNotification as V1BillingMeterNoMeterFoundEventNotification, + ) + from stripe.events._v2_core_event_destination_ping_event import ( + V2CoreEventDestinationPingEvent as V2CoreEventDestinationPingEvent, + V2CoreEventDestinationPingEventNotification as V2CoreEventDestinationPingEventNotification, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ALL_EVENT_NOTIFICATIONS": ("stripe.events._event_classes", False), + "V1BillingMeterErrorReportTriggeredEvent": ( + "stripe.events._v1_billing_meter_error_report_triggered_event", + False, + ), + "V1BillingMeterErrorReportTriggeredEventNotification": ( + "stripe.events._v1_billing_meter_error_report_triggered_event", + False, + ), + "V1BillingMeterNoMeterFoundEvent": ( + "stripe.events._v1_billing_meter_no_meter_found_event", + False, + ), + "V1BillingMeterNoMeterFoundEventNotification": ( + "stripe.events._v1_billing_meter_no_meter_found_event", + False, + ), + "V2CoreEventDestinationPingEvent": ( + "stripe.events._v2_core_event_destination_ping_event", + False, + ), + "V2CoreEventDestinationPingEventNotification": ( + "stripe.events._v2_core_event_destination_ping_event", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() + +# The end of the section generated from our OpenAPI spec diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..c73206d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_event_classes.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_event_classes.cpython-312.pyc new file mode 100644 index 00000000..5536e0d9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_event_classes.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v1_billing_meter_error_report_triggered_event.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v1_billing_meter_error_report_triggered_event.cpython-312.pyc new file mode 100644 index 00000000..be82bd18 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v1_billing_meter_error_report_triggered_event.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v1_billing_meter_no_meter_found_event.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v1_billing_meter_no_meter_found_event.cpython-312.pyc new file mode 100644 index 00000000..de8ec8c7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v1_billing_meter_no_meter_found_event.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v2_core_event_destination_ping_event.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v2_core_event_destination_ping_event.cpython-312.pyc new file mode 100644 index 00000000..0687c867 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/events/__pycache__/_v2_core_event_destination_ping_event.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/_event_classes.py b/Backend/venv/lib/python3.12/site-packages/stripe/events/_event_classes.py new file mode 100644 index 00000000..1ee18728 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/events/_event_classes.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing import Union +from typing_extensions import TYPE_CHECKING +from stripe.v2.core._event import UnknownEventNotification +from stripe._stripe_object import StripeObject + +if TYPE_CHECKING: + from stripe.events._v1_billing_meter_error_report_triggered_event import ( + V1BillingMeterErrorReportTriggeredEventNotification, + ) + from stripe.events._v1_billing_meter_no_meter_found_event import ( + V1BillingMeterNoMeterFoundEventNotification, + ) + from stripe.events._v2_core_event_destination_ping_event import ( + V2CoreEventDestinationPingEventNotification, + ) + + +_V2_EVENT_CLASS_LOOKUP = { + "v1.billing.meter.error_report_triggered": ( + "stripe.events._v1_billing_meter_error_report_triggered_event", + "V1BillingMeterErrorReportTriggeredEvent", + ), + "v1.billing.meter.no_meter_found": ( + "stripe.events._v1_billing_meter_no_meter_found_event", + "V1BillingMeterNoMeterFoundEvent", + ), + "v2.core.event_destination.ping": ( + "stripe.events._v2_core_event_destination_ping_event", + "V2CoreEventDestinationPingEvent", + ), +} + + +def get_v2_event_class(type_: str): + if type_ not in _V2_EVENT_CLASS_LOOKUP: + return StripeObject + + import_path, class_name = _V2_EVENT_CLASS_LOOKUP[type_] + return getattr( + import_module(import_path), + class_name, + ) + + +_V2_EVENT_NOTIFICATION_CLASS_LOOKUP = { + "v1.billing.meter.error_report_triggered": ( + "stripe.events._v1_billing_meter_error_report_triggered_event", + "V1BillingMeterErrorReportTriggeredEventNotification", + ), + "v1.billing.meter.no_meter_found": ( + "stripe.events._v1_billing_meter_no_meter_found_event", + "V1BillingMeterNoMeterFoundEventNotification", + ), + "v2.core.event_destination.ping": ( + "stripe.events._v2_core_event_destination_ping_event", + "V2CoreEventDestinationPingEventNotification", + ), +} + + +def get_v2_event_notification_class(type_: str): + if type_ not in _V2_EVENT_NOTIFICATION_CLASS_LOOKUP: + return UnknownEventNotification + + import_path, class_name = _V2_EVENT_NOTIFICATION_CLASS_LOOKUP[type_] + return getattr( + import_module(import_path), + class_name, + ) + + +ALL_EVENT_NOTIFICATIONS = Union[ + "V1BillingMeterErrorReportTriggeredEventNotification", + "V1BillingMeterNoMeterFoundEventNotification", + "V2CoreEventDestinationPingEventNotification", +] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/_v1_billing_meter_error_report_triggered_event.py b/Backend/venv/lib/python3.12/site-packages/stripe/events/_v1_billing_meter_error_report_triggered_event.py new file mode 100644 index 00000000..0d8d7e01 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/events/_v1_billing_meter_error_report_triggered_event.py @@ -0,0 +1,214 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._api_mode import ApiMode +from stripe._stripe_object import StripeObject +from stripe._stripe_response import StripeResponse +from stripe._util import get_api_mode +from stripe.v2.core._event import Event, EventNotification, RelatedObject +from typing import Any, Dict, List, Optional, cast +from typing_extensions import Literal, TYPE_CHECKING, override + +if TYPE_CHECKING: + from stripe._api_requestor import _APIRequestor + from stripe._stripe_client import StripeClient + from stripe.billing._meter import Meter + + +class V1BillingMeterErrorReportTriggeredEventNotification(EventNotification): + LOOKUP_TYPE = "v1.billing.meter.error_report_triggered" + type: Literal["v1.billing.meter.error_report_triggered"] + related_object: RelatedObject + + def __init__( + self, parsed_body: Dict[str, Any], client: "StripeClient" + ) -> None: + super().__init__( + parsed_body, + client, + ) + self.related_object = RelatedObject(parsed_body["related_object"]) + + @override + def fetch_event(self) -> "V1BillingMeterErrorReportTriggeredEvent": + return cast( + "V1BillingMeterErrorReportTriggeredEvent", + super().fetch_event(), + ) + + def fetch_related_object(self) -> "Meter": + response = self._client.raw_request( + "get", + self.related_object.url, + stripe_context=self.context, + usage=["fetch_related_object"], + ) + return cast( + "Meter", + self._client.deserialize( + response, + api_mode=get_api_mode(self.related_object.url), + ), + ) + + @override + async def fetch_event_async( + self, + ) -> "V1BillingMeterErrorReportTriggeredEvent": + return cast( + "V1BillingMeterErrorReportTriggeredEvent", + await super().fetch_event_async(), + ) + + async def fetch_related_object_async(self) -> "Meter": + response = await self._client.raw_request_async( + "get", + self.related_object.url, + stripe_context=self.context, + usage=["fetch_related_object"], + ) + return cast( + "Meter", + self._client.deserialize( + response, + api_mode=get_api_mode(self.related_object.url), + ), + ) + + +class V1BillingMeterErrorReportTriggeredEvent(Event): + LOOKUP_TYPE = "v1.billing.meter.error_report_triggered" + type: Literal["v1.billing.meter.error_report_triggered"] + + class V1BillingMeterErrorReportTriggeredEventData(StripeObject): + class Reason(StripeObject): + class ErrorType(StripeObject): + class SampleError(StripeObject): + class Request(StripeObject): + identifier: str + """ + The request idempotency key. + """ + + error_message: str + """ + The error message. + """ + request: Request + """ + The request causes the error. + """ + _inner_class_types = {"request": Request} + + code: Literal[ + "archived_meter", + "meter_event_customer_not_found", + "meter_event_dimension_count_too_high", + "meter_event_invalid_value", + "meter_event_no_customer_defined", + "missing_dimension_payload_keys", + "no_meter", + "timestamp_in_future", + "timestamp_too_far_in_past", + ] + """ + Open Enum. + """ + error_count: int + """ + The number of errors of this type. + """ + sample_errors: List[SampleError] + """ + A list of sample errors of this type. + """ + _inner_class_types = {"sample_errors": SampleError} + + error_count: int + """ + The total error count within this window. + """ + error_types: List[ErrorType] + """ + The error details. + """ + _inner_class_types = {"error_types": ErrorType} + + developer_message_summary: str + """ + Extra field included in the event's `data` when fetched from /v2/events. + """ + reason: Reason + """ + This contains information about why meter error happens. + """ + validation_end: str + """ + The end of the window that is encapsulated by this summary. + """ + validation_start: str + """ + The start of the window that is encapsulated by this summary. + """ + _inner_class_types = {"reason": Reason} + + data: V1BillingMeterErrorReportTriggeredEventData + """ + Data for the v1.billing.meter.error_report_triggered event + """ + + @classmethod + def _construct_from( + cls, + *, + values: Dict[str, Any], + last_response: Optional[StripeResponse] = None, + requestor: "_APIRequestor", + api_mode: ApiMode, + ) -> "V1BillingMeterErrorReportTriggeredEvent": + evt = super()._construct_from( + values=values, + last_response=last_response, + requestor=requestor, + api_mode=api_mode, + ) + if hasattr(evt, "data"): + evt.data = V1BillingMeterErrorReportTriggeredEvent.V1BillingMeterErrorReportTriggeredEventData._construct_from( + values=evt.data, + last_response=last_response, + requestor=requestor, + api_mode=api_mode, + ) + return evt + + class RelatedObject(StripeObject): + id: str + """ + Unique identifier for the object relevant to the event. + """ + type: str + """ + Type of the object relevant to the event. + """ + url: str + """ + URL to retrieve the resource. + """ + + related_object: RelatedObject + """ + Object containing the reference to API resource relevant to the event + """ + + def fetch_related_object(self) -> "Meter": + """ + Retrieves the related object from the API. Makes an API request on every call. + """ + return cast( + "Meter", + self._requestor.request( + "get", + self.related_object.url, + base_address="api", + options={"stripe_context": self.context}, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/_v1_billing_meter_no_meter_found_event.py b/Backend/venv/lib/python3.12/site-packages/stripe/events/_v1_billing_meter_no_meter_found_event.py new file mode 100644 index 00000000..32b79f0e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/events/_v1_billing_meter_no_meter_found_event.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._api_mode import ApiMode +from stripe._stripe_object import StripeObject +from stripe._stripe_response import StripeResponse +from stripe.v2.core._event import Event, EventNotification +from typing import Any, Dict, List, Optional, cast +from typing_extensions import Literal, TYPE_CHECKING, override + +if TYPE_CHECKING: + from stripe._api_requestor import _APIRequestor + + +class V1BillingMeterNoMeterFoundEventNotification(EventNotification): + LOOKUP_TYPE = "v1.billing.meter.no_meter_found" + type: Literal["v1.billing.meter.no_meter_found"] + + @override + def fetch_event(self) -> "V1BillingMeterNoMeterFoundEvent": + return cast( + "V1BillingMeterNoMeterFoundEvent", + super().fetch_event(), + ) + + @override + async def fetch_event_async(self) -> "V1BillingMeterNoMeterFoundEvent": + return cast( + "V1BillingMeterNoMeterFoundEvent", + await super().fetch_event_async(), + ) + + +class V1BillingMeterNoMeterFoundEvent(Event): + LOOKUP_TYPE = "v1.billing.meter.no_meter_found" + type: Literal["v1.billing.meter.no_meter_found"] + + class V1BillingMeterNoMeterFoundEventData(StripeObject): + class Reason(StripeObject): + class ErrorType(StripeObject): + class SampleError(StripeObject): + class Request(StripeObject): + identifier: str + """ + The request idempotency key. + """ + + error_message: str + """ + The error message. + """ + request: Request + """ + The request causes the error. + """ + _inner_class_types = {"request": Request} + + code: Literal[ + "archived_meter", + "meter_event_customer_not_found", + "meter_event_dimension_count_too_high", + "meter_event_invalid_value", + "meter_event_no_customer_defined", + "missing_dimension_payload_keys", + "no_meter", + "timestamp_in_future", + "timestamp_too_far_in_past", + ] + """ + Open Enum. + """ + error_count: int + """ + The number of errors of this type. + """ + sample_errors: List[SampleError] + """ + A list of sample errors of this type. + """ + _inner_class_types = {"sample_errors": SampleError} + + error_count: int + """ + The total error count within this window. + """ + error_types: List[ErrorType] + """ + The error details. + """ + _inner_class_types = {"error_types": ErrorType} + + developer_message_summary: str + """ + Extra field included in the event's `data` when fetched from /v2/events. + """ + reason: Reason + """ + This contains information about why meter error happens. + """ + validation_end: str + """ + The end of the window that is encapsulated by this summary. + """ + validation_start: str + """ + The start of the window that is encapsulated by this summary. + """ + _inner_class_types = {"reason": Reason} + + data: V1BillingMeterNoMeterFoundEventData + """ + Data for the v1.billing.meter.no_meter_found event + """ + + @classmethod + def _construct_from( + cls, + *, + values: Dict[str, Any], + last_response: Optional[StripeResponse] = None, + requestor: "_APIRequestor", + api_mode: ApiMode, + ) -> "V1BillingMeterNoMeterFoundEvent": + evt = super()._construct_from( + values=values, + last_response=last_response, + requestor=requestor, + api_mode=api_mode, + ) + if hasattr(evt, "data"): + evt.data = V1BillingMeterNoMeterFoundEvent.V1BillingMeterNoMeterFoundEventData._construct_from( + values=evt.data, + last_response=last_response, + requestor=requestor, + api_mode=api_mode, + ) + return evt diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/events/_v2_core_event_destination_ping_event.py b/Backend/venv/lib/python3.12/site-packages/stripe/events/_v2_core_event_destination_ping_event.py new file mode 100644 index 00000000..222cfb42 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/events/_v2_core_event_destination_ping_event.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from stripe._util import get_api_mode +from stripe.v2.core._event import Event, EventNotification, RelatedObject +from typing import Any, Dict, cast +from typing_extensions import Literal, TYPE_CHECKING, override + +if TYPE_CHECKING: + from stripe._stripe_client import StripeClient + from stripe.v2.core._event_destination import EventDestination + + +class V2CoreEventDestinationPingEventNotification(EventNotification): + LOOKUP_TYPE = "v2.core.event_destination.ping" + type: Literal["v2.core.event_destination.ping"] + related_object: RelatedObject + + def __init__( + self, parsed_body: Dict[str, Any], client: "StripeClient" + ) -> None: + super().__init__( + parsed_body, + client, + ) + self.related_object = RelatedObject(parsed_body["related_object"]) + + @override + def fetch_event(self) -> "V2CoreEventDestinationPingEvent": + return cast( + "V2CoreEventDestinationPingEvent", + super().fetch_event(), + ) + + def fetch_related_object(self) -> "EventDestination": + response = self._client.raw_request( + "get", + self.related_object.url, + stripe_context=self.context, + usage=["fetch_related_object"], + ) + return cast( + "EventDestination", + self._client.deserialize( + response, + api_mode=get_api_mode(self.related_object.url), + ), + ) + + @override + async def fetch_event_async(self) -> "V2CoreEventDestinationPingEvent": + return cast( + "V2CoreEventDestinationPingEvent", + await super().fetch_event_async(), + ) + + async def fetch_related_object_async(self) -> "EventDestination": + response = await self._client.raw_request_async( + "get", + self.related_object.url, + stripe_context=self.context, + usage=["fetch_related_object"], + ) + return cast( + "EventDestination", + self._client.deserialize( + response, + api_mode=get_api_mode(self.related_object.url), + ), + ) + + +class V2CoreEventDestinationPingEvent(Event): + LOOKUP_TYPE = "v2.core.event_destination.ping" + type: Literal["v2.core.event_destination.ping"] + + class RelatedObject(StripeObject): + id: str + """ + Unique identifier for the object relevant to the event. + """ + type: str + """ + Type of the object relevant to the event. + """ + url: str + """ + URL to retrieve the resource. + """ + + related_object: RelatedObject + """ + Object containing the reference to API resource relevant to the event + """ + + def fetch_related_object(self) -> "EventDestination": + """ + Retrieves the related object from the API. Makes an API request on every call. + """ + return cast( + "EventDestination", + self._requestor.request( + "get", + self.related_object.url, + base_address="api", + options={"stripe_context": self.context}, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__init__.py new file mode 100644 index 00000000..2d77fae8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__init__.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.financial_connections._account import Account as Account + from stripe.financial_connections._account_owner import ( + AccountOwner as AccountOwner, + ) + from stripe.financial_connections._account_owner_service import ( + AccountOwnerService as AccountOwnerService, + ) + from stripe.financial_connections._account_ownership import ( + AccountOwnership as AccountOwnership, + ) + from stripe.financial_connections._account_service import ( + AccountService as AccountService, + ) + from stripe.financial_connections._session import Session as Session + from stripe.financial_connections._session_service import ( + SessionService as SessionService, + ) + from stripe.financial_connections._transaction import ( + Transaction as Transaction, + ) + from stripe.financial_connections._transaction_service import ( + TransactionService as TransactionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "Account": ("stripe.financial_connections._account", False), + "AccountOwner": ("stripe.financial_connections._account_owner", False), + "AccountOwnerService": ( + "stripe.financial_connections._account_owner_service", + False, + ), + "AccountOwnership": ( + "stripe.financial_connections._account_ownership", + False, + ), + "AccountService": ("stripe.financial_connections._account_service", False), + "Session": ("stripe.financial_connections._session", False), + "SessionService": ("stripe.financial_connections._session_service", False), + "Transaction": ("stripe.financial_connections._transaction", False), + "TransactionService": ( + "stripe.financial_connections._transaction_service", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..a70eefa1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account.cpython-312.pyc new file mode 100644 index 00000000..fe5f7e07 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_owner.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_owner.cpython-312.pyc new file mode 100644 index 00000000..2ce05cf6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_owner.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_owner_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_owner_service.cpython-312.pyc new file mode 100644 index 00000000..f4174389 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_owner_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_ownership.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_ownership.cpython-312.pyc new file mode 100644 index 00000000..cb5a309d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_ownership.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_service.cpython-312.pyc new file mode 100644 index 00000000..8326af34 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_account_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_session.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_session.cpython-312.pyc new file mode 100644 index 00000000..bfb4f475 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_session.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_session_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_session_service.cpython-312.pyc new file mode 100644 index 00000000..c7f7a00c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_session_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_transaction.cpython-312.pyc new file mode 100644 index 00000000..00cb61e4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..e03b30db Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/__pycache__/_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account.py new file mode 100644 index 00000000..c3cb71fb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account.py @@ -0,0 +1,870 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account as AccountResource + from stripe._customer import Customer + from stripe.financial_connections._account_owner import AccountOwner + from stripe.financial_connections._account_ownership import ( + AccountOwnership, + ) + from stripe.params.financial_connections._account_disconnect_params import ( + AccountDisconnectParams, + ) + from stripe.params.financial_connections._account_list_owners_params import ( + AccountListOwnersParams, + ) + from stripe.params.financial_connections._account_list_params import ( + AccountListParams, + ) + from stripe.params.financial_connections._account_refresh_account_params import ( + AccountRefreshAccountParams, + ) + from stripe.params.financial_connections._account_retrieve_params import ( + AccountRetrieveParams, + ) + from stripe.params.financial_connections._account_subscribe_params import ( + AccountSubscribeParams, + ) + from stripe.params.financial_connections._account_unsubscribe_params import ( + AccountUnsubscribeParams, + ) + + +class Account(ListableAPIResource["Account"]): + """ + A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access. + """ + + OBJECT_NAME: ClassVar[Literal["financial_connections.account"]] = ( + "financial_connections.account" + ) + + class AccountHolder(StripeObject): + account: Optional[ExpandableField["AccountResource"]] + """ + The ID of the Stripe account this account belongs to. Should only be present if `account_holder.type` is `account`. + """ + customer: Optional[ExpandableField["Customer"]] + """ + ID of the Stripe customer this account belongs to. Present if and only if `account_holder.type` is `customer`. + """ + type: Literal["account", "customer"] + """ + Type of account holder that this account belongs to. + """ + + class Balance(StripeObject): + class Cash(StripeObject): + available: Optional[Dict[str, int]] + """ + The funds available to the account holder. Typically this is the current balance after subtracting any outbound pending transactions and adding any inbound pending transactions. + + Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. + + Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder. + """ + + class Credit(StripeObject): + used: Optional[Dict[str, int]] + """ + The credit that has been used by the account holder. + + Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. + + Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder. + """ + + as_of: int + """ + The time that the external institution calculated this balance. Measured in seconds since the Unix epoch. + """ + cash: Optional[Cash] + credit: Optional[Credit] + current: Dict[str, int] + """ + The balances owed to (or by) the account holder, before subtracting any outbound pending transactions or adding any inbound pending transactions. + + Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. + + Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder. + """ + type: Literal["cash", "credit"] + """ + The `type` of the balance. An additional hash is included on the balance with a name matching this value. + """ + _inner_class_types = {"cash": Cash, "credit": Credit} + + class BalanceRefresh(StripeObject): + last_attempted_at: int + """ + The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch. + """ + next_refresh_available_at: Optional[int] + """ + Time at which the next balance refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch. + """ + status: Literal["failed", "pending", "succeeded"] + """ + The status of the last refresh attempt. + """ + + class OwnershipRefresh(StripeObject): + last_attempted_at: int + """ + The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch. + """ + next_refresh_available_at: Optional[int] + """ + Time at which the next ownership refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch. + """ + status: Literal["failed", "pending", "succeeded"] + """ + The status of the last refresh attempt. + """ + + class TransactionRefresh(StripeObject): + id: str + """ + Unique identifier for the object. + """ + last_attempted_at: int + """ + The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch. + """ + next_refresh_available_at: Optional[int] + """ + Time at which the next transaction refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch. + """ + status: Literal["failed", "pending", "succeeded"] + """ + The status of the last refresh attempt. + """ + + account_holder: Optional[AccountHolder] + """ + The account holder that this account belongs to. + """ + balance: Optional[Balance] + """ + The most recent information about the account's balance. + """ + balance_refresh: Optional[BalanceRefresh] + """ + The state of the most recent attempt to refresh the account balance. + """ + category: Literal["cash", "credit", "investment", "other"] + """ + The type of the account. Account category is further divided in `subcategory`. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + display_name: Optional[str] + """ + A human-readable name that has been assigned to this account, either by the account holder or by the institution. + """ + id: str + """ + Unique identifier for the object. + """ + institution_name: str + """ + The name of the institution that holds this account. + """ + last4: Optional[str] + """ + The last 4 digits of the account number. If present, this will be 4 numeric characters. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["financial_connections.account"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + ownership: Optional[ExpandableField["AccountOwnership"]] + """ + The most recent information about the account's owners. + """ + ownership_refresh: Optional[OwnershipRefresh] + """ + The state of the most recent attempt to refresh the account owners. + """ + permissions: Optional[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions granted by this account. + """ + status: Literal["active", "disconnected", "inactive"] + """ + The status of the link to the account. + """ + subcategory: Literal[ + "checking", + "credit_card", + "line_of_credit", + "mortgage", + "other", + "savings", + ] + """ + If `category` is `cash`, one of: + + - `checking` + - `savings` + - `other` + + If `category` is `credit`, one of: + + - `mortgage` + - `line_of_credit` + - `credit_card` + - `other` + + If `category` is `investment` or `other`, this will be `other`. + """ + subscriptions: Optional[List[Literal["transactions"]]] + """ + The list of data refresh subscriptions requested on this account. + """ + supported_payment_method_types: List[Literal["link", "us_bank_account"]] + """ + The [PaymentMethod type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)(s) that can be created from this account. + """ + transaction_refresh: Optional[TransactionRefresh] + """ + The state of the most recent attempt to refresh the account transactions. + """ + + @classmethod + def _cls_disconnect( + cls, account: str, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + return cast( + "Account", + cls._static_request( + "post", + "/v1/financial_connections/accounts/{account}/disconnect".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def disconnect( + account: str, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + ... + + @overload + def disconnect( + self, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + ... + + @class_method_variant("_cls_disconnect") + def disconnect( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/disconnect".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_disconnect_async( + cls, account: str, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + return cast( + "Account", + await cls._static_request_async( + "post", + "/v1/financial_connections/accounts/{account}/disconnect".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def disconnect_async( + account: str, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + ... + + @overload + async def disconnect_async( + self, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + ... + + @class_method_variant("_cls_disconnect_async") + async def disconnect_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountDisconnectParams"] + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/disconnect".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["AccountListParams"] + ) -> ListObject["Account"]: + """ + Returns a list of Financial Connections Account objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["AccountListParams"] + ) -> ListObject["Account"]: + """ + Returns a list of Financial Connections Account objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def _cls_list_owners( + cls, account: str, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + return cast( + ListObject["AccountOwner"], + cls._static_request( + "get", + "/v1/financial_connections/accounts/{account}/owners".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_owners( + account: str, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + ... + + @overload + def list_owners( + self, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + ... + + @class_method_variant("_cls_list_owners") + def list_owners( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + return cast( + ListObject["AccountOwner"], + self._request( + "get", + "/v1/financial_connections/accounts/{account}/owners".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_owners_async( + cls, account: str, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + return cast( + ListObject["AccountOwner"], + await cls._static_request_async( + "get", + "/v1/financial_connections/accounts/{account}/owners".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_owners_async( + account: str, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + ... + + @overload + async def list_owners_async( + self, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + ... + + @class_method_variant("_cls_list_owners_async") + async def list_owners_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountListOwnersParams"] + ) -> ListObject["AccountOwner"]: + """ + Lists all owners for a given Account + """ + return cast( + ListObject["AccountOwner"], + await self._request_async( + "get", + "/v1/financial_connections/accounts/{account}/owners".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_refresh_account( + cls, account: str, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + return cast( + "Account", + cls._static_request( + "post", + "/v1/financial_connections/accounts/{account}/refresh".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def refresh_account( + account: str, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + ... + + @overload + def refresh_account( + self, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + ... + + @class_method_variant("_cls_refresh_account") + def refresh_account( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/refresh".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_refresh_account_async( + cls, account: str, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + return cast( + "Account", + await cls._static_request_async( + "post", + "/v1/financial_connections/accounts/{account}/refresh".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def refresh_account_async( + account: str, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + ... + + @overload + async def refresh_account_async( + self, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + ... + + @class_method_variant("_cls_refresh_account_async") + async def refresh_account_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountRefreshAccountParams"] + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/refresh".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["AccountRetrieveParams"] + ) -> "Account": + """ + Retrieves the details of an Financial Connections Account. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["AccountRetrieveParams"] + ) -> "Account": + """ + Retrieves the details of an Financial Connections Account. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_subscribe( + cls, account: str, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + return cast( + "Account", + cls._static_request( + "post", + "/v1/financial_connections/accounts/{account}/subscribe".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def subscribe( + account: str, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + ... + + @overload + def subscribe( + self, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + ... + + @class_method_variant("_cls_subscribe") + def subscribe( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/subscribe".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_subscribe_async( + cls, account: str, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + return cast( + "Account", + await cls._static_request_async( + "post", + "/v1/financial_connections/accounts/{account}/subscribe".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def subscribe_async( + account: str, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + ... + + @overload + async def subscribe_async( + self, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + ... + + @class_method_variant("_cls_subscribe_async") + async def subscribe_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountSubscribeParams"] + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/subscribe".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_unsubscribe( + cls, account: str, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + return cast( + "Account", + cls._static_request( + "post", + "/v1/financial_connections/accounts/{account}/unsubscribe".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def unsubscribe( + account: str, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + ... + + @overload + def unsubscribe( + self, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + ... + + @class_method_variant("_cls_unsubscribe") + def unsubscribe( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/unsubscribe".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_unsubscribe_async( + cls, account: str, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + return cast( + "Account", + await cls._static_request_async( + "post", + "/v1/financial_connections/accounts/{account}/unsubscribe".format( + account=sanitize_id(account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def unsubscribe_async( + account: str, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + ... + + @overload + async def unsubscribe_async( + self, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + ... + + @class_method_variant("_cls_unsubscribe_async") + async def unsubscribe_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AccountUnsubscribeParams"] + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/unsubscribe".format( + account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + _inner_class_types = { + "account_holder": AccountHolder, + "balance": Balance, + "balance_refresh": BalanceRefresh, + "ownership_refresh": OwnershipRefresh, + "transaction_refresh": TransactionRefresh, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_owner.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_owner.py new file mode 100644 index 00000000..86e2a5c8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_owner.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal + + +class AccountOwner(StripeObject): + """ + Describes an owner of an account. + """ + + OBJECT_NAME: ClassVar[Literal["financial_connections.account_owner"]] = ( + "financial_connections.account_owner" + ) + email: Optional[str] + """ + The email address of the owner. + """ + id: str + """ + Unique identifier for the object. + """ + name: str + """ + The full name of the owner. + """ + object: Literal["financial_connections.account_owner"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + ownership: str + """ + The ownership object that this owner belongs to. + """ + phone: Optional[str] + """ + The raw phone number of the owner. + """ + raw_address: Optional[str] + """ + The raw physical address of the owner. + """ + refreshed_at: Optional[int] + """ + The timestamp of the refresh that updated this owner. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_owner_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_owner_service.py new file mode 100644 index 00000000..fa285126 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_owner_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.financial_connections._account_owner import AccountOwner + from stripe.params.financial_connections._account_owner_list_params import ( + AccountOwnerListParams, + ) + + +class AccountOwnerService(StripeService): + def list( + self, + account: str, + params: "AccountOwnerListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[AccountOwner]": + """ + Lists all owners for a given Account + """ + return cast( + "ListObject[AccountOwner]", + self._request( + "get", + "/v1/financial_connections/accounts/{account}/owners".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + account: str, + params: "AccountOwnerListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[AccountOwner]": + """ + Lists all owners for a given Account + """ + return cast( + "ListObject[AccountOwner]", + await self._request_async( + "get", + "/v1/financial_connections/accounts/{account}/owners".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_ownership.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_ownership.py new file mode 100644 index 00000000..5280daff --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_ownership.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.financial_connections._account_owner import AccountOwner + + +class AccountOwnership(StripeObject): + """ + Describes a snapshot of the owners of an account at a particular point in time. + """ + + OBJECT_NAME: ClassVar[ + Literal["financial_connections.account_ownership"] + ] = "financial_connections.account_ownership" + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + object: Literal["financial_connections.account_ownership"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + owners: ListObject["AccountOwner"] + """ + A paginated list of owners for this account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_service.py new file mode 100644 index 00000000..a036dc40 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_account_service.py @@ -0,0 +1,321 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.financial_connections._account import Account + from stripe.financial_connections._account_owner_service import ( + AccountOwnerService, + ) + from stripe.params.financial_connections._account_disconnect_params import ( + AccountDisconnectParams, + ) + from stripe.params.financial_connections._account_list_params import ( + AccountListParams, + ) + from stripe.params.financial_connections._account_refresh_params import ( + AccountRefreshParams, + ) + from stripe.params.financial_connections._account_retrieve_params import ( + AccountRetrieveParams, + ) + from stripe.params.financial_connections._account_subscribe_params import ( + AccountSubscribeParams, + ) + from stripe.params.financial_connections._account_unsubscribe_params import ( + AccountUnsubscribeParams, + ) + +_subservices = { + "owners": [ + "stripe.financial_connections._account_owner_service", + "AccountOwnerService", + ], +} + + +class AccountService(StripeService): + owners: "AccountOwnerService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["AccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Account]": + """ + Returns a list of Financial Connections Account objects. + """ + return cast( + "ListObject[Account]", + self._request( + "get", + "/v1/financial_connections/accounts", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["AccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Account]": + """ + Returns a list of Financial Connections Account objects. + """ + return cast( + "ListObject[Account]", + await self._request_async( + "get", + "/v1/financial_connections/accounts", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + account: str, + params: Optional["AccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Retrieves the details of an Financial Connections Account. + """ + return cast( + "Account", + self._request( + "get", + "/v1/financial_connections/accounts/{account}".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + account: str, + params: Optional["AccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Retrieves the details of an Financial Connections Account. + """ + return cast( + "Account", + await self._request_async( + "get", + "/v1/financial_connections/accounts/{account}".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def disconnect( + self, + account: str, + params: Optional["AccountDisconnectParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/disconnect".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def disconnect_async( + self, + account: str, + params: Optional["AccountDisconnectParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/disconnect".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def refresh( + self, + account: str, + params: "AccountRefreshParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/refresh".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def refresh_async( + self, + account: str, + params: "AccountRefreshParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Refreshes the data associated with a Financial Connections Account. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/refresh".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def subscribe( + self, + account: str, + params: "AccountSubscribeParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/subscribe".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def subscribe_async( + self, + account: str, + params: "AccountSubscribeParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Subscribes to periodic refreshes of data associated with a Financial Connections Account. When the account status is active, data is typically refreshed once a day. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/subscribe".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def unsubscribe( + self, + account: str, + params: "AccountUnsubscribeParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + return cast( + "Account", + self._request( + "post", + "/v1/financial_connections/accounts/{account}/unsubscribe".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def unsubscribe_async( + self, + account: str, + params: "AccountUnsubscribeParams", + options: Optional["RequestOptions"] = None, + ) -> "Account": + """ + Unsubscribes from periodic refreshes of data associated with a Financial Connections Account. + """ + return cast( + "Account", + await self._request_async( + "post", + "/v1/financial_connections/accounts/{account}/unsubscribe".format( + account=sanitize_id(account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_session.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_session.py new file mode 100644 index 00000000..bbd15a82 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_session.py @@ -0,0 +1,159 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._account import Account as AccountResource + from stripe._customer import Customer + from stripe.financial_connections._account import ( + Account as FinancialConnectionsAccountResource, + ) + from stripe.params.financial_connections._session_create_params import ( + SessionCreateParams, + ) + from stripe.params.financial_connections._session_retrieve_params import ( + SessionRetrieveParams, + ) + + +class Session(CreateableAPIResource["Session"]): + """ + A Financial Connections Session is the secure way to programmatically launch the client-side Stripe.js modal that lets your users link their accounts. + """ + + OBJECT_NAME: ClassVar[Literal["financial_connections.session"]] = ( + "financial_connections.session" + ) + + class AccountHolder(StripeObject): + account: Optional[ExpandableField["AccountResource"]] + """ + The ID of the Stripe account this account belongs to. Should only be present if `account_holder.type` is `account`. + """ + customer: Optional[ExpandableField["Customer"]] + """ + ID of the Stripe customer this account belongs to. Present if and only if `account_holder.type` is `customer`. + """ + type: Literal["account", "customer"] + """ + Type of account holder that this account belongs to. + """ + + class Filters(StripeObject): + account_subcategories: Optional[ + List[ + Literal[ + "checking", + "credit_card", + "line_of_credit", + "mortgage", + "savings", + ] + ] + ] + """ + Restricts the Session to subcategories of accounts that can be linked. Valid subcategories are: `checking`, `savings`, `mortgage`, `line_of_credit`, `credit_card`. + """ + countries: Optional[List[str]] + """ + List of countries from which to filter accounts. + """ + + account_holder: Optional[AccountHolder] + """ + The account holder for whom accounts are collected in this session. + """ + accounts: ListObject["FinancialConnectionsAccountResource"] + """ + The accounts that were collected as part of this Session. + """ + client_secret: str + """ + A value that will be passed to the client to launch the authentication flow. + """ + filters: Optional[Filters] + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["financial_connections.session"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + permissions: List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + """ + Permissions requested for accounts collected during this session. + """ + prefetch: Optional[List[Literal["balances", "ownership", "transactions"]]] + """ + Data features requested to be retrieved upon account creation. + """ + return_url: Optional[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + @classmethod + def create(cls, **params: Unpack["SessionCreateParams"]) -> "Session": + """ + To launch the Financial Connections authorization flow, create a Session. The session's client_secret can be used to launch the flow using Stripe.js. + """ + return cast( + "Session", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["SessionCreateParams"] + ) -> "Session": + """ + To launch the Financial Connections authorization flow, create a Session. The session's client_secret can be used to launch the flow using Stripe.js. + """ + return cast( + "Session", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["SessionRetrieveParams"] + ) -> "Session": + """ + Retrieves the details of a Financial Connections Session + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["SessionRetrieveParams"] + ) -> "Session": + """ + Retrieves the details of a Financial Connections Session + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"account_holder": AccountHolder, "filters": Filters} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_session_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_session_service.py new file mode 100644 index 00000000..ca7477e0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_session_service.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.financial_connections._session import Session + from stripe.params.financial_connections._session_create_params import ( + SessionCreateParams, + ) + from stripe.params.financial_connections._session_retrieve_params import ( + SessionRetrieveParams, + ) + + +class SessionService(StripeService): + def retrieve( + self, + session: str, + params: Optional["SessionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Retrieves the details of a Financial Connections Session + """ + return cast( + "Session", + self._request( + "get", + "/v1/financial_connections/sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + session: str, + params: Optional["SessionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + Retrieves the details of a Financial Connections Session + """ + return cast( + "Session", + await self._request_async( + "get", + "/v1/financial_connections/sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "SessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + To launch the Financial Connections authorization flow, create a Session. The session's client_secret can be used to launch the flow using Stripe.js. + """ + return cast( + "Session", + self._request( + "post", + "/v1/financial_connections/sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "SessionCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Session": + """ + To launch the Financial Connections authorization flow, create a Session. The session's client_secret can be used to launch the flow using Stripe.js. + """ + return cast( + "Session", + await self._request_async( + "post", + "/v1/financial_connections/sessions", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_transaction.py new file mode 100644 index 00000000..9a536958 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_transaction.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.financial_connections._transaction_list_params import ( + TransactionListParams, + ) + from stripe.params.financial_connections._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + + +class Transaction(ListableAPIResource["Transaction"]): + """ + A Transaction represents a real transaction that affects a Financial Connections Account balance. + """ + + OBJECT_NAME: ClassVar[Literal["financial_connections.transaction"]] = ( + "financial_connections.transaction" + ) + + class StatusTransitions(StripeObject): + posted_at: Optional[int] + """ + Time at which this transaction posted. Measured in seconds since the Unix epoch. + """ + void_at: Optional[int] + """ + Time at which this transaction was voided. Measured in seconds since the Unix epoch. + """ + + account: str + """ + The ID of the Financial Connections Account this transaction belongs to. + """ + amount: int + """ + The amount of this transaction, in cents (or local equivalent). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: str + """ + The description of this transaction. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["financial_connections.transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["pending", "posted", "void"] + """ + The status of the transaction. + """ + status_transitions: StatusTransitions + transacted_at: int + """ + Time at which the transaction was transacted. Measured in seconds since the Unix epoch. + """ + transaction_refresh: str + """ + The token of the transaction refresh that last updated or created this transaction. + """ + updated: int + """ + Time at which the object was last updated. Measured in seconds since the Unix epoch. + """ + + @classmethod + def list( + cls, **params: Unpack["TransactionListParams"] + ) -> ListObject["Transaction"]: + """ + Returns a list of Financial Connections Transaction objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TransactionListParams"] + ) -> ListObject["Transaction"]: + """ + Returns a list of Financial Connections Transaction objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves the details of a Financial Connections Transaction + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves the details of a Financial Connections Transaction + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"status_transitions": StatusTransitions} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_transaction_service.py new file mode 100644 index 00000000..bf33c3b6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/financial_connections/_transaction_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.financial_connections._transaction import Transaction + from stripe.params.financial_connections._transaction_list_params import ( + TransactionListParams, + ) + from stripe.params.financial_connections._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + + +class TransactionService(StripeService): + def list( + self, + params: "TransactionListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transaction]": + """ + Returns a list of Financial Connections Transaction objects. + """ + return cast( + "ListObject[Transaction]", + self._request( + "get", + "/v1/financial_connections/transactions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "TransactionListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transaction]": + """ + Returns a list of Financial Connections Transaction objects. + """ + return cast( + "ListObject[Transaction]", + await self._request_async( + "get", + "/v1/financial_connections/transactions", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + transaction: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves the details of a Financial Connections Transaction + """ + return cast( + "Transaction", + self._request( + "get", + "/v1/financial_connections/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + transaction: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves the details of a Financial Connections Transaction + """ + return cast( + "Transaction", + await self._request_async( + "get", + "/v1/financial_connections/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__init__.py new file mode 100644 index 00000000..8d01032a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__init__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.forwarding._request import Request as Request + from stripe.forwarding._request_service import ( + RequestService as RequestService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "Request": ("stripe.forwarding._request", False), + "RequestService": ("stripe.forwarding._request_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..d2bb5549 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/_request.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/_request.cpython-312.pyc new file mode 100644 index 00000000..b9e77485 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/_request.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/_request_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/_request_service.cpython-312.pyc new file mode 100644 index 00000000..aacc8483 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/__pycache__/_request_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/_request.py b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/_request.py new file mode 100644 index 00000000..cd1bd701 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/_request.py @@ -0,0 +1,253 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.forwarding._request_create_params import ( + RequestCreateParams, + ) + from stripe.params.forwarding._request_list_params import RequestListParams + from stripe.params.forwarding._request_retrieve_params import ( + RequestRetrieveParams, + ) + + +class Request( + CreateableAPIResource["Request"], ListableAPIResource["Request"] +): + """ + Instructs Stripe to make a request on your behalf using the destination URL. The destination URL + is activated by Stripe at the time of onboarding. Stripe verifies requests with your credentials + provided during onboarding, and injects card details from the payment_method into the request. + + Stripe redacts all sensitive fields and headers, including authentication credentials and card numbers, + before storing the request and response data in the forwarding Request object, which are subject to a + 30-day retention period. + + You can provide a Stripe idempotency key to make sure that requests with the same key result in only one + outbound request. The Stripe idempotency key provided should be unique and different from any idempotency + keys provided on the underlying third-party request. + + Forwarding Requests are synchronous requests that return a response or time out according to + Stripe's limits. + + Related guide: [Forward card details to third-party API endpoints](https://docs.stripe.com/payments/forwarding). + """ + + OBJECT_NAME: ClassVar[Literal["forwarding.request"]] = "forwarding.request" + + class RequestContext(StripeObject): + destination_duration: int + """ + The time it took in milliseconds for the destination endpoint to respond. + """ + destination_ip_address: str + """ + The IP address of the destination. + """ + + class RequestDetails(StripeObject): + class Header(StripeObject): + name: str + """ + The header name. + """ + value: str + """ + The header value. + """ + + body: str + """ + The body payload to send to the destination endpoint. + """ + headers: List[Header] + """ + The headers to include in the forwarded request. Can be omitted if no additional headers (excluding Stripe-generated ones such as the Content-Type header) should be included. + """ + http_method: Literal["POST"] + """ + The HTTP method used to call the destination endpoint. + """ + _inner_class_types = {"headers": Header} + + class ResponseDetails(StripeObject): + class Header(StripeObject): + name: str + """ + The header name. + """ + value: str + """ + The header value. + """ + + body: str + """ + The response body from the destination endpoint to Stripe. + """ + headers: List[Header] + """ + HTTP headers that the destination endpoint returned. + """ + status: int + """ + The HTTP status code that the destination endpoint returned. + """ + _inner_class_types = {"headers": Header} + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["forwarding.request"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_method: str + """ + The PaymentMethod to insert into the forwarded request. Forwarding previously consumed PaymentMethods is allowed. + """ + replacements: List[ + Literal[ + "card_cvc", + "card_expiry", + "card_number", + "cardholder_name", + "request_signature", + ] + ] + """ + The field kinds to be replaced in the forwarded request. + """ + request_context: Optional[RequestContext] + """ + Context about the request from Stripe's servers to the destination endpoint. + """ + request_details: Optional[RequestDetails] + """ + The request that was sent to the destination endpoint. We redact any sensitive fields. + """ + response_details: Optional[ResponseDetails] + """ + The response that the destination endpoint returned to us. We redact any sensitive fields. + """ + url: Optional[str] + """ + The destination URL for the forwarded request. Must be supported by the config. + """ + + @classmethod + def create(cls, **params: Unpack["RequestCreateParams"]) -> "Request": + """ + Creates a ForwardingRequest object. + """ + return cast( + "Request", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["RequestCreateParams"] + ) -> "Request": + """ + Creates a ForwardingRequest object. + """ + return cast( + "Request", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["RequestListParams"] + ) -> ListObject["Request"]: + """ + Lists all ForwardingRequest objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["RequestListParams"] + ) -> ListObject["Request"]: + """ + Lists all ForwardingRequest objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["RequestRetrieveParams"] + ) -> "Request": + """ + Retrieves a ForwardingRequest object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["RequestRetrieveParams"] + ) -> "Request": + """ + Retrieves a ForwardingRequest object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "request_context": RequestContext, + "request_details": RequestDetails, + "response_details": ResponseDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/_request_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/_request_service.py new file mode 100644 index 00000000..b52e6a3a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/forwarding/_request_service.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.forwarding._request import Request + from stripe.params.forwarding._request_create_params import ( + RequestCreateParams, + ) + from stripe.params.forwarding._request_list_params import RequestListParams + from stripe.params.forwarding._request_retrieve_params import ( + RequestRetrieveParams, + ) + + +class RequestService(StripeService): + def list( + self, + params: Optional["RequestListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Request]": + """ + Lists all ForwardingRequest objects. + """ + return cast( + "ListObject[Request]", + self._request( + "get", + "/v1/forwarding/requests", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["RequestListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Request]": + """ + Lists all ForwardingRequest objects. + """ + return cast( + "ListObject[Request]", + await self._request_async( + "get", + "/v1/forwarding/requests", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "RequestCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Request": + """ + Creates a ForwardingRequest object. + """ + return cast( + "Request", + self._request( + "post", + "/v1/forwarding/requests", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "RequestCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Request": + """ + Creates a ForwardingRequest object. + """ + return cast( + "Request", + await self._request_async( + "post", + "/v1/forwarding/requests", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["RequestRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Request": + """ + Retrieves a ForwardingRequest object. + """ + return cast( + "Request", + self._request( + "get", + "/v1/forwarding/requests/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["RequestRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Request": + """ + Retrieves a ForwardingRequest object. + """ + return cast( + "Request", + await self._request_async( + "get", + "/v1/forwarding/requests/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__init__.py new file mode 100644 index 00000000..037286c9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__init__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.identity._verification_report import ( + VerificationReport as VerificationReport, + ) + from stripe.identity._verification_report_service import ( + VerificationReportService as VerificationReportService, + ) + from stripe.identity._verification_session import ( + VerificationSession as VerificationSession, + ) + from stripe.identity._verification_session_service import ( + VerificationSessionService as VerificationSessionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "VerificationReport": ("stripe.identity._verification_report", False), + "VerificationReportService": ( + "stripe.identity._verification_report_service", + False, + ), + "VerificationSession": ("stripe.identity._verification_session", False), + "VerificationSessionService": ( + "stripe.identity._verification_session_service", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..2a366957 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_report.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_report.cpython-312.pyc new file mode 100644 index 00000000..243d2235 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_report.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_report_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_report_service.cpython-312.pyc new file mode 100644 index 00000000..07fe0fdf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_report_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_session.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_session.cpython-312.pyc new file mode 100644 index 00000000..3113b0d4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_session.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_session_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_session_service.cpython-312.pyc new file mode 100644 index 00000000..1f5385c2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/identity/__pycache__/_verification_session_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_report.py b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_report.py new file mode 100644 index 00000000..33585150 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_report.py @@ -0,0 +1,496 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.identity._verification_report_list_params import ( + VerificationReportListParams, + ) + from stripe.params.identity._verification_report_retrieve_params import ( + VerificationReportRetrieveParams, + ) + + +class VerificationReport(ListableAPIResource["VerificationReport"]): + """ + A VerificationReport is the result of an attempt to collect and verify data from a user. + The collection of verification checks performed is determined from the `type` and `options` + parameters used. You can find the result of each verification check performed in the + appropriate sub-resource: `document`, `id_number`, `selfie`. + + Each VerificationReport contains a copy of any data collected by the user as well as + reference IDs which can be used to access collected images through the [FileUpload](https://stripe.com/docs/api/files) + API. To configure and create VerificationReports, use the + [VerificationSession](https://stripe.com/docs/api/identity/verification_sessions) API. + + Related guide: [Accessing verification results](https://stripe.com/docs/identity/verification-sessions#results). + """ + + OBJECT_NAME: ClassVar[Literal["identity.verification_report"]] = ( + "identity.verification_report" + ) + + class Document(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class Dob(StripeObject): + day: Optional[int] + """ + Numerical day between 1 and 31. + """ + month: Optional[int] + """ + Numerical month between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year. + """ + + class Error(StripeObject): + code: Optional[ + Literal[ + "document_expired", + "document_type_not_supported", + "document_unverified_other", + ] + ] + """ + A short machine-readable string giving the reason for the verification failure. + """ + reason: Optional[str] + """ + A human-readable message giving the reason for the failure. These messages can be shown to your users. + """ + + class ExpirationDate(StripeObject): + day: Optional[int] + """ + Numerical day between 1 and 31. + """ + month: Optional[int] + """ + Numerical month between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year. + """ + + class IssuedDate(StripeObject): + day: Optional[int] + """ + Numerical day between 1 and 31. + """ + month: Optional[int] + """ + Numerical month between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year. + """ + + address: Optional[Address] + """ + Address as it appears in the document. + """ + dob: Optional[Dob] + """ + Date of birth as it appears in the document. + """ + error: Optional[Error] + """ + Details on the verification error. Present when status is `unverified`. + """ + expiration_date: Optional[ExpirationDate] + """ + Expiration date of the document. + """ + files: Optional[List[str]] + """ + Array of [File](https://stripe.com/docs/api/files) ids containing images for this document. + """ + first_name: Optional[str] + """ + First name as it appears in the document. + """ + issued_date: Optional[IssuedDate] + """ + Issued date of the document. + """ + issuing_country: Optional[str] + """ + Issuing country of the document. + """ + last_name: Optional[str] + """ + Last name as it appears in the document. + """ + number: Optional[str] + """ + Document ID number. + """ + sex: Optional[Literal["[redacted]", "female", "male", "unknown"]] + """ + Sex of the person in the document. + """ + status: Literal["unverified", "verified"] + """ + Status of this `document` check. + """ + type: Optional[Literal["driving_license", "id_card", "passport"]] + """ + Type of the document. + """ + unparsed_place_of_birth: Optional[str] + """ + Place of birth as it appears in the document. + """ + unparsed_sex: Optional[str] + """ + Sex as it appears in the document. + """ + _inner_class_types = { + "address": Address, + "dob": Dob, + "error": Error, + "expiration_date": ExpirationDate, + "issued_date": IssuedDate, + } + + class Email(StripeObject): + class Error(StripeObject): + code: Optional[ + Literal[ + "email_unverified_other", "email_verification_declined" + ] + ] + """ + A short machine-readable string giving the reason for the verification failure. + """ + reason: Optional[str] + """ + A human-readable message giving the reason for the failure. These messages can be shown to your users. + """ + + email: Optional[str] + """ + Email to be verified. + """ + error: Optional[Error] + """ + Details on the verification error. Present when status is `unverified`. + """ + status: Literal["unverified", "verified"] + """ + Status of this `email` check. + """ + _inner_class_types = {"error": Error} + + class IdNumber(StripeObject): + class Dob(StripeObject): + day: Optional[int] + """ + Numerical day between 1 and 31. + """ + month: Optional[int] + """ + Numerical month between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year. + """ + + class Error(StripeObject): + code: Optional[ + Literal[ + "id_number_insufficient_document_data", + "id_number_mismatch", + "id_number_unverified_other", + ] + ] + """ + A short machine-readable string giving the reason for the verification failure. + """ + reason: Optional[str] + """ + A human-readable message giving the reason for the failure. These messages can be shown to your users. + """ + + dob: Optional[Dob] + """ + Date of birth. + """ + error: Optional[Error] + """ + Details on the verification error. Present when status is `unverified`. + """ + first_name: Optional[str] + """ + First name. + """ + id_number: Optional[str] + """ + ID number. When `id_number_type` is `us_ssn`, only the last 4 digits are present. + """ + id_number_type: Optional[Literal["br_cpf", "sg_nric", "us_ssn"]] + """ + Type of ID number. + """ + last_name: Optional[str] + """ + Last name. + """ + status: Literal["unverified", "verified"] + """ + Status of this `id_number` check. + """ + _inner_class_types = {"dob": Dob, "error": Error} + + class Options(StripeObject): + class Document(StripeObject): + allowed_types: Optional[ + List[Literal["driving_license", "id_card", "passport"]] + ] + """ + Array of strings of allowed identity document types. If the provided identity document isn't one of the allowed types, the verification check will fail with a document_type_not_allowed error code. + """ + require_id_number: Optional[bool] + """ + Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document's extracted name and date of birth. + """ + require_live_capture: Optional[bool] + """ + Disable image uploads, identity document images have to be captured using the device's camera. + """ + require_matching_selfie: Optional[bool] + """ + Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user's face. [Learn more](https://stripe.com/docs/identity/selfie). + """ + + class IdNumber(StripeObject): + pass + + document: Optional[Document] + id_number: Optional[IdNumber] + _inner_class_types = {"document": Document, "id_number": IdNumber} + + class Phone(StripeObject): + class Error(StripeObject): + code: Optional[ + Literal[ + "phone_unverified_other", "phone_verification_declined" + ] + ] + """ + A short machine-readable string giving the reason for the verification failure. + """ + reason: Optional[str] + """ + A human-readable message giving the reason for the failure. These messages can be shown to your users. + """ + + error: Optional[Error] + """ + Details on the verification error. Present when status is `unverified`. + """ + phone: Optional[str] + """ + Phone to be verified. + """ + status: Literal["unverified", "verified"] + """ + Status of this `phone` check. + """ + _inner_class_types = {"error": Error} + + class Selfie(StripeObject): + class Error(StripeObject): + code: Optional[ + Literal[ + "selfie_document_missing_photo", + "selfie_face_mismatch", + "selfie_manipulated", + "selfie_unverified_other", + ] + ] + """ + A short machine-readable string giving the reason for the verification failure. + """ + reason: Optional[str] + """ + A human-readable message giving the reason for the failure. These messages can be shown to your users. + """ + + document: Optional[str] + """ + ID of the [File](https://stripe.com/docs/api/files) holding the image of the identity document used in this check. + """ + error: Optional[Error] + """ + Details on the verification error. Present when status is `unverified`. + """ + selfie: Optional[str] + """ + ID of the [File](https://stripe.com/docs/api/files) holding the image of the selfie used in this check. + """ + status: Literal["unverified", "verified"] + """ + Status of this `selfie` check. + """ + _inner_class_types = {"error": Error} + + client_reference_id: Optional[str] + """ + A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + document: Optional[Document] + """ + Result from a document check + """ + email: Optional[Email] + """ + Result from a email check + """ + id: str + """ + Unique identifier for the object. + """ + id_number: Optional[IdNumber] + """ + Result from an id_number check + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["identity.verification_report"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + options: Optional[Options] + phone: Optional[Phone] + """ + Result from a phone check + """ + selfie: Optional[Selfie] + """ + Result from a selfie check + """ + type: Literal["document", "id_number", "verification_flow"] + """ + Type of report. + """ + verification_flow: Optional[str] + """ + The configuration token of a verification flow from the dashboard. + """ + verification_session: Optional[str] + """ + ID of the VerificationSession that created this report. + """ + + @classmethod + def list( + cls, **params: Unpack["VerificationReportListParams"] + ) -> ListObject["VerificationReport"]: + """ + List all verification reports. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["VerificationReportListParams"] + ) -> ListObject["VerificationReport"]: + """ + List all verification reports. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["VerificationReportRetrieveParams"] + ) -> "VerificationReport": + """ + Retrieves an existing VerificationReport + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["VerificationReportRetrieveParams"] + ) -> "VerificationReport": + """ + Retrieves an existing VerificationReport + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "document": Document, + "email": Email, + "id_number": IdNumber, + "options": Options, + "phone": Phone, + "selfie": Selfie, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_report_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_report_service.py new file mode 100644 index 00000000..65b8b163 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_report_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.identity._verification_report import VerificationReport + from stripe.params.identity._verification_report_list_params import ( + VerificationReportListParams, + ) + from stripe.params.identity._verification_report_retrieve_params import ( + VerificationReportRetrieveParams, + ) + + +class VerificationReportService(StripeService): + def list( + self, + params: Optional["VerificationReportListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[VerificationReport]": + """ + List all verification reports. + """ + return cast( + "ListObject[VerificationReport]", + self._request( + "get", + "/v1/identity/verification_reports", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["VerificationReportListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[VerificationReport]": + """ + List all verification reports. + """ + return cast( + "ListObject[VerificationReport]", + await self._request_async( + "get", + "/v1/identity/verification_reports", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + report: str, + params: Optional["VerificationReportRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationReport": + """ + Retrieves an existing VerificationReport + """ + return cast( + "VerificationReport", + self._request( + "get", + "/v1/identity/verification_reports/{report}".format( + report=sanitize_id(report), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + report: str, + params: Optional["VerificationReportRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationReport": + """ + Retrieves an existing VerificationReport + """ + return cast( + "VerificationReport", + await self._request_async( + "get", + "/v1/identity/verification_reports/{report}".format( + report=sanitize_id(report), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_session.py b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_session.py new file mode 100644 index 00000000..7c7fe498 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_session.py @@ -0,0 +1,875 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.identity._verification_report import VerificationReport + from stripe.params.identity._verification_session_cancel_params import ( + VerificationSessionCancelParams, + ) + from stripe.params.identity._verification_session_create_params import ( + VerificationSessionCreateParams, + ) + from stripe.params.identity._verification_session_list_params import ( + VerificationSessionListParams, + ) + from stripe.params.identity._verification_session_modify_params import ( + VerificationSessionModifyParams, + ) + from stripe.params.identity._verification_session_redact_params import ( + VerificationSessionRedactParams, + ) + from stripe.params.identity._verification_session_retrieve_params import ( + VerificationSessionRetrieveParams, + ) + + +class VerificationSession( + CreateableAPIResource["VerificationSession"], + ListableAPIResource["VerificationSession"], + UpdateableAPIResource["VerificationSession"], +): + """ + A VerificationSession guides you through the process of collecting and verifying the identities + of your users. It contains details about the type of verification, such as what [verification + check](https://docs.stripe.com/docs/identity/verification-checks) to perform. Only create one VerificationSession for + each verification in your system. + + A VerificationSession transitions through [multiple + statuses](https://docs.stripe.com/docs/identity/how-sessions-work) throughout its lifetime as it progresses through + the verification flow. The VerificationSession contains the user's verified data after + verification checks are complete. + + Related guide: [The Verification Sessions API](https://stripe.com/docs/identity/verification-sessions) + """ + + OBJECT_NAME: ClassVar[Literal["identity.verification_session"]] = ( + "identity.verification_session" + ) + + class LastError(StripeObject): + code: Optional[ + Literal[ + "abandoned", + "consent_declined", + "country_not_supported", + "device_not_supported", + "document_expired", + "document_type_not_supported", + "document_unverified_other", + "email_unverified_other", + "email_verification_declined", + "id_number_insufficient_document_data", + "id_number_mismatch", + "id_number_unverified_other", + "phone_unverified_other", + "phone_verification_declined", + "selfie_document_missing_photo", + "selfie_face_mismatch", + "selfie_manipulated", + "selfie_unverified_other", + "under_supported_age", + ] + ] + """ + A short machine-readable string giving the reason for the verification or user-session failure. + """ + reason: Optional[str] + """ + A message that explains the reason for verification or user-session failure. + """ + + class Options(StripeObject): + class Document(StripeObject): + allowed_types: Optional[ + List[Literal["driving_license", "id_card", "passport"]] + ] + """ + Array of strings of allowed identity document types. If the provided identity document isn't one of the allowed types, the verification check will fail with a document_type_not_allowed error code. + """ + require_id_number: Optional[bool] + """ + Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document's extracted name and date of birth. + """ + require_live_capture: Optional[bool] + """ + Disable image uploads, identity document images have to be captured using the device's camera. + """ + require_matching_selfie: Optional[bool] + """ + Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user's face. [Learn more](https://stripe.com/docs/identity/selfie). + """ + + class Email(StripeObject): + require_verification: Optional[bool] + """ + Request one time password verification of `provided_details.email`. + """ + + class IdNumber(StripeObject): + pass + + class Matching(StripeObject): + dob: Optional[Literal["none", "similar"]] + """ + Strictness of the DOB matching policy to apply. + """ + name: Optional[Literal["none", "similar"]] + """ + Strictness of the name matching policy to apply. + """ + + class Phone(StripeObject): + require_verification: Optional[bool] + """ + Request one time password verification of `provided_details.phone`. + """ + + document: Optional[Document] + email: Optional[Email] + id_number: Optional[IdNumber] + matching: Optional[Matching] + phone: Optional[Phone] + _inner_class_types = { + "document": Document, + "email": Email, + "id_number": IdNumber, + "matching": Matching, + "phone": Phone, + } + + class ProvidedDetails(StripeObject): + email: Optional[str] + """ + Email of user being verified + """ + phone: Optional[str] + """ + Phone number of user being verified + """ + + class Redaction(StripeObject): + status: Literal["processing", "redacted"] + """ + Indicates whether this object and its related objects have been redacted or not. + """ + + class RelatedPerson(StripeObject): + account: str + """ + Token referencing the associated Account of the related Person resource. + """ + person: str + """ + Token referencing the related Person resource. + """ + + class VerifiedOutputs(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class Dob(StripeObject): + day: Optional[int] + """ + Numerical day between 1 and 31. + """ + month: Optional[int] + """ + Numerical month between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year. + """ + + address: Optional[Address] + """ + The user's verified address. + """ + dob: Optional[Dob] + """ + The user's verified date of birth. + """ + email: Optional[str] + """ + The user's verified email address + """ + first_name: Optional[str] + """ + The user's verified first name. + """ + id_number: Optional[str] + """ + The user's verified id number. + """ + id_number_type: Optional[Literal["br_cpf", "sg_nric", "us_ssn"]] + """ + The user's verified id number type. + """ + last_name: Optional[str] + """ + The user's verified last name. + """ + phone: Optional[str] + """ + The user's verified phone number + """ + sex: Optional[Literal["[redacted]", "female", "male", "unknown"]] + """ + The user's verified sex. + """ + unparsed_place_of_birth: Optional[str] + """ + The user's verified place of birth as it appears in the document. + """ + unparsed_sex: Optional[str] + """ + The user's verified sex as it appears in the document. + """ + _inner_class_types = {"address": Address, "dob": Dob} + + client_reference_id: Optional[str] + """ + A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems. + """ + client_secret: Optional[str] + """ + The short-lived client secret used by Stripe.js to [show a verification modal](https://stripe.com/docs/js/identity/modal) inside your app. This client secret expires after 24 hours and can only be used once. Don't store it, log it, embed it in a URL, or expose it to anyone other than the user. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs on [passing the client secret to the frontend](https://stripe.com/docs/identity/verification-sessions#client-secret) to learn more. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + last_error: Optional[LastError] + """ + If present, this property tells you the last error encountered when processing the verification. + """ + last_verification_report: Optional[ExpandableField["VerificationReport"]] + """ + ID of the most recent VerificationReport. [Learn more about accessing detailed verification results.](https://stripe.com/docs/identity/verification-sessions#results) + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["identity.verification_session"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + options: Optional[Options] + """ + A set of options for the session's verification checks. + """ + provided_details: Optional[ProvidedDetails] + """ + Details provided about the user being verified. These details may be shown to the user. + """ + redaction: Optional[Redaction] + """ + Redaction status of this VerificationSession. If the VerificationSession is not redacted, this field will be null. + """ + related_customer: Optional[str] + """ + Customer ID + """ + related_person: Optional[RelatedPerson] + status: Literal["canceled", "processing", "requires_input", "verified"] + """ + Status of this VerificationSession. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work). + """ + type: Literal["document", "id_number", "verification_flow"] + """ + The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. + """ + url: Optional[str] + """ + The short-lived URL that you use to redirect a user to Stripe to submit their identity information. This URL expires after 48 hours and can only be used once. Don't store it, log it, send it in emails or expose it to anyone other than the user. Refer to our docs on [verifying identity documents](https://stripe.com/docs/identity/verify-identity-documents?platform=web&type=redirect) to learn how to redirect users to Stripe. + """ + verification_flow: Optional[str] + """ + The configuration token of a verification flow from the dashboard. + """ + verified_outputs: Optional[VerifiedOutputs] + """ + The user's verified data. + """ + + @classmethod + def _cls_cancel( + cls, session: str, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + return cast( + "VerificationSession", + cls._static_request( + "post", + "/v1/identity/verification_sessions/{session}/cancel".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + session: str, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + ... + + @overload + def cancel( + self, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + return cast( + "VerificationSession", + self._request( + "post", + "/v1/identity/verification_sessions/{session}/cancel".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, session: str, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + return cast( + "VerificationSession", + await cls._static_request_async( + "post", + "/v1/identity/verification_sessions/{session}/cancel".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + session: str, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["VerificationSessionCancelParams"] + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + return cast( + "VerificationSession", + await self._request_async( + "post", + "/v1/identity/verification_sessions/{session}/cancel".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["VerificationSessionCreateParams"] + ) -> "VerificationSession": + """ + Creates a VerificationSession object. + + After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session's url. + + If your API key is in test mode, verification checks won't actually process, though everything else will occur as if in live mode. + + Related guide: [Verify your users' identity documents](https://docs.stripe.com/docs/identity/verify-identity-documents) + """ + return cast( + "VerificationSession", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["VerificationSessionCreateParams"] + ) -> "VerificationSession": + """ + Creates a VerificationSession object. + + After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session's url. + + If your API key is in test mode, verification checks won't actually process, though everything else will occur as if in live mode. + + Related guide: [Verify your users' identity documents](https://docs.stripe.com/docs/identity/verify-identity-documents) + """ + return cast( + "VerificationSession", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["VerificationSessionListParams"] + ) -> ListObject["VerificationSession"]: + """ + Returns a list of VerificationSessions + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["VerificationSessionListParams"] + ) -> ListObject["VerificationSession"]: + """ + Returns a list of VerificationSessions + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["VerificationSessionModifyParams"] + ) -> "VerificationSession": + """ + Updates a VerificationSession object. + + When the session status is requires_input, you can use this method to update the + verification check and options. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "VerificationSession", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["VerificationSessionModifyParams"] + ) -> "VerificationSession": + """ + Updates a VerificationSession object. + + When the session status is requires_input, you can use this method to update the + verification check and options. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "VerificationSession", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def _cls_redact( + cls, session: str, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + return cast( + "VerificationSession", + cls._static_request( + "post", + "/v1/identity/verification_sessions/{session}/redact".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + def redact( + session: str, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + ... + + @overload + def redact( + self, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + ... + + @class_method_variant("_cls_redact") + def redact( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + return cast( + "VerificationSession", + self._request( + "post", + "/v1/identity/verification_sessions/{session}/redact".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_redact_async( + cls, session: str, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + return cast( + "VerificationSession", + await cls._static_request_async( + "post", + "/v1/identity/verification_sessions/{session}/redact".format( + session=sanitize_id(session) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def redact_async( + session: str, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + ... + + @overload + async def redact_async( + self, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + ... + + @class_method_variant("_cls_redact_async") + async def redact_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["VerificationSessionRedactParams"] + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + return cast( + "VerificationSession", + await self._request_async( + "post", + "/v1/identity/verification_sessions/{session}/redact".format( + session=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["VerificationSessionRetrieveParams"] + ) -> "VerificationSession": + """ + Retrieves the details of a VerificationSession that was previously created. + + When the session status is requires_input, you can use this method to retrieve a valid + client_secret or url to allow re-submission. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["VerificationSessionRetrieveParams"] + ) -> "VerificationSession": + """ + Retrieves the details of a VerificationSession that was previously created. + + When the session status is requires_input, you can use this method to retrieve a valid + client_secret or url to allow re-submission. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "last_error": LastError, + "options": Options, + "provided_details": ProvidedDetails, + "redaction": Redaction, + "related_person": RelatedPerson, + "verified_outputs": VerifiedOutputs, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_session_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_session_service.py new file mode 100644 index 00000000..69aace00 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/identity/_verification_session_service.py @@ -0,0 +1,347 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.identity._verification_session import VerificationSession + from stripe.params.identity._verification_session_cancel_params import ( + VerificationSessionCancelParams, + ) + from stripe.params.identity._verification_session_create_params import ( + VerificationSessionCreateParams, + ) + from stripe.params.identity._verification_session_list_params import ( + VerificationSessionListParams, + ) + from stripe.params.identity._verification_session_redact_params import ( + VerificationSessionRedactParams, + ) + from stripe.params.identity._verification_session_retrieve_params import ( + VerificationSessionRetrieveParams, + ) + from stripe.params.identity._verification_session_update_params import ( + VerificationSessionUpdateParams, + ) + + +class VerificationSessionService(StripeService): + def list( + self, + params: Optional["VerificationSessionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[VerificationSession]": + """ + Returns a list of VerificationSessions + """ + return cast( + "ListObject[VerificationSession]", + self._request( + "get", + "/v1/identity/verification_sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["VerificationSessionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[VerificationSession]": + """ + Returns a list of VerificationSessions + """ + return cast( + "ListObject[VerificationSession]", + await self._request_async( + "get", + "/v1/identity/verification_sessions", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["VerificationSessionCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Creates a VerificationSession object. + + After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session's url. + + If your API key is in test mode, verification checks won't actually process, though everything else will occur as if in live mode. + + Related guide: [Verify your users' identity documents](https://docs.stripe.com/docs/identity/verify-identity-documents) + """ + return cast( + "VerificationSession", + self._request( + "post", + "/v1/identity/verification_sessions", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["VerificationSessionCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Creates a VerificationSession object. + + After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session's url. + + If your API key is in test mode, verification checks won't actually process, though everything else will occur as if in live mode. + + Related guide: [Verify your users' identity documents](https://docs.stripe.com/docs/identity/verify-identity-documents) + """ + return cast( + "VerificationSession", + await self._request_async( + "post", + "/v1/identity/verification_sessions", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + session: str, + params: Optional["VerificationSessionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Retrieves the details of a VerificationSession that was previously created. + + When the session status is requires_input, you can use this method to retrieve a valid + client_secret or url to allow re-submission. + """ + return cast( + "VerificationSession", + self._request( + "get", + "/v1/identity/verification_sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + session: str, + params: Optional["VerificationSessionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Retrieves the details of a VerificationSession that was previously created. + + When the session status is requires_input, you can use this method to retrieve a valid + client_secret or url to allow re-submission. + """ + return cast( + "VerificationSession", + await self._request_async( + "get", + "/v1/identity/verification_sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + session: str, + params: Optional["VerificationSessionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Updates a VerificationSession object. + + When the session status is requires_input, you can use this method to update the + verification check and options. + """ + return cast( + "VerificationSession", + self._request( + "post", + "/v1/identity/verification_sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + session: str, + params: Optional["VerificationSessionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Updates a VerificationSession object. + + When the session status is requires_input, you can use this method to update the + verification check and options. + """ + return cast( + "VerificationSession", + await self._request_async( + "post", + "/v1/identity/verification_sessions/{session}".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + session: str, + params: Optional["VerificationSessionCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + return cast( + "VerificationSession", + self._request( + "post", + "/v1/identity/verification_sessions/{session}/cancel".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + session: str, + params: Optional["VerificationSessionCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + A VerificationSession object can be canceled when it is in requires_input [status](https://docs.stripe.com/docs/identity/how-sessions-work). + + Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#cancel). + """ + return cast( + "VerificationSession", + await self._request_async( + "post", + "/v1/identity/verification_sessions/{session}/cancel".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def redact( + self, + session: str, + params: Optional["VerificationSessionRedactParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + return cast( + "VerificationSession", + self._request( + "post", + "/v1/identity/verification_sessions/{session}/redact".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def redact_async( + self, + session: str, + params: Optional["VerificationSessionRedactParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "VerificationSession": + """ + Redact a VerificationSession to remove all collected information from Stripe. This will redact + the VerificationSession and all objects related to it, including VerificationReports, Events, + request logs, etc. + + A VerificationSession object can be redacted when it is in requires_input or verified + [status](https://docs.stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action + state will automatically cancel it. + + The redaction process may take up to four days. When the redaction process is in progress, the + VerificationSession's redaction.status field will be set to processing; when the process is + finished, it will change to redacted and an identity.verification_session.redacted event + will be emitted. + + Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + fields that contain personal data will be replaced by the string [redacted] or a similar + placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + used for any purpose. + + [Learn more](https://docs.stripe.com/docs/identity/verification-sessions#redact). + """ + return cast( + "VerificationSession", + await self._request_async( + "post", + "/v1/identity/verification_sessions/{session}/redact".format( + session=sanitize_id(session), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__init__.py new file mode 100644 index 00000000..1755c40f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__init__.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.issuing._authorization import Authorization as Authorization + from stripe.issuing._authorization_service import ( + AuthorizationService as AuthorizationService, + ) + from stripe.issuing._card import Card as Card + from stripe.issuing._card_service import CardService as CardService + from stripe.issuing._cardholder import Cardholder as Cardholder + from stripe.issuing._cardholder_service import ( + CardholderService as CardholderService, + ) + from stripe.issuing._dispute import Dispute as Dispute + from stripe.issuing._dispute_service import ( + DisputeService as DisputeService, + ) + from stripe.issuing._personalization_design import ( + PersonalizationDesign as PersonalizationDesign, + ) + from stripe.issuing._personalization_design_service import ( + PersonalizationDesignService as PersonalizationDesignService, + ) + from stripe.issuing._physical_bundle import ( + PhysicalBundle as PhysicalBundle, + ) + from stripe.issuing._physical_bundle_service import ( + PhysicalBundleService as PhysicalBundleService, + ) + from stripe.issuing._token import Token as Token + from stripe.issuing._token_service import TokenService as TokenService + from stripe.issuing._transaction import Transaction as Transaction + from stripe.issuing._transaction_service import ( + TransactionService as TransactionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "Authorization": ("stripe.issuing._authorization", False), + "AuthorizationService": ("stripe.issuing._authorization_service", False), + "Card": ("stripe.issuing._card", False), + "CardService": ("stripe.issuing._card_service", False), + "Cardholder": ("stripe.issuing._cardholder", False), + "CardholderService": ("stripe.issuing._cardholder_service", False), + "Dispute": ("stripe.issuing._dispute", False), + "DisputeService": ("stripe.issuing._dispute_service", False), + "PersonalizationDesign": ("stripe.issuing._personalization_design", False), + "PersonalizationDesignService": ( + "stripe.issuing._personalization_design_service", + False, + ), + "PhysicalBundle": ("stripe.issuing._physical_bundle", False), + "PhysicalBundleService": ( + "stripe.issuing._physical_bundle_service", + False, + ), + "Token": ("stripe.issuing._token", False), + "TokenService": ("stripe.issuing._token_service", False), + "Transaction": ("stripe.issuing._transaction", False), + "TransactionService": ("stripe.issuing._transaction_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..4666eb8d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_authorization.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_authorization.cpython-312.pyc new file mode 100644 index 00000000..9b4d1d1c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_authorization.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_authorization_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_authorization_service.cpython-312.pyc new file mode 100644 index 00000000..1d4b2e75 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_authorization_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_card.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_card.cpython-312.pyc new file mode 100644 index 00000000..51caf360 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_card.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_card_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_card_service.cpython-312.pyc new file mode 100644 index 00000000..57ff73e8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_card_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_cardholder.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_cardholder.cpython-312.pyc new file mode 100644 index 00000000..b000b0cd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_cardholder.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_cardholder_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_cardholder_service.cpython-312.pyc new file mode 100644 index 00000000..977c6892 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_cardholder_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_dispute.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_dispute.cpython-312.pyc new file mode 100644 index 00000000..afbbdcbe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_dispute.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_dispute_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_dispute_service.cpython-312.pyc new file mode 100644 index 00000000..5f795129 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_dispute_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_personalization_design.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_personalization_design.cpython-312.pyc new file mode 100644 index 00000000..a61a4e46 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_personalization_design.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_personalization_design_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_personalization_design_service.cpython-312.pyc new file mode 100644 index 00000000..ef7b752d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_personalization_design_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_physical_bundle.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_physical_bundle.cpython-312.pyc new file mode 100644 index 00000000..141b9284 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_physical_bundle.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_physical_bundle_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_physical_bundle_service.cpython-312.pyc new file mode 100644 index 00000000..c027e18c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_physical_bundle_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_token.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_token.cpython-312.pyc new file mode 100644 index 00000000..cccd1362 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_token.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_token_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_token_service.cpython-312.pyc new file mode 100644 index 00000000..bf486547 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_token_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_transaction.cpython-312.pyc new file mode 100644 index 00000000..526d88c3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..0f709f8a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/__pycache__/_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_authorization.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_authorization.py new file mode 100644 index 00000000..60e775d0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_authorization.py @@ -0,0 +1,1676 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe.issuing._card import Card + from stripe.issuing._cardholder import Cardholder + from stripe.issuing._token import Token + from stripe.issuing._transaction import Transaction + from stripe.params.issuing._authorization_approve_params import ( + AuthorizationApproveParams, + ) + from stripe.params.issuing._authorization_capture_params import ( + AuthorizationCaptureParams, + ) + from stripe.params.issuing._authorization_create_params import ( + AuthorizationCreateParams, + ) + from stripe.params.issuing._authorization_decline_params import ( + AuthorizationDeclineParams, + ) + from stripe.params.issuing._authorization_expire_params import ( + AuthorizationExpireParams, + ) + from stripe.params.issuing._authorization_finalize_amount_params import ( + AuthorizationFinalizeAmountParams, + ) + from stripe.params.issuing._authorization_increment_params import ( + AuthorizationIncrementParams, + ) + from stripe.params.issuing._authorization_list_params import ( + AuthorizationListParams, + ) + from stripe.params.issuing._authorization_modify_params import ( + AuthorizationModifyParams, + ) + from stripe.params.issuing._authorization_respond_params import ( + AuthorizationRespondParams, + ) + from stripe.params.issuing._authorization_retrieve_params import ( + AuthorizationRetrieveParams, + ) + from stripe.params.issuing._authorization_reverse_params import ( + AuthorizationReverseParams, + ) + + +class Authorization( + ListableAPIResource["Authorization"], + UpdateableAPIResource["Authorization"], +): + """ + When an [issued card](https://stripe.com/docs/issuing) is used to make a purchase, an Issuing `Authorization` + object is created. [Authorizations](https://stripe.com/docs/issuing/purchases/authorizations) must be approved for the + purchase to be completed successfully. + + Related guide: [Issued card authorizations](https://stripe.com/docs/issuing/purchases/authorizations) + """ + + OBJECT_NAME: ClassVar[Literal["issuing.authorization"]] = ( + "issuing.authorization" + ) + + class AmountDetails(StripeObject): + atm_fee: Optional[int] + """ + The fee charged by the ATM for the cash withdrawal. + """ + cashback_amount: Optional[int] + """ + The amount of cash requested by the cardholder. + """ + + class Fleet(StripeObject): + class CardholderPromptData(StripeObject): + alphanumeric_id: Optional[str] + """ + [Deprecated] An alphanumeric ID, though typical point of sales only support numeric entry. The card program can be configured to prompt for a vehicle ID, driver ID, or generic ID. + """ + driver_id: Optional[str] + """ + Driver ID. + """ + odometer: Optional[int] + """ + Odometer reading. + """ + unspecified_id: Optional[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: Optional[str] + """ + User ID. + """ + vehicle_number: Optional[str] + """ + Vehicle number. + """ + + class ReportedBreakdown(StripeObject): + class Fuel(StripeObject): + gross_amount_decimal: Optional[str] + """ + Gross fuel amount that should equal Fuel Quantity multiplied by Fuel Unit Cost, inclusive of taxes. + """ + + class NonFuel(StripeObject): + gross_amount_decimal: Optional[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + class Tax(StripeObject): + local_amount_decimal: Optional[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. `null` if not reported by merchant or not subject to tax. + """ + national_amount_decimal: Optional[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. `null` if not reported by merchant or not subject to tax. + """ + + fuel: Optional[Fuel] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: Optional[NonFuel] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: Optional[Tax] + """ + Information about tax included in this transaction. + """ + _inner_class_types = { + "fuel": Fuel, + "non_fuel": NonFuel, + "tax": Tax, + } + + cardholder_prompt_data: Optional[CardholderPromptData] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: Optional[ + Literal[ + "fuel_and_non_fuel_purchase", + "fuel_purchase", + "non_fuel_purchase", + ] + ] + """ + The type of purchase. + """ + reported_breakdown: Optional[ReportedBreakdown] + """ + More information about the total amount. Typically this information is received from the merchant after the authorization has been approved and the fuel dispensed. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: Optional[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. + """ + _inner_class_types = { + "cardholder_prompt_data": CardholderPromptData, + "reported_breakdown": ReportedBreakdown, + } + + class FraudChallenge(StripeObject): + channel: Literal["sms"] + """ + The method by which the fraud challenge was delivered to the cardholder. + """ + status: Literal[ + "expired", "pending", "rejected", "undeliverable", "verified" + ] + """ + The status of the fraud challenge. + """ + undeliverable_reason: Optional[ + Literal["no_phone_number", "unsupported_phone_number"] + ] + """ + If the challenge is not deliverable, the reason why. + """ + + class Fuel(StripeObject): + industry_product_code: Optional[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: Optional[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: Optional[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. + """ + unit: Optional[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. + """ + unit_cost_decimal: Optional[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + class MerchantData(StripeObject): + category: str + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + category_code: str + """ + The merchant category code for the seller's business + """ + city: Optional[str] + """ + City where the seller is located + """ + country: Optional[str] + """ + Country where the seller is located + """ + name: Optional[str] + """ + Name of the seller + """ + network_id: str + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: Optional[str] + """ + Postal code where the seller is located + """ + state: Optional[str] + """ + State where the seller is located + """ + tax_id: Optional[str] + """ + The seller's tax identification number. Currently populated for French merchants only. + """ + terminal_id: Optional[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: Optional[str] + """ + URL provided by the merchant on a 3DS request + """ + + class NetworkData(StripeObject): + acquiring_institution_id: Optional[str] + """ + Identifier assigned to the acquirer by the card network. Sometimes this value is not provided by the network; in this case, the value will be `null`. + """ + system_trace_audit_number: Optional[str] + """ + The System Trace Audit Number (STAN) is a 6-digit identifier assigned by the acquirer. Prefer `network_data.transaction_id` if present, unless you have special requirements. + """ + transaction_id: Optional[str] + """ + Unique identifier for the authorization assigned by the card network used to match subsequent messages, disputes, and transactions. + """ + + class PendingRequest(StripeObject): + class AmountDetails(StripeObject): + atm_fee: Optional[int] + """ + The fee charged by the ATM for the cash withdrawal. + """ + cashback_amount: Optional[int] + """ + The amount of cash requested by the cardholder. + """ + + amount: int + """ + The additional amount Stripe will hold if the authorization is approved, in the card's [currency](https://stripe.com/docs/api#issuing_authorization_object-pending-request-currency) and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + amount_details: Optional[AmountDetails] + """ + Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + is_amount_controllable: bool + """ + If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization. + """ + merchant_amount: int + """ + The amount the merchant is requesting to be authorized in the `merchant_currency`. The amount is in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + merchant_currency: str + """ + The local currency the merchant is requesting to authorize. + """ + network_risk_score: Optional[int] + """ + The card network's estimate of the likelihood that an authorization is fraudulent. Takes on values between 1 and 99. + """ + _inner_class_types = {"amount_details": AmountDetails} + + class RequestHistory(StripeObject): + class AmountDetails(StripeObject): + atm_fee: Optional[int] + """ + The fee charged by the ATM for the cash withdrawal. + """ + cashback_amount: Optional[int] + """ + The amount of cash requested by the cardholder. + """ + + amount: int + """ + The `pending_request.amount` at the time of the request, presented in your card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Stripe held this amount from your account to fund the authorization if the request was approved. + """ + amount_details: Optional[AmountDetails] + """ + Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + approved: bool + """ + Whether this request was approved. + """ + authorization_code: Optional[str] + """ + A code created by Stripe which is shared with the merchant to validate the authorization. This field will be populated if the authorization message was approved. The code typically starts with the letter "S", followed by a six-digit number. For example, "S498162". Please note that the code is not guaranteed to be unique across authorizations. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + merchant_amount: int + """ + The `pending_request.merchant_amount` at the time of the request, presented in the `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + merchant_currency: str + """ + The currency that was collected by the merchant and presented to the cardholder for the authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + network_risk_score: Optional[int] + """ + The card network's estimate of the likelihood that an authorization is fraudulent. Takes on values between 1 and 99. + """ + reason: Literal[ + "account_disabled", + "card_active", + "card_canceled", + "card_expired", + "card_inactive", + "cardholder_blocked", + "cardholder_inactive", + "cardholder_verification_required", + "insecure_authorization_method", + "insufficient_funds", + "network_fallback", + "not_allowed", + "pin_blocked", + "spending_controls", + "suspected_fraud", + "verification_failed", + "webhook_approved", + "webhook_declined", + "webhook_error", + "webhook_timeout", + ] + """ + When an authorization is approved or declined by you or by Stripe, this field provides additional detail on the reason for the outcome. + """ + reason_message: Optional[str] + """ + If the `request_history.reason` is `webhook_error` because the direct webhook response is invalid (for example, parsing errors or missing parameters), we surface a more detailed error message via this field. + """ + requested_at: Optional[int] + """ + Time when the card network received an authorization request from the acquirer in UTC. Referred to by networks as transmission time. + """ + _inner_class_types = {"amount_details": AmountDetails} + + class Treasury(StripeObject): + received_credits: List[str] + """ + The array of [ReceivedCredits](https://stripe.com/docs/api/treasury/received_credits) associated with this authorization + """ + received_debits: List[str] + """ + The array of [ReceivedDebits](https://stripe.com/docs/api/treasury/received_debits) associated with this authorization + """ + transaction: Optional[str] + """ + The Treasury [Transaction](https://stripe.com/docs/api/treasury/transactions) associated with this authorization + """ + + class VerificationData(StripeObject): + class AuthenticationExemption(StripeObject): + claimed_by: Literal["acquirer", "issuer"] + """ + The entity that requested the exemption, either the acquiring merchant or the Issuing user. + """ + type: Literal[ + "low_value_transaction", "transaction_risk_analysis", "unknown" + ] + """ + The specific exemption claimed for this authorization. + """ + + class ThreeDSecure(StripeObject): + result: Literal[ + "attempt_acknowledged", "authenticated", "failed", "required" + ] + """ + The outcome of the 3D Secure authentication request. + """ + + address_line1_check: Literal["match", "mismatch", "not_provided"] + """ + Whether the cardholder provided an address first line and if it matched the cardholder's `billing.address.line1`. + """ + address_postal_code_check: Literal["match", "mismatch", "not_provided"] + """ + Whether the cardholder provided a postal code and if it matched the cardholder's `billing.address.postal_code`. + """ + authentication_exemption: Optional[AuthenticationExemption] + """ + The exemption applied to this authorization. + """ + cvc_check: Literal["match", "mismatch", "not_provided"] + """ + Whether the cardholder provided a CVC and if it matched Stripe's record. + """ + expiry_check: Literal["match", "mismatch", "not_provided"] + """ + Whether the cardholder provided an expiry date and if it matched Stripe's record. + """ + postal_code: Optional[str] + """ + The postal code submitted as part of the authorization used for postal code verification. + """ + three_d_secure: Optional[ThreeDSecure] + """ + 3D Secure details. + """ + _inner_class_types = { + "authentication_exemption": AuthenticationExemption, + "three_d_secure": ThreeDSecure, + } + + amount: int + """ + The total amount that was authorized or rejected. This amount is in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). `amount` should be the same as `merchant_amount`, unless `currency` and `merchant_currency` are different. + """ + amount_details: Optional[AmountDetails] + """ + Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + approved: bool + """ + Whether the authorization has been approved. + """ + authorization_method: Literal[ + "chip", "contactless", "keyed_in", "online", "swipe" + ] + """ + How the card details were provided. + """ + balance_transactions: List["BalanceTransaction"] + """ + List of balance transactions associated with this authorization. + """ + card: "Card" + """ + You can [create physical or virtual cards](https://stripe.com/docs/issuing) that are issued to cardholders. + """ + cardholder: Optional[ExpandableField["Cardholder"]] + """ + The cardholder to whom this authorization belongs. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + The currency of the cardholder. This currency can be different from the currency presented at authorization and the `merchant_currency` field on this authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + fleet: Optional[Fleet] + """ + Fleet-specific information for authorizations using Fleet cards. + """ + fraud_challenges: Optional[List[FraudChallenge]] + """ + Fraud challenges sent to the cardholder, if this authorization was declined for fraud risk reasons. + """ + fuel: Optional[Fuel] + """ + Information about fuel that was purchased with this transaction. Typically this information is received from the merchant after the authorization has been approved and the fuel dispensed. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + merchant_amount: int + """ + The total amount that was authorized or rejected. This amount is in the `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). `merchant_amount` should be the same as `amount`, unless `merchant_currency` and `currency` are different. + """ + merchant_currency: str + """ + The local currency that was presented to the cardholder for the authorization. This currency can be different from the cardholder currency and the `currency` field on this authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + merchant_data: MerchantData + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + network_data: Optional[NetworkData] + """ + Details about the authorization, such as identifiers, set by the card network. + """ + object: Literal["issuing.authorization"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + pending_request: Optional[PendingRequest] + """ + The pending authorization request. This field will only be non-null during an `issuing_authorization.request` webhook. + """ + request_history: List[RequestHistory] + """ + History of every time a `pending_request` authorization was approved/declined, either by you directly or by Stripe (e.g. based on your spending_controls). If the merchant changes the authorization by performing an incremental authorization, you can look at this field to see the previous requests for the authorization. This field can be helpful in determining why a given authorization was approved/declined. + """ + status: Literal["closed", "expired", "pending", "reversed"] + """ + The current status of the authorization in its lifecycle. + """ + token: Optional[ExpandableField["Token"]] + """ + [Token](https://stripe.com/docs/api/issuing/tokens/object) object used for this authorization. If a network token was not used for this authorization, this field will be null. + """ + transactions: List["Transaction"] + """ + List of [transactions](https://stripe.com/docs/api/issuing/transactions) associated with this authorization. + """ + treasury: Optional[Treasury] + """ + [Treasury](https://stripe.com/docs/api/treasury) details related to this authorization if it was created on a [FinancialAccount](https://stripe.com/docs/api/treasury/financial_accounts). + """ + verification_data: VerificationData + verified_by_fraud_challenge: Optional[bool] + """ + Whether the authorization bypassed fraud risk checks because the cardholder has previously completed a fraud challenge on a similar high-risk authorization from the same merchant. + """ + wallet: Optional[str] + """ + The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized. + """ + + @classmethod + def _cls_approve( + cls, authorization: str, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/issuing/authorizations/{authorization}/approve".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def approve( + authorization: str, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @overload + def approve( + self, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @class_method_variant("_cls_approve") + def approve( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/issuing/authorizations/{authorization}/approve".format( + authorization=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_approve_async( + cls, authorization: str, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/issuing/authorizations/{authorization}/approve".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def approve_async( + authorization: str, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @overload + async def approve_async( + self, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @class_method_variant("_cls_approve_async") + async def approve_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationApproveParams"] + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/issuing/authorizations/{authorization}/approve".format( + authorization=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_decline( + cls, authorization: str, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/issuing/authorizations/{authorization}/decline".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def decline( + authorization: str, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @overload + def decline( + self, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @class_method_variant("_cls_decline") + def decline( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/issuing/authorizations/{authorization}/decline".format( + authorization=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_decline_async( + cls, authorization: str, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/issuing/authorizations/{authorization}/decline".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def decline_async( + authorization: str, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @overload + async def decline_async( + self, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + ... + + @class_method_variant("_cls_decline_async") + async def decline_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationDeclineParams"] + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/issuing/authorizations/{authorization}/decline".format( + authorization=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["AuthorizationListParams"] + ) -> ListObject["Authorization"]: + """ + Returns a list of Issuing Authorization objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["AuthorizationListParams"] + ) -> ListObject["Authorization"]: + """ + Returns a list of Issuing Authorization objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["AuthorizationModifyParams"] + ) -> "Authorization": + """ + Updates the specified Issuing Authorization object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Authorization", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["AuthorizationModifyParams"] + ) -> "Authorization": + """ + Updates the specified Issuing Authorization object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Authorization", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["AuthorizationRetrieveParams"] + ) -> "Authorization": + """ + Retrieves an Issuing Authorization object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["AuthorizationRetrieveParams"] + ) -> "Authorization": + """ + Retrieves an Issuing Authorization object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["Authorization"]): + _resource_cls: Type["Authorization"] + + @classmethod + def _cls_capture( + cls, + authorization: str, + **params: Unpack["AuthorizationCaptureParams"], + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/capture".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def capture( + authorization: str, **params: Unpack["AuthorizationCaptureParams"] + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + ... + + @overload + def capture( + self, **params: Unpack["AuthorizationCaptureParams"] + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + ... + + @class_method_variant("_cls_capture") + def capture( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationCaptureParams"] + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + return cast( + "Authorization", + self.resource._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/capture".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_capture_async( + cls, + authorization: str, + **params: Unpack["AuthorizationCaptureParams"], + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/capture".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def capture_async( + authorization: str, **params: Unpack["AuthorizationCaptureParams"] + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + ... + + @overload + async def capture_async( + self, **params: Unpack["AuthorizationCaptureParams"] + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + ... + + @class_method_variant("_cls_capture_async") + async def capture_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationCaptureParams"] + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + return cast( + "Authorization", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/capture".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["AuthorizationCreateParams"] + ) -> "Authorization": + """ + Create a test-mode authorization. + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/test_helpers/issuing/authorizations", + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["AuthorizationCreateParams"] + ) -> "Authorization": + """ + Create a test-mode authorization. + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/authorizations", + params=params, + ), + ) + + @classmethod + def _cls_expire( + cls, + authorization: str, + **params: Unpack["AuthorizationExpireParams"], + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/expire".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def expire( + authorization: str, **params: Unpack["AuthorizationExpireParams"] + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + ... + + @overload + def expire( + self, **params: Unpack["AuthorizationExpireParams"] + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + ... + + @class_method_variant("_cls_expire") + def expire( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationExpireParams"] + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + return cast( + "Authorization", + self.resource._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/expire".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_expire_async( + cls, + authorization: str, + **params: Unpack["AuthorizationExpireParams"], + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/expire".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def expire_async( + authorization: str, **params: Unpack["AuthorizationExpireParams"] + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + ... + + @overload + async def expire_async( + self, **params: Unpack["AuthorizationExpireParams"] + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + ... + + @class_method_variant("_cls_expire_async") + async def expire_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationExpireParams"] + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + return cast( + "Authorization", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/expire".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_finalize_amount( + cls, + authorization: str, + **params: Unpack["AuthorizationFinalizeAmountParams"], + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def finalize_amount( + authorization: str, + **params: Unpack["AuthorizationFinalizeAmountParams"], + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + ... + + @overload + def finalize_amount( + self, **params: Unpack["AuthorizationFinalizeAmountParams"] + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + ... + + @class_method_variant("_cls_finalize_amount") + def finalize_amount( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationFinalizeAmountParams"] + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + return cast( + "Authorization", + self.resource._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_finalize_amount_async( + cls, + authorization: str, + **params: Unpack["AuthorizationFinalizeAmountParams"], + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def finalize_amount_async( + authorization: str, + **params: Unpack["AuthorizationFinalizeAmountParams"], + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + ... + + @overload + async def finalize_amount_async( + self, **params: Unpack["AuthorizationFinalizeAmountParams"] + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + ... + + @class_method_variant("_cls_finalize_amount_async") + async def finalize_amount_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationFinalizeAmountParams"] + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + return cast( + "Authorization", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_increment( + cls, + authorization: str, + **params: Unpack["AuthorizationIncrementParams"], + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/increment".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def increment( + authorization: str, + **params: Unpack["AuthorizationIncrementParams"], + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + ... + + @overload + def increment( + self, **params: Unpack["AuthorizationIncrementParams"] + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + ... + + @class_method_variant("_cls_increment") + def increment( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationIncrementParams"] + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + return cast( + "Authorization", + self.resource._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/increment".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_increment_async( + cls, + authorization: str, + **params: Unpack["AuthorizationIncrementParams"], + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/increment".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def increment_async( + authorization: str, + **params: Unpack["AuthorizationIncrementParams"], + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + ... + + @overload + async def increment_async( + self, **params: Unpack["AuthorizationIncrementParams"] + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + ... + + @class_method_variant("_cls_increment_async") + async def increment_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationIncrementParams"] + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + return cast( + "Authorization", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/increment".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_respond( + cls, + authorization: str, + **params: Unpack["AuthorizationRespondParams"], + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def respond( + authorization: str, **params: Unpack["AuthorizationRespondParams"] + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + ... + + @overload + def respond( + self, **params: Unpack["AuthorizationRespondParams"] + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + ... + + @class_method_variant("_cls_respond") + def respond( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationRespondParams"] + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + return cast( + "Authorization", + self.resource._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_respond_async( + cls, + authorization: str, + **params: Unpack["AuthorizationRespondParams"], + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def respond_async( + authorization: str, **params: Unpack["AuthorizationRespondParams"] + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + ... + + @overload + async def respond_async( + self, **params: Unpack["AuthorizationRespondParams"] + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + ... + + @class_method_variant("_cls_respond_async") + async def respond_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationRespondParams"] + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + return cast( + "Authorization", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_reverse( + cls, + authorization: str, + **params: Unpack["AuthorizationReverseParams"], + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + return cast( + "Authorization", + cls._static_request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/reverse".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + def reverse( + authorization: str, **params: Unpack["AuthorizationReverseParams"] + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + ... + + @overload + def reverse( + self, **params: Unpack["AuthorizationReverseParams"] + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + ... + + @class_method_variant("_cls_reverse") + def reverse( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationReverseParams"] + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + return cast( + "Authorization", + self.resource._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/reverse".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_reverse_async( + cls, + authorization: str, + **params: Unpack["AuthorizationReverseParams"], + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + return cast( + "Authorization", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/reverse".format( + authorization=sanitize_id(authorization) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def reverse_async( + authorization: str, **params: Unpack["AuthorizationReverseParams"] + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + ... + + @overload + async def reverse_async( + self, **params: Unpack["AuthorizationReverseParams"] + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + ... + + @class_method_variant("_cls_reverse_async") + async def reverse_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["AuthorizationReverseParams"] + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + return cast( + "Authorization", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/reverse".format( + authorization=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "amount_details": AmountDetails, + "fleet": Fleet, + "fraud_challenges": FraudChallenge, + "fuel": Fuel, + "merchant_data": MerchantData, + "network_data": NetworkData, + "pending_request": PendingRequest, + "request_history": RequestHistory, + "treasury": Treasury, + "verification_data": VerificationData, + } + + +Authorization.TestHelpers._resource_cls = Authorization diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_authorization_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_authorization_service.py new file mode 100644 index 00000000..0e2c82d5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_authorization_service.py @@ -0,0 +1,246 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._authorization import Authorization + from stripe.params.issuing._authorization_approve_params import ( + AuthorizationApproveParams, + ) + from stripe.params.issuing._authorization_decline_params import ( + AuthorizationDeclineParams, + ) + from stripe.params.issuing._authorization_list_params import ( + AuthorizationListParams, + ) + from stripe.params.issuing._authorization_retrieve_params import ( + AuthorizationRetrieveParams, + ) + from stripe.params.issuing._authorization_update_params import ( + AuthorizationUpdateParams, + ) + + +class AuthorizationService(StripeService): + def list( + self, + params: Optional["AuthorizationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Authorization]": + """ + Returns a list of Issuing Authorization objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Authorization]", + self._request( + "get", + "/v1/issuing/authorizations", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["AuthorizationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Authorization]": + """ + Returns a list of Issuing Authorization objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Authorization]", + await self._request_async( + "get", + "/v1/issuing/authorizations", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + authorization: str, + params: Optional["AuthorizationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Retrieves an Issuing Authorization object. + """ + return cast( + "Authorization", + self._request( + "get", + "/v1/issuing/authorizations/{authorization}".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + authorization: str, + params: Optional["AuthorizationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Retrieves an Issuing Authorization object. + """ + return cast( + "Authorization", + await self._request_async( + "get", + "/v1/issuing/authorizations/{authorization}".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + authorization: str, + params: Optional["AuthorizationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Updates the specified Issuing Authorization object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/issuing/authorizations/{authorization}".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + authorization: str, + params: Optional["AuthorizationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Updates the specified Issuing Authorization object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/issuing/authorizations/{authorization}".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def approve( + self, + authorization: str, + params: Optional["AuthorizationApproveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/issuing/authorizations/{authorization}/approve".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def approve_async( + self, + authorization: str, + params: Optional["AuthorizationApproveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/issuing/authorizations/{authorization}/approve".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def decline( + self, + authorization: str, + params: Optional["AuthorizationDeclineParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/issuing/authorizations/{authorization}/decline".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def decline_async( + self, + authorization: str, + params: Optional["AuthorizationDeclineParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow. + This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/issuing/authorizations/{authorization}/decline".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_card.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_card.py new file mode 100644 index 00000000..ebce1fe2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_card.py @@ -0,0 +1,1967 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.issuing._cardholder import Cardholder + from stripe.issuing._personalization_design import PersonalizationDesign + from stripe.params.issuing._card_create_params import CardCreateParams + from stripe.params.issuing._card_deliver_card_params import ( + CardDeliverCardParams, + ) + from stripe.params.issuing._card_fail_card_params import CardFailCardParams + from stripe.params.issuing._card_list_params import CardListParams + from stripe.params.issuing._card_modify_params import CardModifyParams + from stripe.params.issuing._card_retrieve_params import CardRetrieveParams + from stripe.params.issuing._card_return_card_params import ( + CardReturnCardParams, + ) + from stripe.params.issuing._card_ship_card_params import CardShipCardParams + from stripe.params.issuing._card_submit_card_params import ( + CardSubmitCardParams, + ) + + +class Card( + CreateableAPIResource["Card"], + ListableAPIResource["Card"], + UpdateableAPIResource["Card"], +): + """ + You can [create physical or virtual cards](https://stripe.com/docs/issuing) that are issued to cardholders. + """ + + OBJECT_NAME: ClassVar[Literal["issuing.card"]] = "issuing.card" + + class Shipping(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class AddressValidation(StripeObject): + class NormalizedAddress(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + mode: Literal[ + "disabled", + "normalization_only", + "validation_and_normalization", + ] + """ + The address validation capabilities to use. + """ + normalized_address: Optional[NormalizedAddress] + """ + The normalized shipping address. + """ + result: Optional[ + Literal[ + "indeterminate", + "likely_deliverable", + "likely_undeliverable", + ] + ] + """ + The validation result for the shipping address. + """ + _inner_class_types = {"normalized_address": NormalizedAddress} + + class Customs(StripeObject): + eori_number: Optional[str] + """ + A registration number used for customs in Europe. See [https://www.gov.uk/eori](https://www.gov.uk/eori) for the UK and [https://ec.europa.eu/taxation_customs/business/customs-procedures-import-and-export/customs-procedures/economic-operators-registration-and-identification-number-eori_en](https://ec.europa.eu/taxation_customs/business/customs-procedures-import-and-export/customs-procedures/economic-operators-registration-and-identification-number-eori_en) for the EU. + """ + + address: Address + address_validation: Optional[AddressValidation] + """ + Address validation details for the shipment. + """ + carrier: Optional[Literal["dhl", "fedex", "royal_mail", "usps"]] + """ + The delivery company that shipped a card. + """ + customs: Optional[Customs] + """ + Additional information that may be required for clearing customs. + """ + eta: Optional[int] + """ + A unix timestamp representing a best estimate of when the card will be delivered. + """ + name: str + """ + Recipient name. + """ + phone_number: Optional[str] + """ + The phone number of the receiver of the shipment. Our courier partners will use this number to contact you in the event of card delivery issues. For individual shipments to the EU/UK, if this field is empty, we will provide them with the phone number provided when the cardholder was initially created. + """ + require_signature: Optional[bool] + """ + Whether a signature is required for card delivery. This feature is only supported for US users. Standard shipping service does not support signature on delivery. The default value for standard shipping service is false and for express and priority services is true. + """ + service: Literal["express", "priority", "standard"] + """ + Shipment service, such as `standard` or `express`. + """ + status: Optional[ + Literal[ + "canceled", + "delivered", + "failure", + "pending", + "returned", + "shipped", + "submitted", + ] + ] + """ + The delivery status of the card. + """ + tracking_number: Optional[str] + """ + A tracking number for a card shipment. + """ + tracking_url: Optional[str] + """ + A link to the shipping carrier's site where you can view detailed information about a card shipment. + """ + type: Literal["bulk", "individual"] + """ + Packaging options. + """ + _inner_class_types = { + "address": Address, + "address_validation": AddressValidation, + "customs": Customs, + } + + class SpendingControls(StripeObject): + class SpendingLimit(StripeObject): + amount: int + """ + Maximum amount allowed to spend per interval. This amount is in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + categories: Optional[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", + "daily", + "monthly", + "per_authorization", + "weekly", + "yearly", + ] + """ + Interval (or event) to which the amount applies. + """ + + allowed_categories: Optional[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: Optional[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: Optional[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: Optional[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: Optional[List[SpendingLimit]] + """ + Limit spending with amount-based rules that apply across any cards this card replaced (i.e., its `replacement_for` card and _that_ card's `replacement_for` card, up the chain). + """ + spending_limits_currency: Optional[str] + """ + Currency of the amounts within `spending_limits`. Always the same as the currency of the card. + """ + _inner_class_types = {"spending_limits": SpendingLimit} + + class Wallets(StripeObject): + class ApplePay(StripeObject): + eligible: bool + """ + Apple Pay Eligibility + """ + ineligible_reason: Optional[ + Literal[ + "missing_agreement", + "missing_cardholder_contact", + "unsupported_region", + ] + ] + """ + Reason the card is ineligible for Apple Pay + """ + + class GooglePay(StripeObject): + eligible: bool + """ + Google Pay Eligibility + """ + ineligible_reason: Optional[ + Literal[ + "missing_agreement", + "missing_cardholder_contact", + "unsupported_region", + ] + ] + """ + Reason the card is ineligible for Google Pay + """ + + apple_pay: ApplePay + google_pay: GooglePay + primary_account_identifier: Optional[str] + """ + Unique identifier for a card used with digital wallets + """ + _inner_class_types = {"apple_pay": ApplePay, "google_pay": GooglePay} + + brand: str + """ + The brand of the card. + """ + cancellation_reason: Optional[Literal["design_rejected", "lost", "stolen"]] + """ + The reason why the card was canceled. + """ + cardholder: "Cardholder" + """ + An Issuing `Cardholder` object represents an individual or business entity who is [issued](https://stripe.com/docs/issuing) cards. + + Related guide: [How to create a cardholder](https://stripe.com/docs/issuing/cards/virtual/issue-cards#create-cardholder) + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Supported currencies are `usd` in the US, `eur` in the EU, and `gbp` in the UK. + """ + cvc: Optional[str] + """ + The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with [the `expand` parameter](https://stripe.com/docs/api/expanding_objects). Additionally, it's only available via the ["Retrieve a card" endpoint](https://stripe.com/docs/api/issuing/cards/retrieve), not via "List all cards" or any other endpoint. + """ + exp_month: int + """ + The expiration month of the card. + """ + exp_year: int + """ + The expiration year of the card. + """ + financial_account: Optional[str] + """ + The financial account this card is attached to. + """ + id: str + """ + Unique identifier for the object. + """ + last4: str + """ + The last 4 digits of the card number. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + number: Optional[str] + """ + The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with [the `expand` parameter](https://stripe.com/docs/api/expanding_objects). Additionally, it's only available via the ["Retrieve a card" endpoint](https://stripe.com/docs/api/issuing/cards/retrieve), not via "List all cards" or any other endpoint. + """ + object: Literal["issuing.card"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + personalization_design: Optional[ExpandableField["PersonalizationDesign"]] + """ + The personalization design object belonging to this card. + """ + replaced_by: Optional[ExpandableField["Card"]] + """ + The latest card that replaces this card, if any. + """ + replacement_for: Optional[ExpandableField["Card"]] + """ + The card this card replaces, if any. + """ + replacement_reason: Optional[ + Literal["damaged", "expired", "lost", "stolen"] + ] + """ + The reason why the previous card needed to be replaced. + """ + second_line: Optional[str] + """ + Text separate from cardholder name, printed on the card. + """ + shipping: Optional[Shipping] + """ + Where and how the card will be shipped. + """ + spending_controls: SpendingControls + status: Literal["active", "canceled", "inactive"] + """ + Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`. + """ + type: Literal["physical", "virtual"] + """ + The type of the card. + """ + wallets: Optional[Wallets] + """ + Information relating to digital wallets (like Apple Pay and Google Pay). + """ + + @classmethod + def create(cls, **params: Unpack["CardCreateParams"]) -> "Card": + """ + Creates an Issuing Card object. + """ + return cast( + "Card", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CardCreateParams"] + ) -> "Card": + """ + Creates an Issuing Card object. + """ + return cast( + "Card", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list(cls, **params: Unpack["CardListParams"]) -> ListObject["Card"]: + """ + Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CardListParams"] + ) -> ListObject["Card"]: + """ + Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify(cls, id: str, **params: Unpack["CardModifyParams"]) -> "Card": + """ + Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Card", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["CardModifyParams"] + ) -> "Card": + """ + Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Card", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CardRetrieveParams"] + ) -> "Card": + """ + Retrieves an Issuing Card object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CardRetrieveParams"] + ) -> "Card": + """ + Retrieves an Issuing Card object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["Card"]): + _resource_cls: Type["Card"] + + @classmethod + def _cls_deliver_card( + cls, card: str, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + return cast( + "Card", + cls._static_request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/deliver".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + def deliver_card( + card: str, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + ... + + @overload + def deliver_card( + self, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + ... + + @class_method_variant("_cls_deliver_card") + def deliver_card( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + return cast( + "Card", + self.resource._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/deliver".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_deliver_card_async( + cls, card: str, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + return cast( + "Card", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/deliver".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def deliver_card_async( + card: str, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + ... + + @overload + async def deliver_card_async( + self, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + ... + + @class_method_variant("_cls_deliver_card_async") + async def deliver_card_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardDeliverCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + return cast( + "Card", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/deliver".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_fail_card( + cls, card: str, **params: Unpack["CardFailCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + return cast( + "Card", + cls._static_request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/fail".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + def fail_card( + card: str, **params: Unpack["CardFailCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + ... + + @overload + def fail_card(self, **params: Unpack["CardFailCardParams"]) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + ... + + @class_method_variant("_cls_fail_card") + def fail_card( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardFailCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + return cast( + "Card", + self.resource._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/fail".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_fail_card_async( + cls, card: str, **params: Unpack["CardFailCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + return cast( + "Card", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/fail".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def fail_card_async( + card: str, **params: Unpack["CardFailCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + ... + + @overload + async def fail_card_async( + self, **params: Unpack["CardFailCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + ... + + @class_method_variant("_cls_fail_card_async") + async def fail_card_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardFailCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + return cast( + "Card", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/fail".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_return_card( + cls, card: str, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + return cast( + "Card", + cls._static_request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/return".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + def return_card( + card: str, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + ... + + @overload + def return_card( + self, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + ... + + @class_method_variant("_cls_return_card") + def return_card( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + return cast( + "Card", + self.resource._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/return".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_return_card_async( + cls, card: str, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + return cast( + "Card", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/return".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def return_card_async( + card: str, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + ... + + @overload + async def return_card_async( + self, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + ... + + @class_method_variant("_cls_return_card_async") + async def return_card_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardReturnCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + return cast( + "Card", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/return".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_ship_card( + cls, card: str, **params: Unpack["CardShipCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + return cast( + "Card", + cls._static_request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/ship".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + def ship_card( + card: str, **params: Unpack["CardShipCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + ... + + @overload + def ship_card(self, **params: Unpack["CardShipCardParams"]) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + ... + + @class_method_variant("_cls_ship_card") + def ship_card( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardShipCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + return cast( + "Card", + self.resource._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/ship".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_ship_card_async( + cls, card: str, **params: Unpack["CardShipCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + return cast( + "Card", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/ship".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def ship_card_async( + card: str, **params: Unpack["CardShipCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + ... + + @overload + async def ship_card_async( + self, **params: Unpack["CardShipCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + ... + + @class_method_variant("_cls_ship_card_async") + async def ship_card_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardShipCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + return cast( + "Card", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/ship".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_submit_card( + cls, card: str, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + return cast( + "Card", + cls._static_request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/submit".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + def submit_card( + card: str, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + ... + + @overload + def submit_card( + self, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + ... + + @class_method_variant("_cls_submit_card") + def submit_card( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + return cast( + "Card", + self.resource._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/submit".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_submit_card_async( + cls, card: str, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + return cast( + "Card", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/submit".format( + card=sanitize_id(card) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def submit_card_async( + card: str, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + ... + + @overload + async def submit_card_async( + self, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + ... + + @class_method_variant("_cls_submit_card_async") + async def submit_card_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CardSubmitCardParams"] + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + return cast( + "Card", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/submit".format( + card=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "shipping": Shipping, + "spending_controls": SpendingControls, + "wallets": Wallets, + } + + +Card.TestHelpers._resource_cls = Card diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_card_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_card_service.py new file mode 100644 index 00000000..21529012 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_card_service.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._card import Card + from stripe.params.issuing._card_create_params import CardCreateParams + from stripe.params.issuing._card_list_params import CardListParams + from stripe.params.issuing._card_retrieve_params import CardRetrieveParams + from stripe.params.issuing._card_update_params import CardUpdateParams + + +class CardService(StripeService): + def list( + self, + params: Optional["CardListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Card]": + """ + Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Card]", + self._request( + "get", + "/v1/issuing/cards", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["CardListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Card]": + """ + Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Card]", + await self._request_async( + "get", + "/v1/issuing/cards", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "CardCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Creates an Issuing Card object. + """ + return cast( + "Card", + self._request( + "post", + "/v1/issuing/cards", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "CardCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Creates an Issuing Card object. + """ + return cast( + "Card", + await self._request_async( + "post", + "/v1/issuing/cards", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + card: str, + params: Optional["CardRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Retrieves an Issuing Card object. + """ + return cast( + "Card", + self._request( + "get", + "/v1/issuing/cards/{card}".format(card=sanitize_id(card)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + card: str, + params: Optional["CardRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Retrieves an Issuing Card object. + """ + return cast( + "Card", + await self._request_async( + "get", + "/v1/issuing/cards/{card}".format(card=sanitize_id(card)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + card: str, + params: Optional["CardUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Card", + self._request( + "post", + "/v1/issuing/cards/{card}".format(card=sanitize_id(card)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + card: str, + params: Optional["CardUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Card", + await self._request_async( + "post", + "/v1/issuing/cards/{card}".format(card=sanitize_id(card)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_cardholder.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_cardholder.py new file mode 100644 index 00000000..673668b8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_cardholder.py @@ -0,0 +1,1330 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, Dict, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + from stripe.params.issuing._cardholder_create_params import ( + CardholderCreateParams, + ) + from stripe.params.issuing._cardholder_list_params import ( + CardholderListParams, + ) + from stripe.params.issuing._cardholder_modify_params import ( + CardholderModifyParams, + ) + from stripe.params.issuing._cardholder_retrieve_params import ( + CardholderRetrieveParams, + ) + + +class Cardholder( + CreateableAPIResource["Cardholder"], + ListableAPIResource["Cardholder"], + UpdateableAPIResource["Cardholder"], +): + """ + An Issuing `Cardholder` object represents an individual or business entity who is [issued](https://stripe.com/docs/issuing) cards. + + Related guide: [How to create a cardholder](https://stripe.com/docs/issuing/cards/virtual/issue-cards#create-cardholder) + """ + + OBJECT_NAME: ClassVar[Literal["issuing.cardholder"]] = "issuing.cardholder" + + class Billing(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + _inner_class_types = {"address": Address} + + class Company(StripeObject): + tax_id_provided: bool + """ + Whether the company's business ID number was provided. + """ + + class Individual(StripeObject): + class CardIssuing(StripeObject): + class UserTermsAcceptance(StripeObject): + date: Optional[int] + """ + The Unix timestamp marking when the cardholder accepted the Authorized User Terms. + """ + ip: Optional[str] + """ + The IP address from which the cardholder accepted the Authorized User Terms. + """ + user_agent: Optional[str] + """ + The user agent of the browser from which the cardholder accepted the Authorized User Terms. + """ + + user_terms_acceptance: Optional[UserTermsAcceptance] + """ + Information about cardholder acceptance of Celtic [Authorized User Terms](https://stripe.com/docs/issuing/cards#accept-authorized-user-terms). Required for cards backed by a Celtic program. + """ + _inner_class_types = {"user_terms_acceptance": UserTermsAcceptance} + + class Dob(StripeObject): + day: Optional[int] + """ + The day of birth, between 1 and 31. + """ + month: Optional[int] + """ + The month of birth, between 1 and 12. + """ + year: Optional[int] + """ + The four-digit year of birth. + """ + + class Verification(StripeObject): + class Document(StripeObject): + back: Optional[ExpandableField["File"]] + """ + The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + front: Optional[ExpandableField["File"]] + """ + The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + + document: Optional[Document] + """ + An identifying document, either a passport or local ID card. + """ + _inner_class_types = {"document": Document} + + card_issuing: Optional[CardIssuing] + """ + Information related to the card_issuing program for this cardholder. + """ + dob: Optional[Dob] + """ + The date of birth of this cardholder. + """ + first_name: Optional[str] + """ + The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + last_name: Optional[str] + """ + The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + verification: Optional[Verification] + """ + Government-issued ID document for this cardholder. + """ + _inner_class_types = { + "card_issuing": CardIssuing, + "dob": Dob, + "verification": Verification, + } + + class Requirements(StripeObject): + disabled_reason: Optional[ + Literal[ + "listed", + "rejected.listed", + "requirements.past_due", + "under_review", + ] + ] + """ + If `disabled_reason` is present, all cards will decline authorizations with `cardholder_verification_required` reason. + """ + past_due: Optional[ + List[ + Literal[ + "company.tax_id", + "individual.card_issuing.user_terms_acceptance.date", + "individual.card_issuing.user_terms_acceptance.ip", + "individual.dob.day", + "individual.dob.month", + "individual.dob.year", + "individual.first_name", + "individual.last_name", + "individual.verification.document", + ] + ] + ] + """ + Array of fields that need to be collected in order to verify and re-enable the cardholder. + """ + + class SpendingControls(StripeObject): + class SpendingLimit(StripeObject): + amount: int + """ + Maximum amount allowed to spend per interval. This amount is in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + categories: Optional[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", + "daily", + "monthly", + "per_authorization", + "weekly", + "yearly", + ] + """ + Interval (or event) to which the amount applies. + """ + + allowed_categories: Optional[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: Optional[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: Optional[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: Optional[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: Optional[List[SpendingLimit]] + """ + Limit spending with amount-based rules that apply across this cardholder's cards. + """ + spending_limits_currency: Optional[str] + """ + Currency of the amounts within `spending_limits`. + """ + _inner_class_types = {"spending_limits": SpendingLimit} + + billing: Billing + company: Optional[Company] + """ + Additional information about a `company` cardholder. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + email: Optional[str] + """ + The cardholder's email address. + """ + id: str + """ + Unique identifier for the object. + """ + individual: Optional[Individual] + """ + Additional information about an `individual` cardholder. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: str + """ + The cardholder's name. This will be printed on cards issued to them. + """ + object: Literal["issuing.cardholder"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + phone_number: Optional[str] + """ + The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure#when-is-3d-secure-applied) for more details. + """ + preferred_locales: Optional[List[Literal["de", "en", "es", "fr", "it"]]] + """ + The cardholder's preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`. + This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder. + """ + requirements: Requirements + spending_controls: Optional[SpendingControls] + """ + Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details. + """ + status: Literal["active", "blocked", "inactive"] + """ + Specifies whether to permit authorizations on this cardholder's cards. + """ + type: Literal["company", "individual"] + """ + One of `individual` or `company`. See [Choose a cardholder type](https://stripe.com/docs/issuing/other/choose-cardholder) for more details. + """ + + @classmethod + def create( + cls, **params: Unpack["CardholderCreateParams"] + ) -> "Cardholder": + """ + Creates a new Issuing Cardholder object that can be issued cards. + """ + return cast( + "Cardholder", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CardholderCreateParams"] + ) -> "Cardholder": + """ + Creates a new Issuing Cardholder object that can be issued cards. + """ + return cast( + "Cardholder", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["CardholderListParams"] + ) -> ListObject["Cardholder"]: + """ + Returns a list of Issuing Cardholder objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CardholderListParams"] + ) -> ListObject["Cardholder"]: + """ + Returns a list of Issuing Cardholder objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["CardholderModifyParams"] + ) -> "Cardholder": + """ + Updates the specified Issuing Cardholder object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Cardholder", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["CardholderModifyParams"] + ) -> "Cardholder": + """ + Updates the specified Issuing Cardholder object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Cardholder", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CardholderRetrieveParams"] + ) -> "Cardholder": + """ + Retrieves an Issuing Cardholder object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CardholderRetrieveParams"] + ) -> "Cardholder": + """ + Retrieves an Issuing Cardholder object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "billing": Billing, + "company": Company, + "individual": Individual, + "requirements": Requirements, + "spending_controls": SpendingControls, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_cardholder_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_cardholder_service.py new file mode 100644 index 00000000..54affd26 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_cardholder_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._cardholder import Cardholder + from stripe.params.issuing._cardholder_create_params import ( + CardholderCreateParams, + ) + from stripe.params.issuing._cardholder_list_params import ( + CardholderListParams, + ) + from stripe.params.issuing._cardholder_retrieve_params import ( + CardholderRetrieveParams, + ) + from stripe.params.issuing._cardholder_update_params import ( + CardholderUpdateParams, + ) + + +class CardholderService(StripeService): + def list( + self, + params: Optional["CardholderListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Cardholder]": + """ + Returns a list of Issuing Cardholder objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Cardholder]", + self._request( + "get", + "/v1/issuing/cardholders", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["CardholderListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Cardholder]": + """ + Returns a list of Issuing Cardholder objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Cardholder]", + await self._request_async( + "get", + "/v1/issuing/cardholders", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "CardholderCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Cardholder": + """ + Creates a new Issuing Cardholder object that can be issued cards. + """ + return cast( + "Cardholder", + self._request( + "post", + "/v1/issuing/cardholders", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "CardholderCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Cardholder": + """ + Creates a new Issuing Cardholder object that can be issued cards. + """ + return cast( + "Cardholder", + await self._request_async( + "post", + "/v1/issuing/cardholders", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + cardholder: str, + params: Optional["CardholderRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Cardholder": + """ + Retrieves an Issuing Cardholder object. + """ + return cast( + "Cardholder", + self._request( + "get", + "/v1/issuing/cardholders/{cardholder}".format( + cardholder=sanitize_id(cardholder), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + cardholder: str, + params: Optional["CardholderRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Cardholder": + """ + Retrieves an Issuing Cardholder object. + """ + return cast( + "Cardholder", + await self._request_async( + "get", + "/v1/issuing/cardholders/{cardholder}".format( + cardholder=sanitize_id(cardholder), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + cardholder: str, + params: Optional["CardholderUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Cardholder": + """ + Updates the specified Issuing Cardholder object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Cardholder", + self._request( + "post", + "/v1/issuing/cardholders/{cardholder}".format( + cardholder=sanitize_id(cardholder), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + cardholder: str, + params: Optional["CardholderUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Cardholder": + """ + Updates the specified Issuing Cardholder object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Cardholder", + await self._request_async( + "post", + "/v1/issuing/cardholders/{cardholder}".format( + cardholder=sanitize_id(cardholder), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_dispute.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_dispute.py new file mode 100644 index 00000000..2be6f914 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_dispute.py @@ -0,0 +1,571 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe._file import File + from stripe.issuing._transaction import Transaction + from stripe.params.issuing._dispute_create_params import ( + DisputeCreateParams, + ) + from stripe.params.issuing._dispute_list_params import DisputeListParams + from stripe.params.issuing._dispute_modify_params import ( + DisputeModifyParams, + ) + from stripe.params.issuing._dispute_retrieve_params import ( + DisputeRetrieveParams, + ) + from stripe.params.issuing._dispute_submit_params import ( + DisputeSubmitParams, + ) + + +class Dispute( + CreateableAPIResource["Dispute"], + ListableAPIResource["Dispute"], + UpdateableAPIResource["Dispute"], +): + """ + As a [card issuer](https://stripe.com/docs/issuing), you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with. + + Related guide: [Issuing disputes](https://stripe.com/docs/issuing/purchases/disputes) + """ + + OBJECT_NAME: ClassVar[Literal["issuing.dispute"]] = "issuing.dispute" + + class Evidence(StripeObject): + class Canceled(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: Optional[int] + """ + Date when order was canceled. + """ + cancellation_policy_provided: Optional[bool] + """ + Whether the cardholder was provided with a cancellation policy. + """ + cancellation_reason: Optional[str] + """ + Reason for canceling the order. + """ + expected_at: Optional[int] + """ + Date when the cardholder expected to receive the product. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: Optional[str] + """ + Description of the merchandise or service that was purchased. + """ + product_type: Optional[Literal["merchandise", "service"]] + """ + Whether the product was a merchandise or service. + """ + return_status: Optional[Literal["merchant_rejected", "successful"]] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: Optional[int] + """ + Date when the product was returned or attempted to be returned. + """ + + class Duplicate(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + card_statement: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the card statement showing that the product had already been paid for. + """ + cash_receipt: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the receipt showing that the product had been paid for in cash. + """ + check_image: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Image of the front and back of the check that was used to pay for the product. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + original_transaction: Optional[str] + """ + Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one. + """ + + class Fraudulent(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + class MerchandiseNotAsDescribed(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: Optional[int] + """ + Date when the product was received. + """ + return_description: Optional[str] + """ + Description of the cardholder's attempt to return the product. + """ + return_status: Optional[Literal["merchant_rejected", "successful"]] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: Optional[int] + """ + Date when the product was returned or attempted to be returned. + """ + + class NoValidAuthorization(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + class NotReceived(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + expected_at: Optional[int] + """ + Date when the cardholder expected to receive the product. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: Optional[str] + """ + Description of the merchandise or service that was purchased. + """ + product_type: Optional[Literal["merchandise", "service"]] + """ + Whether the product was a merchandise or service. + """ + + class Other(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: Optional[str] + """ + Description of the merchandise or service that was purchased. + """ + product_type: Optional[Literal["merchandise", "service"]] + """ + Whether the product was a merchandise or service. + """ + + class ServiceNotAsDescribed(StripeObject): + additional_documentation: Optional[ExpandableField["File"]] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: Optional[int] + """ + Date when order was canceled. + """ + cancellation_reason: Optional[str] + """ + Reason for canceling the order. + """ + explanation: Optional[str] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: Optional[int] + """ + Date when the product was received. + """ + + canceled: Optional[Canceled] + duplicate: Optional[Duplicate] + fraudulent: Optional[Fraudulent] + merchandise_not_as_described: Optional[MerchandiseNotAsDescribed] + no_valid_authorization: Optional[NoValidAuthorization] + not_received: Optional[NotReceived] + other: Optional[Other] + reason: Literal[ + "canceled", + "duplicate", + "fraudulent", + "merchandise_not_as_described", + "no_valid_authorization", + "not_received", + "other", + "service_not_as_described", + ] + """ + The reason for filing the dispute. Its value will match the field containing the evidence. + """ + service_not_as_described: Optional[ServiceNotAsDescribed] + _inner_class_types = { + "canceled": Canceled, + "duplicate": Duplicate, + "fraudulent": Fraudulent, + "merchandise_not_as_described": MerchandiseNotAsDescribed, + "no_valid_authorization": NoValidAuthorization, + "not_received": NotReceived, + "other": Other, + "service_not_as_described": ServiceNotAsDescribed, + } + + class Treasury(StripeObject): + debit_reversal: Optional[str] + """ + The Treasury [DebitReversal](https://stripe.com/docs/api/treasury/debit_reversals) representing this Issuing dispute + """ + received_debit: str + """ + The Treasury [ReceivedDebit](https://stripe.com/docs/api/treasury/received_debits) that is being disputed. + """ + + amount: int + """ + Disputed amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Usually the amount of the `transaction`, but can differ (usually because of currency fluctuation). + """ + balance_transactions: Optional[List["BalanceTransaction"]] + """ + List of balance transactions associated with the dispute. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + The currency the `transaction` was made in. + """ + evidence: Evidence + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + loss_reason: Optional[ + Literal[ + "cardholder_authentication_issuer_liability", + "eci5_token_transaction_with_tavv", + "excess_disputes_in_timeframe", + "has_not_met_the_minimum_dispute_amount_requirements", + "invalid_duplicate_dispute", + "invalid_incorrect_amount_dispute", + "invalid_no_authorization", + "invalid_use_of_disputes", + "merchandise_delivered_or_shipped", + "merchandise_or_service_as_described", + "not_cancelled", + "other", + "refund_issued", + "submitted_beyond_allowable_time_limit", + "transaction_3ds_required", + "transaction_approved_after_prior_fraud_dispute", + "transaction_authorized", + "transaction_electronically_read", + "transaction_qualifies_for_visa_easy_payment_service", + "transaction_unattended", + ] + ] + """ + The enum that describes the dispute loss outcome. If the dispute is not lost, this field will be absent. New enum values may be added in the future, so be sure to handle unknown values. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["issuing.dispute"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["expired", "lost", "submitted", "unsubmitted", "won"] + """ + Current status of the dispute. + """ + transaction: ExpandableField["Transaction"] + """ + The transaction being disputed. + """ + treasury: Optional[Treasury] + """ + [Treasury](https://stripe.com/docs/api/treasury) details related to this dispute if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts + """ + + @classmethod + def create(cls, **params: Unpack["DisputeCreateParams"]) -> "Dispute": + """ + Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements. + """ + return cast( + "Dispute", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["DisputeCreateParams"] + ) -> "Dispute": + """ + Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements. + """ + return cast( + "Dispute", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["DisputeListParams"] + ) -> ListObject["Dispute"]: + """ + Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["DisputeListParams"] + ) -> ListObject["Dispute"]: + """ + Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["DisputeModifyParams"] + ) -> "Dispute": + """ + Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Dispute", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["DisputeModifyParams"] + ) -> "Dispute": + """ + Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Dispute", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["DisputeRetrieveParams"] + ) -> "Dispute": + """ + Retrieves an Issuing Dispute object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["DisputeRetrieveParams"] + ) -> "Dispute": + """ + Retrieves an Issuing Dispute object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_submit( + cls, dispute: str, **params: Unpack["DisputeSubmitParams"] + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + return cast( + "Dispute", + cls._static_request( + "post", + "/v1/issuing/disputes/{dispute}/submit".format( + dispute=sanitize_id(dispute) + ), + params=params, + ), + ) + + @overload + @staticmethod + def submit( + dispute: str, **params: Unpack["DisputeSubmitParams"] + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + ... + + @overload + def submit(self, **params: Unpack["DisputeSubmitParams"]) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + ... + + @class_method_variant("_cls_submit") + def submit( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["DisputeSubmitParams"] + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + return cast( + "Dispute", + self._request( + "post", + "/v1/issuing/disputes/{dispute}/submit".format( + dispute=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_submit_async( + cls, dispute: str, **params: Unpack["DisputeSubmitParams"] + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + return cast( + "Dispute", + await cls._static_request_async( + "post", + "/v1/issuing/disputes/{dispute}/submit".format( + dispute=sanitize_id(dispute) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def submit_async( + dispute: str, **params: Unpack["DisputeSubmitParams"] + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + ... + + @overload + async def submit_async( + self, **params: Unpack["DisputeSubmitParams"] + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + ... + + @class_method_variant("_cls_submit_async") + async def submit_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["DisputeSubmitParams"] + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + return cast( + "Dispute", + await self._request_async( + "post", + "/v1/issuing/disputes/{dispute}/submit".format( + dispute=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + _inner_class_types = {"evidence": Evidence, "treasury": Treasury} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_dispute_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_dispute_service.py new file mode 100644 index 00000000..2631bd19 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_dispute_service.py @@ -0,0 +1,234 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._dispute import Dispute + from stripe.params.issuing._dispute_create_params import ( + DisputeCreateParams, + ) + from stripe.params.issuing._dispute_list_params import DisputeListParams + from stripe.params.issuing._dispute_retrieve_params import ( + DisputeRetrieveParams, + ) + from stripe.params.issuing._dispute_submit_params import ( + DisputeSubmitParams, + ) + from stripe.params.issuing._dispute_update_params import ( + DisputeUpdateParams, + ) + + +class DisputeService(StripeService): + def list( + self, + params: Optional["DisputeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Dispute]": + """ + Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Dispute]", + self._request( + "get", + "/v1/issuing/disputes", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["DisputeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Dispute]": + """ + Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Dispute]", + await self._request_async( + "get", + "/v1/issuing/disputes", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["DisputeCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements. + """ + return cast( + "Dispute", + self._request( + "post", + "/v1/issuing/disputes", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["DisputeCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements. + """ + return cast( + "Dispute", + await self._request_async( + "post", + "/v1/issuing/disputes", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + dispute: str, + params: Optional["DisputeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Retrieves an Issuing Dispute object. + """ + return cast( + "Dispute", + self._request( + "get", + "/v1/issuing/disputes/{dispute}".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + dispute: str, + params: Optional["DisputeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Retrieves an Issuing Dispute object. + """ + return cast( + "Dispute", + await self._request_async( + "get", + "/v1/issuing/disputes/{dispute}".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + dispute: str, + params: Optional["DisputeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string. + """ + return cast( + "Dispute", + self._request( + "post", + "/v1/issuing/disputes/{dispute}".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + dispute: str, + params: Optional["DisputeUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string. + """ + return cast( + "Dispute", + await self._request_async( + "post", + "/v1/issuing/disputes/{dispute}".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def submit( + self, + dispute: str, + params: Optional["DisputeSubmitParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + return cast( + "Dispute", + self._request( + "post", + "/v1/issuing/disputes/{dispute}/submit".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def submit_async( + self, + dispute: str, + params: Optional["DisputeSubmitParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Dispute": + """ + Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). + """ + return cast( + "Dispute", + await self._request_async( + "post", + "/v1/issuing/disputes/{dispute}/submit".format( + dispute=sanitize_id(dispute), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_personalization_design.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_personalization_design.py new file mode 100644 index 00000000..fd65ab0a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_personalization_design.py @@ -0,0 +1,677 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + from stripe.issuing._physical_bundle import PhysicalBundle + from stripe.params.issuing._personalization_design_activate_params import ( + PersonalizationDesignActivateParams, + ) + from stripe.params.issuing._personalization_design_create_params import ( + PersonalizationDesignCreateParams, + ) + from stripe.params.issuing._personalization_design_deactivate_params import ( + PersonalizationDesignDeactivateParams, + ) + from stripe.params.issuing._personalization_design_list_params import ( + PersonalizationDesignListParams, + ) + from stripe.params.issuing._personalization_design_modify_params import ( + PersonalizationDesignModifyParams, + ) + from stripe.params.issuing._personalization_design_reject_params import ( + PersonalizationDesignRejectParams, + ) + from stripe.params.issuing._personalization_design_retrieve_params import ( + PersonalizationDesignRetrieveParams, + ) + + +class PersonalizationDesign( + CreateableAPIResource["PersonalizationDesign"], + ListableAPIResource["PersonalizationDesign"], + UpdateableAPIResource["PersonalizationDesign"], +): + """ + A Personalization Design is a logical grouping of a Physical Bundle, card logo, and carrier text that represents a product line. + """ + + OBJECT_NAME: ClassVar[Literal["issuing.personalization_design"]] = ( + "issuing.personalization_design" + ) + + class CarrierText(StripeObject): + footer_body: Optional[str] + """ + The footer body text of the carrier letter. + """ + footer_title: Optional[str] + """ + The footer title text of the carrier letter. + """ + header_body: Optional[str] + """ + The header body text of the carrier letter. + """ + header_title: Optional[str] + """ + The header title text of the carrier letter. + """ + + class Preferences(StripeObject): + is_default: bool + """ + Whether we use this personalization design to create cards when one isn't specified. A connected account uses the Connect platform's default design if no personalization design is set as the default design. + """ + is_platform_default: Optional[bool] + """ + Whether this personalization design is used to create cards when one is not specified and a default for this connected account does not exist. + """ + + class RejectionReasons(StripeObject): + card_logo: Optional[ + List[ + Literal[ + "geographic_location", + "inappropriate", + "network_name", + "non_binary_image", + "non_fiat_currency", + "other", + "other_entity", + "promotional_material", + ] + ] + ] + """ + The reason(s) the card logo was rejected. + """ + carrier_text: Optional[ + List[ + Literal[ + "geographic_location", + "inappropriate", + "network_name", + "non_fiat_currency", + "other", + "other_entity", + "promotional_material", + ] + ] + ] + """ + The reason(s) the carrier text was rejected. + """ + + card_logo: Optional[ExpandableField["File"]] + """ + The file for the card logo to use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo`. + """ + carrier_text: Optional[CarrierText] + """ + Hash containing carrier text, for use with physical bundles that support carrier text. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + lookup_key: Optional[str] + """ + A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: Optional[str] + """ + Friendly display name. + """ + object: Literal["issuing.personalization_design"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + physical_bundle: ExpandableField["PhysicalBundle"] + """ + The physical bundle object belonging to this personalization design. + """ + preferences: Preferences + rejection_reasons: RejectionReasons + status: Literal["active", "inactive", "rejected", "review"] + """ + Whether this personalization design can be used to create cards. + """ + + @classmethod + def create( + cls, **params: Unpack["PersonalizationDesignCreateParams"] + ) -> "PersonalizationDesign": + """ + Creates a personalization design object. + """ + return cast( + "PersonalizationDesign", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["PersonalizationDesignCreateParams"] + ) -> "PersonalizationDesign": + """ + Creates a personalization design object. + """ + return cast( + "PersonalizationDesign", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["PersonalizationDesignListParams"] + ) -> ListObject["PersonalizationDesign"]: + """ + Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PersonalizationDesignListParams"] + ) -> ListObject["PersonalizationDesign"]: + """ + Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["PersonalizationDesignModifyParams"] + ) -> "PersonalizationDesign": + """ + Updates a card personalization object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PersonalizationDesign", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["PersonalizationDesignModifyParams"] + ) -> "PersonalizationDesign": + """ + Updates a card personalization object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "PersonalizationDesign", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PersonalizationDesignRetrieveParams"] + ) -> "PersonalizationDesign": + """ + Retrieves a personalization design object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PersonalizationDesignRetrieveParams"] + ) -> "PersonalizationDesign": + """ + Retrieves a personalization design object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["PersonalizationDesign"]): + _resource_cls: Type["PersonalizationDesign"] + + @classmethod + def _cls_activate( + cls, + personalization_design: str, + **params: Unpack["PersonalizationDesignActivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + return cast( + "PersonalizationDesign", + cls._static_request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate".format( + personalization_design=sanitize_id( + personalization_design + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + def activate( + personalization_design: str, + **params: Unpack["PersonalizationDesignActivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + ... + + @overload + def activate( + self, **params: Unpack["PersonalizationDesignActivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + ... + + @class_method_variant("_cls_activate") + def activate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PersonalizationDesignActivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + return cast( + "PersonalizationDesign", + self.resource._request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate".format( + personalization_design=sanitize_id( + self.resource.get("id") + ) + ), + params=params, + ), + ) + + @classmethod + async def _cls_activate_async( + cls, + personalization_design: str, + **params: Unpack["PersonalizationDesignActivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + return cast( + "PersonalizationDesign", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate".format( + personalization_design=sanitize_id( + personalization_design + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def activate_async( + personalization_design: str, + **params: Unpack["PersonalizationDesignActivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + ... + + @overload + async def activate_async( + self, **params: Unpack["PersonalizationDesignActivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + ... + + @class_method_variant("_cls_activate_async") + async def activate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PersonalizationDesignActivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + return cast( + "PersonalizationDesign", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate".format( + personalization_design=sanitize_id( + self.resource.get("id") + ) + ), + params=params, + ), + ) + + @classmethod + def _cls_deactivate( + cls, + personalization_design: str, + **params: Unpack["PersonalizationDesignDeactivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + return cast( + "PersonalizationDesign", + cls._static_request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate".format( + personalization_design=sanitize_id( + personalization_design + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + def deactivate( + personalization_design: str, + **params: Unpack["PersonalizationDesignDeactivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + ... + + @overload + def deactivate( + self, **params: Unpack["PersonalizationDesignDeactivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + ... + + @class_method_variant("_cls_deactivate") + def deactivate( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PersonalizationDesignDeactivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + return cast( + "PersonalizationDesign", + self.resource._request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate".format( + personalization_design=sanitize_id( + self.resource.get("id") + ) + ), + params=params, + ), + ) + + @classmethod + async def _cls_deactivate_async( + cls, + personalization_design: str, + **params: Unpack["PersonalizationDesignDeactivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + return cast( + "PersonalizationDesign", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate".format( + personalization_design=sanitize_id( + personalization_design + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def deactivate_async( + personalization_design: str, + **params: Unpack["PersonalizationDesignDeactivateParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + ... + + @overload + async def deactivate_async( + self, **params: Unpack["PersonalizationDesignDeactivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + ... + + @class_method_variant("_cls_deactivate_async") + async def deactivate_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PersonalizationDesignDeactivateParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + return cast( + "PersonalizationDesign", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate".format( + personalization_design=sanitize_id( + self.resource.get("id") + ) + ), + params=params, + ), + ) + + @classmethod + def _cls_reject( + cls, + personalization_design: str, + **params: Unpack["PersonalizationDesignRejectParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + return cast( + "PersonalizationDesign", + cls._static_request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject".format( + personalization_design=sanitize_id( + personalization_design + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + def reject( + personalization_design: str, + **params: Unpack["PersonalizationDesignRejectParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + ... + + @overload + def reject( + self, **params: Unpack["PersonalizationDesignRejectParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + ... + + @class_method_variant("_cls_reject") + def reject( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PersonalizationDesignRejectParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + return cast( + "PersonalizationDesign", + self.resource._request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject".format( + personalization_design=sanitize_id( + self.resource.get("id") + ) + ), + params=params, + ), + ) + + @classmethod + async def _cls_reject_async( + cls, + personalization_design: str, + **params: Unpack["PersonalizationDesignRejectParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + return cast( + "PersonalizationDesign", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject".format( + personalization_design=sanitize_id( + personalization_design + ) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def reject_async( + personalization_design: str, + **params: Unpack["PersonalizationDesignRejectParams"], + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + ... + + @overload + async def reject_async( + self, **params: Unpack["PersonalizationDesignRejectParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + ... + + @class_method_variant("_cls_reject_async") + async def reject_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["PersonalizationDesignRejectParams"] + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + return cast( + "PersonalizationDesign", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject".format( + personalization_design=sanitize_id( + self.resource.get("id") + ) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "carrier_text": CarrierText, + "preferences": Preferences, + "rejection_reasons": RejectionReasons, + } + + +PersonalizationDesign.TestHelpers._resource_cls = PersonalizationDesign diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_personalization_design_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_personalization_design_service.py new file mode 100644 index 00000000..0738bf40 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_personalization_design_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._personalization_design import PersonalizationDesign + from stripe.params.issuing._personalization_design_create_params import ( + PersonalizationDesignCreateParams, + ) + from stripe.params.issuing._personalization_design_list_params import ( + PersonalizationDesignListParams, + ) + from stripe.params.issuing._personalization_design_retrieve_params import ( + PersonalizationDesignRetrieveParams, + ) + from stripe.params.issuing._personalization_design_update_params import ( + PersonalizationDesignUpdateParams, + ) + + +class PersonalizationDesignService(StripeService): + def list( + self, + params: Optional["PersonalizationDesignListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PersonalizationDesign]": + """ + Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[PersonalizationDesign]", + self._request( + "get", + "/v1/issuing/personalization_designs", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PersonalizationDesignListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PersonalizationDesign]": + """ + Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[PersonalizationDesign]", + await self._request_async( + "get", + "/v1/issuing/personalization_designs", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "PersonalizationDesignCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Creates a personalization design object. + """ + return cast( + "PersonalizationDesign", + self._request( + "post", + "/v1/issuing/personalization_designs", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "PersonalizationDesignCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Creates a personalization design object. + """ + return cast( + "PersonalizationDesign", + await self._request_async( + "post", + "/v1/issuing/personalization_designs", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + personalization_design: str, + params: Optional["PersonalizationDesignRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Retrieves a personalization design object. + """ + return cast( + "PersonalizationDesign", + self._request( + "get", + "/v1/issuing/personalization_designs/{personalization_design}".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + personalization_design: str, + params: Optional["PersonalizationDesignRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Retrieves a personalization design object. + """ + return cast( + "PersonalizationDesign", + await self._request_async( + "get", + "/v1/issuing/personalization_designs/{personalization_design}".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + personalization_design: str, + params: Optional["PersonalizationDesignUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates a card personalization object. + """ + return cast( + "PersonalizationDesign", + self._request( + "post", + "/v1/issuing/personalization_designs/{personalization_design}".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + personalization_design: str, + params: Optional["PersonalizationDesignUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates a card personalization object. + """ + return cast( + "PersonalizationDesign", + await self._request_async( + "post", + "/v1/issuing/personalization_designs/{personalization_design}".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_physical_bundle.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_physical_bundle.py new file mode 100644 index 00000000..0e5b3387 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_physical_bundle.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.issuing._physical_bundle_list_params import ( + PhysicalBundleListParams, + ) + from stripe.params.issuing._physical_bundle_retrieve_params import ( + PhysicalBundleRetrieveParams, + ) + + +class PhysicalBundle(ListableAPIResource["PhysicalBundle"]): + """ + A Physical Bundle represents the bundle of physical items - card stock, carrier letter, and envelope - that is shipped to a cardholder when you create a physical card. + """ + + OBJECT_NAME: ClassVar[Literal["issuing.physical_bundle"]] = ( + "issuing.physical_bundle" + ) + + class Features(StripeObject): + card_logo: Literal["optional", "required", "unsupported"] + """ + The policy for how to use card logo images in a card design with this physical bundle. + """ + carrier_text: Literal["optional", "required", "unsupported"] + """ + The policy for how to use carrier letter text in a card design with this physical bundle. + """ + second_line: Literal["optional", "required", "unsupported"] + """ + The policy for how to use a second line on a card with this physical bundle. + """ + + features: Features + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + name: str + """ + Friendly display name. + """ + object: Literal["issuing.physical_bundle"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["active", "inactive", "review"] + """ + Whether this physical bundle can be used to create cards. + """ + type: Literal["custom", "standard"] + """ + Whether this physical bundle is a standard Stripe offering or custom-made for you. + """ + + @classmethod + def list( + cls, **params: Unpack["PhysicalBundleListParams"] + ) -> ListObject["PhysicalBundle"]: + """ + Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["PhysicalBundleListParams"] + ) -> ListObject["PhysicalBundle"]: + """ + Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["PhysicalBundleRetrieveParams"] + ) -> "PhysicalBundle": + """ + Retrieves a physical bundle object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["PhysicalBundleRetrieveParams"] + ) -> "PhysicalBundle": + """ + Retrieves a physical bundle object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"features": Features} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_physical_bundle_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_physical_bundle_service.py new file mode 100644 index 00000000..d3cba200 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_physical_bundle_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._physical_bundle import PhysicalBundle + from stripe.params.issuing._physical_bundle_list_params import ( + PhysicalBundleListParams, + ) + from stripe.params.issuing._physical_bundle_retrieve_params import ( + PhysicalBundleRetrieveParams, + ) + + +class PhysicalBundleService(StripeService): + def list( + self, + params: Optional["PhysicalBundleListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PhysicalBundle]": + """ + Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[PhysicalBundle]", + self._request( + "get", + "/v1/issuing/physical_bundles", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["PhysicalBundleListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[PhysicalBundle]": + """ + Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[PhysicalBundle]", + await self._request_async( + "get", + "/v1/issuing/physical_bundles", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + physical_bundle: str, + params: Optional["PhysicalBundleRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PhysicalBundle": + """ + Retrieves a physical bundle object. + """ + return cast( + "PhysicalBundle", + self._request( + "get", + "/v1/issuing/physical_bundles/{physical_bundle}".format( + physical_bundle=sanitize_id(physical_bundle), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + physical_bundle: str, + params: Optional["PhysicalBundleRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PhysicalBundle": + """ + Retrieves a physical bundle object. + """ + return cast( + "PhysicalBundle", + await self._request_async( + "get", + "/v1/issuing/physical_bundles/{physical_bundle}".format( + physical_bundle=sanitize_id(physical_bundle), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_token.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_token.py new file mode 100644 index 00000000..85434e3e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_token.py @@ -0,0 +1,333 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.issuing._card import Card + from stripe.params.issuing._token_list_params import TokenListParams + from stripe.params.issuing._token_modify_params import TokenModifyParams + from stripe.params.issuing._token_retrieve_params import ( + TokenRetrieveParams, + ) + + +class Token(ListableAPIResource["Token"], UpdateableAPIResource["Token"]): + """ + An issuing token object is created when an issued card is added to a digital wallet. As a [card issuer](https://stripe.com/docs/issuing), you can [view and manage these tokens](https://stripe.com/docs/issuing/controls/token-management) through Stripe. + """ + + OBJECT_NAME: ClassVar[Literal["issuing.token"]] = "issuing.token" + + class NetworkData(StripeObject): + class Device(StripeObject): + device_fingerprint: Optional[str] + """ + An obfuscated ID derived from the device ID. + """ + ip_address: Optional[str] + """ + The IP address of the device at provisioning time. + """ + location: Optional[str] + """ + The geographic latitude/longitude coordinates of the device at provisioning time. The format is [+-]decimal/[+-]decimal. + """ + name: Optional[str] + """ + The name of the device used for tokenization. + """ + phone_number: Optional[str] + """ + The phone number of the device used for tokenization. + """ + type: Optional[Literal["other", "phone", "watch"]] + """ + The type of device used for tokenization. + """ + + class Mastercard(StripeObject): + card_reference_id: Optional[str] + """ + A unique reference ID from MasterCard to represent the card account number. + """ + token_reference_id: str + """ + The network-unique identifier for the token. + """ + token_requestor_id: str + """ + The ID of the entity requesting tokenization, specific to MasterCard. + """ + token_requestor_name: Optional[str] + """ + The name of the entity requesting tokenization, if known. This is directly provided from MasterCard. + """ + + class Visa(StripeObject): + card_reference_id: str + """ + A unique reference ID from Visa to represent the card account number. + """ + token_reference_id: str + """ + The network-unique identifier for the token. + """ + token_requestor_id: str + """ + The ID of the entity requesting tokenization, specific to Visa. + """ + token_risk_score: Optional[str] + """ + Degree of risk associated with the token between `01` and `99`, with higher number indicating higher risk. A `00` value indicates the token was not scored by Visa. + """ + + class WalletProvider(StripeObject): + class CardholderAddress(StripeObject): + line1: str + """ + The street address of the cardholder tokenizing the card. + """ + postal_code: str + """ + The postal code of the cardholder tokenizing the card. + """ + + account_id: Optional[str] + """ + The wallet provider-given account ID of the digital wallet the token belongs to. + """ + account_trust_score: Optional[int] + """ + An evaluation on the trustworthiness of the wallet account between 1 and 5. A higher score indicates more trustworthy. + """ + card_number_source: Optional[ + Literal["app", "manual", "on_file", "other"] + ] + """ + The method used for tokenizing a card. + """ + cardholder_address: Optional[CardholderAddress] + cardholder_name: Optional[str] + """ + The name of the cardholder tokenizing the card. + """ + device_trust_score: Optional[int] + """ + An evaluation on the trustworthiness of the device. A higher score indicates more trustworthy. + """ + hashed_account_email_address: Optional[str] + """ + The hashed email address of the cardholder's account with the wallet provider. + """ + reason_codes: Optional[ + List[ + Literal[ + "account_card_too_new", + "account_recently_changed", + "account_too_new", + "account_too_new_since_launch", + "additional_device", + "data_expired", + "defer_id_v_decision", + "device_recently_lost", + "good_activity_history", + "has_suspended_tokens", + "high_risk", + "inactive_account", + "long_account_tenure", + "low_account_score", + "low_device_score", + "low_phone_number_score", + "network_service_error", + "outside_home_territory", + "provisioning_cardholder_mismatch", + "provisioning_device_and_cardholder_mismatch", + "provisioning_device_mismatch", + "same_device_no_prior_authentication", + "same_device_successful_prior_authentication", + "software_update", + "suspicious_activity", + "too_many_different_cardholders", + "too_many_recent_attempts", + "too_many_recent_tokens", + ] + ] + ] + """ + The reasons for suggested tokenization given by the card network. + """ + suggested_decision: Optional[ + Literal["approve", "decline", "require_auth"] + ] + """ + The recommendation on responding to the tokenization request. + """ + suggested_decision_version: Optional[str] + """ + The version of the standard for mapping reason codes followed by the wallet provider. + """ + _inner_class_types = {"cardholder_address": CardholderAddress} + + device: Optional[Device] + mastercard: Optional[Mastercard] + type: Literal["mastercard", "visa"] + """ + The network that the token is associated with. An additional hash is included with a name matching this value, containing tokenization data specific to the card network. + """ + visa: Optional[Visa] + wallet_provider: Optional[WalletProvider] + _inner_class_types = { + "device": Device, + "mastercard": Mastercard, + "visa": Visa, + "wallet_provider": WalletProvider, + } + + card: ExpandableField["Card"] + """ + Card associated with this token. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + device_fingerprint: Optional[str] + """ + The hashed ID derived from the device ID from the card network associated with the token. + """ + id: str + """ + Unique identifier for the object. + """ + last4: Optional[str] + """ + The last four digits of the token. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + network: Literal["mastercard", "visa"] + """ + The token service provider / card network associated with the token. + """ + network_data: Optional[NetworkData] + network_updated_at: int + """ + Time at which the token was last updated by the card network. Measured in seconds since the Unix epoch. + """ + object: Literal["issuing.token"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["active", "deleted", "requested", "suspended"] + """ + The usage state of the token. + """ + wallet_provider: Optional[ + Literal["apple_pay", "google_pay", "samsung_pay"] + ] + """ + The digital wallet for this token, if one was used. + """ + + @classmethod + def list(cls, **params: Unpack["TokenListParams"]) -> ListObject["Token"]: + """ + Lists all Issuing Token objects for a given card. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TokenListParams"] + ) -> ListObject["Token"]: + """ + Lists all Issuing Token objects for a given card. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify(cls, id: str, **params: Unpack["TokenModifyParams"]) -> "Token": + """ + Attempts to update the specified Issuing Token object to the status specified. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Token", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["TokenModifyParams"] + ) -> "Token": + """ + Attempts to update the specified Issuing Token object to the status specified. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Token", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TokenRetrieveParams"] + ) -> "Token": + """ + Retrieves an Issuing Token object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TokenRetrieveParams"] + ) -> "Token": + """ + Retrieves an Issuing Token object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"network_data": NetworkData} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_token_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_token_service.py new file mode 100644 index 00000000..8146af5c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_token_service.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._token import Token + from stripe.params.issuing._token_list_params import TokenListParams + from stripe.params.issuing._token_retrieve_params import ( + TokenRetrieveParams, + ) + from stripe.params.issuing._token_update_params import TokenUpdateParams + + +class TokenService(StripeService): + def list( + self, + params: "TokenListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Token]": + """ + Lists all Issuing Token objects for a given card. + """ + return cast( + "ListObject[Token]", + self._request( + "get", + "/v1/issuing/tokens", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "TokenListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Token]": + """ + Lists all Issuing Token objects for a given card. + """ + return cast( + "ListObject[Token]", + await self._request_async( + "get", + "/v1/issuing/tokens", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + token: str, + params: Optional["TokenRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Retrieves an Issuing Token object. + """ + return cast( + "Token", + self._request( + "get", + "/v1/issuing/tokens/{token}".format(token=sanitize_id(token)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + token: str, + params: Optional["TokenRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Retrieves an Issuing Token object. + """ + return cast( + "Token", + await self._request_async( + "get", + "/v1/issuing/tokens/{token}".format(token=sanitize_id(token)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + token: str, + params: "TokenUpdateParams", + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Attempts to update the specified Issuing Token object to the status specified. + """ + return cast( + "Token", + self._request( + "post", + "/v1/issuing/tokens/{token}".format(token=sanitize_id(token)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + token: str, + params: "TokenUpdateParams", + options: Optional["RequestOptions"] = None, + ) -> "Token": + """ + Attempts to update the specified Issuing Token object to the status specified. + """ + return cast( + "Token", + await self._request_async( + "post", + "/v1/issuing/tokens/{token}".format(token=sanitize_id(token)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_transaction.py new file mode 100644 index 00000000..4677555a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_transaction.py @@ -0,0 +1,725 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._balance_transaction import BalanceTransaction + from stripe.issuing._authorization import Authorization + from stripe.issuing._card import Card + from stripe.issuing._cardholder import Cardholder + from stripe.issuing._dispute import Dispute + from stripe.issuing._token import Token + from stripe.params.issuing._transaction_create_force_capture_params import ( + TransactionCreateForceCaptureParams, + ) + from stripe.params.issuing._transaction_create_unlinked_refund_params import ( + TransactionCreateUnlinkedRefundParams, + ) + from stripe.params.issuing._transaction_list_params import ( + TransactionListParams, + ) + from stripe.params.issuing._transaction_modify_params import ( + TransactionModifyParams, + ) + from stripe.params.issuing._transaction_refund_params import ( + TransactionRefundParams, + ) + from stripe.params.issuing._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + + +class Transaction( + ListableAPIResource["Transaction"], + UpdateableAPIResource["Transaction"], +): + """ + Any use of an [issued card](https://stripe.com/docs/issuing) that results in funds entering or leaving + your Stripe account, such as a completed purchase or refund, is represented by an Issuing + `Transaction` object. + + Related guide: [Issued card transactions](https://stripe.com/docs/issuing/purchases/transactions) + """ + + OBJECT_NAME: ClassVar[Literal["issuing.transaction"]] = ( + "issuing.transaction" + ) + + class AmountDetails(StripeObject): + atm_fee: Optional[int] + """ + The fee charged by the ATM for the cash withdrawal. + """ + cashback_amount: Optional[int] + """ + The amount of cash requested by the cardholder. + """ + + class MerchantData(StripeObject): + category: str + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + category_code: str + """ + The merchant category code for the seller's business + """ + city: Optional[str] + """ + City where the seller is located + """ + country: Optional[str] + """ + Country where the seller is located + """ + name: Optional[str] + """ + Name of the seller + """ + network_id: str + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: Optional[str] + """ + Postal code where the seller is located + """ + state: Optional[str] + """ + State where the seller is located + """ + tax_id: Optional[str] + """ + The seller's tax identification number. Currently populated for French merchants only. + """ + terminal_id: Optional[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: Optional[str] + """ + URL provided by the merchant on a 3DS request + """ + + class NetworkData(StripeObject): + authorization_code: Optional[str] + """ + A code created by Stripe which is shared with the merchant to validate the authorization. This field will be populated if the authorization message was approved. The code typically starts with the letter "S", followed by a six-digit number. For example, "S498162". Please note that the code is not guaranteed to be unique across authorizations. + """ + processing_date: Optional[str] + """ + The date the transaction was processed by the card network. This can be different from the date the seller recorded the transaction depending on when the acquirer submits the transaction to the network. + """ + transaction_id: Optional[str] + """ + Unique identifier for the authorization assigned by the card network used to match subsequent messages, disputes, and transactions. + """ + + class PurchaseDetails(StripeObject): + class Fleet(StripeObject): + class CardholderPromptData(StripeObject): + driver_id: Optional[str] + """ + Driver ID. + """ + odometer: Optional[int] + """ + Odometer reading. + """ + unspecified_id: Optional[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: Optional[str] + """ + User ID. + """ + vehicle_number: Optional[str] + """ + Vehicle number. + """ + + class ReportedBreakdown(StripeObject): + class Fuel(StripeObject): + gross_amount_decimal: Optional[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + class NonFuel(StripeObject): + gross_amount_decimal: Optional[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + class Tax(StripeObject): + local_amount_decimal: Optional[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: Optional[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + fuel: Optional[Fuel] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: Optional[NonFuel] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: Optional[Tax] + """ + Information about tax included in this transaction. + """ + _inner_class_types = { + "fuel": Fuel, + "non_fuel": NonFuel, + "tax": Tax, + } + + cardholder_prompt_data: Optional[CardholderPromptData] + """ + Answers to prompts presented to cardholder at point of sale. + """ + purchase_type: Optional[str] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: Optional[ReportedBreakdown] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: Optional[str] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + _inner_class_types = { + "cardholder_prompt_data": CardholderPromptData, + "reported_breakdown": ReportedBreakdown, + } + + class Flight(StripeObject): + class Segment(StripeObject): + arrival_airport_code: Optional[str] + """ + The three-letter IATA airport code of the flight's destination. + """ + carrier: Optional[str] + """ + The airline carrier code. + """ + departure_airport_code: Optional[str] + """ + The three-letter IATA airport code that the flight departed from. + """ + flight_number: Optional[str] + """ + The flight number. + """ + service_class: Optional[str] + """ + The flight's service class. + """ + stopover_allowed: Optional[bool] + """ + Whether a stopover is allowed on this flight. + """ + + departure_at: Optional[int] + """ + The time that the flight departed. + """ + passenger_name: Optional[str] + """ + The name of the passenger. + """ + refundable: Optional[bool] + """ + Whether the ticket is refundable. + """ + segments: Optional[List[Segment]] + """ + The legs of the trip. + """ + travel_agency: Optional[str] + """ + The travel agency that issued the ticket. + """ + _inner_class_types = {"segments": Segment} + + class Fuel(StripeObject): + industry_product_code: Optional[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: Optional[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: str + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: str + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: str + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + class Lodging(StripeObject): + check_in_at: Optional[int] + """ + The time of checking into the lodging. + """ + nights: Optional[int] + """ + The number of nights stayed at the lodging. + """ + + class Receipt(StripeObject): + description: Optional[str] + """ + The description of the item. The maximum length of this field is 26 characters. + """ + quantity: Optional[float] + """ + The quantity of the item. + """ + total: Optional[int] + """ + The total for this line item in cents. + """ + unit_cost: Optional[int] + """ + The unit cost of the item in cents. + """ + + fleet: Optional[Fleet] + """ + Fleet-specific information for transactions using Fleet cards. + """ + flight: Optional[Flight] + """ + Information about the flight that was purchased with this transaction. + """ + fuel: Optional[Fuel] + """ + Information about fuel that was purchased with this transaction. + """ + lodging: Optional[Lodging] + """ + Information about lodging that was purchased with this transaction. + """ + receipt: Optional[List[Receipt]] + """ + The line items in the purchase. + """ + reference: Optional[str] + """ + A merchant-specific order number. + """ + _inner_class_types = { + "fleet": Fleet, + "flight": Flight, + "fuel": Fuel, + "lodging": Lodging, + "receipt": Receipt, + } + + class Treasury(StripeObject): + received_credit: Optional[str] + """ + The Treasury [ReceivedCredit](https://stripe.com/docs/api/treasury/received_credits) representing this Issuing transaction if it is a refund + """ + received_debit: Optional[str] + """ + The Treasury [ReceivedDebit](https://stripe.com/docs/api/treasury/received_debits) representing this Issuing transaction if it is a capture + """ + + amount: int + """ + The transaction amount, which will be reflected in your balance. This amount is in your currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + amount_details: Optional[AmountDetails] + """ + Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + authorization: Optional[ExpandableField["Authorization"]] + """ + The `Authorization` object that led to this transaction. + """ + balance_transaction: Optional[ExpandableField["BalanceTransaction"]] + """ + ID of the [balance transaction](https://stripe.com/docs/api/balance_transactions) associated with this transaction. + """ + card: ExpandableField["Card"] + """ + The card used to make this transaction. + """ + cardholder: Optional[ExpandableField["Cardholder"]] + """ + The cardholder to whom this transaction belongs. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + dispute: Optional[ExpandableField["Dispute"]] + """ + If you've disputed the transaction, the ID of the dispute. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + merchant_amount: int + """ + The amount that the merchant will receive, denominated in `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). It will be different from `amount` if the merchant is taking payment in a different currency. + """ + merchant_currency: str + """ + The currency with which the merchant is taking payment. + """ + merchant_data: MerchantData + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + network_data: Optional[NetworkData] + """ + Details about the transaction, such as processing dates, set by the card network. + """ + object: Literal["issuing.transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + purchase_details: Optional[PurchaseDetails] + """ + Additional purchase information that is optionally provided by the merchant. + """ + token: Optional[ExpandableField["Token"]] + """ + [Token](https://stripe.com/docs/api/issuing/tokens/object) object used for this transaction. If a network token was not used for this transaction, this field will be null. + """ + treasury: Optional[Treasury] + """ + [Treasury](https://stripe.com/docs/api/treasury) details related to this transaction if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts + """ + type: Literal["capture", "refund"] + """ + The nature of the transaction. + """ + wallet: Optional[Literal["apple_pay", "google_pay", "samsung_pay"]] + """ + The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. + """ + + @classmethod + def list( + cls, **params: Unpack["TransactionListParams"] + ) -> ListObject["Transaction"]: + """ + Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TransactionListParams"] + ) -> ListObject["Transaction"]: + """ + Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["TransactionModifyParams"] + ) -> "Transaction": + """ + Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Transaction", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["TransactionModifyParams"] + ) -> "Transaction": + """ + Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Transaction", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves an Issuing Transaction object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves an Issuing Transaction object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["Transaction"]): + _resource_cls: Type["Transaction"] + + @classmethod + def create_force_capture( + cls, **params: Unpack["TransactionCreateForceCaptureParams"] + ) -> "Transaction": + """ + Allows the user to capture an arbitrary amount, also known as a forced capture. + """ + return cast( + "Transaction", + cls._static_request( + "post", + "/v1/test_helpers/issuing/transactions/create_force_capture", + params=params, + ), + ) + + @classmethod + async def create_force_capture_async( + cls, **params: Unpack["TransactionCreateForceCaptureParams"] + ) -> "Transaction": + """ + Allows the user to capture an arbitrary amount, also known as a forced capture. + """ + return cast( + "Transaction", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/transactions/create_force_capture", + params=params, + ), + ) + + @classmethod + def create_unlinked_refund( + cls, **params: Unpack["TransactionCreateUnlinkedRefundParams"] + ) -> "Transaction": + """ + Allows the user to refund an arbitrary amount, also known as a unlinked refund. + """ + return cast( + "Transaction", + cls._static_request( + "post", + "/v1/test_helpers/issuing/transactions/create_unlinked_refund", + params=params, + ), + ) + + @classmethod + async def create_unlinked_refund_async( + cls, **params: Unpack["TransactionCreateUnlinkedRefundParams"] + ) -> "Transaction": + """ + Allows the user to refund an arbitrary amount, also known as a unlinked refund. + """ + return cast( + "Transaction", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/transactions/create_unlinked_refund", + params=params, + ), + ) + + @classmethod + def _cls_refund( + cls, transaction: str, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + return cast( + "Transaction", + cls._static_request( + "post", + "/v1/test_helpers/issuing/transactions/{transaction}/refund".format( + transaction=sanitize_id(transaction) + ), + params=params, + ), + ) + + @overload + @staticmethod + def refund( + transaction: str, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + ... + + @overload + def refund( + self, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + ... + + @class_method_variant("_cls_refund") + def refund( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + return cast( + "Transaction", + self.resource._request( + "post", + "/v1/test_helpers/issuing/transactions/{transaction}/refund".format( + transaction=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_refund_async( + cls, transaction: str, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + return cast( + "Transaction", + await cls._static_request_async( + "post", + "/v1/test_helpers/issuing/transactions/{transaction}/refund".format( + transaction=sanitize_id(transaction) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def refund_async( + transaction: str, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + ... + + @overload + async def refund_async( + self, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + ... + + @class_method_variant("_cls_refund_async") + async def refund_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TransactionRefundParams"] + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + return cast( + "Transaction", + await self.resource._request_async( + "post", + "/v1/test_helpers/issuing/transactions/{transaction}/refund".format( + transaction=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "amount_details": AmountDetails, + "merchant_data": MerchantData, + "network_data": NetworkData, + "purchase_details": PurchaseDetails, + "treasury": Treasury, + } + + +Transaction.TestHelpers._resource_cls = Transaction diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_transaction_service.py new file mode 100644 index 00000000..8c888266 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/issuing/_transaction_service.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.issuing._transaction import Transaction + from stripe.params.issuing._transaction_list_params import ( + TransactionListParams, + ) + from stripe.params.issuing._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + from stripe.params.issuing._transaction_update_params import ( + TransactionUpdateParams, + ) + + +class TransactionService(StripeService): + def list( + self, + params: Optional["TransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transaction]": + """ + Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Transaction]", + self._request( + "get", + "/v1/issuing/transactions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["TransactionListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transaction]": + """ + Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[Transaction]", + await self._request_async( + "get", + "/v1/issuing/transactions", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + transaction: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves an Issuing Transaction object. + """ + return cast( + "Transaction", + self._request( + "get", + "/v1/issuing/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + transaction: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves an Issuing Transaction object. + """ + return cast( + "Transaction", + await self._request_async( + "get", + "/v1/issuing/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + transaction: str, + params: Optional["TransactionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Transaction", + self._request( + "post", + "/v1/issuing/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + transaction: str, + params: Optional["TransactionUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Transaction", + await self._request_async( + "post", + "/v1/issuing/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/oauth_error.py b/Backend/venv/lib/python3.12/site-packages/stripe/oauth_error.py new file mode 100644 index 00000000..14f75c2a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/oauth_error.py @@ -0,0 +1,53 @@ +from stripe._error import StripeError +from stripe._error_object import OAuthErrorObject + + +class OAuthError(StripeError): + def __init__( + self, + code, + description, + http_body=None, + http_status=None, + json_body=None, + headers=None, + ): + super(OAuthError, self).__init__( + description, http_body, http_status, json_body, headers, code + ) + + def _construct_error_object(self): + if self.json_body is None: + return None + + from stripe._api_requestor import _APIRequestor + + return OAuthErrorObject._construct_from( + values=self.json_body, # type: ignore + requestor=_APIRequestor._global_instance(), + api_mode="V1", + ) + + +class InvalidClientError(OAuthError): + pass + + +class InvalidGrantError(OAuthError): + pass + + +class InvalidRequestError(OAuthError): + pass + + +class InvalidScopeError(OAuthError): + pass + + +class UnsupportedGrantTypeError(OAuthError): + pass + + +class UnsupportedResponseTypeError(OAuthError): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/__init__.py new file mode 100644 index 00000000..a35054a7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/__init__.py @@ -0,0 +1,15174 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params import ( + apps as apps, + billing as billing, + billing_portal as billing_portal, + checkout as checkout, + climate as climate, + entitlements as entitlements, + financial_connections as financial_connections, + forwarding as forwarding, + identity as identity, + issuing as issuing, + radar as radar, + reporting as reporting, + sigma as sigma, + tax as tax, + terminal as terminal, + test_helpers as test_helpers, + treasury as treasury, + ) + from stripe.params._account_capability_list_params import ( + AccountCapabilityListParams as AccountCapabilityListParams, + ) + from stripe.params._account_capability_retrieve_params import ( + AccountCapabilityRetrieveParams as AccountCapabilityRetrieveParams, + ) + from stripe.params._account_capability_update_params import ( + AccountCapabilityUpdateParams as AccountCapabilityUpdateParams, + ) + from stripe.params._account_create_external_account_params import ( + AccountCreateExternalAccountParams as AccountCreateExternalAccountParams, + AccountCreateExternalAccountParamsBankAccount as AccountCreateExternalAccountParamsBankAccount, + AccountCreateExternalAccountParamsCard as AccountCreateExternalAccountParamsCard, + AccountCreateExternalAccountParamsCardToken as AccountCreateExternalAccountParamsCardToken, + ) + from stripe.params._account_create_login_link_params import ( + AccountCreateLoginLinkParams as AccountCreateLoginLinkParams, + ) + from stripe.params._account_create_params import ( + AccountCreateParams as AccountCreateParams, + AccountCreateParamsBankAccount as AccountCreateParamsBankAccount, + AccountCreateParamsBusinessProfile as AccountCreateParamsBusinessProfile, + AccountCreateParamsBusinessProfileAnnualRevenue as AccountCreateParamsBusinessProfileAnnualRevenue, + AccountCreateParamsBusinessProfileMonthlyEstimatedRevenue as AccountCreateParamsBusinessProfileMonthlyEstimatedRevenue, + AccountCreateParamsBusinessProfileSupportAddress as AccountCreateParamsBusinessProfileSupportAddress, + AccountCreateParamsCapabilities as AccountCreateParamsCapabilities, + AccountCreateParamsCapabilitiesAcssDebitPayments as AccountCreateParamsCapabilitiesAcssDebitPayments, + AccountCreateParamsCapabilitiesAffirmPayments as AccountCreateParamsCapabilitiesAffirmPayments, + AccountCreateParamsCapabilitiesAfterpayClearpayPayments as AccountCreateParamsCapabilitiesAfterpayClearpayPayments, + AccountCreateParamsCapabilitiesAlmaPayments as AccountCreateParamsCapabilitiesAlmaPayments, + AccountCreateParamsCapabilitiesAmazonPayPayments as AccountCreateParamsCapabilitiesAmazonPayPayments, + AccountCreateParamsCapabilitiesAuBecsDebitPayments as AccountCreateParamsCapabilitiesAuBecsDebitPayments, + AccountCreateParamsCapabilitiesBacsDebitPayments as AccountCreateParamsCapabilitiesBacsDebitPayments, + AccountCreateParamsCapabilitiesBancontactPayments as AccountCreateParamsCapabilitiesBancontactPayments, + AccountCreateParamsCapabilitiesBankTransferPayments as AccountCreateParamsCapabilitiesBankTransferPayments, + AccountCreateParamsCapabilitiesBilliePayments as AccountCreateParamsCapabilitiesBilliePayments, + AccountCreateParamsCapabilitiesBlikPayments as AccountCreateParamsCapabilitiesBlikPayments, + AccountCreateParamsCapabilitiesBoletoPayments as AccountCreateParamsCapabilitiesBoletoPayments, + AccountCreateParamsCapabilitiesCardIssuing as AccountCreateParamsCapabilitiesCardIssuing, + AccountCreateParamsCapabilitiesCardPayments as AccountCreateParamsCapabilitiesCardPayments, + AccountCreateParamsCapabilitiesCartesBancairesPayments as AccountCreateParamsCapabilitiesCartesBancairesPayments, + AccountCreateParamsCapabilitiesCashappPayments as AccountCreateParamsCapabilitiesCashappPayments, + AccountCreateParamsCapabilitiesCryptoPayments as AccountCreateParamsCapabilitiesCryptoPayments, + AccountCreateParamsCapabilitiesEpsPayments as AccountCreateParamsCapabilitiesEpsPayments, + AccountCreateParamsCapabilitiesFpxPayments as AccountCreateParamsCapabilitiesFpxPayments, + AccountCreateParamsCapabilitiesGbBankTransferPayments as AccountCreateParamsCapabilitiesGbBankTransferPayments, + AccountCreateParamsCapabilitiesGiropayPayments as AccountCreateParamsCapabilitiesGiropayPayments, + AccountCreateParamsCapabilitiesGrabpayPayments as AccountCreateParamsCapabilitiesGrabpayPayments, + AccountCreateParamsCapabilitiesIdealPayments as AccountCreateParamsCapabilitiesIdealPayments, + AccountCreateParamsCapabilitiesIndiaInternationalPayments as AccountCreateParamsCapabilitiesIndiaInternationalPayments, + AccountCreateParamsCapabilitiesJcbPayments as AccountCreateParamsCapabilitiesJcbPayments, + AccountCreateParamsCapabilitiesJpBankTransferPayments as AccountCreateParamsCapabilitiesJpBankTransferPayments, + AccountCreateParamsCapabilitiesKakaoPayPayments as AccountCreateParamsCapabilitiesKakaoPayPayments, + AccountCreateParamsCapabilitiesKlarnaPayments as AccountCreateParamsCapabilitiesKlarnaPayments, + AccountCreateParamsCapabilitiesKonbiniPayments as AccountCreateParamsCapabilitiesKonbiniPayments, + AccountCreateParamsCapabilitiesKrCardPayments as AccountCreateParamsCapabilitiesKrCardPayments, + AccountCreateParamsCapabilitiesLegacyPayments as AccountCreateParamsCapabilitiesLegacyPayments, + AccountCreateParamsCapabilitiesLinkPayments as AccountCreateParamsCapabilitiesLinkPayments, + AccountCreateParamsCapabilitiesMbWayPayments as AccountCreateParamsCapabilitiesMbWayPayments, + AccountCreateParamsCapabilitiesMobilepayPayments as AccountCreateParamsCapabilitiesMobilepayPayments, + AccountCreateParamsCapabilitiesMultibancoPayments as AccountCreateParamsCapabilitiesMultibancoPayments, + AccountCreateParamsCapabilitiesMxBankTransferPayments as AccountCreateParamsCapabilitiesMxBankTransferPayments, + AccountCreateParamsCapabilitiesNaverPayPayments as AccountCreateParamsCapabilitiesNaverPayPayments, + AccountCreateParamsCapabilitiesNzBankAccountBecsDebitPayments as AccountCreateParamsCapabilitiesNzBankAccountBecsDebitPayments, + AccountCreateParamsCapabilitiesOxxoPayments as AccountCreateParamsCapabilitiesOxxoPayments, + AccountCreateParamsCapabilitiesP24Payments as AccountCreateParamsCapabilitiesP24Payments, + AccountCreateParamsCapabilitiesPayByBankPayments as AccountCreateParamsCapabilitiesPayByBankPayments, + AccountCreateParamsCapabilitiesPaycoPayments as AccountCreateParamsCapabilitiesPaycoPayments, + AccountCreateParamsCapabilitiesPaynowPayments as AccountCreateParamsCapabilitiesPaynowPayments, + AccountCreateParamsCapabilitiesPixPayments as AccountCreateParamsCapabilitiesPixPayments, + AccountCreateParamsCapabilitiesPromptpayPayments as AccountCreateParamsCapabilitiesPromptpayPayments, + AccountCreateParamsCapabilitiesRevolutPayPayments as AccountCreateParamsCapabilitiesRevolutPayPayments, + AccountCreateParamsCapabilitiesSamsungPayPayments as AccountCreateParamsCapabilitiesSamsungPayPayments, + AccountCreateParamsCapabilitiesSatispayPayments as AccountCreateParamsCapabilitiesSatispayPayments, + AccountCreateParamsCapabilitiesSepaBankTransferPayments as AccountCreateParamsCapabilitiesSepaBankTransferPayments, + AccountCreateParamsCapabilitiesSepaDebitPayments as AccountCreateParamsCapabilitiesSepaDebitPayments, + AccountCreateParamsCapabilitiesSofortPayments as AccountCreateParamsCapabilitiesSofortPayments, + AccountCreateParamsCapabilitiesSwishPayments as AccountCreateParamsCapabilitiesSwishPayments, + AccountCreateParamsCapabilitiesTaxReportingUs1099K as AccountCreateParamsCapabilitiesTaxReportingUs1099K, + AccountCreateParamsCapabilitiesTaxReportingUs1099Misc as AccountCreateParamsCapabilitiesTaxReportingUs1099Misc, + AccountCreateParamsCapabilitiesTransfers as AccountCreateParamsCapabilitiesTransfers, + AccountCreateParamsCapabilitiesTreasury as AccountCreateParamsCapabilitiesTreasury, + AccountCreateParamsCapabilitiesTwintPayments as AccountCreateParamsCapabilitiesTwintPayments, + AccountCreateParamsCapabilitiesUsBankAccountAchPayments as AccountCreateParamsCapabilitiesUsBankAccountAchPayments, + AccountCreateParamsCapabilitiesUsBankTransferPayments as AccountCreateParamsCapabilitiesUsBankTransferPayments, + AccountCreateParamsCapabilitiesZipPayments as AccountCreateParamsCapabilitiesZipPayments, + AccountCreateParamsCard as AccountCreateParamsCard, + AccountCreateParamsCardToken as AccountCreateParamsCardToken, + AccountCreateParamsCompany as AccountCreateParamsCompany, + AccountCreateParamsCompanyAddress as AccountCreateParamsCompanyAddress, + AccountCreateParamsCompanyAddressKana as AccountCreateParamsCompanyAddressKana, + AccountCreateParamsCompanyAddressKanji as AccountCreateParamsCompanyAddressKanji, + AccountCreateParamsCompanyDirectorshipDeclaration as AccountCreateParamsCompanyDirectorshipDeclaration, + AccountCreateParamsCompanyOwnershipDeclaration as AccountCreateParamsCompanyOwnershipDeclaration, + AccountCreateParamsCompanyRegistrationDate as AccountCreateParamsCompanyRegistrationDate, + AccountCreateParamsCompanyRepresentativeDeclaration as AccountCreateParamsCompanyRepresentativeDeclaration, + AccountCreateParamsCompanyVerification as AccountCreateParamsCompanyVerification, + AccountCreateParamsCompanyVerificationDocument as AccountCreateParamsCompanyVerificationDocument, + AccountCreateParamsController as AccountCreateParamsController, + AccountCreateParamsControllerFees as AccountCreateParamsControllerFees, + AccountCreateParamsControllerLosses as AccountCreateParamsControllerLosses, + AccountCreateParamsControllerStripeDashboard as AccountCreateParamsControllerStripeDashboard, + AccountCreateParamsDocuments as AccountCreateParamsDocuments, + AccountCreateParamsDocumentsBankAccountOwnershipVerification as AccountCreateParamsDocumentsBankAccountOwnershipVerification, + AccountCreateParamsDocumentsCompanyLicense as AccountCreateParamsDocumentsCompanyLicense, + AccountCreateParamsDocumentsCompanyMemorandumOfAssociation as AccountCreateParamsDocumentsCompanyMemorandumOfAssociation, + AccountCreateParamsDocumentsCompanyMinisterialDecree as AccountCreateParamsDocumentsCompanyMinisterialDecree, + AccountCreateParamsDocumentsCompanyRegistrationVerification as AccountCreateParamsDocumentsCompanyRegistrationVerification, + AccountCreateParamsDocumentsCompanyTaxIdVerification as AccountCreateParamsDocumentsCompanyTaxIdVerification, + AccountCreateParamsDocumentsProofOfAddress as AccountCreateParamsDocumentsProofOfAddress, + AccountCreateParamsDocumentsProofOfRegistration as AccountCreateParamsDocumentsProofOfRegistration, + AccountCreateParamsDocumentsProofOfUltimateBeneficialOwnership as AccountCreateParamsDocumentsProofOfUltimateBeneficialOwnership, + AccountCreateParamsGroups as AccountCreateParamsGroups, + AccountCreateParamsIndividual as AccountCreateParamsIndividual, + AccountCreateParamsIndividualAddress as AccountCreateParamsIndividualAddress, + AccountCreateParamsIndividualAddressKana as AccountCreateParamsIndividualAddressKana, + AccountCreateParamsIndividualAddressKanji as AccountCreateParamsIndividualAddressKanji, + AccountCreateParamsIndividualDob as AccountCreateParamsIndividualDob, + AccountCreateParamsIndividualRegisteredAddress as AccountCreateParamsIndividualRegisteredAddress, + AccountCreateParamsIndividualRelationship as AccountCreateParamsIndividualRelationship, + AccountCreateParamsIndividualVerification as AccountCreateParamsIndividualVerification, + AccountCreateParamsIndividualVerificationAdditionalDocument as AccountCreateParamsIndividualVerificationAdditionalDocument, + AccountCreateParamsIndividualVerificationDocument as AccountCreateParamsIndividualVerificationDocument, + AccountCreateParamsSettings as AccountCreateParamsSettings, + AccountCreateParamsSettingsBacsDebitPayments as AccountCreateParamsSettingsBacsDebitPayments, + AccountCreateParamsSettingsBranding as AccountCreateParamsSettingsBranding, + AccountCreateParamsSettingsCardIssuing as AccountCreateParamsSettingsCardIssuing, + AccountCreateParamsSettingsCardIssuingTosAcceptance as AccountCreateParamsSettingsCardIssuingTosAcceptance, + AccountCreateParamsSettingsCardPayments as AccountCreateParamsSettingsCardPayments, + AccountCreateParamsSettingsCardPaymentsDeclineOn as AccountCreateParamsSettingsCardPaymentsDeclineOn, + AccountCreateParamsSettingsInvoices as AccountCreateParamsSettingsInvoices, + AccountCreateParamsSettingsPayments as AccountCreateParamsSettingsPayments, + AccountCreateParamsSettingsPayouts as AccountCreateParamsSettingsPayouts, + AccountCreateParamsSettingsPayoutsSchedule as AccountCreateParamsSettingsPayoutsSchedule, + AccountCreateParamsSettingsTreasury as AccountCreateParamsSettingsTreasury, + AccountCreateParamsSettingsTreasuryTosAcceptance as AccountCreateParamsSettingsTreasuryTosAcceptance, + AccountCreateParamsTosAcceptance as AccountCreateParamsTosAcceptance, + ) + from stripe.params._account_create_person_params import ( + AccountCreatePersonParams as AccountCreatePersonParams, + AccountCreatePersonParamsAdditionalTosAcceptances as AccountCreatePersonParamsAdditionalTosAcceptances, + AccountCreatePersonParamsAdditionalTosAcceptancesAccount as AccountCreatePersonParamsAdditionalTosAcceptancesAccount, + AccountCreatePersonParamsAddress as AccountCreatePersonParamsAddress, + AccountCreatePersonParamsAddressKana as AccountCreatePersonParamsAddressKana, + AccountCreatePersonParamsAddressKanji as AccountCreatePersonParamsAddressKanji, + AccountCreatePersonParamsDob as AccountCreatePersonParamsDob, + AccountCreatePersonParamsDocuments as AccountCreatePersonParamsDocuments, + AccountCreatePersonParamsDocumentsCompanyAuthorization as AccountCreatePersonParamsDocumentsCompanyAuthorization, + AccountCreatePersonParamsDocumentsPassport as AccountCreatePersonParamsDocumentsPassport, + AccountCreatePersonParamsDocumentsVisa as AccountCreatePersonParamsDocumentsVisa, + AccountCreatePersonParamsRegisteredAddress as AccountCreatePersonParamsRegisteredAddress, + AccountCreatePersonParamsRelationship as AccountCreatePersonParamsRelationship, + AccountCreatePersonParamsUsCfpbData as AccountCreatePersonParamsUsCfpbData, + AccountCreatePersonParamsUsCfpbDataEthnicityDetails as AccountCreatePersonParamsUsCfpbDataEthnicityDetails, + AccountCreatePersonParamsUsCfpbDataRaceDetails as AccountCreatePersonParamsUsCfpbDataRaceDetails, + AccountCreatePersonParamsVerification as AccountCreatePersonParamsVerification, + AccountCreatePersonParamsVerificationAdditionalDocument as AccountCreatePersonParamsVerificationAdditionalDocument, + AccountCreatePersonParamsVerificationDocument as AccountCreatePersonParamsVerificationDocument, + ) + from stripe.params._account_delete_external_account_params import ( + AccountDeleteExternalAccountParams as AccountDeleteExternalAccountParams, + ) + from stripe.params._account_delete_params import ( + AccountDeleteParams as AccountDeleteParams, + ) + from stripe.params._account_delete_person_params import ( + AccountDeletePersonParams as AccountDeletePersonParams, + ) + from stripe.params._account_external_account_create_params import ( + AccountExternalAccountCreateParams as AccountExternalAccountCreateParams, + AccountExternalAccountCreateParamsBankAccount as AccountExternalAccountCreateParamsBankAccount, + AccountExternalAccountCreateParamsCard as AccountExternalAccountCreateParamsCard, + AccountExternalAccountCreateParamsCardToken as AccountExternalAccountCreateParamsCardToken, + ) + from stripe.params._account_external_account_delete_params import ( + AccountExternalAccountDeleteParams as AccountExternalAccountDeleteParams, + ) + from stripe.params._account_external_account_list_params import ( + AccountExternalAccountListParams as AccountExternalAccountListParams, + ) + from stripe.params._account_external_account_retrieve_params import ( + AccountExternalAccountRetrieveParams as AccountExternalAccountRetrieveParams, + ) + from stripe.params._account_external_account_update_params import ( + AccountExternalAccountUpdateParams as AccountExternalAccountUpdateParams, + AccountExternalAccountUpdateParamsDocuments as AccountExternalAccountUpdateParamsDocuments, + AccountExternalAccountUpdateParamsDocumentsBankAccountOwnershipVerification as AccountExternalAccountUpdateParamsDocumentsBankAccountOwnershipVerification, + ) + from stripe.params._account_link_create_params import ( + AccountLinkCreateParams as AccountLinkCreateParams, + AccountLinkCreateParamsCollectionOptions as AccountLinkCreateParamsCollectionOptions, + ) + from stripe.params._account_list_capabilities_params import ( + AccountListCapabilitiesParams as AccountListCapabilitiesParams, + ) + from stripe.params._account_list_external_accounts_params import ( + AccountListExternalAccountsParams as AccountListExternalAccountsParams, + ) + from stripe.params._account_list_params import ( + AccountListParams as AccountListParams, + AccountListParamsCreated as AccountListParamsCreated, + ) + from stripe.params._account_list_persons_params import ( + AccountListPersonsParams as AccountListPersonsParams, + AccountListPersonsParamsRelationship as AccountListPersonsParamsRelationship, + ) + from stripe.params._account_login_link_create_params import ( + AccountLoginLinkCreateParams as AccountLoginLinkCreateParams, + ) + from stripe.params._account_modify_capability_params import ( + AccountModifyCapabilityParams as AccountModifyCapabilityParams, + ) + from stripe.params._account_modify_external_account_params import ( + AccountModifyExternalAccountParams as AccountModifyExternalAccountParams, + AccountModifyExternalAccountParamsDocuments as AccountModifyExternalAccountParamsDocuments, + AccountModifyExternalAccountParamsDocumentsBankAccountOwnershipVerification as AccountModifyExternalAccountParamsDocumentsBankAccountOwnershipVerification, + ) + from stripe.params._account_modify_person_params import ( + AccountModifyPersonParams as AccountModifyPersonParams, + AccountModifyPersonParamsAdditionalTosAcceptances as AccountModifyPersonParamsAdditionalTosAcceptances, + AccountModifyPersonParamsAdditionalTosAcceptancesAccount as AccountModifyPersonParamsAdditionalTosAcceptancesAccount, + AccountModifyPersonParamsAddress as AccountModifyPersonParamsAddress, + AccountModifyPersonParamsAddressKana as AccountModifyPersonParamsAddressKana, + AccountModifyPersonParamsAddressKanji as AccountModifyPersonParamsAddressKanji, + AccountModifyPersonParamsDob as AccountModifyPersonParamsDob, + AccountModifyPersonParamsDocuments as AccountModifyPersonParamsDocuments, + AccountModifyPersonParamsDocumentsCompanyAuthorization as AccountModifyPersonParamsDocumentsCompanyAuthorization, + AccountModifyPersonParamsDocumentsPassport as AccountModifyPersonParamsDocumentsPassport, + AccountModifyPersonParamsDocumentsVisa as AccountModifyPersonParamsDocumentsVisa, + AccountModifyPersonParamsRegisteredAddress as AccountModifyPersonParamsRegisteredAddress, + AccountModifyPersonParamsRelationship as AccountModifyPersonParamsRelationship, + AccountModifyPersonParamsUsCfpbData as AccountModifyPersonParamsUsCfpbData, + AccountModifyPersonParamsUsCfpbDataEthnicityDetails as AccountModifyPersonParamsUsCfpbDataEthnicityDetails, + AccountModifyPersonParamsUsCfpbDataRaceDetails as AccountModifyPersonParamsUsCfpbDataRaceDetails, + AccountModifyPersonParamsVerification as AccountModifyPersonParamsVerification, + AccountModifyPersonParamsVerificationAdditionalDocument as AccountModifyPersonParamsVerificationAdditionalDocument, + AccountModifyPersonParamsVerificationDocument as AccountModifyPersonParamsVerificationDocument, + ) + from stripe.params._account_person_create_params import ( + AccountPersonCreateParams as AccountPersonCreateParams, + AccountPersonCreateParamsAdditionalTosAcceptances as AccountPersonCreateParamsAdditionalTosAcceptances, + AccountPersonCreateParamsAdditionalTosAcceptancesAccount as AccountPersonCreateParamsAdditionalTosAcceptancesAccount, + AccountPersonCreateParamsAddress as AccountPersonCreateParamsAddress, + AccountPersonCreateParamsAddressKana as AccountPersonCreateParamsAddressKana, + AccountPersonCreateParamsAddressKanji as AccountPersonCreateParamsAddressKanji, + AccountPersonCreateParamsDob as AccountPersonCreateParamsDob, + AccountPersonCreateParamsDocuments as AccountPersonCreateParamsDocuments, + AccountPersonCreateParamsDocumentsCompanyAuthorization as AccountPersonCreateParamsDocumentsCompanyAuthorization, + AccountPersonCreateParamsDocumentsPassport as AccountPersonCreateParamsDocumentsPassport, + AccountPersonCreateParamsDocumentsVisa as AccountPersonCreateParamsDocumentsVisa, + AccountPersonCreateParamsRegisteredAddress as AccountPersonCreateParamsRegisteredAddress, + AccountPersonCreateParamsRelationship as AccountPersonCreateParamsRelationship, + AccountPersonCreateParamsUsCfpbData as AccountPersonCreateParamsUsCfpbData, + AccountPersonCreateParamsUsCfpbDataEthnicityDetails as AccountPersonCreateParamsUsCfpbDataEthnicityDetails, + AccountPersonCreateParamsUsCfpbDataRaceDetails as AccountPersonCreateParamsUsCfpbDataRaceDetails, + AccountPersonCreateParamsVerification as AccountPersonCreateParamsVerification, + AccountPersonCreateParamsVerificationAdditionalDocument as AccountPersonCreateParamsVerificationAdditionalDocument, + AccountPersonCreateParamsVerificationDocument as AccountPersonCreateParamsVerificationDocument, + ) + from stripe.params._account_person_delete_params import ( + AccountPersonDeleteParams as AccountPersonDeleteParams, + ) + from stripe.params._account_person_list_params import ( + AccountPersonListParams as AccountPersonListParams, + AccountPersonListParamsRelationship as AccountPersonListParamsRelationship, + ) + from stripe.params._account_person_retrieve_params import ( + AccountPersonRetrieveParams as AccountPersonRetrieveParams, + ) + from stripe.params._account_person_update_params import ( + AccountPersonUpdateParams as AccountPersonUpdateParams, + AccountPersonUpdateParamsAdditionalTosAcceptances as AccountPersonUpdateParamsAdditionalTosAcceptances, + AccountPersonUpdateParamsAdditionalTosAcceptancesAccount as AccountPersonUpdateParamsAdditionalTosAcceptancesAccount, + AccountPersonUpdateParamsAddress as AccountPersonUpdateParamsAddress, + AccountPersonUpdateParamsAddressKana as AccountPersonUpdateParamsAddressKana, + AccountPersonUpdateParamsAddressKanji as AccountPersonUpdateParamsAddressKanji, + AccountPersonUpdateParamsDob as AccountPersonUpdateParamsDob, + AccountPersonUpdateParamsDocuments as AccountPersonUpdateParamsDocuments, + AccountPersonUpdateParamsDocumentsCompanyAuthorization as AccountPersonUpdateParamsDocumentsCompanyAuthorization, + AccountPersonUpdateParamsDocumentsPassport as AccountPersonUpdateParamsDocumentsPassport, + AccountPersonUpdateParamsDocumentsVisa as AccountPersonUpdateParamsDocumentsVisa, + AccountPersonUpdateParamsRegisteredAddress as AccountPersonUpdateParamsRegisteredAddress, + AccountPersonUpdateParamsRelationship as AccountPersonUpdateParamsRelationship, + AccountPersonUpdateParamsUsCfpbData as AccountPersonUpdateParamsUsCfpbData, + AccountPersonUpdateParamsUsCfpbDataEthnicityDetails as AccountPersonUpdateParamsUsCfpbDataEthnicityDetails, + AccountPersonUpdateParamsUsCfpbDataRaceDetails as AccountPersonUpdateParamsUsCfpbDataRaceDetails, + AccountPersonUpdateParamsVerification as AccountPersonUpdateParamsVerification, + AccountPersonUpdateParamsVerificationAdditionalDocument as AccountPersonUpdateParamsVerificationAdditionalDocument, + AccountPersonUpdateParamsVerificationDocument as AccountPersonUpdateParamsVerificationDocument, + ) + from stripe.params._account_persons_params import ( + AccountPersonsParams as AccountPersonsParams, + AccountPersonsParamsRelationship as AccountPersonsParamsRelationship, + ) + from stripe.params._account_reject_params import ( + AccountRejectParams as AccountRejectParams, + ) + from stripe.params._account_retrieve_capability_params import ( + AccountRetrieveCapabilityParams as AccountRetrieveCapabilityParams, + ) + from stripe.params._account_retrieve_current_params import ( + AccountRetrieveCurrentParams as AccountRetrieveCurrentParams, + ) + from stripe.params._account_retrieve_external_account_params import ( + AccountRetrieveExternalAccountParams as AccountRetrieveExternalAccountParams, + ) + from stripe.params._account_retrieve_params import ( + AccountRetrieveParams as AccountRetrieveParams, + ) + from stripe.params._account_retrieve_person_params import ( + AccountRetrievePersonParams as AccountRetrievePersonParams, + ) + from stripe.params._account_session_create_params import ( + AccountSessionCreateParams as AccountSessionCreateParams, + AccountSessionCreateParamsComponents as AccountSessionCreateParamsComponents, + AccountSessionCreateParamsComponentsAccountManagement as AccountSessionCreateParamsComponentsAccountManagement, + AccountSessionCreateParamsComponentsAccountManagementFeatures as AccountSessionCreateParamsComponentsAccountManagementFeatures, + AccountSessionCreateParamsComponentsAccountOnboarding as AccountSessionCreateParamsComponentsAccountOnboarding, + AccountSessionCreateParamsComponentsAccountOnboardingFeatures as AccountSessionCreateParamsComponentsAccountOnboardingFeatures, + AccountSessionCreateParamsComponentsBalances as AccountSessionCreateParamsComponentsBalances, + AccountSessionCreateParamsComponentsBalancesFeatures as AccountSessionCreateParamsComponentsBalancesFeatures, + AccountSessionCreateParamsComponentsDisputesList as AccountSessionCreateParamsComponentsDisputesList, + AccountSessionCreateParamsComponentsDisputesListFeatures as AccountSessionCreateParamsComponentsDisputesListFeatures, + AccountSessionCreateParamsComponentsDocuments as AccountSessionCreateParamsComponentsDocuments, + AccountSessionCreateParamsComponentsDocumentsFeatures as AccountSessionCreateParamsComponentsDocumentsFeatures, + AccountSessionCreateParamsComponentsFinancialAccount as AccountSessionCreateParamsComponentsFinancialAccount, + AccountSessionCreateParamsComponentsFinancialAccountFeatures as AccountSessionCreateParamsComponentsFinancialAccountFeatures, + AccountSessionCreateParamsComponentsFinancialAccountTransactions as AccountSessionCreateParamsComponentsFinancialAccountTransactions, + AccountSessionCreateParamsComponentsFinancialAccountTransactionsFeatures as AccountSessionCreateParamsComponentsFinancialAccountTransactionsFeatures, + AccountSessionCreateParamsComponentsInstantPayoutsPromotion as AccountSessionCreateParamsComponentsInstantPayoutsPromotion, + AccountSessionCreateParamsComponentsInstantPayoutsPromotionFeatures as AccountSessionCreateParamsComponentsInstantPayoutsPromotionFeatures, + AccountSessionCreateParamsComponentsIssuingCard as AccountSessionCreateParamsComponentsIssuingCard, + AccountSessionCreateParamsComponentsIssuingCardFeatures as AccountSessionCreateParamsComponentsIssuingCardFeatures, + AccountSessionCreateParamsComponentsIssuingCardsList as AccountSessionCreateParamsComponentsIssuingCardsList, + AccountSessionCreateParamsComponentsIssuingCardsListFeatures as AccountSessionCreateParamsComponentsIssuingCardsListFeatures, + AccountSessionCreateParamsComponentsNotificationBanner as AccountSessionCreateParamsComponentsNotificationBanner, + AccountSessionCreateParamsComponentsNotificationBannerFeatures as AccountSessionCreateParamsComponentsNotificationBannerFeatures, + AccountSessionCreateParamsComponentsPaymentDetails as AccountSessionCreateParamsComponentsPaymentDetails, + AccountSessionCreateParamsComponentsPaymentDetailsFeatures as AccountSessionCreateParamsComponentsPaymentDetailsFeatures, + AccountSessionCreateParamsComponentsPaymentDisputes as AccountSessionCreateParamsComponentsPaymentDisputes, + AccountSessionCreateParamsComponentsPaymentDisputesFeatures as AccountSessionCreateParamsComponentsPaymentDisputesFeatures, + AccountSessionCreateParamsComponentsPayments as AccountSessionCreateParamsComponentsPayments, + AccountSessionCreateParamsComponentsPaymentsFeatures as AccountSessionCreateParamsComponentsPaymentsFeatures, + AccountSessionCreateParamsComponentsPayoutDetails as AccountSessionCreateParamsComponentsPayoutDetails, + AccountSessionCreateParamsComponentsPayoutDetailsFeatures as AccountSessionCreateParamsComponentsPayoutDetailsFeatures, + AccountSessionCreateParamsComponentsPayouts as AccountSessionCreateParamsComponentsPayouts, + AccountSessionCreateParamsComponentsPayoutsFeatures as AccountSessionCreateParamsComponentsPayoutsFeatures, + AccountSessionCreateParamsComponentsPayoutsList as AccountSessionCreateParamsComponentsPayoutsList, + AccountSessionCreateParamsComponentsPayoutsListFeatures as AccountSessionCreateParamsComponentsPayoutsListFeatures, + AccountSessionCreateParamsComponentsTaxRegistrations as AccountSessionCreateParamsComponentsTaxRegistrations, + AccountSessionCreateParamsComponentsTaxRegistrationsFeatures as AccountSessionCreateParamsComponentsTaxRegistrationsFeatures, + AccountSessionCreateParamsComponentsTaxSettings as AccountSessionCreateParamsComponentsTaxSettings, + AccountSessionCreateParamsComponentsTaxSettingsFeatures as AccountSessionCreateParamsComponentsTaxSettingsFeatures, + ) + from stripe.params._account_update_params import ( + AccountUpdateParams as AccountUpdateParams, + AccountUpdateParamsBankAccount as AccountUpdateParamsBankAccount, + AccountUpdateParamsBusinessProfile as AccountUpdateParamsBusinessProfile, + AccountUpdateParamsBusinessProfileAnnualRevenue as AccountUpdateParamsBusinessProfileAnnualRevenue, + AccountUpdateParamsBusinessProfileMonthlyEstimatedRevenue as AccountUpdateParamsBusinessProfileMonthlyEstimatedRevenue, + AccountUpdateParamsBusinessProfileSupportAddress as AccountUpdateParamsBusinessProfileSupportAddress, + AccountUpdateParamsCapabilities as AccountUpdateParamsCapabilities, + AccountUpdateParamsCapabilitiesAcssDebitPayments as AccountUpdateParamsCapabilitiesAcssDebitPayments, + AccountUpdateParamsCapabilitiesAffirmPayments as AccountUpdateParamsCapabilitiesAffirmPayments, + AccountUpdateParamsCapabilitiesAfterpayClearpayPayments as AccountUpdateParamsCapabilitiesAfterpayClearpayPayments, + AccountUpdateParamsCapabilitiesAlmaPayments as AccountUpdateParamsCapabilitiesAlmaPayments, + AccountUpdateParamsCapabilitiesAmazonPayPayments as AccountUpdateParamsCapabilitiesAmazonPayPayments, + AccountUpdateParamsCapabilitiesAuBecsDebitPayments as AccountUpdateParamsCapabilitiesAuBecsDebitPayments, + AccountUpdateParamsCapabilitiesBacsDebitPayments as AccountUpdateParamsCapabilitiesBacsDebitPayments, + AccountUpdateParamsCapabilitiesBancontactPayments as AccountUpdateParamsCapabilitiesBancontactPayments, + AccountUpdateParamsCapabilitiesBankTransferPayments as AccountUpdateParamsCapabilitiesBankTransferPayments, + AccountUpdateParamsCapabilitiesBilliePayments as AccountUpdateParamsCapabilitiesBilliePayments, + AccountUpdateParamsCapabilitiesBlikPayments as AccountUpdateParamsCapabilitiesBlikPayments, + AccountUpdateParamsCapabilitiesBoletoPayments as AccountUpdateParamsCapabilitiesBoletoPayments, + AccountUpdateParamsCapabilitiesCardIssuing as AccountUpdateParamsCapabilitiesCardIssuing, + AccountUpdateParamsCapabilitiesCardPayments as AccountUpdateParamsCapabilitiesCardPayments, + AccountUpdateParamsCapabilitiesCartesBancairesPayments as AccountUpdateParamsCapabilitiesCartesBancairesPayments, + AccountUpdateParamsCapabilitiesCashappPayments as AccountUpdateParamsCapabilitiesCashappPayments, + AccountUpdateParamsCapabilitiesCryptoPayments as AccountUpdateParamsCapabilitiesCryptoPayments, + AccountUpdateParamsCapabilitiesEpsPayments as AccountUpdateParamsCapabilitiesEpsPayments, + AccountUpdateParamsCapabilitiesFpxPayments as AccountUpdateParamsCapabilitiesFpxPayments, + AccountUpdateParamsCapabilitiesGbBankTransferPayments as AccountUpdateParamsCapabilitiesGbBankTransferPayments, + AccountUpdateParamsCapabilitiesGiropayPayments as AccountUpdateParamsCapabilitiesGiropayPayments, + AccountUpdateParamsCapabilitiesGrabpayPayments as AccountUpdateParamsCapabilitiesGrabpayPayments, + AccountUpdateParamsCapabilitiesIdealPayments as AccountUpdateParamsCapabilitiesIdealPayments, + AccountUpdateParamsCapabilitiesIndiaInternationalPayments as AccountUpdateParamsCapabilitiesIndiaInternationalPayments, + AccountUpdateParamsCapabilitiesJcbPayments as AccountUpdateParamsCapabilitiesJcbPayments, + AccountUpdateParamsCapabilitiesJpBankTransferPayments as AccountUpdateParamsCapabilitiesJpBankTransferPayments, + AccountUpdateParamsCapabilitiesKakaoPayPayments as AccountUpdateParamsCapabilitiesKakaoPayPayments, + AccountUpdateParamsCapabilitiesKlarnaPayments as AccountUpdateParamsCapabilitiesKlarnaPayments, + AccountUpdateParamsCapabilitiesKonbiniPayments as AccountUpdateParamsCapabilitiesKonbiniPayments, + AccountUpdateParamsCapabilitiesKrCardPayments as AccountUpdateParamsCapabilitiesKrCardPayments, + AccountUpdateParamsCapabilitiesLegacyPayments as AccountUpdateParamsCapabilitiesLegacyPayments, + AccountUpdateParamsCapabilitiesLinkPayments as AccountUpdateParamsCapabilitiesLinkPayments, + AccountUpdateParamsCapabilitiesMbWayPayments as AccountUpdateParamsCapabilitiesMbWayPayments, + AccountUpdateParamsCapabilitiesMobilepayPayments as AccountUpdateParamsCapabilitiesMobilepayPayments, + AccountUpdateParamsCapabilitiesMultibancoPayments as AccountUpdateParamsCapabilitiesMultibancoPayments, + AccountUpdateParamsCapabilitiesMxBankTransferPayments as AccountUpdateParamsCapabilitiesMxBankTransferPayments, + AccountUpdateParamsCapabilitiesNaverPayPayments as AccountUpdateParamsCapabilitiesNaverPayPayments, + AccountUpdateParamsCapabilitiesNzBankAccountBecsDebitPayments as AccountUpdateParamsCapabilitiesNzBankAccountBecsDebitPayments, + AccountUpdateParamsCapabilitiesOxxoPayments as AccountUpdateParamsCapabilitiesOxxoPayments, + AccountUpdateParamsCapabilitiesP24Payments as AccountUpdateParamsCapabilitiesP24Payments, + AccountUpdateParamsCapabilitiesPayByBankPayments as AccountUpdateParamsCapabilitiesPayByBankPayments, + AccountUpdateParamsCapabilitiesPaycoPayments as AccountUpdateParamsCapabilitiesPaycoPayments, + AccountUpdateParamsCapabilitiesPaynowPayments as AccountUpdateParamsCapabilitiesPaynowPayments, + AccountUpdateParamsCapabilitiesPixPayments as AccountUpdateParamsCapabilitiesPixPayments, + AccountUpdateParamsCapabilitiesPromptpayPayments as AccountUpdateParamsCapabilitiesPromptpayPayments, + AccountUpdateParamsCapabilitiesRevolutPayPayments as AccountUpdateParamsCapabilitiesRevolutPayPayments, + AccountUpdateParamsCapabilitiesSamsungPayPayments as AccountUpdateParamsCapabilitiesSamsungPayPayments, + AccountUpdateParamsCapabilitiesSatispayPayments as AccountUpdateParamsCapabilitiesSatispayPayments, + AccountUpdateParamsCapabilitiesSepaBankTransferPayments as AccountUpdateParamsCapabilitiesSepaBankTransferPayments, + AccountUpdateParamsCapabilitiesSepaDebitPayments as AccountUpdateParamsCapabilitiesSepaDebitPayments, + AccountUpdateParamsCapabilitiesSofortPayments as AccountUpdateParamsCapabilitiesSofortPayments, + AccountUpdateParamsCapabilitiesSwishPayments as AccountUpdateParamsCapabilitiesSwishPayments, + AccountUpdateParamsCapabilitiesTaxReportingUs1099K as AccountUpdateParamsCapabilitiesTaxReportingUs1099K, + AccountUpdateParamsCapabilitiesTaxReportingUs1099Misc as AccountUpdateParamsCapabilitiesTaxReportingUs1099Misc, + AccountUpdateParamsCapabilitiesTransfers as AccountUpdateParamsCapabilitiesTransfers, + AccountUpdateParamsCapabilitiesTreasury as AccountUpdateParamsCapabilitiesTreasury, + AccountUpdateParamsCapabilitiesTwintPayments as AccountUpdateParamsCapabilitiesTwintPayments, + AccountUpdateParamsCapabilitiesUsBankAccountAchPayments as AccountUpdateParamsCapabilitiesUsBankAccountAchPayments, + AccountUpdateParamsCapabilitiesUsBankTransferPayments as AccountUpdateParamsCapabilitiesUsBankTransferPayments, + AccountUpdateParamsCapabilitiesZipPayments as AccountUpdateParamsCapabilitiesZipPayments, + AccountUpdateParamsCard as AccountUpdateParamsCard, + AccountUpdateParamsCardToken as AccountUpdateParamsCardToken, + AccountUpdateParamsCompany as AccountUpdateParamsCompany, + AccountUpdateParamsCompanyAddress as AccountUpdateParamsCompanyAddress, + AccountUpdateParamsCompanyAddressKana as AccountUpdateParamsCompanyAddressKana, + AccountUpdateParamsCompanyAddressKanji as AccountUpdateParamsCompanyAddressKanji, + AccountUpdateParamsCompanyDirectorshipDeclaration as AccountUpdateParamsCompanyDirectorshipDeclaration, + AccountUpdateParamsCompanyOwnershipDeclaration as AccountUpdateParamsCompanyOwnershipDeclaration, + AccountUpdateParamsCompanyRegistrationDate as AccountUpdateParamsCompanyRegistrationDate, + AccountUpdateParamsCompanyRepresentativeDeclaration as AccountUpdateParamsCompanyRepresentativeDeclaration, + AccountUpdateParamsCompanyVerification as AccountUpdateParamsCompanyVerification, + AccountUpdateParamsCompanyVerificationDocument as AccountUpdateParamsCompanyVerificationDocument, + AccountUpdateParamsDocuments as AccountUpdateParamsDocuments, + AccountUpdateParamsDocumentsBankAccountOwnershipVerification as AccountUpdateParamsDocumentsBankAccountOwnershipVerification, + AccountUpdateParamsDocumentsCompanyLicense as AccountUpdateParamsDocumentsCompanyLicense, + AccountUpdateParamsDocumentsCompanyMemorandumOfAssociation as AccountUpdateParamsDocumentsCompanyMemorandumOfAssociation, + AccountUpdateParamsDocumentsCompanyMinisterialDecree as AccountUpdateParamsDocumentsCompanyMinisterialDecree, + AccountUpdateParamsDocumentsCompanyRegistrationVerification as AccountUpdateParamsDocumentsCompanyRegistrationVerification, + AccountUpdateParamsDocumentsCompanyTaxIdVerification as AccountUpdateParamsDocumentsCompanyTaxIdVerification, + AccountUpdateParamsDocumentsProofOfAddress as AccountUpdateParamsDocumentsProofOfAddress, + AccountUpdateParamsDocumentsProofOfRegistration as AccountUpdateParamsDocumentsProofOfRegistration, + AccountUpdateParamsDocumentsProofOfUltimateBeneficialOwnership as AccountUpdateParamsDocumentsProofOfUltimateBeneficialOwnership, + AccountUpdateParamsGroups as AccountUpdateParamsGroups, + AccountUpdateParamsIndividual as AccountUpdateParamsIndividual, + AccountUpdateParamsIndividualAddress as AccountUpdateParamsIndividualAddress, + AccountUpdateParamsIndividualAddressKana as AccountUpdateParamsIndividualAddressKana, + AccountUpdateParamsIndividualAddressKanji as AccountUpdateParamsIndividualAddressKanji, + AccountUpdateParamsIndividualDob as AccountUpdateParamsIndividualDob, + AccountUpdateParamsIndividualRegisteredAddress as AccountUpdateParamsIndividualRegisteredAddress, + AccountUpdateParamsIndividualRelationship as AccountUpdateParamsIndividualRelationship, + AccountUpdateParamsIndividualVerification as AccountUpdateParamsIndividualVerification, + AccountUpdateParamsIndividualVerificationAdditionalDocument as AccountUpdateParamsIndividualVerificationAdditionalDocument, + AccountUpdateParamsIndividualVerificationDocument as AccountUpdateParamsIndividualVerificationDocument, + AccountUpdateParamsSettings as AccountUpdateParamsSettings, + AccountUpdateParamsSettingsBacsDebitPayments as AccountUpdateParamsSettingsBacsDebitPayments, + AccountUpdateParamsSettingsBranding as AccountUpdateParamsSettingsBranding, + AccountUpdateParamsSettingsCardIssuing as AccountUpdateParamsSettingsCardIssuing, + AccountUpdateParamsSettingsCardIssuingTosAcceptance as AccountUpdateParamsSettingsCardIssuingTosAcceptance, + AccountUpdateParamsSettingsCardPayments as AccountUpdateParamsSettingsCardPayments, + AccountUpdateParamsSettingsCardPaymentsDeclineOn as AccountUpdateParamsSettingsCardPaymentsDeclineOn, + AccountUpdateParamsSettingsInvoices as AccountUpdateParamsSettingsInvoices, + AccountUpdateParamsSettingsPayments as AccountUpdateParamsSettingsPayments, + AccountUpdateParamsSettingsPayouts as AccountUpdateParamsSettingsPayouts, + AccountUpdateParamsSettingsPayoutsSchedule as AccountUpdateParamsSettingsPayoutsSchedule, + AccountUpdateParamsSettingsTreasury as AccountUpdateParamsSettingsTreasury, + AccountUpdateParamsSettingsTreasuryTosAcceptance as AccountUpdateParamsSettingsTreasuryTosAcceptance, + AccountUpdateParamsTosAcceptance as AccountUpdateParamsTosAcceptance, + ) + from stripe.params._apple_pay_domain_create_params import ( + ApplePayDomainCreateParams as ApplePayDomainCreateParams, + ) + from stripe.params._apple_pay_domain_delete_params import ( + ApplePayDomainDeleteParams as ApplePayDomainDeleteParams, + ) + from stripe.params._apple_pay_domain_list_params import ( + ApplePayDomainListParams as ApplePayDomainListParams, + ) + from stripe.params._apple_pay_domain_retrieve_params import ( + ApplePayDomainRetrieveParams as ApplePayDomainRetrieveParams, + ) + from stripe.params._application_fee_create_refund_params import ( + ApplicationFeeCreateRefundParams as ApplicationFeeCreateRefundParams, + ) + from stripe.params._application_fee_list_params import ( + ApplicationFeeListParams as ApplicationFeeListParams, + ApplicationFeeListParamsCreated as ApplicationFeeListParamsCreated, + ) + from stripe.params._application_fee_list_refunds_params import ( + ApplicationFeeListRefundsParams as ApplicationFeeListRefundsParams, + ) + from stripe.params._application_fee_modify_refund_params import ( + ApplicationFeeModifyRefundParams as ApplicationFeeModifyRefundParams, + ) + from stripe.params._application_fee_refund_create_params import ( + ApplicationFeeRefundCreateParams as ApplicationFeeRefundCreateParams, + ) + from stripe.params._application_fee_refund_list_params import ( + ApplicationFeeRefundListParams as ApplicationFeeRefundListParams, + ) + from stripe.params._application_fee_refund_params import ( + ApplicationFeeRefundParams as ApplicationFeeRefundParams, + ) + from stripe.params._application_fee_refund_retrieve_params import ( + ApplicationFeeRefundRetrieveParams as ApplicationFeeRefundRetrieveParams, + ) + from stripe.params._application_fee_refund_update_params import ( + ApplicationFeeRefundUpdateParams as ApplicationFeeRefundUpdateParams, + ) + from stripe.params._application_fee_retrieve_params import ( + ApplicationFeeRetrieveParams as ApplicationFeeRetrieveParams, + ) + from stripe.params._application_fee_retrieve_refund_params import ( + ApplicationFeeRetrieveRefundParams as ApplicationFeeRetrieveRefundParams, + ) + from stripe.params._balance_retrieve_params import ( + BalanceRetrieveParams as BalanceRetrieveParams, + ) + from stripe.params._balance_settings_modify_params import ( + BalanceSettingsModifyParams as BalanceSettingsModifyParams, + BalanceSettingsModifyParamsPayments as BalanceSettingsModifyParamsPayments, + BalanceSettingsModifyParamsPaymentsPayouts as BalanceSettingsModifyParamsPaymentsPayouts, + BalanceSettingsModifyParamsPaymentsPayoutsSchedule as BalanceSettingsModifyParamsPaymentsPayoutsSchedule, + BalanceSettingsModifyParamsPaymentsSettlementTiming as BalanceSettingsModifyParamsPaymentsSettlementTiming, + ) + from stripe.params._balance_settings_retrieve_params import ( + BalanceSettingsRetrieveParams as BalanceSettingsRetrieveParams, + ) + from stripe.params._balance_settings_update_params import ( + BalanceSettingsUpdateParams as BalanceSettingsUpdateParams, + BalanceSettingsUpdateParamsPayments as BalanceSettingsUpdateParamsPayments, + BalanceSettingsUpdateParamsPaymentsPayouts as BalanceSettingsUpdateParamsPaymentsPayouts, + BalanceSettingsUpdateParamsPaymentsPayoutsSchedule as BalanceSettingsUpdateParamsPaymentsPayoutsSchedule, + BalanceSettingsUpdateParamsPaymentsSettlementTiming as BalanceSettingsUpdateParamsPaymentsSettlementTiming, + ) + from stripe.params._balance_transaction_list_params import ( + BalanceTransactionListParams as BalanceTransactionListParams, + BalanceTransactionListParamsCreated as BalanceTransactionListParamsCreated, + ) + from stripe.params._balance_transaction_retrieve_params import ( + BalanceTransactionRetrieveParams as BalanceTransactionRetrieveParams, + ) + from stripe.params._bank_account_delete_params import ( + BankAccountDeleteParams as BankAccountDeleteParams, + ) + from stripe.params._card_delete_params import ( + CardDeleteParams as CardDeleteParams, + ) + from stripe.params._charge_capture_params import ( + ChargeCaptureParams as ChargeCaptureParams, + ChargeCaptureParamsTransferData as ChargeCaptureParamsTransferData, + ) + from stripe.params._charge_create_params import ( + ChargeCreateParams as ChargeCreateParams, + ChargeCreateParamsDestination as ChargeCreateParamsDestination, + ChargeCreateParamsRadarOptions as ChargeCreateParamsRadarOptions, + ChargeCreateParamsShipping as ChargeCreateParamsShipping, + ChargeCreateParamsShippingAddress as ChargeCreateParamsShippingAddress, + ChargeCreateParamsTransferData as ChargeCreateParamsTransferData, + ) + from stripe.params._charge_list_params import ( + ChargeListParams as ChargeListParams, + ChargeListParamsCreated as ChargeListParamsCreated, + ) + from stripe.params._charge_list_refunds_params import ( + ChargeListRefundsParams as ChargeListRefundsParams, + ) + from stripe.params._charge_modify_params import ( + ChargeModifyParams as ChargeModifyParams, + ChargeModifyParamsFraudDetails as ChargeModifyParamsFraudDetails, + ChargeModifyParamsShipping as ChargeModifyParamsShipping, + ChargeModifyParamsShippingAddress as ChargeModifyParamsShippingAddress, + ) + from stripe.params._charge_retrieve_params import ( + ChargeRetrieveParams as ChargeRetrieveParams, + ) + from stripe.params._charge_retrieve_refund_params import ( + ChargeRetrieveRefundParams as ChargeRetrieveRefundParams, + ) + from stripe.params._charge_search_params import ( + ChargeSearchParams as ChargeSearchParams, + ) + from stripe.params._charge_update_params import ( + ChargeUpdateParams as ChargeUpdateParams, + ChargeUpdateParamsFraudDetails as ChargeUpdateParamsFraudDetails, + ChargeUpdateParamsShipping as ChargeUpdateParamsShipping, + ChargeUpdateParamsShippingAddress as ChargeUpdateParamsShippingAddress, + ) + from stripe.params._confirmation_token_create_params import ( + ConfirmationTokenCreateParams as ConfirmationTokenCreateParams, + ConfirmationTokenCreateParamsPaymentMethodData as ConfirmationTokenCreateParamsPaymentMethodData, + ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit as ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit, + ConfirmationTokenCreateParamsPaymentMethodDataAffirm as ConfirmationTokenCreateParamsPaymentMethodDataAffirm, + ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay as ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay, + ConfirmationTokenCreateParamsPaymentMethodDataAlipay as ConfirmationTokenCreateParamsPaymentMethodDataAlipay, + ConfirmationTokenCreateParamsPaymentMethodDataAlma as ConfirmationTokenCreateParamsPaymentMethodDataAlma, + ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay as ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay, + ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit as ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit, + ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit as ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit, + ConfirmationTokenCreateParamsPaymentMethodDataBancontact as ConfirmationTokenCreateParamsPaymentMethodDataBancontact, + ConfirmationTokenCreateParamsPaymentMethodDataBillie as ConfirmationTokenCreateParamsPaymentMethodDataBillie, + ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails as ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails, + ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress as ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress, + ConfirmationTokenCreateParamsPaymentMethodDataBlik as ConfirmationTokenCreateParamsPaymentMethodDataBlik, + ConfirmationTokenCreateParamsPaymentMethodDataBoleto as ConfirmationTokenCreateParamsPaymentMethodDataBoleto, + ConfirmationTokenCreateParamsPaymentMethodDataCashapp as ConfirmationTokenCreateParamsPaymentMethodDataCashapp, + ConfirmationTokenCreateParamsPaymentMethodDataCrypto as ConfirmationTokenCreateParamsPaymentMethodDataCrypto, + ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance as ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance, + ConfirmationTokenCreateParamsPaymentMethodDataEps as ConfirmationTokenCreateParamsPaymentMethodDataEps, + ConfirmationTokenCreateParamsPaymentMethodDataFpx as ConfirmationTokenCreateParamsPaymentMethodDataFpx, + ConfirmationTokenCreateParamsPaymentMethodDataGiropay as ConfirmationTokenCreateParamsPaymentMethodDataGiropay, + ConfirmationTokenCreateParamsPaymentMethodDataGrabpay as ConfirmationTokenCreateParamsPaymentMethodDataGrabpay, + ConfirmationTokenCreateParamsPaymentMethodDataIdeal as ConfirmationTokenCreateParamsPaymentMethodDataIdeal, + ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent as ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent, + ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay as ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay, + ConfirmationTokenCreateParamsPaymentMethodDataKlarna as ConfirmationTokenCreateParamsPaymentMethodDataKlarna, + ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob as ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob, + ConfirmationTokenCreateParamsPaymentMethodDataKonbini as ConfirmationTokenCreateParamsPaymentMethodDataKonbini, + ConfirmationTokenCreateParamsPaymentMethodDataKrCard as ConfirmationTokenCreateParamsPaymentMethodDataKrCard, + ConfirmationTokenCreateParamsPaymentMethodDataLink as ConfirmationTokenCreateParamsPaymentMethodDataLink, + ConfirmationTokenCreateParamsPaymentMethodDataMbWay as ConfirmationTokenCreateParamsPaymentMethodDataMbWay, + ConfirmationTokenCreateParamsPaymentMethodDataMobilepay as ConfirmationTokenCreateParamsPaymentMethodDataMobilepay, + ConfirmationTokenCreateParamsPaymentMethodDataMultibanco as ConfirmationTokenCreateParamsPaymentMethodDataMultibanco, + ConfirmationTokenCreateParamsPaymentMethodDataNaverPay as ConfirmationTokenCreateParamsPaymentMethodDataNaverPay, + ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount as ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount, + ConfirmationTokenCreateParamsPaymentMethodDataOxxo as ConfirmationTokenCreateParamsPaymentMethodDataOxxo, + ConfirmationTokenCreateParamsPaymentMethodDataP24 as ConfirmationTokenCreateParamsPaymentMethodDataP24, + ConfirmationTokenCreateParamsPaymentMethodDataPayByBank as ConfirmationTokenCreateParamsPaymentMethodDataPayByBank, + ConfirmationTokenCreateParamsPaymentMethodDataPayco as ConfirmationTokenCreateParamsPaymentMethodDataPayco, + ConfirmationTokenCreateParamsPaymentMethodDataPaynow as ConfirmationTokenCreateParamsPaymentMethodDataPaynow, + ConfirmationTokenCreateParamsPaymentMethodDataPaypal as ConfirmationTokenCreateParamsPaymentMethodDataPaypal, + ConfirmationTokenCreateParamsPaymentMethodDataPix as ConfirmationTokenCreateParamsPaymentMethodDataPix, + ConfirmationTokenCreateParamsPaymentMethodDataPromptpay as ConfirmationTokenCreateParamsPaymentMethodDataPromptpay, + ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions as ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions, + ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay as ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay, + ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay as ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay, + ConfirmationTokenCreateParamsPaymentMethodDataSatispay as ConfirmationTokenCreateParamsPaymentMethodDataSatispay, + ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit as ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit, + ConfirmationTokenCreateParamsPaymentMethodDataSofort as ConfirmationTokenCreateParamsPaymentMethodDataSofort, + ConfirmationTokenCreateParamsPaymentMethodDataSwish as ConfirmationTokenCreateParamsPaymentMethodDataSwish, + ConfirmationTokenCreateParamsPaymentMethodDataTwint as ConfirmationTokenCreateParamsPaymentMethodDataTwint, + ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount as ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount, + ConfirmationTokenCreateParamsPaymentMethodDataWechatPay as ConfirmationTokenCreateParamsPaymentMethodDataWechatPay, + ConfirmationTokenCreateParamsPaymentMethodDataZip as ConfirmationTokenCreateParamsPaymentMethodDataZip, + ConfirmationTokenCreateParamsPaymentMethodOptions as ConfirmationTokenCreateParamsPaymentMethodOptions, + ConfirmationTokenCreateParamsPaymentMethodOptionsCard as ConfirmationTokenCreateParamsPaymentMethodOptionsCard, + ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments as ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments, + ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan as ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan, + ConfirmationTokenCreateParamsShipping as ConfirmationTokenCreateParamsShipping, + ConfirmationTokenCreateParamsShippingAddress as ConfirmationTokenCreateParamsShippingAddress, + ) + from stripe.params._confirmation_token_retrieve_params import ( + ConfirmationTokenRetrieveParams as ConfirmationTokenRetrieveParams, + ) + from stripe.params._country_spec_list_params import ( + CountrySpecListParams as CountrySpecListParams, + ) + from stripe.params._country_spec_retrieve_params import ( + CountrySpecRetrieveParams as CountrySpecRetrieveParams, + ) + from stripe.params._coupon_create_params import ( + CouponCreateParams as CouponCreateParams, + CouponCreateParamsAppliesTo as CouponCreateParamsAppliesTo, + CouponCreateParamsCurrencyOptions as CouponCreateParamsCurrencyOptions, + ) + from stripe.params._coupon_delete_params import ( + CouponDeleteParams as CouponDeleteParams, + ) + from stripe.params._coupon_list_params import ( + CouponListParams as CouponListParams, + CouponListParamsCreated as CouponListParamsCreated, + ) + from stripe.params._coupon_modify_params import ( + CouponModifyParams as CouponModifyParams, + CouponModifyParamsCurrencyOptions as CouponModifyParamsCurrencyOptions, + ) + from stripe.params._coupon_retrieve_params import ( + CouponRetrieveParams as CouponRetrieveParams, + ) + from stripe.params._coupon_update_params import ( + CouponUpdateParams as CouponUpdateParams, + CouponUpdateParamsCurrencyOptions as CouponUpdateParamsCurrencyOptions, + ) + from stripe.params._credit_note_create_params import ( + CreditNoteCreateParams as CreditNoteCreateParams, + CreditNoteCreateParamsLine as CreditNoteCreateParamsLine, + CreditNoteCreateParamsLineTaxAmount as CreditNoteCreateParamsLineTaxAmount, + CreditNoteCreateParamsRefund as CreditNoteCreateParamsRefund, + CreditNoteCreateParamsRefundPaymentRecordRefund as CreditNoteCreateParamsRefundPaymentRecordRefund, + CreditNoteCreateParamsShippingCost as CreditNoteCreateParamsShippingCost, + ) + from stripe.params._credit_note_line_item_list_params import ( + CreditNoteLineItemListParams as CreditNoteLineItemListParams, + ) + from stripe.params._credit_note_list_lines_params import ( + CreditNoteListLinesParams as CreditNoteListLinesParams, + ) + from stripe.params._credit_note_list_params import ( + CreditNoteListParams as CreditNoteListParams, + CreditNoteListParamsCreated as CreditNoteListParamsCreated, + ) + from stripe.params._credit_note_modify_params import ( + CreditNoteModifyParams as CreditNoteModifyParams, + ) + from stripe.params._credit_note_preview_lines_list_params import ( + CreditNotePreviewLinesListParams as CreditNotePreviewLinesListParams, + CreditNotePreviewLinesListParamsLine as CreditNotePreviewLinesListParamsLine, + CreditNotePreviewLinesListParamsLineTaxAmount as CreditNotePreviewLinesListParamsLineTaxAmount, + CreditNotePreviewLinesListParamsRefund as CreditNotePreviewLinesListParamsRefund, + CreditNotePreviewLinesListParamsRefundPaymentRecordRefund as CreditNotePreviewLinesListParamsRefundPaymentRecordRefund, + CreditNotePreviewLinesListParamsShippingCost as CreditNotePreviewLinesListParamsShippingCost, + ) + from stripe.params._credit_note_preview_lines_params import ( + CreditNotePreviewLinesParams as CreditNotePreviewLinesParams, + CreditNotePreviewLinesParamsLine as CreditNotePreviewLinesParamsLine, + CreditNotePreviewLinesParamsLineTaxAmount as CreditNotePreviewLinesParamsLineTaxAmount, + CreditNotePreviewLinesParamsRefund as CreditNotePreviewLinesParamsRefund, + CreditNotePreviewLinesParamsRefundPaymentRecordRefund as CreditNotePreviewLinesParamsRefundPaymentRecordRefund, + CreditNotePreviewLinesParamsShippingCost as CreditNotePreviewLinesParamsShippingCost, + ) + from stripe.params._credit_note_preview_params import ( + CreditNotePreviewParams as CreditNotePreviewParams, + CreditNotePreviewParamsLine as CreditNotePreviewParamsLine, + CreditNotePreviewParamsLineTaxAmount as CreditNotePreviewParamsLineTaxAmount, + CreditNotePreviewParamsRefund as CreditNotePreviewParamsRefund, + CreditNotePreviewParamsRefundPaymentRecordRefund as CreditNotePreviewParamsRefundPaymentRecordRefund, + CreditNotePreviewParamsShippingCost as CreditNotePreviewParamsShippingCost, + ) + from stripe.params._credit_note_retrieve_params import ( + CreditNoteRetrieveParams as CreditNoteRetrieveParams, + ) + from stripe.params._credit_note_update_params import ( + CreditNoteUpdateParams as CreditNoteUpdateParams, + ) + from stripe.params._credit_note_void_credit_note_params import ( + CreditNoteVoidCreditNoteParams as CreditNoteVoidCreditNoteParams, + ) + from stripe.params._customer_balance_transaction_create_params import ( + CustomerBalanceTransactionCreateParams as CustomerBalanceTransactionCreateParams, + ) + from stripe.params._customer_balance_transaction_list_params import ( + CustomerBalanceTransactionListParams as CustomerBalanceTransactionListParams, + ) + from stripe.params._customer_balance_transaction_retrieve_params import ( + CustomerBalanceTransactionRetrieveParams as CustomerBalanceTransactionRetrieveParams, + ) + from stripe.params._customer_balance_transaction_update_params import ( + CustomerBalanceTransactionUpdateParams as CustomerBalanceTransactionUpdateParams, + ) + from stripe.params._customer_cash_balance_retrieve_params import ( + CustomerCashBalanceRetrieveParams as CustomerCashBalanceRetrieveParams, + ) + from stripe.params._customer_cash_balance_transaction_list_params import ( + CustomerCashBalanceTransactionListParams as CustomerCashBalanceTransactionListParams, + ) + from stripe.params._customer_cash_balance_transaction_retrieve_params import ( + CustomerCashBalanceTransactionRetrieveParams as CustomerCashBalanceTransactionRetrieveParams, + ) + from stripe.params._customer_cash_balance_update_params import ( + CustomerCashBalanceUpdateParams as CustomerCashBalanceUpdateParams, + CustomerCashBalanceUpdateParamsSettings as CustomerCashBalanceUpdateParamsSettings, + ) + from stripe.params._customer_create_balance_transaction_params import ( + CustomerCreateBalanceTransactionParams as CustomerCreateBalanceTransactionParams, + ) + from stripe.params._customer_create_funding_instructions_params import ( + CustomerCreateFundingInstructionsParams as CustomerCreateFundingInstructionsParams, + CustomerCreateFundingInstructionsParamsBankTransfer as CustomerCreateFundingInstructionsParamsBankTransfer, + CustomerCreateFundingInstructionsParamsBankTransferEuBankTransfer as CustomerCreateFundingInstructionsParamsBankTransferEuBankTransfer, + ) + from stripe.params._customer_create_params import ( + CustomerCreateParams as CustomerCreateParams, + CustomerCreateParamsAddress as CustomerCreateParamsAddress, + CustomerCreateParamsCashBalance as CustomerCreateParamsCashBalance, + CustomerCreateParamsCashBalanceSettings as CustomerCreateParamsCashBalanceSettings, + CustomerCreateParamsInvoiceSettings as CustomerCreateParamsInvoiceSettings, + CustomerCreateParamsInvoiceSettingsCustomField as CustomerCreateParamsInvoiceSettingsCustomField, + CustomerCreateParamsInvoiceSettingsRenderingOptions as CustomerCreateParamsInvoiceSettingsRenderingOptions, + CustomerCreateParamsShipping as CustomerCreateParamsShipping, + CustomerCreateParamsShippingAddress as CustomerCreateParamsShippingAddress, + CustomerCreateParamsTax as CustomerCreateParamsTax, + CustomerCreateParamsTaxIdDatum as CustomerCreateParamsTaxIdDatum, + ) + from stripe.params._customer_create_source_params import ( + CustomerCreateSourceParams as CustomerCreateSourceParams, + ) + from stripe.params._customer_create_tax_id_params import ( + CustomerCreateTaxIdParams as CustomerCreateTaxIdParams, + ) + from stripe.params._customer_delete_discount_params import ( + CustomerDeleteDiscountParams as CustomerDeleteDiscountParams, + ) + from stripe.params._customer_delete_params import ( + CustomerDeleteParams as CustomerDeleteParams, + ) + from stripe.params._customer_delete_source_params import ( + CustomerDeleteSourceParams as CustomerDeleteSourceParams, + ) + from stripe.params._customer_delete_tax_id_params import ( + CustomerDeleteTaxIdParams as CustomerDeleteTaxIdParams, + ) + from stripe.params._customer_fund_cash_balance_params import ( + CustomerFundCashBalanceParams as CustomerFundCashBalanceParams, + ) + from stripe.params._customer_funding_instructions_create_params import ( + CustomerFundingInstructionsCreateParams as CustomerFundingInstructionsCreateParams, + CustomerFundingInstructionsCreateParamsBankTransfer as CustomerFundingInstructionsCreateParamsBankTransfer, + CustomerFundingInstructionsCreateParamsBankTransferEuBankTransfer as CustomerFundingInstructionsCreateParamsBankTransferEuBankTransfer, + ) + from stripe.params._customer_list_balance_transactions_params import ( + CustomerListBalanceTransactionsParams as CustomerListBalanceTransactionsParams, + ) + from stripe.params._customer_list_cash_balance_transactions_params import ( + CustomerListCashBalanceTransactionsParams as CustomerListCashBalanceTransactionsParams, + ) + from stripe.params._customer_list_params import ( + CustomerListParams as CustomerListParams, + CustomerListParamsCreated as CustomerListParamsCreated, + ) + from stripe.params._customer_list_payment_methods_params import ( + CustomerListPaymentMethodsParams as CustomerListPaymentMethodsParams, + ) + from stripe.params._customer_list_sources_params import ( + CustomerListSourcesParams as CustomerListSourcesParams, + ) + from stripe.params._customer_list_tax_ids_params import ( + CustomerListTaxIdsParams as CustomerListTaxIdsParams, + ) + from stripe.params._customer_modify_balance_transaction_params import ( + CustomerModifyBalanceTransactionParams as CustomerModifyBalanceTransactionParams, + ) + from stripe.params._customer_modify_cash_balance_params import ( + CustomerModifyCashBalanceParams as CustomerModifyCashBalanceParams, + CustomerModifyCashBalanceParamsSettings as CustomerModifyCashBalanceParamsSettings, + ) + from stripe.params._customer_modify_params import ( + CustomerModifyParams as CustomerModifyParams, + CustomerModifyParamsAddress as CustomerModifyParamsAddress, + CustomerModifyParamsCashBalance as CustomerModifyParamsCashBalance, + CustomerModifyParamsCashBalanceSettings as CustomerModifyParamsCashBalanceSettings, + CustomerModifyParamsInvoiceSettings as CustomerModifyParamsInvoiceSettings, + CustomerModifyParamsInvoiceSettingsCustomField as CustomerModifyParamsInvoiceSettingsCustomField, + CustomerModifyParamsInvoiceSettingsRenderingOptions as CustomerModifyParamsInvoiceSettingsRenderingOptions, + CustomerModifyParamsShipping as CustomerModifyParamsShipping, + CustomerModifyParamsShippingAddress as CustomerModifyParamsShippingAddress, + CustomerModifyParamsTax as CustomerModifyParamsTax, + ) + from stripe.params._customer_modify_source_params import ( + CustomerModifySourceParams as CustomerModifySourceParams, + CustomerModifySourceParamsOwner as CustomerModifySourceParamsOwner, + CustomerModifySourceParamsOwnerAddress as CustomerModifySourceParamsOwnerAddress, + ) + from stripe.params._customer_payment_method_list_params import ( + CustomerPaymentMethodListParams as CustomerPaymentMethodListParams, + ) + from stripe.params._customer_payment_method_retrieve_params import ( + CustomerPaymentMethodRetrieveParams as CustomerPaymentMethodRetrieveParams, + ) + from stripe.params._customer_payment_source_create_params import ( + CustomerPaymentSourceCreateParams as CustomerPaymentSourceCreateParams, + ) + from stripe.params._customer_payment_source_delete_params import ( + CustomerPaymentSourceDeleteParams as CustomerPaymentSourceDeleteParams, + ) + from stripe.params._customer_payment_source_list_params import ( + CustomerPaymentSourceListParams as CustomerPaymentSourceListParams, + ) + from stripe.params._customer_payment_source_retrieve_params import ( + CustomerPaymentSourceRetrieveParams as CustomerPaymentSourceRetrieveParams, + ) + from stripe.params._customer_payment_source_update_params import ( + CustomerPaymentSourceUpdateParams as CustomerPaymentSourceUpdateParams, + CustomerPaymentSourceUpdateParamsOwner as CustomerPaymentSourceUpdateParamsOwner, + CustomerPaymentSourceUpdateParamsOwnerAddress as CustomerPaymentSourceUpdateParamsOwnerAddress, + ) + from stripe.params._customer_payment_source_verify_params import ( + CustomerPaymentSourceVerifyParams as CustomerPaymentSourceVerifyParams, + ) + from stripe.params._customer_retrieve_balance_transaction_params import ( + CustomerRetrieveBalanceTransactionParams as CustomerRetrieveBalanceTransactionParams, + ) + from stripe.params._customer_retrieve_cash_balance_params import ( + CustomerRetrieveCashBalanceParams as CustomerRetrieveCashBalanceParams, + ) + from stripe.params._customer_retrieve_cash_balance_transaction_params import ( + CustomerRetrieveCashBalanceTransactionParams as CustomerRetrieveCashBalanceTransactionParams, + ) + from stripe.params._customer_retrieve_params import ( + CustomerRetrieveParams as CustomerRetrieveParams, + ) + from stripe.params._customer_retrieve_payment_method_params import ( + CustomerRetrievePaymentMethodParams as CustomerRetrievePaymentMethodParams, + ) + from stripe.params._customer_retrieve_source_params import ( + CustomerRetrieveSourceParams as CustomerRetrieveSourceParams, + ) + from stripe.params._customer_retrieve_tax_id_params import ( + CustomerRetrieveTaxIdParams as CustomerRetrieveTaxIdParams, + ) + from stripe.params._customer_search_params import ( + CustomerSearchParams as CustomerSearchParams, + ) + from stripe.params._customer_session_create_params import ( + CustomerSessionCreateParams as CustomerSessionCreateParams, + CustomerSessionCreateParamsComponents as CustomerSessionCreateParamsComponents, + CustomerSessionCreateParamsComponentsBuyButton as CustomerSessionCreateParamsComponentsBuyButton, + CustomerSessionCreateParamsComponentsCustomerSheet as CustomerSessionCreateParamsComponentsCustomerSheet, + CustomerSessionCreateParamsComponentsCustomerSheetFeatures as CustomerSessionCreateParamsComponentsCustomerSheetFeatures, + CustomerSessionCreateParamsComponentsMobilePaymentElement as CustomerSessionCreateParamsComponentsMobilePaymentElement, + CustomerSessionCreateParamsComponentsMobilePaymentElementFeatures as CustomerSessionCreateParamsComponentsMobilePaymentElementFeatures, + CustomerSessionCreateParamsComponentsPaymentElement as CustomerSessionCreateParamsComponentsPaymentElement, + CustomerSessionCreateParamsComponentsPaymentElementFeatures as CustomerSessionCreateParamsComponentsPaymentElementFeatures, + CustomerSessionCreateParamsComponentsPricingTable as CustomerSessionCreateParamsComponentsPricingTable, + ) + from stripe.params._customer_tax_id_create_params import ( + CustomerTaxIdCreateParams as CustomerTaxIdCreateParams, + ) + from stripe.params._customer_tax_id_delete_params import ( + CustomerTaxIdDeleteParams as CustomerTaxIdDeleteParams, + ) + from stripe.params._customer_tax_id_list_params import ( + CustomerTaxIdListParams as CustomerTaxIdListParams, + ) + from stripe.params._customer_tax_id_retrieve_params import ( + CustomerTaxIdRetrieveParams as CustomerTaxIdRetrieveParams, + ) + from stripe.params._customer_update_params import ( + CustomerUpdateParams as CustomerUpdateParams, + CustomerUpdateParamsAddress as CustomerUpdateParamsAddress, + CustomerUpdateParamsCashBalance as CustomerUpdateParamsCashBalance, + CustomerUpdateParamsCashBalanceSettings as CustomerUpdateParamsCashBalanceSettings, + CustomerUpdateParamsInvoiceSettings as CustomerUpdateParamsInvoiceSettings, + CustomerUpdateParamsInvoiceSettingsCustomField as CustomerUpdateParamsInvoiceSettingsCustomField, + CustomerUpdateParamsInvoiceSettingsRenderingOptions as CustomerUpdateParamsInvoiceSettingsRenderingOptions, + CustomerUpdateParamsShipping as CustomerUpdateParamsShipping, + CustomerUpdateParamsShippingAddress as CustomerUpdateParamsShippingAddress, + CustomerUpdateParamsTax as CustomerUpdateParamsTax, + ) + from stripe.params._dispute_close_params import ( + DisputeCloseParams as DisputeCloseParams, + ) + from stripe.params._dispute_list_params import ( + DisputeListParams as DisputeListParams, + DisputeListParamsCreated as DisputeListParamsCreated, + ) + from stripe.params._dispute_modify_params import ( + DisputeModifyParams as DisputeModifyParams, + DisputeModifyParamsEvidence as DisputeModifyParamsEvidence, + DisputeModifyParamsEvidenceEnhancedEvidence as DisputeModifyParamsEvidenceEnhancedEvidence, + DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3 as DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3, + DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction as DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction, + DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress as DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress, + DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction as DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction, + DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress as DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress, + DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompliance as DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompliance, + ) + from stripe.params._dispute_retrieve_params import ( + DisputeRetrieveParams as DisputeRetrieveParams, + ) + from stripe.params._dispute_update_params import ( + DisputeUpdateParams as DisputeUpdateParams, + DisputeUpdateParamsEvidence as DisputeUpdateParamsEvidence, + DisputeUpdateParamsEvidenceEnhancedEvidence as DisputeUpdateParamsEvidenceEnhancedEvidence, + DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3 as DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3, + DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction as DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction, + DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress as DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress, + DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction as DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction, + DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress as DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress, + DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompliance as DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompliance, + ) + from stripe.params._ephemeral_key_create_params import ( + EphemeralKeyCreateParams as EphemeralKeyCreateParams, + ) + from stripe.params._ephemeral_key_delete_params import ( + EphemeralKeyDeleteParams as EphemeralKeyDeleteParams, + ) + from stripe.params._event_list_params import ( + EventListParams as EventListParams, + EventListParamsCreated as EventListParamsCreated, + ) + from stripe.params._event_retrieve_params import ( + EventRetrieveParams as EventRetrieveParams, + ) + from stripe.params._exchange_rate_list_params import ( + ExchangeRateListParams as ExchangeRateListParams, + ) + from stripe.params._exchange_rate_retrieve_params import ( + ExchangeRateRetrieveParams as ExchangeRateRetrieveParams, + ) + from stripe.params._file_create_params import ( + FileCreateParams as FileCreateParams, + FileCreateParamsFileLinkData as FileCreateParamsFileLinkData, + ) + from stripe.params._file_link_create_params import ( + FileLinkCreateParams as FileLinkCreateParams, + ) + from stripe.params._file_link_list_params import ( + FileLinkListParams as FileLinkListParams, + FileLinkListParamsCreated as FileLinkListParamsCreated, + ) + from stripe.params._file_link_modify_params import ( + FileLinkModifyParams as FileLinkModifyParams, + ) + from stripe.params._file_link_retrieve_params import ( + FileLinkRetrieveParams as FileLinkRetrieveParams, + ) + from stripe.params._file_link_update_params import ( + FileLinkUpdateParams as FileLinkUpdateParams, + ) + from stripe.params._file_list_params import ( + FileListParams as FileListParams, + FileListParamsCreated as FileListParamsCreated, + ) + from stripe.params._file_retrieve_params import ( + FileRetrieveParams as FileRetrieveParams, + ) + from stripe.params._invoice_add_lines_params import ( + InvoiceAddLinesParams as InvoiceAddLinesParams, + InvoiceAddLinesParamsLine as InvoiceAddLinesParamsLine, + InvoiceAddLinesParamsLineDiscount as InvoiceAddLinesParamsLineDiscount, + InvoiceAddLinesParamsLinePeriod as InvoiceAddLinesParamsLinePeriod, + InvoiceAddLinesParamsLinePriceData as InvoiceAddLinesParamsLinePriceData, + InvoiceAddLinesParamsLinePriceDataProductData as InvoiceAddLinesParamsLinePriceDataProductData, + InvoiceAddLinesParamsLinePricing as InvoiceAddLinesParamsLinePricing, + InvoiceAddLinesParamsLineTaxAmount as InvoiceAddLinesParamsLineTaxAmount, + InvoiceAddLinesParamsLineTaxAmountTaxRateData as InvoiceAddLinesParamsLineTaxAmountTaxRateData, + ) + from stripe.params._invoice_attach_payment_params import ( + InvoiceAttachPaymentParams as InvoiceAttachPaymentParams, + ) + from stripe.params._invoice_create_params import ( + InvoiceCreateParams as InvoiceCreateParams, + InvoiceCreateParamsAutomaticTax as InvoiceCreateParamsAutomaticTax, + InvoiceCreateParamsAutomaticTaxLiability as InvoiceCreateParamsAutomaticTaxLiability, + InvoiceCreateParamsCustomField as InvoiceCreateParamsCustomField, + InvoiceCreateParamsDiscount as InvoiceCreateParamsDiscount, + InvoiceCreateParamsFromInvoice as InvoiceCreateParamsFromInvoice, + InvoiceCreateParamsIssuer as InvoiceCreateParamsIssuer, + InvoiceCreateParamsPaymentSettings as InvoiceCreateParamsPaymentSettings, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptions as InvoiceCreateParamsPaymentSettingsPaymentMethodOptions, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsBancontact as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsBancontact, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCard as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCard, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallments as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallments, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsKonbini as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsKonbini, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections, + InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + InvoiceCreateParamsRendering as InvoiceCreateParamsRendering, + InvoiceCreateParamsRenderingPdf as InvoiceCreateParamsRenderingPdf, + InvoiceCreateParamsShippingCost as InvoiceCreateParamsShippingCost, + InvoiceCreateParamsShippingCostShippingRateData as InvoiceCreateParamsShippingCostShippingRateData, + InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimate as InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimate, + InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMaximum as InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMaximum, + InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMinimum as InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMinimum, + InvoiceCreateParamsShippingCostShippingRateDataFixedAmount as InvoiceCreateParamsShippingCostShippingRateDataFixedAmount, + InvoiceCreateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions as InvoiceCreateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions, + InvoiceCreateParamsShippingDetails as InvoiceCreateParamsShippingDetails, + InvoiceCreateParamsShippingDetailsAddress as InvoiceCreateParamsShippingDetailsAddress, + InvoiceCreateParamsTransferData as InvoiceCreateParamsTransferData, + ) + from stripe.params._invoice_create_preview_params import ( + InvoiceCreatePreviewParams as InvoiceCreatePreviewParams, + InvoiceCreatePreviewParamsAutomaticTax as InvoiceCreatePreviewParamsAutomaticTax, + InvoiceCreatePreviewParamsAutomaticTaxLiability as InvoiceCreatePreviewParamsAutomaticTaxLiability, + InvoiceCreatePreviewParamsCustomerDetails as InvoiceCreatePreviewParamsCustomerDetails, + InvoiceCreatePreviewParamsCustomerDetailsAddress as InvoiceCreatePreviewParamsCustomerDetailsAddress, + InvoiceCreatePreviewParamsCustomerDetailsShipping as InvoiceCreatePreviewParamsCustomerDetailsShipping, + InvoiceCreatePreviewParamsCustomerDetailsShippingAddress as InvoiceCreatePreviewParamsCustomerDetailsShippingAddress, + InvoiceCreatePreviewParamsCustomerDetailsTax as InvoiceCreatePreviewParamsCustomerDetailsTax, + InvoiceCreatePreviewParamsCustomerDetailsTaxId as InvoiceCreatePreviewParamsCustomerDetailsTaxId, + InvoiceCreatePreviewParamsDiscount as InvoiceCreatePreviewParamsDiscount, + InvoiceCreatePreviewParamsInvoiceItem as InvoiceCreatePreviewParamsInvoiceItem, + InvoiceCreatePreviewParamsInvoiceItemDiscount as InvoiceCreatePreviewParamsInvoiceItemDiscount, + InvoiceCreatePreviewParamsInvoiceItemPeriod as InvoiceCreatePreviewParamsInvoiceItemPeriod, + InvoiceCreatePreviewParamsInvoiceItemPriceData as InvoiceCreatePreviewParamsInvoiceItemPriceData, + InvoiceCreatePreviewParamsIssuer as InvoiceCreatePreviewParamsIssuer, + InvoiceCreatePreviewParamsScheduleDetails as InvoiceCreatePreviewParamsScheduleDetails, + InvoiceCreatePreviewParamsScheduleDetailsBillingMode as InvoiceCreatePreviewParamsScheduleDetailsBillingMode, + InvoiceCreatePreviewParamsScheduleDetailsBillingModeFlexible as InvoiceCreatePreviewParamsScheduleDetailsBillingModeFlexible, + InvoiceCreatePreviewParamsScheduleDetailsPhase as InvoiceCreatePreviewParamsScheduleDetailsPhase, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItem as InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItem, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemDiscount as InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemDiscount, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriod as InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriod, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodEnd as InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodEnd, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodStart as InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodStart, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPriceData as InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPriceData, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTax as InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTax, + InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTaxLiability as InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTaxLiability, + InvoiceCreatePreviewParamsScheduleDetailsPhaseBillingThresholds as InvoiceCreatePreviewParamsScheduleDetailsPhaseBillingThresholds, + InvoiceCreatePreviewParamsScheduleDetailsPhaseDiscount as InvoiceCreatePreviewParamsScheduleDetailsPhaseDiscount, + InvoiceCreatePreviewParamsScheduleDetailsPhaseDuration as InvoiceCreatePreviewParamsScheduleDetailsPhaseDuration, + InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettings as InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettings, + InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettingsIssuer as InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettingsIssuer, + InvoiceCreatePreviewParamsScheduleDetailsPhaseItem as InvoiceCreatePreviewParamsScheduleDetailsPhaseItem, + InvoiceCreatePreviewParamsScheduleDetailsPhaseItemBillingThresholds as InvoiceCreatePreviewParamsScheduleDetailsPhaseItemBillingThresholds, + InvoiceCreatePreviewParamsScheduleDetailsPhaseItemDiscount as InvoiceCreatePreviewParamsScheduleDetailsPhaseItemDiscount, + InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceData as InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceData, + InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceDataRecurring as InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceDataRecurring, + InvoiceCreatePreviewParamsScheduleDetailsPhaseTransferData as InvoiceCreatePreviewParamsScheduleDetailsPhaseTransferData, + InvoiceCreatePreviewParamsSubscriptionDetails as InvoiceCreatePreviewParamsSubscriptionDetails, + InvoiceCreatePreviewParamsSubscriptionDetailsBillingMode as InvoiceCreatePreviewParamsSubscriptionDetailsBillingMode, + InvoiceCreatePreviewParamsSubscriptionDetailsBillingModeFlexible as InvoiceCreatePreviewParamsSubscriptionDetailsBillingModeFlexible, + InvoiceCreatePreviewParamsSubscriptionDetailsItem as InvoiceCreatePreviewParamsSubscriptionDetailsItem, + InvoiceCreatePreviewParamsSubscriptionDetailsItemBillingThresholds as InvoiceCreatePreviewParamsSubscriptionDetailsItemBillingThresholds, + InvoiceCreatePreviewParamsSubscriptionDetailsItemDiscount as InvoiceCreatePreviewParamsSubscriptionDetailsItemDiscount, + InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceData as InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceData, + InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceDataRecurring as InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceDataRecurring, + ) + from stripe.params._invoice_delete_params import ( + InvoiceDeleteParams as InvoiceDeleteParams, + ) + from stripe.params._invoice_finalize_invoice_params import ( + InvoiceFinalizeInvoiceParams as InvoiceFinalizeInvoiceParams, + ) + from stripe.params._invoice_item_create_params import ( + InvoiceItemCreateParams as InvoiceItemCreateParams, + InvoiceItemCreateParamsDiscount as InvoiceItemCreateParamsDiscount, + InvoiceItemCreateParamsPeriod as InvoiceItemCreateParamsPeriod, + InvoiceItemCreateParamsPriceData as InvoiceItemCreateParamsPriceData, + InvoiceItemCreateParamsPricing as InvoiceItemCreateParamsPricing, + ) + from stripe.params._invoice_item_delete_params import ( + InvoiceItemDeleteParams as InvoiceItemDeleteParams, + ) + from stripe.params._invoice_item_list_params import ( + InvoiceItemListParams as InvoiceItemListParams, + InvoiceItemListParamsCreated as InvoiceItemListParamsCreated, + ) + from stripe.params._invoice_item_modify_params import ( + InvoiceItemModifyParams as InvoiceItemModifyParams, + InvoiceItemModifyParamsDiscount as InvoiceItemModifyParamsDiscount, + InvoiceItemModifyParamsPeriod as InvoiceItemModifyParamsPeriod, + InvoiceItemModifyParamsPriceData as InvoiceItemModifyParamsPriceData, + InvoiceItemModifyParamsPricing as InvoiceItemModifyParamsPricing, + ) + from stripe.params._invoice_item_retrieve_params import ( + InvoiceItemRetrieveParams as InvoiceItemRetrieveParams, + ) + from stripe.params._invoice_item_update_params import ( + InvoiceItemUpdateParams as InvoiceItemUpdateParams, + InvoiceItemUpdateParamsDiscount as InvoiceItemUpdateParamsDiscount, + InvoiceItemUpdateParamsPeriod as InvoiceItemUpdateParamsPeriod, + InvoiceItemUpdateParamsPriceData as InvoiceItemUpdateParamsPriceData, + InvoiceItemUpdateParamsPricing as InvoiceItemUpdateParamsPricing, + ) + from stripe.params._invoice_line_item_list_params import ( + InvoiceLineItemListParams as InvoiceLineItemListParams, + ) + from stripe.params._invoice_line_item_update_params import ( + InvoiceLineItemUpdateParams as InvoiceLineItemUpdateParams, + InvoiceLineItemUpdateParamsDiscount as InvoiceLineItemUpdateParamsDiscount, + InvoiceLineItemUpdateParamsPeriod as InvoiceLineItemUpdateParamsPeriod, + InvoiceLineItemUpdateParamsPriceData as InvoiceLineItemUpdateParamsPriceData, + InvoiceLineItemUpdateParamsPriceDataProductData as InvoiceLineItemUpdateParamsPriceDataProductData, + InvoiceLineItemUpdateParamsPricing as InvoiceLineItemUpdateParamsPricing, + InvoiceLineItemUpdateParamsTaxAmount as InvoiceLineItemUpdateParamsTaxAmount, + InvoiceLineItemUpdateParamsTaxAmountTaxRateData as InvoiceLineItemUpdateParamsTaxAmountTaxRateData, + ) + from stripe.params._invoice_list_lines_params import ( + InvoiceListLinesParams as InvoiceListLinesParams, + ) + from stripe.params._invoice_list_params import ( + InvoiceListParams as InvoiceListParams, + InvoiceListParamsCreated as InvoiceListParamsCreated, + InvoiceListParamsDueDate as InvoiceListParamsDueDate, + ) + from stripe.params._invoice_mark_uncollectible_params import ( + InvoiceMarkUncollectibleParams as InvoiceMarkUncollectibleParams, + ) + from stripe.params._invoice_modify_params import ( + InvoiceModifyParams as InvoiceModifyParams, + InvoiceModifyParamsAutomaticTax as InvoiceModifyParamsAutomaticTax, + InvoiceModifyParamsAutomaticTaxLiability as InvoiceModifyParamsAutomaticTaxLiability, + InvoiceModifyParamsCustomField as InvoiceModifyParamsCustomField, + InvoiceModifyParamsDiscount as InvoiceModifyParamsDiscount, + InvoiceModifyParamsIssuer as InvoiceModifyParamsIssuer, + InvoiceModifyParamsPaymentSettings as InvoiceModifyParamsPaymentSettings, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptions as InvoiceModifyParamsPaymentSettingsPaymentMethodOptions, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsBancontact as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsBancontact, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCard as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCard, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallments as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallments, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsKonbini as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsKonbini, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections, + InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + InvoiceModifyParamsRendering as InvoiceModifyParamsRendering, + InvoiceModifyParamsRenderingPdf as InvoiceModifyParamsRenderingPdf, + InvoiceModifyParamsShippingCost as InvoiceModifyParamsShippingCost, + InvoiceModifyParamsShippingCostShippingRateData as InvoiceModifyParamsShippingCostShippingRateData, + InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimate as InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimate, + InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMaximum as InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMaximum, + InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMinimum as InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMinimum, + InvoiceModifyParamsShippingCostShippingRateDataFixedAmount as InvoiceModifyParamsShippingCostShippingRateDataFixedAmount, + InvoiceModifyParamsShippingCostShippingRateDataFixedAmountCurrencyOptions as InvoiceModifyParamsShippingCostShippingRateDataFixedAmountCurrencyOptions, + InvoiceModifyParamsShippingDetails as InvoiceModifyParamsShippingDetails, + InvoiceModifyParamsShippingDetailsAddress as InvoiceModifyParamsShippingDetailsAddress, + InvoiceModifyParamsTransferData as InvoiceModifyParamsTransferData, + ) + from stripe.params._invoice_pay_params import ( + InvoicePayParams as InvoicePayParams, + ) + from stripe.params._invoice_payment_list_params import ( + InvoicePaymentListParams as InvoicePaymentListParams, + InvoicePaymentListParamsPayment as InvoicePaymentListParamsPayment, + ) + from stripe.params._invoice_payment_retrieve_params import ( + InvoicePaymentRetrieveParams as InvoicePaymentRetrieveParams, + ) + from stripe.params._invoice_remove_lines_params import ( + InvoiceRemoveLinesParams as InvoiceRemoveLinesParams, + InvoiceRemoveLinesParamsLine as InvoiceRemoveLinesParamsLine, + ) + from stripe.params._invoice_rendering_template_archive_params import ( + InvoiceRenderingTemplateArchiveParams as InvoiceRenderingTemplateArchiveParams, + ) + from stripe.params._invoice_rendering_template_list_params import ( + InvoiceRenderingTemplateListParams as InvoiceRenderingTemplateListParams, + ) + from stripe.params._invoice_rendering_template_retrieve_params import ( + InvoiceRenderingTemplateRetrieveParams as InvoiceRenderingTemplateRetrieveParams, + ) + from stripe.params._invoice_rendering_template_unarchive_params import ( + InvoiceRenderingTemplateUnarchiveParams as InvoiceRenderingTemplateUnarchiveParams, + ) + from stripe.params._invoice_retrieve_params import ( + InvoiceRetrieveParams as InvoiceRetrieveParams, + ) + from stripe.params._invoice_search_params import ( + InvoiceSearchParams as InvoiceSearchParams, + ) + from stripe.params._invoice_send_invoice_params import ( + InvoiceSendInvoiceParams as InvoiceSendInvoiceParams, + ) + from stripe.params._invoice_update_lines_params import ( + InvoiceUpdateLinesParams as InvoiceUpdateLinesParams, + InvoiceUpdateLinesParamsLine as InvoiceUpdateLinesParamsLine, + InvoiceUpdateLinesParamsLineDiscount as InvoiceUpdateLinesParamsLineDiscount, + InvoiceUpdateLinesParamsLinePeriod as InvoiceUpdateLinesParamsLinePeriod, + InvoiceUpdateLinesParamsLinePriceData as InvoiceUpdateLinesParamsLinePriceData, + InvoiceUpdateLinesParamsLinePriceDataProductData as InvoiceUpdateLinesParamsLinePriceDataProductData, + InvoiceUpdateLinesParamsLinePricing as InvoiceUpdateLinesParamsLinePricing, + InvoiceUpdateLinesParamsLineTaxAmount as InvoiceUpdateLinesParamsLineTaxAmount, + InvoiceUpdateLinesParamsLineTaxAmountTaxRateData as InvoiceUpdateLinesParamsLineTaxAmountTaxRateData, + ) + from stripe.params._invoice_update_params import ( + InvoiceUpdateParams as InvoiceUpdateParams, + InvoiceUpdateParamsAutomaticTax as InvoiceUpdateParamsAutomaticTax, + InvoiceUpdateParamsAutomaticTaxLiability as InvoiceUpdateParamsAutomaticTaxLiability, + InvoiceUpdateParamsCustomField as InvoiceUpdateParamsCustomField, + InvoiceUpdateParamsDiscount as InvoiceUpdateParamsDiscount, + InvoiceUpdateParamsIssuer as InvoiceUpdateParamsIssuer, + InvoiceUpdateParamsPaymentSettings as InvoiceUpdateParamsPaymentSettings, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptions as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptions, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCard as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCard, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallments as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallments, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections, + InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + InvoiceUpdateParamsRendering as InvoiceUpdateParamsRendering, + InvoiceUpdateParamsRenderingPdf as InvoiceUpdateParamsRenderingPdf, + InvoiceUpdateParamsShippingCost as InvoiceUpdateParamsShippingCost, + InvoiceUpdateParamsShippingCostShippingRateData as InvoiceUpdateParamsShippingCostShippingRateData, + InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimate as InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimate, + InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMaximum as InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMaximum, + InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMinimum as InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMinimum, + InvoiceUpdateParamsShippingCostShippingRateDataFixedAmount as InvoiceUpdateParamsShippingCostShippingRateDataFixedAmount, + InvoiceUpdateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions as InvoiceUpdateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions, + InvoiceUpdateParamsShippingDetails as InvoiceUpdateParamsShippingDetails, + InvoiceUpdateParamsShippingDetailsAddress as InvoiceUpdateParamsShippingDetailsAddress, + InvoiceUpdateParamsTransferData as InvoiceUpdateParamsTransferData, + ) + from stripe.params._invoice_void_invoice_params import ( + InvoiceVoidInvoiceParams as InvoiceVoidInvoiceParams, + ) + from stripe.params._mandate_retrieve_params import ( + MandateRetrieveParams as MandateRetrieveParams, + ) + from stripe.params._payment_attempt_record_list_params import ( + PaymentAttemptRecordListParams as PaymentAttemptRecordListParams, + ) + from stripe.params._payment_attempt_record_retrieve_params import ( + PaymentAttemptRecordRetrieveParams as PaymentAttemptRecordRetrieveParams, + ) + from stripe.params._payment_intent_amount_details_line_item_list_params import ( + PaymentIntentAmountDetailsLineItemListParams as PaymentIntentAmountDetailsLineItemListParams, + ) + from stripe.params._payment_intent_apply_customer_balance_params import ( + PaymentIntentApplyCustomerBalanceParams as PaymentIntentApplyCustomerBalanceParams, + ) + from stripe.params._payment_intent_cancel_params import ( + PaymentIntentCancelParams as PaymentIntentCancelParams, + ) + from stripe.params._payment_intent_capture_params import ( + PaymentIntentCaptureParams as PaymentIntentCaptureParams, + PaymentIntentCaptureParamsAmountDetails as PaymentIntentCaptureParamsAmountDetails, + PaymentIntentCaptureParamsAmountDetailsLineItem as PaymentIntentCaptureParamsAmountDetailsLineItem, + PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptions as PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptions, + PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCard as PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCard, + PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent as PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent, + PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsKlarna as PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsKlarna, + PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsPaypal as PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsPaypal, + PaymentIntentCaptureParamsAmountDetailsLineItemTax as PaymentIntentCaptureParamsAmountDetailsLineItemTax, + PaymentIntentCaptureParamsAmountDetailsShipping as PaymentIntentCaptureParamsAmountDetailsShipping, + PaymentIntentCaptureParamsAmountDetailsTax as PaymentIntentCaptureParamsAmountDetailsTax, + PaymentIntentCaptureParamsPaymentDetails as PaymentIntentCaptureParamsPaymentDetails, + PaymentIntentCaptureParamsTransferData as PaymentIntentCaptureParamsTransferData, + ) + from stripe.params._payment_intent_confirm_params import ( + PaymentIntentConfirmParams as PaymentIntentConfirmParams, + PaymentIntentConfirmParamsAmountDetails as PaymentIntentConfirmParamsAmountDetails, + PaymentIntentConfirmParamsAmountDetailsLineItem as PaymentIntentConfirmParamsAmountDetailsLineItem, + PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptions as PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptions, + PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCard as PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCard, + PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent as PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent, + PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsKlarna as PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsKlarna, + PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsPaypal as PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsPaypal, + PaymentIntentConfirmParamsAmountDetailsLineItemTax as PaymentIntentConfirmParamsAmountDetailsLineItemTax, + PaymentIntentConfirmParamsAmountDetailsShipping as PaymentIntentConfirmParamsAmountDetailsShipping, + PaymentIntentConfirmParamsAmountDetailsTax as PaymentIntentConfirmParamsAmountDetailsTax, + PaymentIntentConfirmParamsMandateData as PaymentIntentConfirmParamsMandateData, + PaymentIntentConfirmParamsMandateDataCustomerAcceptance as PaymentIntentConfirmParamsMandateDataCustomerAcceptance, + PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOffline as PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOffline, + PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOnline as PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOnline, + PaymentIntentConfirmParamsPaymentDetails as PaymentIntentConfirmParamsPaymentDetails, + PaymentIntentConfirmParamsPaymentMethodData as PaymentIntentConfirmParamsPaymentMethodData, + PaymentIntentConfirmParamsPaymentMethodDataAcssDebit as PaymentIntentConfirmParamsPaymentMethodDataAcssDebit, + PaymentIntentConfirmParamsPaymentMethodDataAffirm as PaymentIntentConfirmParamsPaymentMethodDataAffirm, + PaymentIntentConfirmParamsPaymentMethodDataAfterpayClearpay as PaymentIntentConfirmParamsPaymentMethodDataAfterpayClearpay, + PaymentIntentConfirmParamsPaymentMethodDataAlipay as PaymentIntentConfirmParamsPaymentMethodDataAlipay, + PaymentIntentConfirmParamsPaymentMethodDataAlma as PaymentIntentConfirmParamsPaymentMethodDataAlma, + PaymentIntentConfirmParamsPaymentMethodDataAmazonPay as PaymentIntentConfirmParamsPaymentMethodDataAmazonPay, + PaymentIntentConfirmParamsPaymentMethodDataAuBecsDebit as PaymentIntentConfirmParamsPaymentMethodDataAuBecsDebit, + PaymentIntentConfirmParamsPaymentMethodDataBacsDebit as PaymentIntentConfirmParamsPaymentMethodDataBacsDebit, + PaymentIntentConfirmParamsPaymentMethodDataBancontact as PaymentIntentConfirmParamsPaymentMethodDataBancontact, + PaymentIntentConfirmParamsPaymentMethodDataBillie as PaymentIntentConfirmParamsPaymentMethodDataBillie, + PaymentIntentConfirmParamsPaymentMethodDataBillingDetails as PaymentIntentConfirmParamsPaymentMethodDataBillingDetails, + PaymentIntentConfirmParamsPaymentMethodDataBillingDetailsAddress as PaymentIntentConfirmParamsPaymentMethodDataBillingDetailsAddress, + PaymentIntentConfirmParamsPaymentMethodDataBlik as PaymentIntentConfirmParamsPaymentMethodDataBlik, + PaymentIntentConfirmParamsPaymentMethodDataBoleto as PaymentIntentConfirmParamsPaymentMethodDataBoleto, + PaymentIntentConfirmParamsPaymentMethodDataCashapp as PaymentIntentConfirmParamsPaymentMethodDataCashapp, + PaymentIntentConfirmParamsPaymentMethodDataCrypto as PaymentIntentConfirmParamsPaymentMethodDataCrypto, + PaymentIntentConfirmParamsPaymentMethodDataCustomerBalance as PaymentIntentConfirmParamsPaymentMethodDataCustomerBalance, + PaymentIntentConfirmParamsPaymentMethodDataEps as PaymentIntentConfirmParamsPaymentMethodDataEps, + PaymentIntentConfirmParamsPaymentMethodDataFpx as PaymentIntentConfirmParamsPaymentMethodDataFpx, + PaymentIntentConfirmParamsPaymentMethodDataGiropay as PaymentIntentConfirmParamsPaymentMethodDataGiropay, + PaymentIntentConfirmParamsPaymentMethodDataGrabpay as PaymentIntentConfirmParamsPaymentMethodDataGrabpay, + PaymentIntentConfirmParamsPaymentMethodDataIdeal as PaymentIntentConfirmParamsPaymentMethodDataIdeal, + PaymentIntentConfirmParamsPaymentMethodDataInteracPresent as PaymentIntentConfirmParamsPaymentMethodDataInteracPresent, + PaymentIntentConfirmParamsPaymentMethodDataKakaoPay as PaymentIntentConfirmParamsPaymentMethodDataKakaoPay, + PaymentIntentConfirmParamsPaymentMethodDataKlarna as PaymentIntentConfirmParamsPaymentMethodDataKlarna, + PaymentIntentConfirmParamsPaymentMethodDataKlarnaDob as PaymentIntentConfirmParamsPaymentMethodDataKlarnaDob, + PaymentIntentConfirmParamsPaymentMethodDataKonbini as PaymentIntentConfirmParamsPaymentMethodDataKonbini, + PaymentIntentConfirmParamsPaymentMethodDataKrCard as PaymentIntentConfirmParamsPaymentMethodDataKrCard, + PaymentIntentConfirmParamsPaymentMethodDataLink as PaymentIntentConfirmParamsPaymentMethodDataLink, + PaymentIntentConfirmParamsPaymentMethodDataMbWay as PaymentIntentConfirmParamsPaymentMethodDataMbWay, + PaymentIntentConfirmParamsPaymentMethodDataMobilepay as PaymentIntentConfirmParamsPaymentMethodDataMobilepay, + PaymentIntentConfirmParamsPaymentMethodDataMultibanco as PaymentIntentConfirmParamsPaymentMethodDataMultibanco, + PaymentIntentConfirmParamsPaymentMethodDataNaverPay as PaymentIntentConfirmParamsPaymentMethodDataNaverPay, + PaymentIntentConfirmParamsPaymentMethodDataNzBankAccount as PaymentIntentConfirmParamsPaymentMethodDataNzBankAccount, + PaymentIntentConfirmParamsPaymentMethodDataOxxo as PaymentIntentConfirmParamsPaymentMethodDataOxxo, + PaymentIntentConfirmParamsPaymentMethodDataP24 as PaymentIntentConfirmParamsPaymentMethodDataP24, + PaymentIntentConfirmParamsPaymentMethodDataPayByBank as PaymentIntentConfirmParamsPaymentMethodDataPayByBank, + PaymentIntentConfirmParamsPaymentMethodDataPayco as PaymentIntentConfirmParamsPaymentMethodDataPayco, + PaymentIntentConfirmParamsPaymentMethodDataPaynow as PaymentIntentConfirmParamsPaymentMethodDataPaynow, + PaymentIntentConfirmParamsPaymentMethodDataPaypal as PaymentIntentConfirmParamsPaymentMethodDataPaypal, + PaymentIntentConfirmParamsPaymentMethodDataPix as PaymentIntentConfirmParamsPaymentMethodDataPix, + PaymentIntentConfirmParamsPaymentMethodDataPromptpay as PaymentIntentConfirmParamsPaymentMethodDataPromptpay, + PaymentIntentConfirmParamsPaymentMethodDataRadarOptions as PaymentIntentConfirmParamsPaymentMethodDataRadarOptions, + PaymentIntentConfirmParamsPaymentMethodDataRevolutPay as PaymentIntentConfirmParamsPaymentMethodDataRevolutPay, + PaymentIntentConfirmParamsPaymentMethodDataSamsungPay as PaymentIntentConfirmParamsPaymentMethodDataSamsungPay, + PaymentIntentConfirmParamsPaymentMethodDataSatispay as PaymentIntentConfirmParamsPaymentMethodDataSatispay, + PaymentIntentConfirmParamsPaymentMethodDataSepaDebit as PaymentIntentConfirmParamsPaymentMethodDataSepaDebit, + PaymentIntentConfirmParamsPaymentMethodDataSofort as PaymentIntentConfirmParamsPaymentMethodDataSofort, + PaymentIntentConfirmParamsPaymentMethodDataSwish as PaymentIntentConfirmParamsPaymentMethodDataSwish, + PaymentIntentConfirmParamsPaymentMethodDataTwint as PaymentIntentConfirmParamsPaymentMethodDataTwint, + PaymentIntentConfirmParamsPaymentMethodDataUsBankAccount as PaymentIntentConfirmParamsPaymentMethodDataUsBankAccount, + PaymentIntentConfirmParamsPaymentMethodDataWechatPay as PaymentIntentConfirmParamsPaymentMethodDataWechatPay, + PaymentIntentConfirmParamsPaymentMethodDataZip as PaymentIntentConfirmParamsPaymentMethodDataZip, + PaymentIntentConfirmParamsPaymentMethodOptions as PaymentIntentConfirmParamsPaymentMethodOptions, + PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebit as PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebit, + PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions as PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions, + PaymentIntentConfirmParamsPaymentMethodOptionsAffirm as PaymentIntentConfirmParamsPaymentMethodOptionsAffirm, + PaymentIntentConfirmParamsPaymentMethodOptionsAfterpayClearpay as PaymentIntentConfirmParamsPaymentMethodOptionsAfterpayClearpay, + PaymentIntentConfirmParamsPaymentMethodOptionsAlipay as PaymentIntentConfirmParamsPaymentMethodOptionsAlipay, + PaymentIntentConfirmParamsPaymentMethodOptionsAlma as PaymentIntentConfirmParamsPaymentMethodOptionsAlma, + PaymentIntentConfirmParamsPaymentMethodOptionsAmazonPay as PaymentIntentConfirmParamsPaymentMethodOptionsAmazonPay, + PaymentIntentConfirmParamsPaymentMethodOptionsAuBecsDebit as PaymentIntentConfirmParamsPaymentMethodOptionsAuBecsDebit, + PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebit as PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebit, + PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions as PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions, + PaymentIntentConfirmParamsPaymentMethodOptionsBancontact as PaymentIntentConfirmParamsPaymentMethodOptionsBancontact, + PaymentIntentConfirmParamsPaymentMethodOptionsBillie as PaymentIntentConfirmParamsPaymentMethodOptionsBillie, + PaymentIntentConfirmParamsPaymentMethodOptionsBlik as PaymentIntentConfirmParamsPaymentMethodOptionsBlik, + PaymentIntentConfirmParamsPaymentMethodOptionsBoleto as PaymentIntentConfirmParamsPaymentMethodOptionsBoleto, + PaymentIntentConfirmParamsPaymentMethodOptionsCard as PaymentIntentConfirmParamsPaymentMethodOptionsCard, + PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallments as PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallments, + PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallmentsPlan as PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallmentsPlan, + PaymentIntentConfirmParamsPaymentMethodOptionsCardMandateOptions as PaymentIntentConfirmParamsPaymentMethodOptionsCardMandateOptions, + PaymentIntentConfirmParamsPaymentMethodOptionsCardPresent as PaymentIntentConfirmParamsPaymentMethodOptionsCardPresent, + PaymentIntentConfirmParamsPaymentMethodOptionsCardPresentRouting as PaymentIntentConfirmParamsPaymentMethodOptionsCardPresentRouting, + PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure as PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure, + PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + PaymentIntentConfirmParamsPaymentMethodOptionsCashapp as PaymentIntentConfirmParamsPaymentMethodOptionsCashapp, + PaymentIntentConfirmParamsPaymentMethodOptionsCrypto as PaymentIntentConfirmParamsPaymentMethodOptionsCrypto, + PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalance as PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalance, + PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransfer as PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransfer, + PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + PaymentIntentConfirmParamsPaymentMethodOptionsEps as PaymentIntentConfirmParamsPaymentMethodOptionsEps, + PaymentIntentConfirmParamsPaymentMethodOptionsFpx as PaymentIntentConfirmParamsPaymentMethodOptionsFpx, + PaymentIntentConfirmParamsPaymentMethodOptionsGiropay as PaymentIntentConfirmParamsPaymentMethodOptionsGiropay, + PaymentIntentConfirmParamsPaymentMethodOptionsGrabpay as PaymentIntentConfirmParamsPaymentMethodOptionsGrabpay, + PaymentIntentConfirmParamsPaymentMethodOptionsIdeal as PaymentIntentConfirmParamsPaymentMethodOptionsIdeal, + PaymentIntentConfirmParamsPaymentMethodOptionsInteracPresent as PaymentIntentConfirmParamsPaymentMethodOptionsInteracPresent, + PaymentIntentConfirmParamsPaymentMethodOptionsKakaoPay as PaymentIntentConfirmParamsPaymentMethodOptionsKakaoPay, + PaymentIntentConfirmParamsPaymentMethodOptionsKlarna as PaymentIntentConfirmParamsPaymentMethodOptionsKlarna, + PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand as PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand, + PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription as PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription, + PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + PaymentIntentConfirmParamsPaymentMethodOptionsKonbini as PaymentIntentConfirmParamsPaymentMethodOptionsKonbini, + PaymentIntentConfirmParamsPaymentMethodOptionsKrCard as PaymentIntentConfirmParamsPaymentMethodOptionsKrCard, + PaymentIntentConfirmParamsPaymentMethodOptionsLink as PaymentIntentConfirmParamsPaymentMethodOptionsLink, + PaymentIntentConfirmParamsPaymentMethodOptionsMbWay as PaymentIntentConfirmParamsPaymentMethodOptionsMbWay, + PaymentIntentConfirmParamsPaymentMethodOptionsMobilepay as PaymentIntentConfirmParamsPaymentMethodOptionsMobilepay, + PaymentIntentConfirmParamsPaymentMethodOptionsMultibanco as PaymentIntentConfirmParamsPaymentMethodOptionsMultibanco, + PaymentIntentConfirmParamsPaymentMethodOptionsNaverPay as PaymentIntentConfirmParamsPaymentMethodOptionsNaverPay, + PaymentIntentConfirmParamsPaymentMethodOptionsNzBankAccount as PaymentIntentConfirmParamsPaymentMethodOptionsNzBankAccount, + PaymentIntentConfirmParamsPaymentMethodOptionsOxxo as PaymentIntentConfirmParamsPaymentMethodOptionsOxxo, + PaymentIntentConfirmParamsPaymentMethodOptionsP24 as PaymentIntentConfirmParamsPaymentMethodOptionsP24, + PaymentIntentConfirmParamsPaymentMethodOptionsPayByBank as PaymentIntentConfirmParamsPaymentMethodOptionsPayByBank, + PaymentIntentConfirmParamsPaymentMethodOptionsPayco as PaymentIntentConfirmParamsPaymentMethodOptionsPayco, + PaymentIntentConfirmParamsPaymentMethodOptionsPaynow as PaymentIntentConfirmParamsPaymentMethodOptionsPaynow, + PaymentIntentConfirmParamsPaymentMethodOptionsPaypal as PaymentIntentConfirmParamsPaymentMethodOptionsPaypal, + PaymentIntentConfirmParamsPaymentMethodOptionsPix as PaymentIntentConfirmParamsPaymentMethodOptionsPix, + PaymentIntentConfirmParamsPaymentMethodOptionsPromptpay as PaymentIntentConfirmParamsPaymentMethodOptionsPromptpay, + PaymentIntentConfirmParamsPaymentMethodOptionsRevolutPay as PaymentIntentConfirmParamsPaymentMethodOptionsRevolutPay, + PaymentIntentConfirmParamsPaymentMethodOptionsSamsungPay as PaymentIntentConfirmParamsPaymentMethodOptionsSamsungPay, + PaymentIntentConfirmParamsPaymentMethodOptionsSatispay as PaymentIntentConfirmParamsPaymentMethodOptionsSatispay, + PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebit as PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebit, + PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions as PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions, + PaymentIntentConfirmParamsPaymentMethodOptionsSofort as PaymentIntentConfirmParamsPaymentMethodOptionsSofort, + PaymentIntentConfirmParamsPaymentMethodOptionsSwish as PaymentIntentConfirmParamsPaymentMethodOptionsSwish, + PaymentIntentConfirmParamsPaymentMethodOptionsTwint as PaymentIntentConfirmParamsPaymentMethodOptionsTwint, + PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccount as PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccount, + PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections as PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions as PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions, + PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks as PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks, + PaymentIntentConfirmParamsPaymentMethodOptionsWechatPay as PaymentIntentConfirmParamsPaymentMethodOptionsWechatPay, + PaymentIntentConfirmParamsPaymentMethodOptionsZip as PaymentIntentConfirmParamsPaymentMethodOptionsZip, + PaymentIntentConfirmParamsRadarOptions as PaymentIntentConfirmParamsRadarOptions, + PaymentIntentConfirmParamsShipping as PaymentIntentConfirmParamsShipping, + PaymentIntentConfirmParamsShippingAddress as PaymentIntentConfirmParamsShippingAddress, + ) + from stripe.params._payment_intent_create_params import ( + PaymentIntentCreateParams as PaymentIntentCreateParams, + PaymentIntentCreateParamsAmountDetails as PaymentIntentCreateParamsAmountDetails, + PaymentIntentCreateParamsAmountDetailsLineItem as PaymentIntentCreateParamsAmountDetailsLineItem, + PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptions as PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptions, + PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCard as PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCard, + PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent as PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent, + PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna as PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna, + PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal as PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal, + PaymentIntentCreateParamsAmountDetailsLineItemTax as PaymentIntentCreateParamsAmountDetailsLineItemTax, + PaymentIntentCreateParamsAmountDetailsShipping as PaymentIntentCreateParamsAmountDetailsShipping, + PaymentIntentCreateParamsAmountDetailsTax as PaymentIntentCreateParamsAmountDetailsTax, + PaymentIntentCreateParamsAutomaticPaymentMethods as PaymentIntentCreateParamsAutomaticPaymentMethods, + PaymentIntentCreateParamsMandateData as PaymentIntentCreateParamsMandateData, + PaymentIntentCreateParamsMandateDataCustomerAcceptance as PaymentIntentCreateParamsMandateDataCustomerAcceptance, + PaymentIntentCreateParamsMandateDataCustomerAcceptanceOffline as PaymentIntentCreateParamsMandateDataCustomerAcceptanceOffline, + PaymentIntentCreateParamsMandateDataCustomerAcceptanceOnline as PaymentIntentCreateParamsMandateDataCustomerAcceptanceOnline, + PaymentIntentCreateParamsPaymentDetails as PaymentIntentCreateParamsPaymentDetails, + PaymentIntentCreateParamsPaymentMethodData as PaymentIntentCreateParamsPaymentMethodData, + PaymentIntentCreateParamsPaymentMethodDataAcssDebit as PaymentIntentCreateParamsPaymentMethodDataAcssDebit, + PaymentIntentCreateParamsPaymentMethodDataAffirm as PaymentIntentCreateParamsPaymentMethodDataAffirm, + PaymentIntentCreateParamsPaymentMethodDataAfterpayClearpay as PaymentIntentCreateParamsPaymentMethodDataAfterpayClearpay, + PaymentIntentCreateParamsPaymentMethodDataAlipay as PaymentIntentCreateParamsPaymentMethodDataAlipay, + PaymentIntentCreateParamsPaymentMethodDataAlma as PaymentIntentCreateParamsPaymentMethodDataAlma, + PaymentIntentCreateParamsPaymentMethodDataAmazonPay as PaymentIntentCreateParamsPaymentMethodDataAmazonPay, + PaymentIntentCreateParamsPaymentMethodDataAuBecsDebit as PaymentIntentCreateParamsPaymentMethodDataAuBecsDebit, + PaymentIntentCreateParamsPaymentMethodDataBacsDebit as PaymentIntentCreateParamsPaymentMethodDataBacsDebit, + PaymentIntentCreateParamsPaymentMethodDataBancontact as PaymentIntentCreateParamsPaymentMethodDataBancontact, + PaymentIntentCreateParamsPaymentMethodDataBillie as PaymentIntentCreateParamsPaymentMethodDataBillie, + PaymentIntentCreateParamsPaymentMethodDataBillingDetails as PaymentIntentCreateParamsPaymentMethodDataBillingDetails, + PaymentIntentCreateParamsPaymentMethodDataBillingDetailsAddress as PaymentIntentCreateParamsPaymentMethodDataBillingDetailsAddress, + PaymentIntentCreateParamsPaymentMethodDataBlik as PaymentIntentCreateParamsPaymentMethodDataBlik, + PaymentIntentCreateParamsPaymentMethodDataBoleto as PaymentIntentCreateParamsPaymentMethodDataBoleto, + PaymentIntentCreateParamsPaymentMethodDataCashapp as PaymentIntentCreateParamsPaymentMethodDataCashapp, + PaymentIntentCreateParamsPaymentMethodDataCrypto as PaymentIntentCreateParamsPaymentMethodDataCrypto, + PaymentIntentCreateParamsPaymentMethodDataCustomerBalance as PaymentIntentCreateParamsPaymentMethodDataCustomerBalance, + PaymentIntentCreateParamsPaymentMethodDataEps as PaymentIntentCreateParamsPaymentMethodDataEps, + PaymentIntentCreateParamsPaymentMethodDataFpx as PaymentIntentCreateParamsPaymentMethodDataFpx, + PaymentIntentCreateParamsPaymentMethodDataGiropay as PaymentIntentCreateParamsPaymentMethodDataGiropay, + PaymentIntentCreateParamsPaymentMethodDataGrabpay as PaymentIntentCreateParamsPaymentMethodDataGrabpay, + PaymentIntentCreateParamsPaymentMethodDataIdeal as PaymentIntentCreateParamsPaymentMethodDataIdeal, + PaymentIntentCreateParamsPaymentMethodDataInteracPresent as PaymentIntentCreateParamsPaymentMethodDataInteracPresent, + PaymentIntentCreateParamsPaymentMethodDataKakaoPay as PaymentIntentCreateParamsPaymentMethodDataKakaoPay, + PaymentIntentCreateParamsPaymentMethodDataKlarna as PaymentIntentCreateParamsPaymentMethodDataKlarna, + PaymentIntentCreateParamsPaymentMethodDataKlarnaDob as PaymentIntentCreateParamsPaymentMethodDataKlarnaDob, + PaymentIntentCreateParamsPaymentMethodDataKonbini as PaymentIntentCreateParamsPaymentMethodDataKonbini, + PaymentIntentCreateParamsPaymentMethodDataKrCard as PaymentIntentCreateParamsPaymentMethodDataKrCard, + PaymentIntentCreateParamsPaymentMethodDataLink as PaymentIntentCreateParamsPaymentMethodDataLink, + PaymentIntentCreateParamsPaymentMethodDataMbWay as PaymentIntentCreateParamsPaymentMethodDataMbWay, + PaymentIntentCreateParamsPaymentMethodDataMobilepay as PaymentIntentCreateParamsPaymentMethodDataMobilepay, + PaymentIntentCreateParamsPaymentMethodDataMultibanco as PaymentIntentCreateParamsPaymentMethodDataMultibanco, + PaymentIntentCreateParamsPaymentMethodDataNaverPay as PaymentIntentCreateParamsPaymentMethodDataNaverPay, + PaymentIntentCreateParamsPaymentMethodDataNzBankAccount as PaymentIntentCreateParamsPaymentMethodDataNzBankAccount, + PaymentIntentCreateParamsPaymentMethodDataOxxo as PaymentIntentCreateParamsPaymentMethodDataOxxo, + PaymentIntentCreateParamsPaymentMethodDataP24 as PaymentIntentCreateParamsPaymentMethodDataP24, + PaymentIntentCreateParamsPaymentMethodDataPayByBank as PaymentIntentCreateParamsPaymentMethodDataPayByBank, + PaymentIntentCreateParamsPaymentMethodDataPayco as PaymentIntentCreateParamsPaymentMethodDataPayco, + PaymentIntentCreateParamsPaymentMethodDataPaynow as PaymentIntentCreateParamsPaymentMethodDataPaynow, + PaymentIntentCreateParamsPaymentMethodDataPaypal as PaymentIntentCreateParamsPaymentMethodDataPaypal, + PaymentIntentCreateParamsPaymentMethodDataPix as PaymentIntentCreateParamsPaymentMethodDataPix, + PaymentIntentCreateParamsPaymentMethodDataPromptpay as PaymentIntentCreateParamsPaymentMethodDataPromptpay, + PaymentIntentCreateParamsPaymentMethodDataRadarOptions as PaymentIntentCreateParamsPaymentMethodDataRadarOptions, + PaymentIntentCreateParamsPaymentMethodDataRevolutPay as PaymentIntentCreateParamsPaymentMethodDataRevolutPay, + PaymentIntentCreateParamsPaymentMethodDataSamsungPay as PaymentIntentCreateParamsPaymentMethodDataSamsungPay, + PaymentIntentCreateParamsPaymentMethodDataSatispay as PaymentIntentCreateParamsPaymentMethodDataSatispay, + PaymentIntentCreateParamsPaymentMethodDataSepaDebit as PaymentIntentCreateParamsPaymentMethodDataSepaDebit, + PaymentIntentCreateParamsPaymentMethodDataSofort as PaymentIntentCreateParamsPaymentMethodDataSofort, + PaymentIntentCreateParamsPaymentMethodDataSwish as PaymentIntentCreateParamsPaymentMethodDataSwish, + PaymentIntentCreateParamsPaymentMethodDataTwint as PaymentIntentCreateParamsPaymentMethodDataTwint, + PaymentIntentCreateParamsPaymentMethodDataUsBankAccount as PaymentIntentCreateParamsPaymentMethodDataUsBankAccount, + PaymentIntentCreateParamsPaymentMethodDataWechatPay as PaymentIntentCreateParamsPaymentMethodDataWechatPay, + PaymentIntentCreateParamsPaymentMethodDataZip as PaymentIntentCreateParamsPaymentMethodDataZip, + PaymentIntentCreateParamsPaymentMethodOptions as PaymentIntentCreateParamsPaymentMethodOptions, + PaymentIntentCreateParamsPaymentMethodOptionsAcssDebit as PaymentIntentCreateParamsPaymentMethodOptionsAcssDebit, + PaymentIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions as PaymentIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions, + PaymentIntentCreateParamsPaymentMethodOptionsAffirm as PaymentIntentCreateParamsPaymentMethodOptionsAffirm, + PaymentIntentCreateParamsPaymentMethodOptionsAfterpayClearpay as PaymentIntentCreateParamsPaymentMethodOptionsAfterpayClearpay, + PaymentIntentCreateParamsPaymentMethodOptionsAlipay as PaymentIntentCreateParamsPaymentMethodOptionsAlipay, + PaymentIntentCreateParamsPaymentMethodOptionsAlma as PaymentIntentCreateParamsPaymentMethodOptionsAlma, + PaymentIntentCreateParamsPaymentMethodOptionsAmazonPay as PaymentIntentCreateParamsPaymentMethodOptionsAmazonPay, + PaymentIntentCreateParamsPaymentMethodOptionsAuBecsDebit as PaymentIntentCreateParamsPaymentMethodOptionsAuBecsDebit, + PaymentIntentCreateParamsPaymentMethodOptionsBacsDebit as PaymentIntentCreateParamsPaymentMethodOptionsBacsDebit, + PaymentIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions as PaymentIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions, + PaymentIntentCreateParamsPaymentMethodOptionsBancontact as PaymentIntentCreateParamsPaymentMethodOptionsBancontact, + PaymentIntentCreateParamsPaymentMethodOptionsBillie as PaymentIntentCreateParamsPaymentMethodOptionsBillie, + PaymentIntentCreateParamsPaymentMethodOptionsBlik as PaymentIntentCreateParamsPaymentMethodOptionsBlik, + PaymentIntentCreateParamsPaymentMethodOptionsBoleto as PaymentIntentCreateParamsPaymentMethodOptionsBoleto, + PaymentIntentCreateParamsPaymentMethodOptionsCard as PaymentIntentCreateParamsPaymentMethodOptionsCard, + PaymentIntentCreateParamsPaymentMethodOptionsCardInstallments as PaymentIntentCreateParamsPaymentMethodOptionsCardInstallments, + PaymentIntentCreateParamsPaymentMethodOptionsCardInstallmentsPlan as PaymentIntentCreateParamsPaymentMethodOptionsCardInstallmentsPlan, + PaymentIntentCreateParamsPaymentMethodOptionsCardMandateOptions as PaymentIntentCreateParamsPaymentMethodOptionsCardMandateOptions, + PaymentIntentCreateParamsPaymentMethodOptionsCardPresent as PaymentIntentCreateParamsPaymentMethodOptionsCardPresent, + PaymentIntentCreateParamsPaymentMethodOptionsCardPresentRouting as PaymentIntentCreateParamsPaymentMethodOptionsCardPresentRouting, + PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecure as PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecure, + PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + PaymentIntentCreateParamsPaymentMethodOptionsCashapp as PaymentIntentCreateParamsPaymentMethodOptionsCashapp, + PaymentIntentCreateParamsPaymentMethodOptionsCrypto as PaymentIntentCreateParamsPaymentMethodOptionsCrypto, + PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalance as PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalance, + PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer as PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer, + PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + PaymentIntentCreateParamsPaymentMethodOptionsEps as PaymentIntentCreateParamsPaymentMethodOptionsEps, + PaymentIntentCreateParamsPaymentMethodOptionsFpx as PaymentIntentCreateParamsPaymentMethodOptionsFpx, + PaymentIntentCreateParamsPaymentMethodOptionsGiropay as PaymentIntentCreateParamsPaymentMethodOptionsGiropay, + PaymentIntentCreateParamsPaymentMethodOptionsGrabpay as PaymentIntentCreateParamsPaymentMethodOptionsGrabpay, + PaymentIntentCreateParamsPaymentMethodOptionsIdeal as PaymentIntentCreateParamsPaymentMethodOptionsIdeal, + PaymentIntentCreateParamsPaymentMethodOptionsInteracPresent as PaymentIntentCreateParamsPaymentMethodOptionsInteracPresent, + PaymentIntentCreateParamsPaymentMethodOptionsKakaoPay as PaymentIntentCreateParamsPaymentMethodOptionsKakaoPay, + PaymentIntentCreateParamsPaymentMethodOptionsKlarna as PaymentIntentCreateParamsPaymentMethodOptionsKlarna, + PaymentIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand as PaymentIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand, + PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscription as PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscription, + PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + PaymentIntentCreateParamsPaymentMethodOptionsKonbini as PaymentIntentCreateParamsPaymentMethodOptionsKonbini, + PaymentIntentCreateParamsPaymentMethodOptionsKrCard as PaymentIntentCreateParamsPaymentMethodOptionsKrCard, + PaymentIntentCreateParamsPaymentMethodOptionsLink as PaymentIntentCreateParamsPaymentMethodOptionsLink, + PaymentIntentCreateParamsPaymentMethodOptionsMbWay as PaymentIntentCreateParamsPaymentMethodOptionsMbWay, + PaymentIntentCreateParamsPaymentMethodOptionsMobilepay as PaymentIntentCreateParamsPaymentMethodOptionsMobilepay, + PaymentIntentCreateParamsPaymentMethodOptionsMultibanco as PaymentIntentCreateParamsPaymentMethodOptionsMultibanco, + PaymentIntentCreateParamsPaymentMethodOptionsNaverPay as PaymentIntentCreateParamsPaymentMethodOptionsNaverPay, + PaymentIntentCreateParamsPaymentMethodOptionsNzBankAccount as PaymentIntentCreateParamsPaymentMethodOptionsNzBankAccount, + PaymentIntentCreateParamsPaymentMethodOptionsOxxo as PaymentIntentCreateParamsPaymentMethodOptionsOxxo, + PaymentIntentCreateParamsPaymentMethodOptionsP24 as PaymentIntentCreateParamsPaymentMethodOptionsP24, + PaymentIntentCreateParamsPaymentMethodOptionsPayByBank as PaymentIntentCreateParamsPaymentMethodOptionsPayByBank, + PaymentIntentCreateParamsPaymentMethodOptionsPayco as PaymentIntentCreateParamsPaymentMethodOptionsPayco, + PaymentIntentCreateParamsPaymentMethodOptionsPaynow as PaymentIntentCreateParamsPaymentMethodOptionsPaynow, + PaymentIntentCreateParamsPaymentMethodOptionsPaypal as PaymentIntentCreateParamsPaymentMethodOptionsPaypal, + PaymentIntentCreateParamsPaymentMethodOptionsPix as PaymentIntentCreateParamsPaymentMethodOptionsPix, + PaymentIntentCreateParamsPaymentMethodOptionsPromptpay as PaymentIntentCreateParamsPaymentMethodOptionsPromptpay, + PaymentIntentCreateParamsPaymentMethodOptionsRevolutPay as PaymentIntentCreateParamsPaymentMethodOptionsRevolutPay, + PaymentIntentCreateParamsPaymentMethodOptionsSamsungPay as PaymentIntentCreateParamsPaymentMethodOptionsSamsungPay, + PaymentIntentCreateParamsPaymentMethodOptionsSatispay as PaymentIntentCreateParamsPaymentMethodOptionsSatispay, + PaymentIntentCreateParamsPaymentMethodOptionsSepaDebit as PaymentIntentCreateParamsPaymentMethodOptionsSepaDebit, + PaymentIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions as PaymentIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions, + PaymentIntentCreateParamsPaymentMethodOptionsSofort as PaymentIntentCreateParamsPaymentMethodOptionsSofort, + PaymentIntentCreateParamsPaymentMethodOptionsSwish as PaymentIntentCreateParamsPaymentMethodOptionsSwish, + PaymentIntentCreateParamsPaymentMethodOptionsTwint as PaymentIntentCreateParamsPaymentMethodOptionsTwint, + PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccount as PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccount, + PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections as PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions as PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions, + PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks as PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks, + PaymentIntentCreateParamsPaymentMethodOptionsWechatPay as PaymentIntentCreateParamsPaymentMethodOptionsWechatPay, + PaymentIntentCreateParamsPaymentMethodOptionsZip as PaymentIntentCreateParamsPaymentMethodOptionsZip, + PaymentIntentCreateParamsRadarOptions as PaymentIntentCreateParamsRadarOptions, + PaymentIntentCreateParamsShipping as PaymentIntentCreateParamsShipping, + PaymentIntentCreateParamsShippingAddress as PaymentIntentCreateParamsShippingAddress, + PaymentIntentCreateParamsTransferData as PaymentIntentCreateParamsTransferData, + ) + from stripe.params._payment_intent_increment_authorization_params import ( + PaymentIntentIncrementAuthorizationParams as PaymentIntentIncrementAuthorizationParams, + PaymentIntentIncrementAuthorizationParamsAmountDetails as PaymentIntentIncrementAuthorizationParamsAmountDetails, + PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItem as PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItem, + PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptions as PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptions, + PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCard as PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCard, + PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent as PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent, + PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsKlarna as PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsKlarna, + PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsPaypal as PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsPaypal, + PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemTax as PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemTax, + PaymentIntentIncrementAuthorizationParamsAmountDetailsShipping as PaymentIntentIncrementAuthorizationParamsAmountDetailsShipping, + PaymentIntentIncrementAuthorizationParamsAmountDetailsTax as PaymentIntentIncrementAuthorizationParamsAmountDetailsTax, + PaymentIntentIncrementAuthorizationParamsPaymentDetails as PaymentIntentIncrementAuthorizationParamsPaymentDetails, + PaymentIntentIncrementAuthorizationParamsTransferData as PaymentIntentIncrementAuthorizationParamsTransferData, + ) + from stripe.params._payment_intent_list_amount_details_line_items_params import ( + PaymentIntentListAmountDetailsLineItemsParams as PaymentIntentListAmountDetailsLineItemsParams, + ) + from stripe.params._payment_intent_list_params import ( + PaymentIntentListParams as PaymentIntentListParams, + PaymentIntentListParamsCreated as PaymentIntentListParamsCreated, + ) + from stripe.params._payment_intent_modify_params import ( + PaymentIntentModifyParams as PaymentIntentModifyParams, + PaymentIntentModifyParamsAmountDetails as PaymentIntentModifyParamsAmountDetails, + PaymentIntentModifyParamsAmountDetailsLineItem as PaymentIntentModifyParamsAmountDetailsLineItem, + PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptions as PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptions, + PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCard as PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCard, + PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent as PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent, + PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsKlarna as PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsKlarna, + PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsPaypal as PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsPaypal, + PaymentIntentModifyParamsAmountDetailsLineItemTax as PaymentIntentModifyParamsAmountDetailsLineItemTax, + PaymentIntentModifyParamsAmountDetailsShipping as PaymentIntentModifyParamsAmountDetailsShipping, + PaymentIntentModifyParamsAmountDetailsTax as PaymentIntentModifyParamsAmountDetailsTax, + PaymentIntentModifyParamsPaymentDetails as PaymentIntentModifyParamsPaymentDetails, + PaymentIntentModifyParamsPaymentMethodData as PaymentIntentModifyParamsPaymentMethodData, + PaymentIntentModifyParamsPaymentMethodDataAcssDebit as PaymentIntentModifyParamsPaymentMethodDataAcssDebit, + PaymentIntentModifyParamsPaymentMethodDataAffirm as PaymentIntentModifyParamsPaymentMethodDataAffirm, + PaymentIntentModifyParamsPaymentMethodDataAfterpayClearpay as PaymentIntentModifyParamsPaymentMethodDataAfterpayClearpay, + PaymentIntentModifyParamsPaymentMethodDataAlipay as PaymentIntentModifyParamsPaymentMethodDataAlipay, + PaymentIntentModifyParamsPaymentMethodDataAlma as PaymentIntentModifyParamsPaymentMethodDataAlma, + PaymentIntentModifyParamsPaymentMethodDataAmazonPay as PaymentIntentModifyParamsPaymentMethodDataAmazonPay, + PaymentIntentModifyParamsPaymentMethodDataAuBecsDebit as PaymentIntentModifyParamsPaymentMethodDataAuBecsDebit, + PaymentIntentModifyParamsPaymentMethodDataBacsDebit as PaymentIntentModifyParamsPaymentMethodDataBacsDebit, + PaymentIntentModifyParamsPaymentMethodDataBancontact as PaymentIntentModifyParamsPaymentMethodDataBancontact, + PaymentIntentModifyParamsPaymentMethodDataBillie as PaymentIntentModifyParamsPaymentMethodDataBillie, + PaymentIntentModifyParamsPaymentMethodDataBillingDetails as PaymentIntentModifyParamsPaymentMethodDataBillingDetails, + PaymentIntentModifyParamsPaymentMethodDataBillingDetailsAddress as PaymentIntentModifyParamsPaymentMethodDataBillingDetailsAddress, + PaymentIntentModifyParamsPaymentMethodDataBlik as PaymentIntentModifyParamsPaymentMethodDataBlik, + PaymentIntentModifyParamsPaymentMethodDataBoleto as PaymentIntentModifyParamsPaymentMethodDataBoleto, + PaymentIntentModifyParamsPaymentMethodDataCashapp as PaymentIntentModifyParamsPaymentMethodDataCashapp, + PaymentIntentModifyParamsPaymentMethodDataCrypto as PaymentIntentModifyParamsPaymentMethodDataCrypto, + PaymentIntentModifyParamsPaymentMethodDataCustomerBalance as PaymentIntentModifyParamsPaymentMethodDataCustomerBalance, + PaymentIntentModifyParamsPaymentMethodDataEps as PaymentIntentModifyParamsPaymentMethodDataEps, + PaymentIntentModifyParamsPaymentMethodDataFpx as PaymentIntentModifyParamsPaymentMethodDataFpx, + PaymentIntentModifyParamsPaymentMethodDataGiropay as PaymentIntentModifyParamsPaymentMethodDataGiropay, + PaymentIntentModifyParamsPaymentMethodDataGrabpay as PaymentIntentModifyParamsPaymentMethodDataGrabpay, + PaymentIntentModifyParamsPaymentMethodDataIdeal as PaymentIntentModifyParamsPaymentMethodDataIdeal, + PaymentIntentModifyParamsPaymentMethodDataInteracPresent as PaymentIntentModifyParamsPaymentMethodDataInteracPresent, + PaymentIntentModifyParamsPaymentMethodDataKakaoPay as PaymentIntentModifyParamsPaymentMethodDataKakaoPay, + PaymentIntentModifyParamsPaymentMethodDataKlarna as PaymentIntentModifyParamsPaymentMethodDataKlarna, + PaymentIntentModifyParamsPaymentMethodDataKlarnaDob as PaymentIntentModifyParamsPaymentMethodDataKlarnaDob, + PaymentIntentModifyParamsPaymentMethodDataKonbini as PaymentIntentModifyParamsPaymentMethodDataKonbini, + PaymentIntentModifyParamsPaymentMethodDataKrCard as PaymentIntentModifyParamsPaymentMethodDataKrCard, + PaymentIntentModifyParamsPaymentMethodDataLink as PaymentIntentModifyParamsPaymentMethodDataLink, + PaymentIntentModifyParamsPaymentMethodDataMbWay as PaymentIntentModifyParamsPaymentMethodDataMbWay, + PaymentIntentModifyParamsPaymentMethodDataMobilepay as PaymentIntentModifyParamsPaymentMethodDataMobilepay, + PaymentIntentModifyParamsPaymentMethodDataMultibanco as PaymentIntentModifyParamsPaymentMethodDataMultibanco, + PaymentIntentModifyParamsPaymentMethodDataNaverPay as PaymentIntentModifyParamsPaymentMethodDataNaverPay, + PaymentIntentModifyParamsPaymentMethodDataNzBankAccount as PaymentIntentModifyParamsPaymentMethodDataNzBankAccount, + PaymentIntentModifyParamsPaymentMethodDataOxxo as PaymentIntentModifyParamsPaymentMethodDataOxxo, + PaymentIntentModifyParamsPaymentMethodDataP24 as PaymentIntentModifyParamsPaymentMethodDataP24, + PaymentIntentModifyParamsPaymentMethodDataPayByBank as PaymentIntentModifyParamsPaymentMethodDataPayByBank, + PaymentIntentModifyParamsPaymentMethodDataPayco as PaymentIntentModifyParamsPaymentMethodDataPayco, + PaymentIntentModifyParamsPaymentMethodDataPaynow as PaymentIntentModifyParamsPaymentMethodDataPaynow, + PaymentIntentModifyParamsPaymentMethodDataPaypal as PaymentIntentModifyParamsPaymentMethodDataPaypal, + PaymentIntentModifyParamsPaymentMethodDataPix as PaymentIntentModifyParamsPaymentMethodDataPix, + PaymentIntentModifyParamsPaymentMethodDataPromptpay as PaymentIntentModifyParamsPaymentMethodDataPromptpay, + PaymentIntentModifyParamsPaymentMethodDataRadarOptions as PaymentIntentModifyParamsPaymentMethodDataRadarOptions, + PaymentIntentModifyParamsPaymentMethodDataRevolutPay as PaymentIntentModifyParamsPaymentMethodDataRevolutPay, + PaymentIntentModifyParamsPaymentMethodDataSamsungPay as PaymentIntentModifyParamsPaymentMethodDataSamsungPay, + PaymentIntentModifyParamsPaymentMethodDataSatispay as PaymentIntentModifyParamsPaymentMethodDataSatispay, + PaymentIntentModifyParamsPaymentMethodDataSepaDebit as PaymentIntentModifyParamsPaymentMethodDataSepaDebit, + PaymentIntentModifyParamsPaymentMethodDataSofort as PaymentIntentModifyParamsPaymentMethodDataSofort, + PaymentIntentModifyParamsPaymentMethodDataSwish as PaymentIntentModifyParamsPaymentMethodDataSwish, + PaymentIntentModifyParamsPaymentMethodDataTwint as PaymentIntentModifyParamsPaymentMethodDataTwint, + PaymentIntentModifyParamsPaymentMethodDataUsBankAccount as PaymentIntentModifyParamsPaymentMethodDataUsBankAccount, + PaymentIntentModifyParamsPaymentMethodDataWechatPay as PaymentIntentModifyParamsPaymentMethodDataWechatPay, + PaymentIntentModifyParamsPaymentMethodDataZip as PaymentIntentModifyParamsPaymentMethodDataZip, + PaymentIntentModifyParamsPaymentMethodOptions as PaymentIntentModifyParamsPaymentMethodOptions, + PaymentIntentModifyParamsPaymentMethodOptionsAcssDebit as PaymentIntentModifyParamsPaymentMethodOptionsAcssDebit, + PaymentIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions as PaymentIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions, + PaymentIntentModifyParamsPaymentMethodOptionsAffirm as PaymentIntentModifyParamsPaymentMethodOptionsAffirm, + PaymentIntentModifyParamsPaymentMethodOptionsAfterpayClearpay as PaymentIntentModifyParamsPaymentMethodOptionsAfterpayClearpay, + PaymentIntentModifyParamsPaymentMethodOptionsAlipay as PaymentIntentModifyParamsPaymentMethodOptionsAlipay, + PaymentIntentModifyParamsPaymentMethodOptionsAlma as PaymentIntentModifyParamsPaymentMethodOptionsAlma, + PaymentIntentModifyParamsPaymentMethodOptionsAmazonPay as PaymentIntentModifyParamsPaymentMethodOptionsAmazonPay, + PaymentIntentModifyParamsPaymentMethodOptionsAuBecsDebit as PaymentIntentModifyParamsPaymentMethodOptionsAuBecsDebit, + PaymentIntentModifyParamsPaymentMethodOptionsBacsDebit as PaymentIntentModifyParamsPaymentMethodOptionsBacsDebit, + PaymentIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions as PaymentIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions, + PaymentIntentModifyParamsPaymentMethodOptionsBancontact as PaymentIntentModifyParamsPaymentMethodOptionsBancontact, + PaymentIntentModifyParamsPaymentMethodOptionsBillie as PaymentIntentModifyParamsPaymentMethodOptionsBillie, + PaymentIntentModifyParamsPaymentMethodOptionsBlik as PaymentIntentModifyParamsPaymentMethodOptionsBlik, + PaymentIntentModifyParamsPaymentMethodOptionsBoleto as PaymentIntentModifyParamsPaymentMethodOptionsBoleto, + PaymentIntentModifyParamsPaymentMethodOptionsCard as PaymentIntentModifyParamsPaymentMethodOptionsCard, + PaymentIntentModifyParamsPaymentMethodOptionsCardInstallments as PaymentIntentModifyParamsPaymentMethodOptionsCardInstallments, + PaymentIntentModifyParamsPaymentMethodOptionsCardInstallmentsPlan as PaymentIntentModifyParamsPaymentMethodOptionsCardInstallmentsPlan, + PaymentIntentModifyParamsPaymentMethodOptionsCardMandateOptions as PaymentIntentModifyParamsPaymentMethodOptionsCardMandateOptions, + PaymentIntentModifyParamsPaymentMethodOptionsCardPresent as PaymentIntentModifyParamsPaymentMethodOptionsCardPresent, + PaymentIntentModifyParamsPaymentMethodOptionsCardPresentRouting as PaymentIntentModifyParamsPaymentMethodOptionsCardPresentRouting, + PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecure as PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecure, + PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + PaymentIntentModifyParamsPaymentMethodOptionsCashapp as PaymentIntentModifyParamsPaymentMethodOptionsCashapp, + PaymentIntentModifyParamsPaymentMethodOptionsCrypto as PaymentIntentModifyParamsPaymentMethodOptionsCrypto, + PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalance as PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalance, + PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransfer as PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransfer, + PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + PaymentIntentModifyParamsPaymentMethodOptionsEps as PaymentIntentModifyParamsPaymentMethodOptionsEps, + PaymentIntentModifyParamsPaymentMethodOptionsFpx as PaymentIntentModifyParamsPaymentMethodOptionsFpx, + PaymentIntentModifyParamsPaymentMethodOptionsGiropay as PaymentIntentModifyParamsPaymentMethodOptionsGiropay, + PaymentIntentModifyParamsPaymentMethodOptionsGrabpay as PaymentIntentModifyParamsPaymentMethodOptionsGrabpay, + PaymentIntentModifyParamsPaymentMethodOptionsIdeal as PaymentIntentModifyParamsPaymentMethodOptionsIdeal, + PaymentIntentModifyParamsPaymentMethodOptionsInteracPresent as PaymentIntentModifyParamsPaymentMethodOptionsInteracPresent, + PaymentIntentModifyParamsPaymentMethodOptionsKakaoPay as PaymentIntentModifyParamsPaymentMethodOptionsKakaoPay, + PaymentIntentModifyParamsPaymentMethodOptionsKlarna as PaymentIntentModifyParamsPaymentMethodOptionsKlarna, + PaymentIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand as PaymentIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand, + PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscription as PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscription, + PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + PaymentIntentModifyParamsPaymentMethodOptionsKonbini as PaymentIntentModifyParamsPaymentMethodOptionsKonbini, + PaymentIntentModifyParamsPaymentMethodOptionsKrCard as PaymentIntentModifyParamsPaymentMethodOptionsKrCard, + PaymentIntentModifyParamsPaymentMethodOptionsLink as PaymentIntentModifyParamsPaymentMethodOptionsLink, + PaymentIntentModifyParamsPaymentMethodOptionsMbWay as PaymentIntentModifyParamsPaymentMethodOptionsMbWay, + PaymentIntentModifyParamsPaymentMethodOptionsMobilepay as PaymentIntentModifyParamsPaymentMethodOptionsMobilepay, + PaymentIntentModifyParamsPaymentMethodOptionsMultibanco as PaymentIntentModifyParamsPaymentMethodOptionsMultibanco, + PaymentIntentModifyParamsPaymentMethodOptionsNaverPay as PaymentIntentModifyParamsPaymentMethodOptionsNaverPay, + PaymentIntentModifyParamsPaymentMethodOptionsNzBankAccount as PaymentIntentModifyParamsPaymentMethodOptionsNzBankAccount, + PaymentIntentModifyParamsPaymentMethodOptionsOxxo as PaymentIntentModifyParamsPaymentMethodOptionsOxxo, + PaymentIntentModifyParamsPaymentMethodOptionsP24 as PaymentIntentModifyParamsPaymentMethodOptionsP24, + PaymentIntentModifyParamsPaymentMethodOptionsPayByBank as PaymentIntentModifyParamsPaymentMethodOptionsPayByBank, + PaymentIntentModifyParamsPaymentMethodOptionsPayco as PaymentIntentModifyParamsPaymentMethodOptionsPayco, + PaymentIntentModifyParamsPaymentMethodOptionsPaynow as PaymentIntentModifyParamsPaymentMethodOptionsPaynow, + PaymentIntentModifyParamsPaymentMethodOptionsPaypal as PaymentIntentModifyParamsPaymentMethodOptionsPaypal, + PaymentIntentModifyParamsPaymentMethodOptionsPix as PaymentIntentModifyParamsPaymentMethodOptionsPix, + PaymentIntentModifyParamsPaymentMethodOptionsPromptpay as PaymentIntentModifyParamsPaymentMethodOptionsPromptpay, + PaymentIntentModifyParamsPaymentMethodOptionsRevolutPay as PaymentIntentModifyParamsPaymentMethodOptionsRevolutPay, + PaymentIntentModifyParamsPaymentMethodOptionsSamsungPay as PaymentIntentModifyParamsPaymentMethodOptionsSamsungPay, + PaymentIntentModifyParamsPaymentMethodOptionsSatispay as PaymentIntentModifyParamsPaymentMethodOptionsSatispay, + PaymentIntentModifyParamsPaymentMethodOptionsSepaDebit as PaymentIntentModifyParamsPaymentMethodOptionsSepaDebit, + PaymentIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions as PaymentIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions, + PaymentIntentModifyParamsPaymentMethodOptionsSofort as PaymentIntentModifyParamsPaymentMethodOptionsSofort, + PaymentIntentModifyParamsPaymentMethodOptionsSwish as PaymentIntentModifyParamsPaymentMethodOptionsSwish, + PaymentIntentModifyParamsPaymentMethodOptionsTwint as PaymentIntentModifyParamsPaymentMethodOptionsTwint, + PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccount as PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccount, + PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections as PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions as PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions, + PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks as PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks, + PaymentIntentModifyParamsPaymentMethodOptionsWechatPay as PaymentIntentModifyParamsPaymentMethodOptionsWechatPay, + PaymentIntentModifyParamsPaymentMethodOptionsZip as PaymentIntentModifyParamsPaymentMethodOptionsZip, + PaymentIntentModifyParamsShipping as PaymentIntentModifyParamsShipping, + PaymentIntentModifyParamsShippingAddress as PaymentIntentModifyParamsShippingAddress, + PaymentIntentModifyParamsTransferData as PaymentIntentModifyParamsTransferData, + ) + from stripe.params._payment_intent_retrieve_params import ( + PaymentIntentRetrieveParams as PaymentIntentRetrieveParams, + ) + from stripe.params._payment_intent_search_params import ( + PaymentIntentSearchParams as PaymentIntentSearchParams, + ) + from stripe.params._payment_intent_update_params import ( + PaymentIntentUpdateParams as PaymentIntentUpdateParams, + PaymentIntentUpdateParamsAmountDetails as PaymentIntentUpdateParamsAmountDetails, + PaymentIntentUpdateParamsAmountDetailsLineItem as PaymentIntentUpdateParamsAmountDetailsLineItem, + PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptions as PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptions, + PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCard as PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCard, + PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent as PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent, + PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna as PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna, + PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal as PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal, + PaymentIntentUpdateParamsAmountDetailsLineItemTax as PaymentIntentUpdateParamsAmountDetailsLineItemTax, + PaymentIntentUpdateParamsAmountDetailsShipping as PaymentIntentUpdateParamsAmountDetailsShipping, + PaymentIntentUpdateParamsAmountDetailsTax as PaymentIntentUpdateParamsAmountDetailsTax, + PaymentIntentUpdateParamsPaymentDetails as PaymentIntentUpdateParamsPaymentDetails, + PaymentIntentUpdateParamsPaymentMethodData as PaymentIntentUpdateParamsPaymentMethodData, + PaymentIntentUpdateParamsPaymentMethodDataAcssDebit as PaymentIntentUpdateParamsPaymentMethodDataAcssDebit, + PaymentIntentUpdateParamsPaymentMethodDataAffirm as PaymentIntentUpdateParamsPaymentMethodDataAffirm, + PaymentIntentUpdateParamsPaymentMethodDataAfterpayClearpay as PaymentIntentUpdateParamsPaymentMethodDataAfterpayClearpay, + PaymentIntentUpdateParamsPaymentMethodDataAlipay as PaymentIntentUpdateParamsPaymentMethodDataAlipay, + PaymentIntentUpdateParamsPaymentMethodDataAlma as PaymentIntentUpdateParamsPaymentMethodDataAlma, + PaymentIntentUpdateParamsPaymentMethodDataAmazonPay as PaymentIntentUpdateParamsPaymentMethodDataAmazonPay, + PaymentIntentUpdateParamsPaymentMethodDataAuBecsDebit as PaymentIntentUpdateParamsPaymentMethodDataAuBecsDebit, + PaymentIntentUpdateParamsPaymentMethodDataBacsDebit as PaymentIntentUpdateParamsPaymentMethodDataBacsDebit, + PaymentIntentUpdateParamsPaymentMethodDataBancontact as PaymentIntentUpdateParamsPaymentMethodDataBancontact, + PaymentIntentUpdateParamsPaymentMethodDataBillie as PaymentIntentUpdateParamsPaymentMethodDataBillie, + PaymentIntentUpdateParamsPaymentMethodDataBillingDetails as PaymentIntentUpdateParamsPaymentMethodDataBillingDetails, + PaymentIntentUpdateParamsPaymentMethodDataBillingDetailsAddress as PaymentIntentUpdateParamsPaymentMethodDataBillingDetailsAddress, + PaymentIntentUpdateParamsPaymentMethodDataBlik as PaymentIntentUpdateParamsPaymentMethodDataBlik, + PaymentIntentUpdateParamsPaymentMethodDataBoleto as PaymentIntentUpdateParamsPaymentMethodDataBoleto, + PaymentIntentUpdateParamsPaymentMethodDataCashapp as PaymentIntentUpdateParamsPaymentMethodDataCashapp, + PaymentIntentUpdateParamsPaymentMethodDataCrypto as PaymentIntentUpdateParamsPaymentMethodDataCrypto, + PaymentIntentUpdateParamsPaymentMethodDataCustomerBalance as PaymentIntentUpdateParamsPaymentMethodDataCustomerBalance, + PaymentIntentUpdateParamsPaymentMethodDataEps as PaymentIntentUpdateParamsPaymentMethodDataEps, + PaymentIntentUpdateParamsPaymentMethodDataFpx as PaymentIntentUpdateParamsPaymentMethodDataFpx, + PaymentIntentUpdateParamsPaymentMethodDataGiropay as PaymentIntentUpdateParamsPaymentMethodDataGiropay, + PaymentIntentUpdateParamsPaymentMethodDataGrabpay as PaymentIntentUpdateParamsPaymentMethodDataGrabpay, + PaymentIntentUpdateParamsPaymentMethodDataIdeal as PaymentIntentUpdateParamsPaymentMethodDataIdeal, + PaymentIntentUpdateParamsPaymentMethodDataInteracPresent as PaymentIntentUpdateParamsPaymentMethodDataInteracPresent, + PaymentIntentUpdateParamsPaymentMethodDataKakaoPay as PaymentIntentUpdateParamsPaymentMethodDataKakaoPay, + PaymentIntentUpdateParamsPaymentMethodDataKlarna as PaymentIntentUpdateParamsPaymentMethodDataKlarna, + PaymentIntentUpdateParamsPaymentMethodDataKlarnaDob as PaymentIntentUpdateParamsPaymentMethodDataKlarnaDob, + PaymentIntentUpdateParamsPaymentMethodDataKonbini as PaymentIntentUpdateParamsPaymentMethodDataKonbini, + PaymentIntentUpdateParamsPaymentMethodDataKrCard as PaymentIntentUpdateParamsPaymentMethodDataKrCard, + PaymentIntentUpdateParamsPaymentMethodDataLink as PaymentIntentUpdateParamsPaymentMethodDataLink, + PaymentIntentUpdateParamsPaymentMethodDataMbWay as PaymentIntentUpdateParamsPaymentMethodDataMbWay, + PaymentIntentUpdateParamsPaymentMethodDataMobilepay as PaymentIntentUpdateParamsPaymentMethodDataMobilepay, + PaymentIntentUpdateParamsPaymentMethodDataMultibanco as PaymentIntentUpdateParamsPaymentMethodDataMultibanco, + PaymentIntentUpdateParamsPaymentMethodDataNaverPay as PaymentIntentUpdateParamsPaymentMethodDataNaverPay, + PaymentIntentUpdateParamsPaymentMethodDataNzBankAccount as PaymentIntentUpdateParamsPaymentMethodDataNzBankAccount, + PaymentIntentUpdateParamsPaymentMethodDataOxxo as PaymentIntentUpdateParamsPaymentMethodDataOxxo, + PaymentIntentUpdateParamsPaymentMethodDataP24 as PaymentIntentUpdateParamsPaymentMethodDataP24, + PaymentIntentUpdateParamsPaymentMethodDataPayByBank as PaymentIntentUpdateParamsPaymentMethodDataPayByBank, + PaymentIntentUpdateParamsPaymentMethodDataPayco as PaymentIntentUpdateParamsPaymentMethodDataPayco, + PaymentIntentUpdateParamsPaymentMethodDataPaynow as PaymentIntentUpdateParamsPaymentMethodDataPaynow, + PaymentIntentUpdateParamsPaymentMethodDataPaypal as PaymentIntentUpdateParamsPaymentMethodDataPaypal, + PaymentIntentUpdateParamsPaymentMethodDataPix as PaymentIntentUpdateParamsPaymentMethodDataPix, + PaymentIntentUpdateParamsPaymentMethodDataPromptpay as PaymentIntentUpdateParamsPaymentMethodDataPromptpay, + PaymentIntentUpdateParamsPaymentMethodDataRadarOptions as PaymentIntentUpdateParamsPaymentMethodDataRadarOptions, + PaymentIntentUpdateParamsPaymentMethodDataRevolutPay as PaymentIntentUpdateParamsPaymentMethodDataRevolutPay, + PaymentIntentUpdateParamsPaymentMethodDataSamsungPay as PaymentIntentUpdateParamsPaymentMethodDataSamsungPay, + PaymentIntentUpdateParamsPaymentMethodDataSatispay as PaymentIntentUpdateParamsPaymentMethodDataSatispay, + PaymentIntentUpdateParamsPaymentMethodDataSepaDebit as PaymentIntentUpdateParamsPaymentMethodDataSepaDebit, + PaymentIntentUpdateParamsPaymentMethodDataSofort as PaymentIntentUpdateParamsPaymentMethodDataSofort, + PaymentIntentUpdateParamsPaymentMethodDataSwish as PaymentIntentUpdateParamsPaymentMethodDataSwish, + PaymentIntentUpdateParamsPaymentMethodDataTwint as PaymentIntentUpdateParamsPaymentMethodDataTwint, + PaymentIntentUpdateParamsPaymentMethodDataUsBankAccount as PaymentIntentUpdateParamsPaymentMethodDataUsBankAccount, + PaymentIntentUpdateParamsPaymentMethodDataWechatPay as PaymentIntentUpdateParamsPaymentMethodDataWechatPay, + PaymentIntentUpdateParamsPaymentMethodDataZip as PaymentIntentUpdateParamsPaymentMethodDataZip, + PaymentIntentUpdateParamsPaymentMethodOptions as PaymentIntentUpdateParamsPaymentMethodOptions, + PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebit as PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebit, + PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions as PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions, + PaymentIntentUpdateParamsPaymentMethodOptionsAffirm as PaymentIntentUpdateParamsPaymentMethodOptionsAffirm, + PaymentIntentUpdateParamsPaymentMethodOptionsAfterpayClearpay as PaymentIntentUpdateParamsPaymentMethodOptionsAfterpayClearpay, + PaymentIntentUpdateParamsPaymentMethodOptionsAlipay as PaymentIntentUpdateParamsPaymentMethodOptionsAlipay, + PaymentIntentUpdateParamsPaymentMethodOptionsAlma as PaymentIntentUpdateParamsPaymentMethodOptionsAlma, + PaymentIntentUpdateParamsPaymentMethodOptionsAmazonPay as PaymentIntentUpdateParamsPaymentMethodOptionsAmazonPay, + PaymentIntentUpdateParamsPaymentMethodOptionsAuBecsDebit as PaymentIntentUpdateParamsPaymentMethodOptionsAuBecsDebit, + PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebit as PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebit, + PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions as PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions, + PaymentIntentUpdateParamsPaymentMethodOptionsBancontact as PaymentIntentUpdateParamsPaymentMethodOptionsBancontact, + PaymentIntentUpdateParamsPaymentMethodOptionsBillie as PaymentIntentUpdateParamsPaymentMethodOptionsBillie, + PaymentIntentUpdateParamsPaymentMethodOptionsBlik as PaymentIntentUpdateParamsPaymentMethodOptionsBlik, + PaymentIntentUpdateParamsPaymentMethodOptionsBoleto as PaymentIntentUpdateParamsPaymentMethodOptionsBoleto, + PaymentIntentUpdateParamsPaymentMethodOptionsCard as PaymentIntentUpdateParamsPaymentMethodOptionsCard, + PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallments as PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallments, + PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallmentsPlan as PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallmentsPlan, + PaymentIntentUpdateParamsPaymentMethodOptionsCardMandateOptions as PaymentIntentUpdateParamsPaymentMethodOptionsCardMandateOptions, + PaymentIntentUpdateParamsPaymentMethodOptionsCardPresent as PaymentIntentUpdateParamsPaymentMethodOptionsCardPresent, + PaymentIntentUpdateParamsPaymentMethodOptionsCardPresentRouting as PaymentIntentUpdateParamsPaymentMethodOptionsCardPresentRouting, + PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure as PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure, + PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + PaymentIntentUpdateParamsPaymentMethodOptionsCashapp as PaymentIntentUpdateParamsPaymentMethodOptionsCashapp, + PaymentIntentUpdateParamsPaymentMethodOptionsCrypto as PaymentIntentUpdateParamsPaymentMethodOptionsCrypto, + PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalance as PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalance, + PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransfer as PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransfer, + PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + PaymentIntentUpdateParamsPaymentMethodOptionsEps as PaymentIntentUpdateParamsPaymentMethodOptionsEps, + PaymentIntentUpdateParamsPaymentMethodOptionsFpx as PaymentIntentUpdateParamsPaymentMethodOptionsFpx, + PaymentIntentUpdateParamsPaymentMethodOptionsGiropay as PaymentIntentUpdateParamsPaymentMethodOptionsGiropay, + PaymentIntentUpdateParamsPaymentMethodOptionsGrabpay as PaymentIntentUpdateParamsPaymentMethodOptionsGrabpay, + PaymentIntentUpdateParamsPaymentMethodOptionsIdeal as PaymentIntentUpdateParamsPaymentMethodOptionsIdeal, + PaymentIntentUpdateParamsPaymentMethodOptionsInteracPresent as PaymentIntentUpdateParamsPaymentMethodOptionsInteracPresent, + PaymentIntentUpdateParamsPaymentMethodOptionsKakaoPay as PaymentIntentUpdateParamsPaymentMethodOptionsKakaoPay, + PaymentIntentUpdateParamsPaymentMethodOptionsKlarna as PaymentIntentUpdateParamsPaymentMethodOptionsKlarna, + PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand as PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand, + PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription as PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription, + PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + PaymentIntentUpdateParamsPaymentMethodOptionsKonbini as PaymentIntentUpdateParamsPaymentMethodOptionsKonbini, + PaymentIntentUpdateParamsPaymentMethodOptionsKrCard as PaymentIntentUpdateParamsPaymentMethodOptionsKrCard, + PaymentIntentUpdateParamsPaymentMethodOptionsLink as PaymentIntentUpdateParamsPaymentMethodOptionsLink, + PaymentIntentUpdateParamsPaymentMethodOptionsMbWay as PaymentIntentUpdateParamsPaymentMethodOptionsMbWay, + PaymentIntentUpdateParamsPaymentMethodOptionsMobilepay as PaymentIntentUpdateParamsPaymentMethodOptionsMobilepay, + PaymentIntentUpdateParamsPaymentMethodOptionsMultibanco as PaymentIntentUpdateParamsPaymentMethodOptionsMultibanco, + PaymentIntentUpdateParamsPaymentMethodOptionsNaverPay as PaymentIntentUpdateParamsPaymentMethodOptionsNaverPay, + PaymentIntentUpdateParamsPaymentMethodOptionsNzBankAccount as PaymentIntentUpdateParamsPaymentMethodOptionsNzBankAccount, + PaymentIntentUpdateParamsPaymentMethodOptionsOxxo as PaymentIntentUpdateParamsPaymentMethodOptionsOxxo, + PaymentIntentUpdateParamsPaymentMethodOptionsP24 as PaymentIntentUpdateParamsPaymentMethodOptionsP24, + PaymentIntentUpdateParamsPaymentMethodOptionsPayByBank as PaymentIntentUpdateParamsPaymentMethodOptionsPayByBank, + PaymentIntentUpdateParamsPaymentMethodOptionsPayco as PaymentIntentUpdateParamsPaymentMethodOptionsPayco, + PaymentIntentUpdateParamsPaymentMethodOptionsPaynow as PaymentIntentUpdateParamsPaymentMethodOptionsPaynow, + PaymentIntentUpdateParamsPaymentMethodOptionsPaypal as PaymentIntentUpdateParamsPaymentMethodOptionsPaypal, + PaymentIntentUpdateParamsPaymentMethodOptionsPix as PaymentIntentUpdateParamsPaymentMethodOptionsPix, + PaymentIntentUpdateParamsPaymentMethodOptionsPromptpay as PaymentIntentUpdateParamsPaymentMethodOptionsPromptpay, + PaymentIntentUpdateParamsPaymentMethodOptionsRevolutPay as PaymentIntentUpdateParamsPaymentMethodOptionsRevolutPay, + PaymentIntentUpdateParamsPaymentMethodOptionsSamsungPay as PaymentIntentUpdateParamsPaymentMethodOptionsSamsungPay, + PaymentIntentUpdateParamsPaymentMethodOptionsSatispay as PaymentIntentUpdateParamsPaymentMethodOptionsSatispay, + PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebit as PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebit, + PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions as PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions, + PaymentIntentUpdateParamsPaymentMethodOptionsSofort as PaymentIntentUpdateParamsPaymentMethodOptionsSofort, + PaymentIntentUpdateParamsPaymentMethodOptionsSwish as PaymentIntentUpdateParamsPaymentMethodOptionsSwish, + PaymentIntentUpdateParamsPaymentMethodOptionsTwint as PaymentIntentUpdateParamsPaymentMethodOptionsTwint, + PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccount as PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccount, + PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections as PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions as PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions, + PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks as PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks, + PaymentIntentUpdateParamsPaymentMethodOptionsWechatPay as PaymentIntentUpdateParamsPaymentMethodOptionsWechatPay, + PaymentIntentUpdateParamsPaymentMethodOptionsZip as PaymentIntentUpdateParamsPaymentMethodOptionsZip, + PaymentIntentUpdateParamsShipping as PaymentIntentUpdateParamsShipping, + PaymentIntentUpdateParamsShippingAddress as PaymentIntentUpdateParamsShippingAddress, + PaymentIntentUpdateParamsTransferData as PaymentIntentUpdateParamsTransferData, + ) + from stripe.params._payment_intent_verify_microdeposits_params import ( + PaymentIntentVerifyMicrodepositsParams as PaymentIntentVerifyMicrodepositsParams, + ) + from stripe.params._payment_link_create_params import ( + PaymentLinkCreateParams as PaymentLinkCreateParams, + PaymentLinkCreateParamsAfterCompletion as PaymentLinkCreateParamsAfterCompletion, + PaymentLinkCreateParamsAfterCompletionHostedConfirmation as PaymentLinkCreateParamsAfterCompletionHostedConfirmation, + PaymentLinkCreateParamsAfterCompletionRedirect as PaymentLinkCreateParamsAfterCompletionRedirect, + PaymentLinkCreateParamsAutomaticTax as PaymentLinkCreateParamsAutomaticTax, + PaymentLinkCreateParamsAutomaticTaxLiability as PaymentLinkCreateParamsAutomaticTaxLiability, + PaymentLinkCreateParamsConsentCollection as PaymentLinkCreateParamsConsentCollection, + PaymentLinkCreateParamsConsentCollectionPaymentMethodReuseAgreement as PaymentLinkCreateParamsConsentCollectionPaymentMethodReuseAgreement, + PaymentLinkCreateParamsCustomField as PaymentLinkCreateParamsCustomField, + PaymentLinkCreateParamsCustomFieldDropdown as PaymentLinkCreateParamsCustomFieldDropdown, + PaymentLinkCreateParamsCustomFieldDropdownOption as PaymentLinkCreateParamsCustomFieldDropdownOption, + PaymentLinkCreateParamsCustomFieldLabel as PaymentLinkCreateParamsCustomFieldLabel, + PaymentLinkCreateParamsCustomFieldNumeric as PaymentLinkCreateParamsCustomFieldNumeric, + PaymentLinkCreateParamsCustomFieldText as PaymentLinkCreateParamsCustomFieldText, + PaymentLinkCreateParamsCustomText as PaymentLinkCreateParamsCustomText, + PaymentLinkCreateParamsCustomTextAfterSubmit as PaymentLinkCreateParamsCustomTextAfterSubmit, + PaymentLinkCreateParamsCustomTextShippingAddress as PaymentLinkCreateParamsCustomTextShippingAddress, + PaymentLinkCreateParamsCustomTextSubmit as PaymentLinkCreateParamsCustomTextSubmit, + PaymentLinkCreateParamsCustomTextTermsOfServiceAcceptance as PaymentLinkCreateParamsCustomTextTermsOfServiceAcceptance, + PaymentLinkCreateParamsInvoiceCreation as PaymentLinkCreateParamsInvoiceCreation, + PaymentLinkCreateParamsInvoiceCreationInvoiceData as PaymentLinkCreateParamsInvoiceCreationInvoiceData, + PaymentLinkCreateParamsInvoiceCreationInvoiceDataCustomField as PaymentLinkCreateParamsInvoiceCreationInvoiceDataCustomField, + PaymentLinkCreateParamsInvoiceCreationInvoiceDataIssuer as PaymentLinkCreateParamsInvoiceCreationInvoiceDataIssuer, + PaymentLinkCreateParamsInvoiceCreationInvoiceDataRenderingOptions as PaymentLinkCreateParamsInvoiceCreationInvoiceDataRenderingOptions, + PaymentLinkCreateParamsLineItem as PaymentLinkCreateParamsLineItem, + PaymentLinkCreateParamsLineItemAdjustableQuantity as PaymentLinkCreateParamsLineItemAdjustableQuantity, + PaymentLinkCreateParamsLineItemPriceData as PaymentLinkCreateParamsLineItemPriceData, + PaymentLinkCreateParamsLineItemPriceDataProductData as PaymentLinkCreateParamsLineItemPriceDataProductData, + PaymentLinkCreateParamsLineItemPriceDataRecurring as PaymentLinkCreateParamsLineItemPriceDataRecurring, + PaymentLinkCreateParamsNameCollection as PaymentLinkCreateParamsNameCollection, + PaymentLinkCreateParamsNameCollectionBusiness as PaymentLinkCreateParamsNameCollectionBusiness, + PaymentLinkCreateParamsNameCollectionIndividual as PaymentLinkCreateParamsNameCollectionIndividual, + PaymentLinkCreateParamsOptionalItem as PaymentLinkCreateParamsOptionalItem, + PaymentLinkCreateParamsOptionalItemAdjustableQuantity as PaymentLinkCreateParamsOptionalItemAdjustableQuantity, + PaymentLinkCreateParamsPaymentIntentData as PaymentLinkCreateParamsPaymentIntentData, + PaymentLinkCreateParamsPhoneNumberCollection as PaymentLinkCreateParamsPhoneNumberCollection, + PaymentLinkCreateParamsRestrictions as PaymentLinkCreateParamsRestrictions, + PaymentLinkCreateParamsRestrictionsCompletedSessions as PaymentLinkCreateParamsRestrictionsCompletedSessions, + PaymentLinkCreateParamsShippingAddressCollection as PaymentLinkCreateParamsShippingAddressCollection, + PaymentLinkCreateParamsShippingOption as PaymentLinkCreateParamsShippingOption, + PaymentLinkCreateParamsSubscriptionData as PaymentLinkCreateParamsSubscriptionData, + PaymentLinkCreateParamsSubscriptionDataInvoiceSettings as PaymentLinkCreateParamsSubscriptionDataInvoiceSettings, + PaymentLinkCreateParamsSubscriptionDataInvoiceSettingsIssuer as PaymentLinkCreateParamsSubscriptionDataInvoiceSettingsIssuer, + PaymentLinkCreateParamsSubscriptionDataTrialSettings as PaymentLinkCreateParamsSubscriptionDataTrialSettings, + PaymentLinkCreateParamsSubscriptionDataTrialSettingsEndBehavior as PaymentLinkCreateParamsSubscriptionDataTrialSettingsEndBehavior, + PaymentLinkCreateParamsTaxIdCollection as PaymentLinkCreateParamsTaxIdCollection, + PaymentLinkCreateParamsTransferData as PaymentLinkCreateParamsTransferData, + ) + from stripe.params._payment_link_line_item_list_params import ( + PaymentLinkLineItemListParams as PaymentLinkLineItemListParams, + ) + from stripe.params._payment_link_list_line_items_params import ( + PaymentLinkListLineItemsParams as PaymentLinkListLineItemsParams, + ) + from stripe.params._payment_link_list_params import ( + PaymentLinkListParams as PaymentLinkListParams, + ) + from stripe.params._payment_link_modify_params import ( + PaymentLinkModifyParams as PaymentLinkModifyParams, + PaymentLinkModifyParamsAfterCompletion as PaymentLinkModifyParamsAfterCompletion, + PaymentLinkModifyParamsAfterCompletionHostedConfirmation as PaymentLinkModifyParamsAfterCompletionHostedConfirmation, + PaymentLinkModifyParamsAfterCompletionRedirect as PaymentLinkModifyParamsAfterCompletionRedirect, + PaymentLinkModifyParamsAutomaticTax as PaymentLinkModifyParamsAutomaticTax, + PaymentLinkModifyParamsAutomaticTaxLiability as PaymentLinkModifyParamsAutomaticTaxLiability, + PaymentLinkModifyParamsCustomField as PaymentLinkModifyParamsCustomField, + PaymentLinkModifyParamsCustomFieldDropdown as PaymentLinkModifyParamsCustomFieldDropdown, + PaymentLinkModifyParamsCustomFieldDropdownOption as PaymentLinkModifyParamsCustomFieldDropdownOption, + PaymentLinkModifyParamsCustomFieldLabel as PaymentLinkModifyParamsCustomFieldLabel, + PaymentLinkModifyParamsCustomFieldNumeric as PaymentLinkModifyParamsCustomFieldNumeric, + PaymentLinkModifyParamsCustomFieldText as PaymentLinkModifyParamsCustomFieldText, + PaymentLinkModifyParamsCustomText as PaymentLinkModifyParamsCustomText, + PaymentLinkModifyParamsCustomTextAfterSubmit as PaymentLinkModifyParamsCustomTextAfterSubmit, + PaymentLinkModifyParamsCustomTextShippingAddress as PaymentLinkModifyParamsCustomTextShippingAddress, + PaymentLinkModifyParamsCustomTextSubmit as PaymentLinkModifyParamsCustomTextSubmit, + PaymentLinkModifyParamsCustomTextTermsOfServiceAcceptance as PaymentLinkModifyParamsCustomTextTermsOfServiceAcceptance, + PaymentLinkModifyParamsInvoiceCreation as PaymentLinkModifyParamsInvoiceCreation, + PaymentLinkModifyParamsInvoiceCreationInvoiceData as PaymentLinkModifyParamsInvoiceCreationInvoiceData, + PaymentLinkModifyParamsInvoiceCreationInvoiceDataCustomField as PaymentLinkModifyParamsInvoiceCreationInvoiceDataCustomField, + PaymentLinkModifyParamsInvoiceCreationInvoiceDataIssuer as PaymentLinkModifyParamsInvoiceCreationInvoiceDataIssuer, + PaymentLinkModifyParamsInvoiceCreationInvoiceDataRenderingOptions as PaymentLinkModifyParamsInvoiceCreationInvoiceDataRenderingOptions, + PaymentLinkModifyParamsLineItem as PaymentLinkModifyParamsLineItem, + PaymentLinkModifyParamsLineItemAdjustableQuantity as PaymentLinkModifyParamsLineItemAdjustableQuantity, + PaymentLinkModifyParamsNameCollection as PaymentLinkModifyParamsNameCollection, + PaymentLinkModifyParamsNameCollectionBusiness as PaymentLinkModifyParamsNameCollectionBusiness, + PaymentLinkModifyParamsNameCollectionIndividual as PaymentLinkModifyParamsNameCollectionIndividual, + PaymentLinkModifyParamsPaymentIntentData as PaymentLinkModifyParamsPaymentIntentData, + PaymentLinkModifyParamsPhoneNumberCollection as PaymentLinkModifyParamsPhoneNumberCollection, + PaymentLinkModifyParamsRestrictions as PaymentLinkModifyParamsRestrictions, + PaymentLinkModifyParamsRestrictionsCompletedSessions as PaymentLinkModifyParamsRestrictionsCompletedSessions, + PaymentLinkModifyParamsShippingAddressCollection as PaymentLinkModifyParamsShippingAddressCollection, + PaymentLinkModifyParamsSubscriptionData as PaymentLinkModifyParamsSubscriptionData, + PaymentLinkModifyParamsSubscriptionDataInvoiceSettings as PaymentLinkModifyParamsSubscriptionDataInvoiceSettings, + PaymentLinkModifyParamsSubscriptionDataInvoiceSettingsIssuer as PaymentLinkModifyParamsSubscriptionDataInvoiceSettingsIssuer, + PaymentLinkModifyParamsSubscriptionDataTrialSettings as PaymentLinkModifyParamsSubscriptionDataTrialSettings, + PaymentLinkModifyParamsSubscriptionDataTrialSettingsEndBehavior as PaymentLinkModifyParamsSubscriptionDataTrialSettingsEndBehavior, + PaymentLinkModifyParamsTaxIdCollection as PaymentLinkModifyParamsTaxIdCollection, + ) + from stripe.params._payment_link_retrieve_params import ( + PaymentLinkRetrieveParams as PaymentLinkRetrieveParams, + ) + from stripe.params._payment_link_update_params import ( + PaymentLinkUpdateParams as PaymentLinkUpdateParams, + PaymentLinkUpdateParamsAfterCompletion as PaymentLinkUpdateParamsAfterCompletion, + PaymentLinkUpdateParamsAfterCompletionHostedConfirmation as PaymentLinkUpdateParamsAfterCompletionHostedConfirmation, + PaymentLinkUpdateParamsAfterCompletionRedirect as PaymentLinkUpdateParamsAfterCompletionRedirect, + PaymentLinkUpdateParamsAutomaticTax as PaymentLinkUpdateParamsAutomaticTax, + PaymentLinkUpdateParamsAutomaticTaxLiability as PaymentLinkUpdateParamsAutomaticTaxLiability, + PaymentLinkUpdateParamsCustomField as PaymentLinkUpdateParamsCustomField, + PaymentLinkUpdateParamsCustomFieldDropdown as PaymentLinkUpdateParamsCustomFieldDropdown, + PaymentLinkUpdateParamsCustomFieldDropdownOption as PaymentLinkUpdateParamsCustomFieldDropdownOption, + PaymentLinkUpdateParamsCustomFieldLabel as PaymentLinkUpdateParamsCustomFieldLabel, + PaymentLinkUpdateParamsCustomFieldNumeric as PaymentLinkUpdateParamsCustomFieldNumeric, + PaymentLinkUpdateParamsCustomFieldText as PaymentLinkUpdateParamsCustomFieldText, + PaymentLinkUpdateParamsCustomText as PaymentLinkUpdateParamsCustomText, + PaymentLinkUpdateParamsCustomTextAfterSubmit as PaymentLinkUpdateParamsCustomTextAfterSubmit, + PaymentLinkUpdateParamsCustomTextShippingAddress as PaymentLinkUpdateParamsCustomTextShippingAddress, + PaymentLinkUpdateParamsCustomTextSubmit as PaymentLinkUpdateParamsCustomTextSubmit, + PaymentLinkUpdateParamsCustomTextTermsOfServiceAcceptance as PaymentLinkUpdateParamsCustomTextTermsOfServiceAcceptance, + PaymentLinkUpdateParamsInvoiceCreation as PaymentLinkUpdateParamsInvoiceCreation, + PaymentLinkUpdateParamsInvoiceCreationInvoiceData as PaymentLinkUpdateParamsInvoiceCreationInvoiceData, + PaymentLinkUpdateParamsInvoiceCreationInvoiceDataCustomField as PaymentLinkUpdateParamsInvoiceCreationInvoiceDataCustomField, + PaymentLinkUpdateParamsInvoiceCreationInvoiceDataIssuer as PaymentLinkUpdateParamsInvoiceCreationInvoiceDataIssuer, + PaymentLinkUpdateParamsInvoiceCreationInvoiceDataRenderingOptions as PaymentLinkUpdateParamsInvoiceCreationInvoiceDataRenderingOptions, + PaymentLinkUpdateParamsLineItem as PaymentLinkUpdateParamsLineItem, + PaymentLinkUpdateParamsLineItemAdjustableQuantity as PaymentLinkUpdateParamsLineItemAdjustableQuantity, + PaymentLinkUpdateParamsNameCollection as PaymentLinkUpdateParamsNameCollection, + PaymentLinkUpdateParamsNameCollectionBusiness as PaymentLinkUpdateParamsNameCollectionBusiness, + PaymentLinkUpdateParamsNameCollectionIndividual as PaymentLinkUpdateParamsNameCollectionIndividual, + PaymentLinkUpdateParamsPaymentIntentData as PaymentLinkUpdateParamsPaymentIntentData, + PaymentLinkUpdateParamsPhoneNumberCollection as PaymentLinkUpdateParamsPhoneNumberCollection, + PaymentLinkUpdateParamsRestrictions as PaymentLinkUpdateParamsRestrictions, + PaymentLinkUpdateParamsRestrictionsCompletedSessions as PaymentLinkUpdateParamsRestrictionsCompletedSessions, + PaymentLinkUpdateParamsShippingAddressCollection as PaymentLinkUpdateParamsShippingAddressCollection, + PaymentLinkUpdateParamsSubscriptionData as PaymentLinkUpdateParamsSubscriptionData, + PaymentLinkUpdateParamsSubscriptionDataInvoiceSettings as PaymentLinkUpdateParamsSubscriptionDataInvoiceSettings, + PaymentLinkUpdateParamsSubscriptionDataInvoiceSettingsIssuer as PaymentLinkUpdateParamsSubscriptionDataInvoiceSettingsIssuer, + PaymentLinkUpdateParamsSubscriptionDataTrialSettings as PaymentLinkUpdateParamsSubscriptionDataTrialSettings, + PaymentLinkUpdateParamsSubscriptionDataTrialSettingsEndBehavior as PaymentLinkUpdateParamsSubscriptionDataTrialSettingsEndBehavior, + PaymentLinkUpdateParamsTaxIdCollection as PaymentLinkUpdateParamsTaxIdCollection, + ) + from stripe.params._payment_method_attach_params import ( + PaymentMethodAttachParams as PaymentMethodAttachParams, + ) + from stripe.params._payment_method_configuration_create_params import ( + PaymentMethodConfigurationCreateParams as PaymentMethodConfigurationCreateParams, + PaymentMethodConfigurationCreateParamsAcssDebit as PaymentMethodConfigurationCreateParamsAcssDebit, + PaymentMethodConfigurationCreateParamsAcssDebitDisplayPreference as PaymentMethodConfigurationCreateParamsAcssDebitDisplayPreference, + PaymentMethodConfigurationCreateParamsAffirm as PaymentMethodConfigurationCreateParamsAffirm, + PaymentMethodConfigurationCreateParamsAffirmDisplayPreference as PaymentMethodConfigurationCreateParamsAffirmDisplayPreference, + PaymentMethodConfigurationCreateParamsAfterpayClearpay as PaymentMethodConfigurationCreateParamsAfterpayClearpay, + PaymentMethodConfigurationCreateParamsAfterpayClearpayDisplayPreference as PaymentMethodConfigurationCreateParamsAfterpayClearpayDisplayPreference, + PaymentMethodConfigurationCreateParamsAlipay as PaymentMethodConfigurationCreateParamsAlipay, + PaymentMethodConfigurationCreateParamsAlipayDisplayPreference as PaymentMethodConfigurationCreateParamsAlipayDisplayPreference, + PaymentMethodConfigurationCreateParamsAlma as PaymentMethodConfigurationCreateParamsAlma, + PaymentMethodConfigurationCreateParamsAlmaDisplayPreference as PaymentMethodConfigurationCreateParamsAlmaDisplayPreference, + PaymentMethodConfigurationCreateParamsAmazonPay as PaymentMethodConfigurationCreateParamsAmazonPay, + PaymentMethodConfigurationCreateParamsAmazonPayDisplayPreference as PaymentMethodConfigurationCreateParamsAmazonPayDisplayPreference, + PaymentMethodConfigurationCreateParamsApplePay as PaymentMethodConfigurationCreateParamsApplePay, + PaymentMethodConfigurationCreateParamsApplePayDisplayPreference as PaymentMethodConfigurationCreateParamsApplePayDisplayPreference, + PaymentMethodConfigurationCreateParamsApplePayLater as PaymentMethodConfigurationCreateParamsApplePayLater, + PaymentMethodConfigurationCreateParamsApplePayLaterDisplayPreference as PaymentMethodConfigurationCreateParamsApplePayLaterDisplayPreference, + PaymentMethodConfigurationCreateParamsAuBecsDebit as PaymentMethodConfigurationCreateParamsAuBecsDebit, + PaymentMethodConfigurationCreateParamsAuBecsDebitDisplayPreference as PaymentMethodConfigurationCreateParamsAuBecsDebitDisplayPreference, + PaymentMethodConfigurationCreateParamsBacsDebit as PaymentMethodConfigurationCreateParamsBacsDebit, + PaymentMethodConfigurationCreateParamsBacsDebitDisplayPreference as PaymentMethodConfigurationCreateParamsBacsDebitDisplayPreference, + PaymentMethodConfigurationCreateParamsBancontact as PaymentMethodConfigurationCreateParamsBancontact, + PaymentMethodConfigurationCreateParamsBancontactDisplayPreference as PaymentMethodConfigurationCreateParamsBancontactDisplayPreference, + PaymentMethodConfigurationCreateParamsBillie as PaymentMethodConfigurationCreateParamsBillie, + PaymentMethodConfigurationCreateParamsBillieDisplayPreference as PaymentMethodConfigurationCreateParamsBillieDisplayPreference, + PaymentMethodConfigurationCreateParamsBlik as PaymentMethodConfigurationCreateParamsBlik, + PaymentMethodConfigurationCreateParamsBlikDisplayPreference as PaymentMethodConfigurationCreateParamsBlikDisplayPreference, + PaymentMethodConfigurationCreateParamsBoleto as PaymentMethodConfigurationCreateParamsBoleto, + PaymentMethodConfigurationCreateParamsBoletoDisplayPreference as PaymentMethodConfigurationCreateParamsBoletoDisplayPreference, + PaymentMethodConfigurationCreateParamsCard as PaymentMethodConfigurationCreateParamsCard, + PaymentMethodConfigurationCreateParamsCardDisplayPreference as PaymentMethodConfigurationCreateParamsCardDisplayPreference, + PaymentMethodConfigurationCreateParamsCartesBancaires as PaymentMethodConfigurationCreateParamsCartesBancaires, + PaymentMethodConfigurationCreateParamsCartesBancairesDisplayPreference as PaymentMethodConfigurationCreateParamsCartesBancairesDisplayPreference, + PaymentMethodConfigurationCreateParamsCashapp as PaymentMethodConfigurationCreateParamsCashapp, + PaymentMethodConfigurationCreateParamsCashappDisplayPreference as PaymentMethodConfigurationCreateParamsCashappDisplayPreference, + PaymentMethodConfigurationCreateParamsCrypto as PaymentMethodConfigurationCreateParamsCrypto, + PaymentMethodConfigurationCreateParamsCryptoDisplayPreference as PaymentMethodConfigurationCreateParamsCryptoDisplayPreference, + PaymentMethodConfigurationCreateParamsCustomerBalance as PaymentMethodConfigurationCreateParamsCustomerBalance, + PaymentMethodConfigurationCreateParamsCustomerBalanceDisplayPreference as PaymentMethodConfigurationCreateParamsCustomerBalanceDisplayPreference, + PaymentMethodConfigurationCreateParamsEps as PaymentMethodConfigurationCreateParamsEps, + PaymentMethodConfigurationCreateParamsEpsDisplayPreference as PaymentMethodConfigurationCreateParamsEpsDisplayPreference, + PaymentMethodConfigurationCreateParamsFpx as PaymentMethodConfigurationCreateParamsFpx, + PaymentMethodConfigurationCreateParamsFpxDisplayPreference as PaymentMethodConfigurationCreateParamsFpxDisplayPreference, + PaymentMethodConfigurationCreateParamsFrMealVoucherConecs as PaymentMethodConfigurationCreateParamsFrMealVoucherConecs, + PaymentMethodConfigurationCreateParamsFrMealVoucherConecsDisplayPreference as PaymentMethodConfigurationCreateParamsFrMealVoucherConecsDisplayPreference, + PaymentMethodConfigurationCreateParamsGiropay as PaymentMethodConfigurationCreateParamsGiropay, + PaymentMethodConfigurationCreateParamsGiropayDisplayPreference as PaymentMethodConfigurationCreateParamsGiropayDisplayPreference, + PaymentMethodConfigurationCreateParamsGooglePay as PaymentMethodConfigurationCreateParamsGooglePay, + PaymentMethodConfigurationCreateParamsGooglePayDisplayPreference as PaymentMethodConfigurationCreateParamsGooglePayDisplayPreference, + PaymentMethodConfigurationCreateParamsGrabpay as PaymentMethodConfigurationCreateParamsGrabpay, + PaymentMethodConfigurationCreateParamsGrabpayDisplayPreference as PaymentMethodConfigurationCreateParamsGrabpayDisplayPreference, + PaymentMethodConfigurationCreateParamsIdeal as PaymentMethodConfigurationCreateParamsIdeal, + PaymentMethodConfigurationCreateParamsIdealDisplayPreference as PaymentMethodConfigurationCreateParamsIdealDisplayPreference, + PaymentMethodConfigurationCreateParamsJcb as PaymentMethodConfigurationCreateParamsJcb, + PaymentMethodConfigurationCreateParamsJcbDisplayPreference as PaymentMethodConfigurationCreateParamsJcbDisplayPreference, + PaymentMethodConfigurationCreateParamsKakaoPay as PaymentMethodConfigurationCreateParamsKakaoPay, + PaymentMethodConfigurationCreateParamsKakaoPayDisplayPreference as PaymentMethodConfigurationCreateParamsKakaoPayDisplayPreference, + PaymentMethodConfigurationCreateParamsKlarna as PaymentMethodConfigurationCreateParamsKlarna, + PaymentMethodConfigurationCreateParamsKlarnaDisplayPreference as PaymentMethodConfigurationCreateParamsKlarnaDisplayPreference, + PaymentMethodConfigurationCreateParamsKonbini as PaymentMethodConfigurationCreateParamsKonbini, + PaymentMethodConfigurationCreateParamsKonbiniDisplayPreference as PaymentMethodConfigurationCreateParamsKonbiniDisplayPreference, + PaymentMethodConfigurationCreateParamsKrCard as PaymentMethodConfigurationCreateParamsKrCard, + PaymentMethodConfigurationCreateParamsKrCardDisplayPreference as PaymentMethodConfigurationCreateParamsKrCardDisplayPreference, + PaymentMethodConfigurationCreateParamsLink as PaymentMethodConfigurationCreateParamsLink, + PaymentMethodConfigurationCreateParamsLinkDisplayPreference as PaymentMethodConfigurationCreateParamsLinkDisplayPreference, + PaymentMethodConfigurationCreateParamsMbWay as PaymentMethodConfigurationCreateParamsMbWay, + PaymentMethodConfigurationCreateParamsMbWayDisplayPreference as PaymentMethodConfigurationCreateParamsMbWayDisplayPreference, + PaymentMethodConfigurationCreateParamsMobilepay as PaymentMethodConfigurationCreateParamsMobilepay, + PaymentMethodConfigurationCreateParamsMobilepayDisplayPreference as PaymentMethodConfigurationCreateParamsMobilepayDisplayPreference, + PaymentMethodConfigurationCreateParamsMultibanco as PaymentMethodConfigurationCreateParamsMultibanco, + PaymentMethodConfigurationCreateParamsMultibancoDisplayPreference as PaymentMethodConfigurationCreateParamsMultibancoDisplayPreference, + PaymentMethodConfigurationCreateParamsNaverPay as PaymentMethodConfigurationCreateParamsNaverPay, + PaymentMethodConfigurationCreateParamsNaverPayDisplayPreference as PaymentMethodConfigurationCreateParamsNaverPayDisplayPreference, + PaymentMethodConfigurationCreateParamsNzBankAccount as PaymentMethodConfigurationCreateParamsNzBankAccount, + PaymentMethodConfigurationCreateParamsNzBankAccountDisplayPreference as PaymentMethodConfigurationCreateParamsNzBankAccountDisplayPreference, + PaymentMethodConfigurationCreateParamsOxxo as PaymentMethodConfigurationCreateParamsOxxo, + PaymentMethodConfigurationCreateParamsOxxoDisplayPreference as PaymentMethodConfigurationCreateParamsOxxoDisplayPreference, + PaymentMethodConfigurationCreateParamsP24 as PaymentMethodConfigurationCreateParamsP24, + PaymentMethodConfigurationCreateParamsP24DisplayPreference as PaymentMethodConfigurationCreateParamsP24DisplayPreference, + PaymentMethodConfigurationCreateParamsPayByBank as PaymentMethodConfigurationCreateParamsPayByBank, + PaymentMethodConfigurationCreateParamsPayByBankDisplayPreference as PaymentMethodConfigurationCreateParamsPayByBankDisplayPreference, + PaymentMethodConfigurationCreateParamsPayco as PaymentMethodConfigurationCreateParamsPayco, + PaymentMethodConfigurationCreateParamsPaycoDisplayPreference as PaymentMethodConfigurationCreateParamsPaycoDisplayPreference, + PaymentMethodConfigurationCreateParamsPaynow as PaymentMethodConfigurationCreateParamsPaynow, + PaymentMethodConfigurationCreateParamsPaynowDisplayPreference as PaymentMethodConfigurationCreateParamsPaynowDisplayPreference, + PaymentMethodConfigurationCreateParamsPaypal as PaymentMethodConfigurationCreateParamsPaypal, + PaymentMethodConfigurationCreateParamsPaypalDisplayPreference as PaymentMethodConfigurationCreateParamsPaypalDisplayPreference, + PaymentMethodConfigurationCreateParamsPix as PaymentMethodConfigurationCreateParamsPix, + PaymentMethodConfigurationCreateParamsPixDisplayPreference as PaymentMethodConfigurationCreateParamsPixDisplayPreference, + PaymentMethodConfigurationCreateParamsPromptpay as PaymentMethodConfigurationCreateParamsPromptpay, + PaymentMethodConfigurationCreateParamsPromptpayDisplayPreference as PaymentMethodConfigurationCreateParamsPromptpayDisplayPreference, + PaymentMethodConfigurationCreateParamsRevolutPay as PaymentMethodConfigurationCreateParamsRevolutPay, + PaymentMethodConfigurationCreateParamsRevolutPayDisplayPreference as PaymentMethodConfigurationCreateParamsRevolutPayDisplayPreference, + PaymentMethodConfigurationCreateParamsSamsungPay as PaymentMethodConfigurationCreateParamsSamsungPay, + PaymentMethodConfigurationCreateParamsSamsungPayDisplayPreference as PaymentMethodConfigurationCreateParamsSamsungPayDisplayPreference, + PaymentMethodConfigurationCreateParamsSatispay as PaymentMethodConfigurationCreateParamsSatispay, + PaymentMethodConfigurationCreateParamsSatispayDisplayPreference as PaymentMethodConfigurationCreateParamsSatispayDisplayPreference, + PaymentMethodConfigurationCreateParamsSepaDebit as PaymentMethodConfigurationCreateParamsSepaDebit, + PaymentMethodConfigurationCreateParamsSepaDebitDisplayPreference as PaymentMethodConfigurationCreateParamsSepaDebitDisplayPreference, + PaymentMethodConfigurationCreateParamsSofort as PaymentMethodConfigurationCreateParamsSofort, + PaymentMethodConfigurationCreateParamsSofortDisplayPreference as PaymentMethodConfigurationCreateParamsSofortDisplayPreference, + PaymentMethodConfigurationCreateParamsSwish as PaymentMethodConfigurationCreateParamsSwish, + PaymentMethodConfigurationCreateParamsSwishDisplayPreference as PaymentMethodConfigurationCreateParamsSwishDisplayPreference, + PaymentMethodConfigurationCreateParamsTwint as PaymentMethodConfigurationCreateParamsTwint, + PaymentMethodConfigurationCreateParamsTwintDisplayPreference as PaymentMethodConfigurationCreateParamsTwintDisplayPreference, + PaymentMethodConfigurationCreateParamsUsBankAccount as PaymentMethodConfigurationCreateParamsUsBankAccount, + PaymentMethodConfigurationCreateParamsUsBankAccountDisplayPreference as PaymentMethodConfigurationCreateParamsUsBankAccountDisplayPreference, + PaymentMethodConfigurationCreateParamsWechatPay as PaymentMethodConfigurationCreateParamsWechatPay, + PaymentMethodConfigurationCreateParamsWechatPayDisplayPreference as PaymentMethodConfigurationCreateParamsWechatPayDisplayPreference, + PaymentMethodConfigurationCreateParamsZip as PaymentMethodConfigurationCreateParamsZip, + PaymentMethodConfigurationCreateParamsZipDisplayPreference as PaymentMethodConfigurationCreateParamsZipDisplayPreference, + ) + from stripe.params._payment_method_configuration_list_params import ( + PaymentMethodConfigurationListParams as PaymentMethodConfigurationListParams, + ) + from stripe.params._payment_method_configuration_modify_params import ( + PaymentMethodConfigurationModifyParams as PaymentMethodConfigurationModifyParams, + PaymentMethodConfigurationModifyParamsAcssDebit as PaymentMethodConfigurationModifyParamsAcssDebit, + PaymentMethodConfigurationModifyParamsAcssDebitDisplayPreference as PaymentMethodConfigurationModifyParamsAcssDebitDisplayPreference, + PaymentMethodConfigurationModifyParamsAffirm as PaymentMethodConfigurationModifyParamsAffirm, + PaymentMethodConfigurationModifyParamsAffirmDisplayPreference as PaymentMethodConfigurationModifyParamsAffirmDisplayPreference, + PaymentMethodConfigurationModifyParamsAfterpayClearpay as PaymentMethodConfigurationModifyParamsAfterpayClearpay, + PaymentMethodConfigurationModifyParamsAfterpayClearpayDisplayPreference as PaymentMethodConfigurationModifyParamsAfterpayClearpayDisplayPreference, + PaymentMethodConfigurationModifyParamsAlipay as PaymentMethodConfigurationModifyParamsAlipay, + PaymentMethodConfigurationModifyParamsAlipayDisplayPreference as PaymentMethodConfigurationModifyParamsAlipayDisplayPreference, + PaymentMethodConfigurationModifyParamsAlma as PaymentMethodConfigurationModifyParamsAlma, + PaymentMethodConfigurationModifyParamsAlmaDisplayPreference as PaymentMethodConfigurationModifyParamsAlmaDisplayPreference, + PaymentMethodConfigurationModifyParamsAmazonPay as PaymentMethodConfigurationModifyParamsAmazonPay, + PaymentMethodConfigurationModifyParamsAmazonPayDisplayPreference as PaymentMethodConfigurationModifyParamsAmazonPayDisplayPreference, + PaymentMethodConfigurationModifyParamsApplePay as PaymentMethodConfigurationModifyParamsApplePay, + PaymentMethodConfigurationModifyParamsApplePayDisplayPreference as PaymentMethodConfigurationModifyParamsApplePayDisplayPreference, + PaymentMethodConfigurationModifyParamsApplePayLater as PaymentMethodConfigurationModifyParamsApplePayLater, + PaymentMethodConfigurationModifyParamsApplePayLaterDisplayPreference as PaymentMethodConfigurationModifyParamsApplePayLaterDisplayPreference, + PaymentMethodConfigurationModifyParamsAuBecsDebit as PaymentMethodConfigurationModifyParamsAuBecsDebit, + PaymentMethodConfigurationModifyParamsAuBecsDebitDisplayPreference as PaymentMethodConfigurationModifyParamsAuBecsDebitDisplayPreference, + PaymentMethodConfigurationModifyParamsBacsDebit as PaymentMethodConfigurationModifyParamsBacsDebit, + PaymentMethodConfigurationModifyParamsBacsDebitDisplayPreference as PaymentMethodConfigurationModifyParamsBacsDebitDisplayPreference, + PaymentMethodConfigurationModifyParamsBancontact as PaymentMethodConfigurationModifyParamsBancontact, + PaymentMethodConfigurationModifyParamsBancontactDisplayPreference as PaymentMethodConfigurationModifyParamsBancontactDisplayPreference, + PaymentMethodConfigurationModifyParamsBillie as PaymentMethodConfigurationModifyParamsBillie, + PaymentMethodConfigurationModifyParamsBillieDisplayPreference as PaymentMethodConfigurationModifyParamsBillieDisplayPreference, + PaymentMethodConfigurationModifyParamsBlik as PaymentMethodConfigurationModifyParamsBlik, + PaymentMethodConfigurationModifyParamsBlikDisplayPreference as PaymentMethodConfigurationModifyParamsBlikDisplayPreference, + PaymentMethodConfigurationModifyParamsBoleto as PaymentMethodConfigurationModifyParamsBoleto, + PaymentMethodConfigurationModifyParamsBoletoDisplayPreference as PaymentMethodConfigurationModifyParamsBoletoDisplayPreference, + PaymentMethodConfigurationModifyParamsCard as PaymentMethodConfigurationModifyParamsCard, + PaymentMethodConfigurationModifyParamsCardDisplayPreference as PaymentMethodConfigurationModifyParamsCardDisplayPreference, + PaymentMethodConfigurationModifyParamsCartesBancaires as PaymentMethodConfigurationModifyParamsCartesBancaires, + PaymentMethodConfigurationModifyParamsCartesBancairesDisplayPreference as PaymentMethodConfigurationModifyParamsCartesBancairesDisplayPreference, + PaymentMethodConfigurationModifyParamsCashapp as PaymentMethodConfigurationModifyParamsCashapp, + PaymentMethodConfigurationModifyParamsCashappDisplayPreference as PaymentMethodConfigurationModifyParamsCashappDisplayPreference, + PaymentMethodConfigurationModifyParamsCrypto as PaymentMethodConfigurationModifyParamsCrypto, + PaymentMethodConfigurationModifyParamsCryptoDisplayPreference as PaymentMethodConfigurationModifyParamsCryptoDisplayPreference, + PaymentMethodConfigurationModifyParamsCustomerBalance as PaymentMethodConfigurationModifyParamsCustomerBalance, + PaymentMethodConfigurationModifyParamsCustomerBalanceDisplayPreference as PaymentMethodConfigurationModifyParamsCustomerBalanceDisplayPreference, + PaymentMethodConfigurationModifyParamsEps as PaymentMethodConfigurationModifyParamsEps, + PaymentMethodConfigurationModifyParamsEpsDisplayPreference as PaymentMethodConfigurationModifyParamsEpsDisplayPreference, + PaymentMethodConfigurationModifyParamsFpx as PaymentMethodConfigurationModifyParamsFpx, + PaymentMethodConfigurationModifyParamsFpxDisplayPreference as PaymentMethodConfigurationModifyParamsFpxDisplayPreference, + PaymentMethodConfigurationModifyParamsFrMealVoucherConecs as PaymentMethodConfigurationModifyParamsFrMealVoucherConecs, + PaymentMethodConfigurationModifyParamsFrMealVoucherConecsDisplayPreference as PaymentMethodConfigurationModifyParamsFrMealVoucherConecsDisplayPreference, + PaymentMethodConfigurationModifyParamsGiropay as PaymentMethodConfigurationModifyParamsGiropay, + PaymentMethodConfigurationModifyParamsGiropayDisplayPreference as PaymentMethodConfigurationModifyParamsGiropayDisplayPreference, + PaymentMethodConfigurationModifyParamsGooglePay as PaymentMethodConfigurationModifyParamsGooglePay, + PaymentMethodConfigurationModifyParamsGooglePayDisplayPreference as PaymentMethodConfigurationModifyParamsGooglePayDisplayPreference, + PaymentMethodConfigurationModifyParamsGrabpay as PaymentMethodConfigurationModifyParamsGrabpay, + PaymentMethodConfigurationModifyParamsGrabpayDisplayPreference as PaymentMethodConfigurationModifyParamsGrabpayDisplayPreference, + PaymentMethodConfigurationModifyParamsIdeal as PaymentMethodConfigurationModifyParamsIdeal, + PaymentMethodConfigurationModifyParamsIdealDisplayPreference as PaymentMethodConfigurationModifyParamsIdealDisplayPreference, + PaymentMethodConfigurationModifyParamsJcb as PaymentMethodConfigurationModifyParamsJcb, + PaymentMethodConfigurationModifyParamsJcbDisplayPreference as PaymentMethodConfigurationModifyParamsJcbDisplayPreference, + PaymentMethodConfigurationModifyParamsKakaoPay as PaymentMethodConfigurationModifyParamsKakaoPay, + PaymentMethodConfigurationModifyParamsKakaoPayDisplayPreference as PaymentMethodConfigurationModifyParamsKakaoPayDisplayPreference, + PaymentMethodConfigurationModifyParamsKlarna as PaymentMethodConfigurationModifyParamsKlarna, + PaymentMethodConfigurationModifyParamsKlarnaDisplayPreference as PaymentMethodConfigurationModifyParamsKlarnaDisplayPreference, + PaymentMethodConfigurationModifyParamsKonbini as PaymentMethodConfigurationModifyParamsKonbini, + PaymentMethodConfigurationModifyParamsKonbiniDisplayPreference as PaymentMethodConfigurationModifyParamsKonbiniDisplayPreference, + PaymentMethodConfigurationModifyParamsKrCard as PaymentMethodConfigurationModifyParamsKrCard, + PaymentMethodConfigurationModifyParamsKrCardDisplayPreference as PaymentMethodConfigurationModifyParamsKrCardDisplayPreference, + PaymentMethodConfigurationModifyParamsLink as PaymentMethodConfigurationModifyParamsLink, + PaymentMethodConfigurationModifyParamsLinkDisplayPreference as PaymentMethodConfigurationModifyParamsLinkDisplayPreference, + PaymentMethodConfigurationModifyParamsMbWay as PaymentMethodConfigurationModifyParamsMbWay, + PaymentMethodConfigurationModifyParamsMbWayDisplayPreference as PaymentMethodConfigurationModifyParamsMbWayDisplayPreference, + PaymentMethodConfigurationModifyParamsMobilepay as PaymentMethodConfigurationModifyParamsMobilepay, + PaymentMethodConfigurationModifyParamsMobilepayDisplayPreference as PaymentMethodConfigurationModifyParamsMobilepayDisplayPreference, + PaymentMethodConfigurationModifyParamsMultibanco as PaymentMethodConfigurationModifyParamsMultibanco, + PaymentMethodConfigurationModifyParamsMultibancoDisplayPreference as PaymentMethodConfigurationModifyParamsMultibancoDisplayPreference, + PaymentMethodConfigurationModifyParamsNaverPay as PaymentMethodConfigurationModifyParamsNaverPay, + PaymentMethodConfigurationModifyParamsNaverPayDisplayPreference as PaymentMethodConfigurationModifyParamsNaverPayDisplayPreference, + PaymentMethodConfigurationModifyParamsNzBankAccount as PaymentMethodConfigurationModifyParamsNzBankAccount, + PaymentMethodConfigurationModifyParamsNzBankAccountDisplayPreference as PaymentMethodConfigurationModifyParamsNzBankAccountDisplayPreference, + PaymentMethodConfigurationModifyParamsOxxo as PaymentMethodConfigurationModifyParamsOxxo, + PaymentMethodConfigurationModifyParamsOxxoDisplayPreference as PaymentMethodConfigurationModifyParamsOxxoDisplayPreference, + PaymentMethodConfigurationModifyParamsP24 as PaymentMethodConfigurationModifyParamsP24, + PaymentMethodConfigurationModifyParamsP24DisplayPreference as PaymentMethodConfigurationModifyParamsP24DisplayPreference, + PaymentMethodConfigurationModifyParamsPayByBank as PaymentMethodConfigurationModifyParamsPayByBank, + PaymentMethodConfigurationModifyParamsPayByBankDisplayPreference as PaymentMethodConfigurationModifyParamsPayByBankDisplayPreference, + PaymentMethodConfigurationModifyParamsPayco as PaymentMethodConfigurationModifyParamsPayco, + PaymentMethodConfigurationModifyParamsPaycoDisplayPreference as PaymentMethodConfigurationModifyParamsPaycoDisplayPreference, + PaymentMethodConfigurationModifyParamsPaynow as PaymentMethodConfigurationModifyParamsPaynow, + PaymentMethodConfigurationModifyParamsPaynowDisplayPreference as PaymentMethodConfigurationModifyParamsPaynowDisplayPreference, + PaymentMethodConfigurationModifyParamsPaypal as PaymentMethodConfigurationModifyParamsPaypal, + PaymentMethodConfigurationModifyParamsPaypalDisplayPreference as PaymentMethodConfigurationModifyParamsPaypalDisplayPreference, + PaymentMethodConfigurationModifyParamsPix as PaymentMethodConfigurationModifyParamsPix, + PaymentMethodConfigurationModifyParamsPixDisplayPreference as PaymentMethodConfigurationModifyParamsPixDisplayPreference, + PaymentMethodConfigurationModifyParamsPromptpay as PaymentMethodConfigurationModifyParamsPromptpay, + PaymentMethodConfigurationModifyParamsPromptpayDisplayPreference as PaymentMethodConfigurationModifyParamsPromptpayDisplayPreference, + PaymentMethodConfigurationModifyParamsRevolutPay as PaymentMethodConfigurationModifyParamsRevolutPay, + PaymentMethodConfigurationModifyParamsRevolutPayDisplayPreference as PaymentMethodConfigurationModifyParamsRevolutPayDisplayPreference, + PaymentMethodConfigurationModifyParamsSamsungPay as PaymentMethodConfigurationModifyParamsSamsungPay, + PaymentMethodConfigurationModifyParamsSamsungPayDisplayPreference as PaymentMethodConfigurationModifyParamsSamsungPayDisplayPreference, + PaymentMethodConfigurationModifyParamsSatispay as PaymentMethodConfigurationModifyParamsSatispay, + PaymentMethodConfigurationModifyParamsSatispayDisplayPreference as PaymentMethodConfigurationModifyParamsSatispayDisplayPreference, + PaymentMethodConfigurationModifyParamsSepaDebit as PaymentMethodConfigurationModifyParamsSepaDebit, + PaymentMethodConfigurationModifyParamsSepaDebitDisplayPreference as PaymentMethodConfigurationModifyParamsSepaDebitDisplayPreference, + PaymentMethodConfigurationModifyParamsSofort as PaymentMethodConfigurationModifyParamsSofort, + PaymentMethodConfigurationModifyParamsSofortDisplayPreference as PaymentMethodConfigurationModifyParamsSofortDisplayPreference, + PaymentMethodConfigurationModifyParamsSwish as PaymentMethodConfigurationModifyParamsSwish, + PaymentMethodConfigurationModifyParamsSwishDisplayPreference as PaymentMethodConfigurationModifyParamsSwishDisplayPreference, + PaymentMethodConfigurationModifyParamsTwint as PaymentMethodConfigurationModifyParamsTwint, + PaymentMethodConfigurationModifyParamsTwintDisplayPreference as PaymentMethodConfigurationModifyParamsTwintDisplayPreference, + PaymentMethodConfigurationModifyParamsUsBankAccount as PaymentMethodConfigurationModifyParamsUsBankAccount, + PaymentMethodConfigurationModifyParamsUsBankAccountDisplayPreference as PaymentMethodConfigurationModifyParamsUsBankAccountDisplayPreference, + PaymentMethodConfigurationModifyParamsWechatPay as PaymentMethodConfigurationModifyParamsWechatPay, + PaymentMethodConfigurationModifyParamsWechatPayDisplayPreference as PaymentMethodConfigurationModifyParamsWechatPayDisplayPreference, + PaymentMethodConfigurationModifyParamsZip as PaymentMethodConfigurationModifyParamsZip, + PaymentMethodConfigurationModifyParamsZipDisplayPreference as PaymentMethodConfigurationModifyParamsZipDisplayPreference, + ) + from stripe.params._payment_method_configuration_retrieve_params import ( + PaymentMethodConfigurationRetrieveParams as PaymentMethodConfigurationRetrieveParams, + ) + from stripe.params._payment_method_configuration_update_params import ( + PaymentMethodConfigurationUpdateParams as PaymentMethodConfigurationUpdateParams, + PaymentMethodConfigurationUpdateParamsAcssDebit as PaymentMethodConfigurationUpdateParamsAcssDebit, + PaymentMethodConfigurationUpdateParamsAcssDebitDisplayPreference as PaymentMethodConfigurationUpdateParamsAcssDebitDisplayPreference, + PaymentMethodConfigurationUpdateParamsAffirm as PaymentMethodConfigurationUpdateParamsAffirm, + PaymentMethodConfigurationUpdateParamsAffirmDisplayPreference as PaymentMethodConfigurationUpdateParamsAffirmDisplayPreference, + PaymentMethodConfigurationUpdateParamsAfterpayClearpay as PaymentMethodConfigurationUpdateParamsAfterpayClearpay, + PaymentMethodConfigurationUpdateParamsAfterpayClearpayDisplayPreference as PaymentMethodConfigurationUpdateParamsAfterpayClearpayDisplayPreference, + PaymentMethodConfigurationUpdateParamsAlipay as PaymentMethodConfigurationUpdateParamsAlipay, + PaymentMethodConfigurationUpdateParamsAlipayDisplayPreference as PaymentMethodConfigurationUpdateParamsAlipayDisplayPreference, + PaymentMethodConfigurationUpdateParamsAlma as PaymentMethodConfigurationUpdateParamsAlma, + PaymentMethodConfigurationUpdateParamsAlmaDisplayPreference as PaymentMethodConfigurationUpdateParamsAlmaDisplayPreference, + PaymentMethodConfigurationUpdateParamsAmazonPay as PaymentMethodConfigurationUpdateParamsAmazonPay, + PaymentMethodConfigurationUpdateParamsAmazonPayDisplayPreference as PaymentMethodConfigurationUpdateParamsAmazonPayDisplayPreference, + PaymentMethodConfigurationUpdateParamsApplePay as PaymentMethodConfigurationUpdateParamsApplePay, + PaymentMethodConfigurationUpdateParamsApplePayDisplayPreference as PaymentMethodConfigurationUpdateParamsApplePayDisplayPreference, + PaymentMethodConfigurationUpdateParamsApplePayLater as PaymentMethodConfigurationUpdateParamsApplePayLater, + PaymentMethodConfigurationUpdateParamsApplePayLaterDisplayPreference as PaymentMethodConfigurationUpdateParamsApplePayLaterDisplayPreference, + PaymentMethodConfigurationUpdateParamsAuBecsDebit as PaymentMethodConfigurationUpdateParamsAuBecsDebit, + PaymentMethodConfigurationUpdateParamsAuBecsDebitDisplayPreference as PaymentMethodConfigurationUpdateParamsAuBecsDebitDisplayPreference, + PaymentMethodConfigurationUpdateParamsBacsDebit as PaymentMethodConfigurationUpdateParamsBacsDebit, + PaymentMethodConfigurationUpdateParamsBacsDebitDisplayPreference as PaymentMethodConfigurationUpdateParamsBacsDebitDisplayPreference, + PaymentMethodConfigurationUpdateParamsBancontact as PaymentMethodConfigurationUpdateParamsBancontact, + PaymentMethodConfigurationUpdateParamsBancontactDisplayPreference as PaymentMethodConfigurationUpdateParamsBancontactDisplayPreference, + PaymentMethodConfigurationUpdateParamsBillie as PaymentMethodConfigurationUpdateParamsBillie, + PaymentMethodConfigurationUpdateParamsBillieDisplayPreference as PaymentMethodConfigurationUpdateParamsBillieDisplayPreference, + PaymentMethodConfigurationUpdateParamsBlik as PaymentMethodConfigurationUpdateParamsBlik, + PaymentMethodConfigurationUpdateParamsBlikDisplayPreference as PaymentMethodConfigurationUpdateParamsBlikDisplayPreference, + PaymentMethodConfigurationUpdateParamsBoleto as PaymentMethodConfigurationUpdateParamsBoleto, + PaymentMethodConfigurationUpdateParamsBoletoDisplayPreference as PaymentMethodConfigurationUpdateParamsBoletoDisplayPreference, + PaymentMethodConfigurationUpdateParamsCard as PaymentMethodConfigurationUpdateParamsCard, + PaymentMethodConfigurationUpdateParamsCardDisplayPreference as PaymentMethodConfigurationUpdateParamsCardDisplayPreference, + PaymentMethodConfigurationUpdateParamsCartesBancaires as PaymentMethodConfigurationUpdateParamsCartesBancaires, + PaymentMethodConfigurationUpdateParamsCartesBancairesDisplayPreference as PaymentMethodConfigurationUpdateParamsCartesBancairesDisplayPreference, + PaymentMethodConfigurationUpdateParamsCashapp as PaymentMethodConfigurationUpdateParamsCashapp, + PaymentMethodConfigurationUpdateParamsCashappDisplayPreference as PaymentMethodConfigurationUpdateParamsCashappDisplayPreference, + PaymentMethodConfigurationUpdateParamsCrypto as PaymentMethodConfigurationUpdateParamsCrypto, + PaymentMethodConfigurationUpdateParamsCryptoDisplayPreference as PaymentMethodConfigurationUpdateParamsCryptoDisplayPreference, + PaymentMethodConfigurationUpdateParamsCustomerBalance as PaymentMethodConfigurationUpdateParamsCustomerBalance, + PaymentMethodConfigurationUpdateParamsCustomerBalanceDisplayPreference as PaymentMethodConfigurationUpdateParamsCustomerBalanceDisplayPreference, + PaymentMethodConfigurationUpdateParamsEps as PaymentMethodConfigurationUpdateParamsEps, + PaymentMethodConfigurationUpdateParamsEpsDisplayPreference as PaymentMethodConfigurationUpdateParamsEpsDisplayPreference, + PaymentMethodConfigurationUpdateParamsFpx as PaymentMethodConfigurationUpdateParamsFpx, + PaymentMethodConfigurationUpdateParamsFpxDisplayPreference as PaymentMethodConfigurationUpdateParamsFpxDisplayPreference, + PaymentMethodConfigurationUpdateParamsFrMealVoucherConecs as PaymentMethodConfigurationUpdateParamsFrMealVoucherConecs, + PaymentMethodConfigurationUpdateParamsFrMealVoucherConecsDisplayPreference as PaymentMethodConfigurationUpdateParamsFrMealVoucherConecsDisplayPreference, + PaymentMethodConfigurationUpdateParamsGiropay as PaymentMethodConfigurationUpdateParamsGiropay, + PaymentMethodConfigurationUpdateParamsGiropayDisplayPreference as PaymentMethodConfigurationUpdateParamsGiropayDisplayPreference, + PaymentMethodConfigurationUpdateParamsGooglePay as PaymentMethodConfigurationUpdateParamsGooglePay, + PaymentMethodConfigurationUpdateParamsGooglePayDisplayPreference as PaymentMethodConfigurationUpdateParamsGooglePayDisplayPreference, + PaymentMethodConfigurationUpdateParamsGrabpay as PaymentMethodConfigurationUpdateParamsGrabpay, + PaymentMethodConfigurationUpdateParamsGrabpayDisplayPreference as PaymentMethodConfigurationUpdateParamsGrabpayDisplayPreference, + PaymentMethodConfigurationUpdateParamsIdeal as PaymentMethodConfigurationUpdateParamsIdeal, + PaymentMethodConfigurationUpdateParamsIdealDisplayPreference as PaymentMethodConfigurationUpdateParamsIdealDisplayPreference, + PaymentMethodConfigurationUpdateParamsJcb as PaymentMethodConfigurationUpdateParamsJcb, + PaymentMethodConfigurationUpdateParamsJcbDisplayPreference as PaymentMethodConfigurationUpdateParamsJcbDisplayPreference, + PaymentMethodConfigurationUpdateParamsKakaoPay as PaymentMethodConfigurationUpdateParamsKakaoPay, + PaymentMethodConfigurationUpdateParamsKakaoPayDisplayPreference as PaymentMethodConfigurationUpdateParamsKakaoPayDisplayPreference, + PaymentMethodConfigurationUpdateParamsKlarna as PaymentMethodConfigurationUpdateParamsKlarna, + PaymentMethodConfigurationUpdateParamsKlarnaDisplayPreference as PaymentMethodConfigurationUpdateParamsKlarnaDisplayPreference, + PaymentMethodConfigurationUpdateParamsKonbini as PaymentMethodConfigurationUpdateParamsKonbini, + PaymentMethodConfigurationUpdateParamsKonbiniDisplayPreference as PaymentMethodConfigurationUpdateParamsKonbiniDisplayPreference, + PaymentMethodConfigurationUpdateParamsKrCard as PaymentMethodConfigurationUpdateParamsKrCard, + PaymentMethodConfigurationUpdateParamsKrCardDisplayPreference as PaymentMethodConfigurationUpdateParamsKrCardDisplayPreference, + PaymentMethodConfigurationUpdateParamsLink as PaymentMethodConfigurationUpdateParamsLink, + PaymentMethodConfigurationUpdateParamsLinkDisplayPreference as PaymentMethodConfigurationUpdateParamsLinkDisplayPreference, + PaymentMethodConfigurationUpdateParamsMbWay as PaymentMethodConfigurationUpdateParamsMbWay, + PaymentMethodConfigurationUpdateParamsMbWayDisplayPreference as PaymentMethodConfigurationUpdateParamsMbWayDisplayPreference, + PaymentMethodConfigurationUpdateParamsMobilepay as PaymentMethodConfigurationUpdateParamsMobilepay, + PaymentMethodConfigurationUpdateParamsMobilepayDisplayPreference as PaymentMethodConfigurationUpdateParamsMobilepayDisplayPreference, + PaymentMethodConfigurationUpdateParamsMultibanco as PaymentMethodConfigurationUpdateParamsMultibanco, + PaymentMethodConfigurationUpdateParamsMultibancoDisplayPreference as PaymentMethodConfigurationUpdateParamsMultibancoDisplayPreference, + PaymentMethodConfigurationUpdateParamsNaverPay as PaymentMethodConfigurationUpdateParamsNaverPay, + PaymentMethodConfigurationUpdateParamsNaverPayDisplayPreference as PaymentMethodConfigurationUpdateParamsNaverPayDisplayPreference, + PaymentMethodConfigurationUpdateParamsNzBankAccount as PaymentMethodConfigurationUpdateParamsNzBankAccount, + PaymentMethodConfigurationUpdateParamsNzBankAccountDisplayPreference as PaymentMethodConfigurationUpdateParamsNzBankAccountDisplayPreference, + PaymentMethodConfigurationUpdateParamsOxxo as PaymentMethodConfigurationUpdateParamsOxxo, + PaymentMethodConfigurationUpdateParamsOxxoDisplayPreference as PaymentMethodConfigurationUpdateParamsOxxoDisplayPreference, + PaymentMethodConfigurationUpdateParamsP24 as PaymentMethodConfigurationUpdateParamsP24, + PaymentMethodConfigurationUpdateParamsP24DisplayPreference as PaymentMethodConfigurationUpdateParamsP24DisplayPreference, + PaymentMethodConfigurationUpdateParamsPayByBank as PaymentMethodConfigurationUpdateParamsPayByBank, + PaymentMethodConfigurationUpdateParamsPayByBankDisplayPreference as PaymentMethodConfigurationUpdateParamsPayByBankDisplayPreference, + PaymentMethodConfigurationUpdateParamsPayco as PaymentMethodConfigurationUpdateParamsPayco, + PaymentMethodConfigurationUpdateParamsPaycoDisplayPreference as PaymentMethodConfigurationUpdateParamsPaycoDisplayPreference, + PaymentMethodConfigurationUpdateParamsPaynow as PaymentMethodConfigurationUpdateParamsPaynow, + PaymentMethodConfigurationUpdateParamsPaynowDisplayPreference as PaymentMethodConfigurationUpdateParamsPaynowDisplayPreference, + PaymentMethodConfigurationUpdateParamsPaypal as PaymentMethodConfigurationUpdateParamsPaypal, + PaymentMethodConfigurationUpdateParamsPaypalDisplayPreference as PaymentMethodConfigurationUpdateParamsPaypalDisplayPreference, + PaymentMethodConfigurationUpdateParamsPix as PaymentMethodConfigurationUpdateParamsPix, + PaymentMethodConfigurationUpdateParamsPixDisplayPreference as PaymentMethodConfigurationUpdateParamsPixDisplayPreference, + PaymentMethodConfigurationUpdateParamsPromptpay as PaymentMethodConfigurationUpdateParamsPromptpay, + PaymentMethodConfigurationUpdateParamsPromptpayDisplayPreference as PaymentMethodConfigurationUpdateParamsPromptpayDisplayPreference, + PaymentMethodConfigurationUpdateParamsRevolutPay as PaymentMethodConfigurationUpdateParamsRevolutPay, + PaymentMethodConfigurationUpdateParamsRevolutPayDisplayPreference as PaymentMethodConfigurationUpdateParamsRevolutPayDisplayPreference, + PaymentMethodConfigurationUpdateParamsSamsungPay as PaymentMethodConfigurationUpdateParamsSamsungPay, + PaymentMethodConfigurationUpdateParamsSamsungPayDisplayPreference as PaymentMethodConfigurationUpdateParamsSamsungPayDisplayPreference, + PaymentMethodConfigurationUpdateParamsSatispay as PaymentMethodConfigurationUpdateParamsSatispay, + PaymentMethodConfigurationUpdateParamsSatispayDisplayPreference as PaymentMethodConfigurationUpdateParamsSatispayDisplayPreference, + PaymentMethodConfigurationUpdateParamsSepaDebit as PaymentMethodConfigurationUpdateParamsSepaDebit, + PaymentMethodConfigurationUpdateParamsSepaDebitDisplayPreference as PaymentMethodConfigurationUpdateParamsSepaDebitDisplayPreference, + PaymentMethodConfigurationUpdateParamsSofort as PaymentMethodConfigurationUpdateParamsSofort, + PaymentMethodConfigurationUpdateParamsSofortDisplayPreference as PaymentMethodConfigurationUpdateParamsSofortDisplayPreference, + PaymentMethodConfigurationUpdateParamsSwish as PaymentMethodConfigurationUpdateParamsSwish, + PaymentMethodConfigurationUpdateParamsSwishDisplayPreference as PaymentMethodConfigurationUpdateParamsSwishDisplayPreference, + PaymentMethodConfigurationUpdateParamsTwint as PaymentMethodConfigurationUpdateParamsTwint, + PaymentMethodConfigurationUpdateParamsTwintDisplayPreference as PaymentMethodConfigurationUpdateParamsTwintDisplayPreference, + PaymentMethodConfigurationUpdateParamsUsBankAccount as PaymentMethodConfigurationUpdateParamsUsBankAccount, + PaymentMethodConfigurationUpdateParamsUsBankAccountDisplayPreference as PaymentMethodConfigurationUpdateParamsUsBankAccountDisplayPreference, + PaymentMethodConfigurationUpdateParamsWechatPay as PaymentMethodConfigurationUpdateParamsWechatPay, + PaymentMethodConfigurationUpdateParamsWechatPayDisplayPreference as PaymentMethodConfigurationUpdateParamsWechatPayDisplayPreference, + PaymentMethodConfigurationUpdateParamsZip as PaymentMethodConfigurationUpdateParamsZip, + PaymentMethodConfigurationUpdateParamsZipDisplayPreference as PaymentMethodConfigurationUpdateParamsZipDisplayPreference, + ) + from stripe.params._payment_method_create_params import ( + PaymentMethodCreateParams as PaymentMethodCreateParams, + PaymentMethodCreateParamsAcssDebit as PaymentMethodCreateParamsAcssDebit, + PaymentMethodCreateParamsAffirm as PaymentMethodCreateParamsAffirm, + PaymentMethodCreateParamsAfterpayClearpay as PaymentMethodCreateParamsAfterpayClearpay, + PaymentMethodCreateParamsAlipay as PaymentMethodCreateParamsAlipay, + PaymentMethodCreateParamsAlma as PaymentMethodCreateParamsAlma, + PaymentMethodCreateParamsAmazonPay as PaymentMethodCreateParamsAmazonPay, + PaymentMethodCreateParamsAuBecsDebit as PaymentMethodCreateParamsAuBecsDebit, + PaymentMethodCreateParamsBacsDebit as PaymentMethodCreateParamsBacsDebit, + PaymentMethodCreateParamsBancontact as PaymentMethodCreateParamsBancontact, + PaymentMethodCreateParamsBillie as PaymentMethodCreateParamsBillie, + PaymentMethodCreateParamsBillingDetails as PaymentMethodCreateParamsBillingDetails, + PaymentMethodCreateParamsBillingDetailsAddress as PaymentMethodCreateParamsBillingDetailsAddress, + PaymentMethodCreateParamsBlik as PaymentMethodCreateParamsBlik, + PaymentMethodCreateParamsBoleto as PaymentMethodCreateParamsBoleto, + PaymentMethodCreateParamsCard as PaymentMethodCreateParamsCard, + PaymentMethodCreateParamsCardNetworks as PaymentMethodCreateParamsCardNetworks, + PaymentMethodCreateParamsCashapp as PaymentMethodCreateParamsCashapp, + PaymentMethodCreateParamsCrypto as PaymentMethodCreateParamsCrypto, + PaymentMethodCreateParamsCustom as PaymentMethodCreateParamsCustom, + PaymentMethodCreateParamsCustomerBalance as PaymentMethodCreateParamsCustomerBalance, + PaymentMethodCreateParamsEps as PaymentMethodCreateParamsEps, + PaymentMethodCreateParamsFpx as PaymentMethodCreateParamsFpx, + PaymentMethodCreateParamsGiropay as PaymentMethodCreateParamsGiropay, + PaymentMethodCreateParamsGrabpay as PaymentMethodCreateParamsGrabpay, + PaymentMethodCreateParamsIdeal as PaymentMethodCreateParamsIdeal, + PaymentMethodCreateParamsInteracPresent as PaymentMethodCreateParamsInteracPresent, + PaymentMethodCreateParamsKakaoPay as PaymentMethodCreateParamsKakaoPay, + PaymentMethodCreateParamsKlarna as PaymentMethodCreateParamsKlarna, + PaymentMethodCreateParamsKlarnaDob as PaymentMethodCreateParamsKlarnaDob, + PaymentMethodCreateParamsKonbini as PaymentMethodCreateParamsKonbini, + PaymentMethodCreateParamsKrCard as PaymentMethodCreateParamsKrCard, + PaymentMethodCreateParamsLink as PaymentMethodCreateParamsLink, + PaymentMethodCreateParamsMbWay as PaymentMethodCreateParamsMbWay, + PaymentMethodCreateParamsMobilepay as PaymentMethodCreateParamsMobilepay, + PaymentMethodCreateParamsMultibanco as PaymentMethodCreateParamsMultibanco, + PaymentMethodCreateParamsNaverPay as PaymentMethodCreateParamsNaverPay, + PaymentMethodCreateParamsNzBankAccount as PaymentMethodCreateParamsNzBankAccount, + PaymentMethodCreateParamsOxxo as PaymentMethodCreateParamsOxxo, + PaymentMethodCreateParamsP24 as PaymentMethodCreateParamsP24, + PaymentMethodCreateParamsPayByBank as PaymentMethodCreateParamsPayByBank, + PaymentMethodCreateParamsPayco as PaymentMethodCreateParamsPayco, + PaymentMethodCreateParamsPaynow as PaymentMethodCreateParamsPaynow, + PaymentMethodCreateParamsPaypal as PaymentMethodCreateParamsPaypal, + PaymentMethodCreateParamsPix as PaymentMethodCreateParamsPix, + PaymentMethodCreateParamsPromptpay as PaymentMethodCreateParamsPromptpay, + PaymentMethodCreateParamsRadarOptions as PaymentMethodCreateParamsRadarOptions, + PaymentMethodCreateParamsRevolutPay as PaymentMethodCreateParamsRevolutPay, + PaymentMethodCreateParamsSamsungPay as PaymentMethodCreateParamsSamsungPay, + PaymentMethodCreateParamsSatispay as PaymentMethodCreateParamsSatispay, + PaymentMethodCreateParamsSepaDebit as PaymentMethodCreateParamsSepaDebit, + PaymentMethodCreateParamsSofort as PaymentMethodCreateParamsSofort, + PaymentMethodCreateParamsSwish as PaymentMethodCreateParamsSwish, + PaymentMethodCreateParamsTwint as PaymentMethodCreateParamsTwint, + PaymentMethodCreateParamsUsBankAccount as PaymentMethodCreateParamsUsBankAccount, + PaymentMethodCreateParamsWechatPay as PaymentMethodCreateParamsWechatPay, + PaymentMethodCreateParamsZip as PaymentMethodCreateParamsZip, + ) + from stripe.params._payment_method_detach_params import ( + PaymentMethodDetachParams as PaymentMethodDetachParams, + ) + from stripe.params._payment_method_domain_create_params import ( + PaymentMethodDomainCreateParams as PaymentMethodDomainCreateParams, + ) + from stripe.params._payment_method_domain_list_params import ( + PaymentMethodDomainListParams as PaymentMethodDomainListParams, + ) + from stripe.params._payment_method_domain_modify_params import ( + PaymentMethodDomainModifyParams as PaymentMethodDomainModifyParams, + ) + from stripe.params._payment_method_domain_retrieve_params import ( + PaymentMethodDomainRetrieveParams as PaymentMethodDomainRetrieveParams, + ) + from stripe.params._payment_method_domain_update_params import ( + PaymentMethodDomainUpdateParams as PaymentMethodDomainUpdateParams, + ) + from stripe.params._payment_method_domain_validate_params import ( + PaymentMethodDomainValidateParams as PaymentMethodDomainValidateParams, + ) + from stripe.params._payment_method_list_params import ( + PaymentMethodListParams as PaymentMethodListParams, + ) + from stripe.params._payment_method_modify_params import ( + PaymentMethodModifyParams as PaymentMethodModifyParams, + PaymentMethodModifyParamsBillingDetails as PaymentMethodModifyParamsBillingDetails, + PaymentMethodModifyParamsBillingDetailsAddress as PaymentMethodModifyParamsBillingDetailsAddress, + PaymentMethodModifyParamsCard as PaymentMethodModifyParamsCard, + PaymentMethodModifyParamsCardNetworks as PaymentMethodModifyParamsCardNetworks, + PaymentMethodModifyParamsUsBankAccount as PaymentMethodModifyParamsUsBankAccount, + ) + from stripe.params._payment_method_retrieve_params import ( + PaymentMethodRetrieveParams as PaymentMethodRetrieveParams, + ) + from stripe.params._payment_method_update_params import ( + PaymentMethodUpdateParams as PaymentMethodUpdateParams, + PaymentMethodUpdateParamsBillingDetails as PaymentMethodUpdateParamsBillingDetails, + PaymentMethodUpdateParamsBillingDetailsAddress as PaymentMethodUpdateParamsBillingDetailsAddress, + PaymentMethodUpdateParamsCard as PaymentMethodUpdateParamsCard, + PaymentMethodUpdateParamsCardNetworks as PaymentMethodUpdateParamsCardNetworks, + PaymentMethodUpdateParamsUsBankAccount as PaymentMethodUpdateParamsUsBankAccount, + ) + from stripe.params._payment_record_report_payment_attempt_canceled_params import ( + PaymentRecordReportPaymentAttemptCanceledParams as PaymentRecordReportPaymentAttemptCanceledParams, + ) + from stripe.params._payment_record_report_payment_attempt_failed_params import ( + PaymentRecordReportPaymentAttemptFailedParams as PaymentRecordReportPaymentAttemptFailedParams, + ) + from stripe.params._payment_record_report_payment_attempt_guaranteed_params import ( + PaymentRecordReportPaymentAttemptGuaranteedParams as PaymentRecordReportPaymentAttemptGuaranteedParams, + ) + from stripe.params._payment_record_report_payment_attempt_informational_params import ( + PaymentRecordReportPaymentAttemptInformationalParams as PaymentRecordReportPaymentAttemptInformationalParams, + PaymentRecordReportPaymentAttemptInformationalParamsCustomerDetails as PaymentRecordReportPaymentAttemptInformationalParamsCustomerDetails, + PaymentRecordReportPaymentAttemptInformationalParamsShippingDetails as PaymentRecordReportPaymentAttemptInformationalParamsShippingDetails, + PaymentRecordReportPaymentAttemptInformationalParamsShippingDetailsAddress as PaymentRecordReportPaymentAttemptInformationalParamsShippingDetailsAddress, + ) + from stripe.params._payment_record_report_payment_attempt_params import ( + PaymentRecordReportPaymentAttemptParams as PaymentRecordReportPaymentAttemptParams, + PaymentRecordReportPaymentAttemptParamsFailed as PaymentRecordReportPaymentAttemptParamsFailed, + PaymentRecordReportPaymentAttemptParamsGuaranteed as PaymentRecordReportPaymentAttemptParamsGuaranteed, + PaymentRecordReportPaymentAttemptParamsPaymentMethodDetails as PaymentRecordReportPaymentAttemptParamsPaymentMethodDetails, + PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetails as PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetails, + PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetailsAddress as PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetailsAddress, + PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsCustom as PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsCustom, + PaymentRecordReportPaymentAttemptParamsShippingDetails as PaymentRecordReportPaymentAttemptParamsShippingDetails, + PaymentRecordReportPaymentAttemptParamsShippingDetailsAddress as PaymentRecordReportPaymentAttemptParamsShippingDetailsAddress, + ) + from stripe.params._payment_record_report_payment_params import ( + PaymentRecordReportPaymentParams as PaymentRecordReportPaymentParams, + PaymentRecordReportPaymentParamsAmountRequested as PaymentRecordReportPaymentParamsAmountRequested, + PaymentRecordReportPaymentParamsCustomerDetails as PaymentRecordReportPaymentParamsCustomerDetails, + PaymentRecordReportPaymentParamsFailed as PaymentRecordReportPaymentParamsFailed, + PaymentRecordReportPaymentParamsGuaranteed as PaymentRecordReportPaymentParamsGuaranteed, + PaymentRecordReportPaymentParamsPaymentMethodDetails as PaymentRecordReportPaymentParamsPaymentMethodDetails, + PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetails as PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetails, + PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetailsAddress as PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetailsAddress, + PaymentRecordReportPaymentParamsPaymentMethodDetailsCustom as PaymentRecordReportPaymentParamsPaymentMethodDetailsCustom, + PaymentRecordReportPaymentParamsProcessorDetails as PaymentRecordReportPaymentParamsProcessorDetails, + PaymentRecordReportPaymentParamsProcessorDetailsCustom as PaymentRecordReportPaymentParamsProcessorDetailsCustom, + PaymentRecordReportPaymentParamsShippingDetails as PaymentRecordReportPaymentParamsShippingDetails, + PaymentRecordReportPaymentParamsShippingDetailsAddress as PaymentRecordReportPaymentParamsShippingDetailsAddress, + ) + from stripe.params._payment_record_report_refund_params import ( + PaymentRecordReportRefundParams as PaymentRecordReportRefundParams, + PaymentRecordReportRefundParamsAmount as PaymentRecordReportRefundParamsAmount, + PaymentRecordReportRefundParamsProcessorDetails as PaymentRecordReportRefundParamsProcessorDetails, + PaymentRecordReportRefundParamsProcessorDetailsCustom as PaymentRecordReportRefundParamsProcessorDetailsCustom, + PaymentRecordReportRefundParamsRefunded as PaymentRecordReportRefundParamsRefunded, + ) + from stripe.params._payment_record_retrieve_params import ( + PaymentRecordRetrieveParams as PaymentRecordRetrieveParams, + ) + from stripe.params._payout_cancel_params import ( + PayoutCancelParams as PayoutCancelParams, + ) + from stripe.params._payout_create_params import ( + PayoutCreateParams as PayoutCreateParams, + ) + from stripe.params._payout_list_params import ( + PayoutListParams as PayoutListParams, + PayoutListParamsArrivalDate as PayoutListParamsArrivalDate, + PayoutListParamsCreated as PayoutListParamsCreated, + ) + from stripe.params._payout_modify_params import ( + PayoutModifyParams as PayoutModifyParams, + ) + from stripe.params._payout_retrieve_params import ( + PayoutRetrieveParams as PayoutRetrieveParams, + ) + from stripe.params._payout_reverse_params import ( + PayoutReverseParams as PayoutReverseParams, + ) + from stripe.params._payout_update_params import ( + PayoutUpdateParams as PayoutUpdateParams, + ) + from stripe.params._plan_create_params import ( + PlanCreateParams as PlanCreateParams, + PlanCreateParamsProduct as PlanCreateParamsProduct, + PlanCreateParamsTier as PlanCreateParamsTier, + PlanCreateParamsTransformUsage as PlanCreateParamsTransformUsage, + ) + from stripe.params._plan_delete_params import ( + PlanDeleteParams as PlanDeleteParams, + ) + from stripe.params._plan_list_params import ( + PlanListParams as PlanListParams, + PlanListParamsCreated as PlanListParamsCreated, + ) + from stripe.params._plan_modify_params import ( + PlanModifyParams as PlanModifyParams, + ) + from stripe.params._plan_retrieve_params import ( + PlanRetrieveParams as PlanRetrieveParams, + ) + from stripe.params._plan_update_params import ( + PlanUpdateParams as PlanUpdateParams, + ) + from stripe.params._price_create_params import ( + PriceCreateParams as PriceCreateParams, + PriceCreateParamsCurrencyOptions as PriceCreateParamsCurrencyOptions, + PriceCreateParamsCurrencyOptionsCustomUnitAmount as PriceCreateParamsCurrencyOptionsCustomUnitAmount, + PriceCreateParamsCurrencyOptionsTier as PriceCreateParamsCurrencyOptionsTier, + PriceCreateParamsCustomUnitAmount as PriceCreateParamsCustomUnitAmount, + PriceCreateParamsProductData as PriceCreateParamsProductData, + PriceCreateParamsRecurring as PriceCreateParamsRecurring, + PriceCreateParamsTier as PriceCreateParamsTier, + PriceCreateParamsTransformQuantity as PriceCreateParamsTransformQuantity, + ) + from stripe.params._price_list_params import ( + PriceListParams as PriceListParams, + PriceListParamsCreated as PriceListParamsCreated, + PriceListParamsRecurring as PriceListParamsRecurring, + ) + from stripe.params._price_modify_params import ( + PriceModifyParams as PriceModifyParams, + PriceModifyParamsCurrencyOptions as PriceModifyParamsCurrencyOptions, + PriceModifyParamsCurrencyOptionsCustomUnitAmount as PriceModifyParamsCurrencyOptionsCustomUnitAmount, + PriceModifyParamsCurrencyOptionsTier as PriceModifyParamsCurrencyOptionsTier, + ) + from stripe.params._price_retrieve_params import ( + PriceRetrieveParams as PriceRetrieveParams, + ) + from stripe.params._price_search_params import ( + PriceSearchParams as PriceSearchParams, + ) + from stripe.params._price_update_params import ( + PriceUpdateParams as PriceUpdateParams, + PriceUpdateParamsCurrencyOptions as PriceUpdateParamsCurrencyOptions, + PriceUpdateParamsCurrencyOptionsCustomUnitAmount as PriceUpdateParamsCurrencyOptionsCustomUnitAmount, + PriceUpdateParamsCurrencyOptionsTier as PriceUpdateParamsCurrencyOptionsTier, + ) + from stripe.params._product_create_feature_params import ( + ProductCreateFeatureParams as ProductCreateFeatureParams, + ) + from stripe.params._product_create_params import ( + ProductCreateParams as ProductCreateParams, + ProductCreateParamsDefaultPriceData as ProductCreateParamsDefaultPriceData, + ProductCreateParamsDefaultPriceDataCurrencyOptions as ProductCreateParamsDefaultPriceDataCurrencyOptions, + ProductCreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmount as ProductCreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmount, + ProductCreateParamsDefaultPriceDataCurrencyOptionsTier as ProductCreateParamsDefaultPriceDataCurrencyOptionsTier, + ProductCreateParamsDefaultPriceDataCustomUnitAmount as ProductCreateParamsDefaultPriceDataCustomUnitAmount, + ProductCreateParamsDefaultPriceDataRecurring as ProductCreateParamsDefaultPriceDataRecurring, + ProductCreateParamsMarketingFeature as ProductCreateParamsMarketingFeature, + ProductCreateParamsPackageDimensions as ProductCreateParamsPackageDimensions, + ) + from stripe.params._product_delete_feature_params import ( + ProductDeleteFeatureParams as ProductDeleteFeatureParams, + ) + from stripe.params._product_delete_params import ( + ProductDeleteParams as ProductDeleteParams, + ) + from stripe.params._product_feature_create_params import ( + ProductFeatureCreateParams as ProductFeatureCreateParams, + ) + from stripe.params._product_feature_delete_params import ( + ProductFeatureDeleteParams as ProductFeatureDeleteParams, + ) + from stripe.params._product_feature_list_params import ( + ProductFeatureListParams as ProductFeatureListParams, + ) + from stripe.params._product_feature_retrieve_params import ( + ProductFeatureRetrieveParams as ProductFeatureRetrieveParams, + ) + from stripe.params._product_list_features_params import ( + ProductListFeaturesParams as ProductListFeaturesParams, + ) + from stripe.params._product_list_params import ( + ProductListParams as ProductListParams, + ProductListParamsCreated as ProductListParamsCreated, + ) + from stripe.params._product_modify_params import ( + ProductModifyParams as ProductModifyParams, + ProductModifyParamsMarketingFeature as ProductModifyParamsMarketingFeature, + ProductModifyParamsPackageDimensions as ProductModifyParamsPackageDimensions, + ) + from stripe.params._product_retrieve_feature_params import ( + ProductRetrieveFeatureParams as ProductRetrieveFeatureParams, + ) + from stripe.params._product_retrieve_params import ( + ProductRetrieveParams as ProductRetrieveParams, + ) + from stripe.params._product_search_params import ( + ProductSearchParams as ProductSearchParams, + ) + from stripe.params._product_update_params import ( + ProductUpdateParams as ProductUpdateParams, + ProductUpdateParamsMarketingFeature as ProductUpdateParamsMarketingFeature, + ProductUpdateParamsPackageDimensions as ProductUpdateParamsPackageDimensions, + ) + from stripe.params._promotion_code_create_params import ( + PromotionCodeCreateParams as PromotionCodeCreateParams, + PromotionCodeCreateParamsPromotion as PromotionCodeCreateParamsPromotion, + PromotionCodeCreateParamsRestrictions as PromotionCodeCreateParamsRestrictions, + PromotionCodeCreateParamsRestrictionsCurrencyOptions as PromotionCodeCreateParamsRestrictionsCurrencyOptions, + ) + from stripe.params._promotion_code_list_params import ( + PromotionCodeListParams as PromotionCodeListParams, + PromotionCodeListParamsCreated as PromotionCodeListParamsCreated, + ) + from stripe.params._promotion_code_modify_params import ( + PromotionCodeModifyParams as PromotionCodeModifyParams, + PromotionCodeModifyParamsRestrictions as PromotionCodeModifyParamsRestrictions, + PromotionCodeModifyParamsRestrictionsCurrencyOptions as PromotionCodeModifyParamsRestrictionsCurrencyOptions, + ) + from stripe.params._promotion_code_retrieve_params import ( + PromotionCodeRetrieveParams as PromotionCodeRetrieveParams, + ) + from stripe.params._promotion_code_update_params import ( + PromotionCodeUpdateParams as PromotionCodeUpdateParams, + PromotionCodeUpdateParamsRestrictions as PromotionCodeUpdateParamsRestrictions, + PromotionCodeUpdateParamsRestrictionsCurrencyOptions as PromotionCodeUpdateParamsRestrictionsCurrencyOptions, + ) + from stripe.params._quote_accept_params import ( + QuoteAcceptParams as QuoteAcceptParams, + ) + from stripe.params._quote_cancel_params import ( + QuoteCancelParams as QuoteCancelParams, + ) + from stripe.params._quote_computed_upfront_line_items_list_params import ( + QuoteComputedUpfrontLineItemsListParams as QuoteComputedUpfrontLineItemsListParams, + ) + from stripe.params._quote_create_params import ( + QuoteCreateParams as QuoteCreateParams, + QuoteCreateParamsAutomaticTax as QuoteCreateParamsAutomaticTax, + QuoteCreateParamsAutomaticTaxLiability as QuoteCreateParamsAutomaticTaxLiability, + QuoteCreateParamsDiscount as QuoteCreateParamsDiscount, + QuoteCreateParamsFromQuote as QuoteCreateParamsFromQuote, + QuoteCreateParamsInvoiceSettings as QuoteCreateParamsInvoiceSettings, + QuoteCreateParamsInvoiceSettingsIssuer as QuoteCreateParamsInvoiceSettingsIssuer, + QuoteCreateParamsLineItem as QuoteCreateParamsLineItem, + QuoteCreateParamsLineItemDiscount as QuoteCreateParamsLineItemDiscount, + QuoteCreateParamsLineItemPriceData as QuoteCreateParamsLineItemPriceData, + QuoteCreateParamsLineItemPriceDataRecurring as QuoteCreateParamsLineItemPriceDataRecurring, + QuoteCreateParamsSubscriptionData as QuoteCreateParamsSubscriptionData, + QuoteCreateParamsSubscriptionDataBillingMode as QuoteCreateParamsSubscriptionDataBillingMode, + QuoteCreateParamsSubscriptionDataBillingModeFlexible as QuoteCreateParamsSubscriptionDataBillingModeFlexible, + QuoteCreateParamsTransferData as QuoteCreateParamsTransferData, + ) + from stripe.params._quote_finalize_quote_params import ( + QuoteFinalizeQuoteParams as QuoteFinalizeQuoteParams, + ) + from stripe.params._quote_line_item_list_params import ( + QuoteLineItemListParams as QuoteLineItemListParams, + ) + from stripe.params._quote_list_computed_upfront_line_items_params import ( + QuoteListComputedUpfrontLineItemsParams as QuoteListComputedUpfrontLineItemsParams, + ) + from stripe.params._quote_list_line_items_params import ( + QuoteListLineItemsParams as QuoteListLineItemsParams, + ) + from stripe.params._quote_list_params import ( + QuoteListParams as QuoteListParams, + ) + from stripe.params._quote_modify_params import ( + QuoteModifyParams as QuoteModifyParams, + QuoteModifyParamsAutomaticTax as QuoteModifyParamsAutomaticTax, + QuoteModifyParamsAutomaticTaxLiability as QuoteModifyParamsAutomaticTaxLiability, + QuoteModifyParamsDiscount as QuoteModifyParamsDiscount, + QuoteModifyParamsInvoiceSettings as QuoteModifyParamsInvoiceSettings, + QuoteModifyParamsInvoiceSettingsIssuer as QuoteModifyParamsInvoiceSettingsIssuer, + QuoteModifyParamsLineItem as QuoteModifyParamsLineItem, + QuoteModifyParamsLineItemDiscount as QuoteModifyParamsLineItemDiscount, + QuoteModifyParamsLineItemPriceData as QuoteModifyParamsLineItemPriceData, + QuoteModifyParamsLineItemPriceDataRecurring as QuoteModifyParamsLineItemPriceDataRecurring, + QuoteModifyParamsSubscriptionData as QuoteModifyParamsSubscriptionData, + QuoteModifyParamsTransferData as QuoteModifyParamsTransferData, + ) + from stripe.params._quote_pdf_params import ( + QuotePdfParams as QuotePdfParams, + ) + from stripe.params._quote_retrieve_params import ( + QuoteRetrieveParams as QuoteRetrieveParams, + ) + from stripe.params._quote_update_params import ( + QuoteUpdateParams as QuoteUpdateParams, + QuoteUpdateParamsAutomaticTax as QuoteUpdateParamsAutomaticTax, + QuoteUpdateParamsAutomaticTaxLiability as QuoteUpdateParamsAutomaticTaxLiability, + QuoteUpdateParamsDiscount as QuoteUpdateParamsDiscount, + QuoteUpdateParamsInvoiceSettings as QuoteUpdateParamsInvoiceSettings, + QuoteUpdateParamsInvoiceSettingsIssuer as QuoteUpdateParamsInvoiceSettingsIssuer, + QuoteUpdateParamsLineItem as QuoteUpdateParamsLineItem, + QuoteUpdateParamsLineItemDiscount as QuoteUpdateParamsLineItemDiscount, + QuoteUpdateParamsLineItemPriceData as QuoteUpdateParamsLineItemPriceData, + QuoteUpdateParamsLineItemPriceDataRecurring as QuoteUpdateParamsLineItemPriceDataRecurring, + QuoteUpdateParamsSubscriptionData as QuoteUpdateParamsSubscriptionData, + QuoteUpdateParamsTransferData as QuoteUpdateParamsTransferData, + ) + from stripe.params._refund_cancel_params import ( + RefundCancelParams as RefundCancelParams, + ) + from stripe.params._refund_create_params import ( + RefundCreateParams as RefundCreateParams, + ) + from stripe.params._refund_expire_params import ( + RefundExpireParams as RefundExpireParams, + ) + from stripe.params._refund_list_params import ( + RefundListParams as RefundListParams, + RefundListParamsCreated as RefundListParamsCreated, + ) + from stripe.params._refund_modify_params import ( + RefundModifyParams as RefundModifyParams, + ) + from stripe.params._refund_retrieve_params import ( + RefundRetrieveParams as RefundRetrieveParams, + ) + from stripe.params._refund_update_params import ( + RefundUpdateParams as RefundUpdateParams, + ) + from stripe.params._review_approve_params import ( + ReviewApproveParams as ReviewApproveParams, + ) + from stripe.params._review_list_params import ( + ReviewListParams as ReviewListParams, + ReviewListParamsCreated as ReviewListParamsCreated, + ) + from stripe.params._review_retrieve_params import ( + ReviewRetrieveParams as ReviewRetrieveParams, + ) + from stripe.params._setup_attempt_list_params import ( + SetupAttemptListParams as SetupAttemptListParams, + SetupAttemptListParamsCreated as SetupAttemptListParamsCreated, + ) + from stripe.params._setup_intent_cancel_params import ( + SetupIntentCancelParams as SetupIntentCancelParams, + ) + from stripe.params._setup_intent_confirm_params import ( + SetupIntentConfirmParams as SetupIntentConfirmParams, + SetupIntentConfirmParamsMandateData as SetupIntentConfirmParamsMandateData, + SetupIntentConfirmParamsMandateDataCustomerAcceptance as SetupIntentConfirmParamsMandateDataCustomerAcceptance, + SetupIntentConfirmParamsMandateDataCustomerAcceptanceOffline as SetupIntentConfirmParamsMandateDataCustomerAcceptanceOffline, + SetupIntentConfirmParamsMandateDataCustomerAcceptanceOnline as SetupIntentConfirmParamsMandateDataCustomerAcceptanceOnline, + SetupIntentConfirmParamsPaymentMethodData as SetupIntentConfirmParamsPaymentMethodData, + SetupIntentConfirmParamsPaymentMethodDataAcssDebit as SetupIntentConfirmParamsPaymentMethodDataAcssDebit, + SetupIntentConfirmParamsPaymentMethodDataAffirm as SetupIntentConfirmParamsPaymentMethodDataAffirm, + SetupIntentConfirmParamsPaymentMethodDataAfterpayClearpay as SetupIntentConfirmParamsPaymentMethodDataAfterpayClearpay, + SetupIntentConfirmParamsPaymentMethodDataAlipay as SetupIntentConfirmParamsPaymentMethodDataAlipay, + SetupIntentConfirmParamsPaymentMethodDataAlma as SetupIntentConfirmParamsPaymentMethodDataAlma, + SetupIntentConfirmParamsPaymentMethodDataAmazonPay as SetupIntentConfirmParamsPaymentMethodDataAmazonPay, + SetupIntentConfirmParamsPaymentMethodDataAuBecsDebit as SetupIntentConfirmParamsPaymentMethodDataAuBecsDebit, + SetupIntentConfirmParamsPaymentMethodDataBacsDebit as SetupIntentConfirmParamsPaymentMethodDataBacsDebit, + SetupIntentConfirmParamsPaymentMethodDataBancontact as SetupIntentConfirmParamsPaymentMethodDataBancontact, + SetupIntentConfirmParamsPaymentMethodDataBillie as SetupIntentConfirmParamsPaymentMethodDataBillie, + SetupIntentConfirmParamsPaymentMethodDataBillingDetails as SetupIntentConfirmParamsPaymentMethodDataBillingDetails, + SetupIntentConfirmParamsPaymentMethodDataBillingDetailsAddress as SetupIntentConfirmParamsPaymentMethodDataBillingDetailsAddress, + SetupIntentConfirmParamsPaymentMethodDataBlik as SetupIntentConfirmParamsPaymentMethodDataBlik, + SetupIntentConfirmParamsPaymentMethodDataBoleto as SetupIntentConfirmParamsPaymentMethodDataBoleto, + SetupIntentConfirmParamsPaymentMethodDataCashapp as SetupIntentConfirmParamsPaymentMethodDataCashapp, + SetupIntentConfirmParamsPaymentMethodDataCrypto as SetupIntentConfirmParamsPaymentMethodDataCrypto, + SetupIntentConfirmParamsPaymentMethodDataCustomerBalance as SetupIntentConfirmParamsPaymentMethodDataCustomerBalance, + SetupIntentConfirmParamsPaymentMethodDataEps as SetupIntentConfirmParamsPaymentMethodDataEps, + SetupIntentConfirmParamsPaymentMethodDataFpx as SetupIntentConfirmParamsPaymentMethodDataFpx, + SetupIntentConfirmParamsPaymentMethodDataGiropay as SetupIntentConfirmParamsPaymentMethodDataGiropay, + SetupIntentConfirmParamsPaymentMethodDataGrabpay as SetupIntentConfirmParamsPaymentMethodDataGrabpay, + SetupIntentConfirmParamsPaymentMethodDataIdeal as SetupIntentConfirmParamsPaymentMethodDataIdeal, + SetupIntentConfirmParamsPaymentMethodDataInteracPresent as SetupIntentConfirmParamsPaymentMethodDataInteracPresent, + SetupIntentConfirmParamsPaymentMethodDataKakaoPay as SetupIntentConfirmParamsPaymentMethodDataKakaoPay, + SetupIntentConfirmParamsPaymentMethodDataKlarna as SetupIntentConfirmParamsPaymentMethodDataKlarna, + SetupIntentConfirmParamsPaymentMethodDataKlarnaDob as SetupIntentConfirmParamsPaymentMethodDataKlarnaDob, + SetupIntentConfirmParamsPaymentMethodDataKonbini as SetupIntentConfirmParamsPaymentMethodDataKonbini, + SetupIntentConfirmParamsPaymentMethodDataKrCard as SetupIntentConfirmParamsPaymentMethodDataKrCard, + SetupIntentConfirmParamsPaymentMethodDataLink as SetupIntentConfirmParamsPaymentMethodDataLink, + SetupIntentConfirmParamsPaymentMethodDataMbWay as SetupIntentConfirmParamsPaymentMethodDataMbWay, + SetupIntentConfirmParamsPaymentMethodDataMobilepay as SetupIntentConfirmParamsPaymentMethodDataMobilepay, + SetupIntentConfirmParamsPaymentMethodDataMultibanco as SetupIntentConfirmParamsPaymentMethodDataMultibanco, + SetupIntentConfirmParamsPaymentMethodDataNaverPay as SetupIntentConfirmParamsPaymentMethodDataNaverPay, + SetupIntentConfirmParamsPaymentMethodDataNzBankAccount as SetupIntentConfirmParamsPaymentMethodDataNzBankAccount, + SetupIntentConfirmParamsPaymentMethodDataOxxo as SetupIntentConfirmParamsPaymentMethodDataOxxo, + SetupIntentConfirmParamsPaymentMethodDataP24 as SetupIntentConfirmParamsPaymentMethodDataP24, + SetupIntentConfirmParamsPaymentMethodDataPayByBank as SetupIntentConfirmParamsPaymentMethodDataPayByBank, + SetupIntentConfirmParamsPaymentMethodDataPayco as SetupIntentConfirmParamsPaymentMethodDataPayco, + SetupIntentConfirmParamsPaymentMethodDataPaynow as SetupIntentConfirmParamsPaymentMethodDataPaynow, + SetupIntentConfirmParamsPaymentMethodDataPaypal as SetupIntentConfirmParamsPaymentMethodDataPaypal, + SetupIntentConfirmParamsPaymentMethodDataPix as SetupIntentConfirmParamsPaymentMethodDataPix, + SetupIntentConfirmParamsPaymentMethodDataPromptpay as SetupIntentConfirmParamsPaymentMethodDataPromptpay, + SetupIntentConfirmParamsPaymentMethodDataRadarOptions as SetupIntentConfirmParamsPaymentMethodDataRadarOptions, + SetupIntentConfirmParamsPaymentMethodDataRevolutPay as SetupIntentConfirmParamsPaymentMethodDataRevolutPay, + SetupIntentConfirmParamsPaymentMethodDataSamsungPay as SetupIntentConfirmParamsPaymentMethodDataSamsungPay, + SetupIntentConfirmParamsPaymentMethodDataSatispay as SetupIntentConfirmParamsPaymentMethodDataSatispay, + SetupIntentConfirmParamsPaymentMethodDataSepaDebit as SetupIntentConfirmParamsPaymentMethodDataSepaDebit, + SetupIntentConfirmParamsPaymentMethodDataSofort as SetupIntentConfirmParamsPaymentMethodDataSofort, + SetupIntentConfirmParamsPaymentMethodDataSwish as SetupIntentConfirmParamsPaymentMethodDataSwish, + SetupIntentConfirmParamsPaymentMethodDataTwint as SetupIntentConfirmParamsPaymentMethodDataTwint, + SetupIntentConfirmParamsPaymentMethodDataUsBankAccount as SetupIntentConfirmParamsPaymentMethodDataUsBankAccount, + SetupIntentConfirmParamsPaymentMethodDataWechatPay as SetupIntentConfirmParamsPaymentMethodDataWechatPay, + SetupIntentConfirmParamsPaymentMethodDataZip as SetupIntentConfirmParamsPaymentMethodDataZip, + SetupIntentConfirmParamsPaymentMethodOptions as SetupIntentConfirmParamsPaymentMethodOptions, + SetupIntentConfirmParamsPaymentMethodOptionsAcssDebit as SetupIntentConfirmParamsPaymentMethodOptionsAcssDebit, + SetupIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions as SetupIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions, + SetupIntentConfirmParamsPaymentMethodOptionsAmazonPay as SetupIntentConfirmParamsPaymentMethodOptionsAmazonPay, + SetupIntentConfirmParamsPaymentMethodOptionsBacsDebit as SetupIntentConfirmParamsPaymentMethodOptionsBacsDebit, + SetupIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions as SetupIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions, + SetupIntentConfirmParamsPaymentMethodOptionsCard as SetupIntentConfirmParamsPaymentMethodOptionsCard, + SetupIntentConfirmParamsPaymentMethodOptionsCardMandateOptions as SetupIntentConfirmParamsPaymentMethodOptionsCardMandateOptions, + SetupIntentConfirmParamsPaymentMethodOptionsCardPresent as SetupIntentConfirmParamsPaymentMethodOptionsCardPresent, + SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure as SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure, + SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + SetupIntentConfirmParamsPaymentMethodOptionsKlarna as SetupIntentConfirmParamsPaymentMethodOptionsKlarna, + SetupIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand as SetupIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand, + SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription as SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription, + SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + SetupIntentConfirmParamsPaymentMethodOptionsLink as SetupIntentConfirmParamsPaymentMethodOptionsLink, + SetupIntentConfirmParamsPaymentMethodOptionsPaypal as SetupIntentConfirmParamsPaymentMethodOptionsPaypal, + SetupIntentConfirmParamsPaymentMethodOptionsSepaDebit as SetupIntentConfirmParamsPaymentMethodOptionsSepaDebit, + SetupIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions as SetupIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions, + SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccount as SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccount, + SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections as SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions as SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions, + SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks as SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks, + ) + from stripe.params._setup_intent_create_params import ( + SetupIntentCreateParams as SetupIntentCreateParams, + SetupIntentCreateParamsAutomaticPaymentMethods as SetupIntentCreateParamsAutomaticPaymentMethods, + SetupIntentCreateParamsMandateData as SetupIntentCreateParamsMandateData, + SetupIntentCreateParamsMandateDataCustomerAcceptance as SetupIntentCreateParamsMandateDataCustomerAcceptance, + SetupIntentCreateParamsMandateDataCustomerAcceptanceOffline as SetupIntentCreateParamsMandateDataCustomerAcceptanceOffline, + SetupIntentCreateParamsMandateDataCustomerAcceptanceOnline as SetupIntentCreateParamsMandateDataCustomerAcceptanceOnline, + SetupIntentCreateParamsPaymentMethodData as SetupIntentCreateParamsPaymentMethodData, + SetupIntentCreateParamsPaymentMethodDataAcssDebit as SetupIntentCreateParamsPaymentMethodDataAcssDebit, + SetupIntentCreateParamsPaymentMethodDataAffirm as SetupIntentCreateParamsPaymentMethodDataAffirm, + SetupIntentCreateParamsPaymentMethodDataAfterpayClearpay as SetupIntentCreateParamsPaymentMethodDataAfterpayClearpay, + SetupIntentCreateParamsPaymentMethodDataAlipay as SetupIntentCreateParamsPaymentMethodDataAlipay, + SetupIntentCreateParamsPaymentMethodDataAlma as SetupIntentCreateParamsPaymentMethodDataAlma, + SetupIntentCreateParamsPaymentMethodDataAmazonPay as SetupIntentCreateParamsPaymentMethodDataAmazonPay, + SetupIntentCreateParamsPaymentMethodDataAuBecsDebit as SetupIntentCreateParamsPaymentMethodDataAuBecsDebit, + SetupIntentCreateParamsPaymentMethodDataBacsDebit as SetupIntentCreateParamsPaymentMethodDataBacsDebit, + SetupIntentCreateParamsPaymentMethodDataBancontact as SetupIntentCreateParamsPaymentMethodDataBancontact, + SetupIntentCreateParamsPaymentMethodDataBillie as SetupIntentCreateParamsPaymentMethodDataBillie, + SetupIntentCreateParamsPaymentMethodDataBillingDetails as SetupIntentCreateParamsPaymentMethodDataBillingDetails, + SetupIntentCreateParamsPaymentMethodDataBillingDetailsAddress as SetupIntentCreateParamsPaymentMethodDataBillingDetailsAddress, + SetupIntentCreateParamsPaymentMethodDataBlik as SetupIntentCreateParamsPaymentMethodDataBlik, + SetupIntentCreateParamsPaymentMethodDataBoleto as SetupIntentCreateParamsPaymentMethodDataBoleto, + SetupIntentCreateParamsPaymentMethodDataCashapp as SetupIntentCreateParamsPaymentMethodDataCashapp, + SetupIntentCreateParamsPaymentMethodDataCrypto as SetupIntentCreateParamsPaymentMethodDataCrypto, + SetupIntentCreateParamsPaymentMethodDataCustomerBalance as SetupIntentCreateParamsPaymentMethodDataCustomerBalance, + SetupIntentCreateParamsPaymentMethodDataEps as SetupIntentCreateParamsPaymentMethodDataEps, + SetupIntentCreateParamsPaymentMethodDataFpx as SetupIntentCreateParamsPaymentMethodDataFpx, + SetupIntentCreateParamsPaymentMethodDataGiropay as SetupIntentCreateParamsPaymentMethodDataGiropay, + SetupIntentCreateParamsPaymentMethodDataGrabpay as SetupIntentCreateParamsPaymentMethodDataGrabpay, + SetupIntentCreateParamsPaymentMethodDataIdeal as SetupIntentCreateParamsPaymentMethodDataIdeal, + SetupIntentCreateParamsPaymentMethodDataInteracPresent as SetupIntentCreateParamsPaymentMethodDataInteracPresent, + SetupIntentCreateParamsPaymentMethodDataKakaoPay as SetupIntentCreateParamsPaymentMethodDataKakaoPay, + SetupIntentCreateParamsPaymentMethodDataKlarna as SetupIntentCreateParamsPaymentMethodDataKlarna, + SetupIntentCreateParamsPaymentMethodDataKlarnaDob as SetupIntentCreateParamsPaymentMethodDataKlarnaDob, + SetupIntentCreateParamsPaymentMethodDataKonbini as SetupIntentCreateParamsPaymentMethodDataKonbini, + SetupIntentCreateParamsPaymentMethodDataKrCard as SetupIntentCreateParamsPaymentMethodDataKrCard, + SetupIntentCreateParamsPaymentMethodDataLink as SetupIntentCreateParamsPaymentMethodDataLink, + SetupIntentCreateParamsPaymentMethodDataMbWay as SetupIntentCreateParamsPaymentMethodDataMbWay, + SetupIntentCreateParamsPaymentMethodDataMobilepay as SetupIntentCreateParamsPaymentMethodDataMobilepay, + SetupIntentCreateParamsPaymentMethodDataMultibanco as SetupIntentCreateParamsPaymentMethodDataMultibanco, + SetupIntentCreateParamsPaymentMethodDataNaverPay as SetupIntentCreateParamsPaymentMethodDataNaverPay, + SetupIntentCreateParamsPaymentMethodDataNzBankAccount as SetupIntentCreateParamsPaymentMethodDataNzBankAccount, + SetupIntentCreateParamsPaymentMethodDataOxxo as SetupIntentCreateParamsPaymentMethodDataOxxo, + SetupIntentCreateParamsPaymentMethodDataP24 as SetupIntentCreateParamsPaymentMethodDataP24, + SetupIntentCreateParamsPaymentMethodDataPayByBank as SetupIntentCreateParamsPaymentMethodDataPayByBank, + SetupIntentCreateParamsPaymentMethodDataPayco as SetupIntentCreateParamsPaymentMethodDataPayco, + SetupIntentCreateParamsPaymentMethodDataPaynow as SetupIntentCreateParamsPaymentMethodDataPaynow, + SetupIntentCreateParamsPaymentMethodDataPaypal as SetupIntentCreateParamsPaymentMethodDataPaypal, + SetupIntentCreateParamsPaymentMethodDataPix as SetupIntentCreateParamsPaymentMethodDataPix, + SetupIntentCreateParamsPaymentMethodDataPromptpay as SetupIntentCreateParamsPaymentMethodDataPromptpay, + SetupIntentCreateParamsPaymentMethodDataRadarOptions as SetupIntentCreateParamsPaymentMethodDataRadarOptions, + SetupIntentCreateParamsPaymentMethodDataRevolutPay as SetupIntentCreateParamsPaymentMethodDataRevolutPay, + SetupIntentCreateParamsPaymentMethodDataSamsungPay as SetupIntentCreateParamsPaymentMethodDataSamsungPay, + SetupIntentCreateParamsPaymentMethodDataSatispay as SetupIntentCreateParamsPaymentMethodDataSatispay, + SetupIntentCreateParamsPaymentMethodDataSepaDebit as SetupIntentCreateParamsPaymentMethodDataSepaDebit, + SetupIntentCreateParamsPaymentMethodDataSofort as SetupIntentCreateParamsPaymentMethodDataSofort, + SetupIntentCreateParamsPaymentMethodDataSwish as SetupIntentCreateParamsPaymentMethodDataSwish, + SetupIntentCreateParamsPaymentMethodDataTwint as SetupIntentCreateParamsPaymentMethodDataTwint, + SetupIntentCreateParamsPaymentMethodDataUsBankAccount as SetupIntentCreateParamsPaymentMethodDataUsBankAccount, + SetupIntentCreateParamsPaymentMethodDataWechatPay as SetupIntentCreateParamsPaymentMethodDataWechatPay, + SetupIntentCreateParamsPaymentMethodDataZip as SetupIntentCreateParamsPaymentMethodDataZip, + SetupIntentCreateParamsPaymentMethodOptions as SetupIntentCreateParamsPaymentMethodOptions, + SetupIntentCreateParamsPaymentMethodOptionsAcssDebit as SetupIntentCreateParamsPaymentMethodOptionsAcssDebit, + SetupIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions as SetupIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions, + SetupIntentCreateParamsPaymentMethodOptionsAmazonPay as SetupIntentCreateParamsPaymentMethodOptionsAmazonPay, + SetupIntentCreateParamsPaymentMethodOptionsBacsDebit as SetupIntentCreateParamsPaymentMethodOptionsBacsDebit, + SetupIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions as SetupIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions, + SetupIntentCreateParamsPaymentMethodOptionsCard as SetupIntentCreateParamsPaymentMethodOptionsCard, + SetupIntentCreateParamsPaymentMethodOptionsCardMandateOptions as SetupIntentCreateParamsPaymentMethodOptionsCardMandateOptions, + SetupIntentCreateParamsPaymentMethodOptionsCardPresent as SetupIntentCreateParamsPaymentMethodOptionsCardPresent, + SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecure as SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecure, + SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + SetupIntentCreateParamsPaymentMethodOptionsKlarna as SetupIntentCreateParamsPaymentMethodOptionsKlarna, + SetupIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand as SetupIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand, + SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscription as SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscription, + SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + SetupIntentCreateParamsPaymentMethodOptionsLink as SetupIntentCreateParamsPaymentMethodOptionsLink, + SetupIntentCreateParamsPaymentMethodOptionsPaypal as SetupIntentCreateParamsPaymentMethodOptionsPaypal, + SetupIntentCreateParamsPaymentMethodOptionsSepaDebit as SetupIntentCreateParamsPaymentMethodOptionsSepaDebit, + SetupIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions as SetupIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions, + SetupIntentCreateParamsPaymentMethodOptionsUsBankAccount as SetupIntentCreateParamsPaymentMethodOptionsUsBankAccount, + SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections as SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions as SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions, + SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks as SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks, + SetupIntentCreateParamsSingleUse as SetupIntentCreateParamsSingleUse, + ) + from stripe.params._setup_intent_list_params import ( + SetupIntentListParams as SetupIntentListParams, + SetupIntentListParamsCreated as SetupIntentListParamsCreated, + ) + from stripe.params._setup_intent_modify_params import ( + SetupIntentModifyParams as SetupIntentModifyParams, + SetupIntentModifyParamsPaymentMethodData as SetupIntentModifyParamsPaymentMethodData, + SetupIntentModifyParamsPaymentMethodDataAcssDebit as SetupIntentModifyParamsPaymentMethodDataAcssDebit, + SetupIntentModifyParamsPaymentMethodDataAffirm as SetupIntentModifyParamsPaymentMethodDataAffirm, + SetupIntentModifyParamsPaymentMethodDataAfterpayClearpay as SetupIntentModifyParamsPaymentMethodDataAfterpayClearpay, + SetupIntentModifyParamsPaymentMethodDataAlipay as SetupIntentModifyParamsPaymentMethodDataAlipay, + SetupIntentModifyParamsPaymentMethodDataAlma as SetupIntentModifyParamsPaymentMethodDataAlma, + SetupIntentModifyParamsPaymentMethodDataAmazonPay as SetupIntentModifyParamsPaymentMethodDataAmazonPay, + SetupIntentModifyParamsPaymentMethodDataAuBecsDebit as SetupIntentModifyParamsPaymentMethodDataAuBecsDebit, + SetupIntentModifyParamsPaymentMethodDataBacsDebit as SetupIntentModifyParamsPaymentMethodDataBacsDebit, + SetupIntentModifyParamsPaymentMethodDataBancontact as SetupIntentModifyParamsPaymentMethodDataBancontact, + SetupIntentModifyParamsPaymentMethodDataBillie as SetupIntentModifyParamsPaymentMethodDataBillie, + SetupIntentModifyParamsPaymentMethodDataBillingDetails as SetupIntentModifyParamsPaymentMethodDataBillingDetails, + SetupIntentModifyParamsPaymentMethodDataBillingDetailsAddress as SetupIntentModifyParamsPaymentMethodDataBillingDetailsAddress, + SetupIntentModifyParamsPaymentMethodDataBlik as SetupIntentModifyParamsPaymentMethodDataBlik, + SetupIntentModifyParamsPaymentMethodDataBoleto as SetupIntentModifyParamsPaymentMethodDataBoleto, + SetupIntentModifyParamsPaymentMethodDataCashapp as SetupIntentModifyParamsPaymentMethodDataCashapp, + SetupIntentModifyParamsPaymentMethodDataCrypto as SetupIntentModifyParamsPaymentMethodDataCrypto, + SetupIntentModifyParamsPaymentMethodDataCustomerBalance as SetupIntentModifyParamsPaymentMethodDataCustomerBalance, + SetupIntentModifyParamsPaymentMethodDataEps as SetupIntentModifyParamsPaymentMethodDataEps, + SetupIntentModifyParamsPaymentMethodDataFpx as SetupIntentModifyParamsPaymentMethodDataFpx, + SetupIntentModifyParamsPaymentMethodDataGiropay as SetupIntentModifyParamsPaymentMethodDataGiropay, + SetupIntentModifyParamsPaymentMethodDataGrabpay as SetupIntentModifyParamsPaymentMethodDataGrabpay, + SetupIntentModifyParamsPaymentMethodDataIdeal as SetupIntentModifyParamsPaymentMethodDataIdeal, + SetupIntentModifyParamsPaymentMethodDataInteracPresent as SetupIntentModifyParamsPaymentMethodDataInteracPresent, + SetupIntentModifyParamsPaymentMethodDataKakaoPay as SetupIntentModifyParamsPaymentMethodDataKakaoPay, + SetupIntentModifyParamsPaymentMethodDataKlarna as SetupIntentModifyParamsPaymentMethodDataKlarna, + SetupIntentModifyParamsPaymentMethodDataKlarnaDob as SetupIntentModifyParamsPaymentMethodDataKlarnaDob, + SetupIntentModifyParamsPaymentMethodDataKonbini as SetupIntentModifyParamsPaymentMethodDataKonbini, + SetupIntentModifyParamsPaymentMethodDataKrCard as SetupIntentModifyParamsPaymentMethodDataKrCard, + SetupIntentModifyParamsPaymentMethodDataLink as SetupIntentModifyParamsPaymentMethodDataLink, + SetupIntentModifyParamsPaymentMethodDataMbWay as SetupIntentModifyParamsPaymentMethodDataMbWay, + SetupIntentModifyParamsPaymentMethodDataMobilepay as SetupIntentModifyParamsPaymentMethodDataMobilepay, + SetupIntentModifyParamsPaymentMethodDataMultibanco as SetupIntentModifyParamsPaymentMethodDataMultibanco, + SetupIntentModifyParamsPaymentMethodDataNaverPay as SetupIntentModifyParamsPaymentMethodDataNaverPay, + SetupIntentModifyParamsPaymentMethodDataNzBankAccount as SetupIntentModifyParamsPaymentMethodDataNzBankAccount, + SetupIntentModifyParamsPaymentMethodDataOxxo as SetupIntentModifyParamsPaymentMethodDataOxxo, + SetupIntentModifyParamsPaymentMethodDataP24 as SetupIntentModifyParamsPaymentMethodDataP24, + SetupIntentModifyParamsPaymentMethodDataPayByBank as SetupIntentModifyParamsPaymentMethodDataPayByBank, + SetupIntentModifyParamsPaymentMethodDataPayco as SetupIntentModifyParamsPaymentMethodDataPayco, + SetupIntentModifyParamsPaymentMethodDataPaynow as SetupIntentModifyParamsPaymentMethodDataPaynow, + SetupIntentModifyParamsPaymentMethodDataPaypal as SetupIntentModifyParamsPaymentMethodDataPaypal, + SetupIntentModifyParamsPaymentMethodDataPix as SetupIntentModifyParamsPaymentMethodDataPix, + SetupIntentModifyParamsPaymentMethodDataPromptpay as SetupIntentModifyParamsPaymentMethodDataPromptpay, + SetupIntentModifyParamsPaymentMethodDataRadarOptions as SetupIntentModifyParamsPaymentMethodDataRadarOptions, + SetupIntentModifyParamsPaymentMethodDataRevolutPay as SetupIntentModifyParamsPaymentMethodDataRevolutPay, + SetupIntentModifyParamsPaymentMethodDataSamsungPay as SetupIntentModifyParamsPaymentMethodDataSamsungPay, + SetupIntentModifyParamsPaymentMethodDataSatispay as SetupIntentModifyParamsPaymentMethodDataSatispay, + SetupIntentModifyParamsPaymentMethodDataSepaDebit as SetupIntentModifyParamsPaymentMethodDataSepaDebit, + SetupIntentModifyParamsPaymentMethodDataSofort as SetupIntentModifyParamsPaymentMethodDataSofort, + SetupIntentModifyParamsPaymentMethodDataSwish as SetupIntentModifyParamsPaymentMethodDataSwish, + SetupIntentModifyParamsPaymentMethodDataTwint as SetupIntentModifyParamsPaymentMethodDataTwint, + SetupIntentModifyParamsPaymentMethodDataUsBankAccount as SetupIntentModifyParamsPaymentMethodDataUsBankAccount, + SetupIntentModifyParamsPaymentMethodDataWechatPay as SetupIntentModifyParamsPaymentMethodDataWechatPay, + SetupIntentModifyParamsPaymentMethodDataZip as SetupIntentModifyParamsPaymentMethodDataZip, + SetupIntentModifyParamsPaymentMethodOptions as SetupIntentModifyParamsPaymentMethodOptions, + SetupIntentModifyParamsPaymentMethodOptionsAcssDebit as SetupIntentModifyParamsPaymentMethodOptionsAcssDebit, + SetupIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions as SetupIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions, + SetupIntentModifyParamsPaymentMethodOptionsAmazonPay as SetupIntentModifyParamsPaymentMethodOptionsAmazonPay, + SetupIntentModifyParamsPaymentMethodOptionsBacsDebit as SetupIntentModifyParamsPaymentMethodOptionsBacsDebit, + SetupIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions as SetupIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions, + SetupIntentModifyParamsPaymentMethodOptionsCard as SetupIntentModifyParamsPaymentMethodOptionsCard, + SetupIntentModifyParamsPaymentMethodOptionsCardMandateOptions as SetupIntentModifyParamsPaymentMethodOptionsCardMandateOptions, + SetupIntentModifyParamsPaymentMethodOptionsCardPresent as SetupIntentModifyParamsPaymentMethodOptionsCardPresent, + SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecure as SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecure, + SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + SetupIntentModifyParamsPaymentMethodOptionsKlarna as SetupIntentModifyParamsPaymentMethodOptionsKlarna, + SetupIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand as SetupIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand, + SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscription as SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscription, + SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + SetupIntentModifyParamsPaymentMethodOptionsLink as SetupIntentModifyParamsPaymentMethodOptionsLink, + SetupIntentModifyParamsPaymentMethodOptionsPaypal as SetupIntentModifyParamsPaymentMethodOptionsPaypal, + SetupIntentModifyParamsPaymentMethodOptionsSepaDebit as SetupIntentModifyParamsPaymentMethodOptionsSepaDebit, + SetupIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions as SetupIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions, + SetupIntentModifyParamsPaymentMethodOptionsUsBankAccount as SetupIntentModifyParamsPaymentMethodOptionsUsBankAccount, + SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections as SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions as SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions, + SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks as SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks, + ) + from stripe.params._setup_intent_retrieve_params import ( + SetupIntentRetrieveParams as SetupIntentRetrieveParams, + ) + from stripe.params._setup_intent_update_params import ( + SetupIntentUpdateParams as SetupIntentUpdateParams, + SetupIntentUpdateParamsPaymentMethodData as SetupIntentUpdateParamsPaymentMethodData, + SetupIntentUpdateParamsPaymentMethodDataAcssDebit as SetupIntentUpdateParamsPaymentMethodDataAcssDebit, + SetupIntentUpdateParamsPaymentMethodDataAffirm as SetupIntentUpdateParamsPaymentMethodDataAffirm, + SetupIntentUpdateParamsPaymentMethodDataAfterpayClearpay as SetupIntentUpdateParamsPaymentMethodDataAfterpayClearpay, + SetupIntentUpdateParamsPaymentMethodDataAlipay as SetupIntentUpdateParamsPaymentMethodDataAlipay, + SetupIntentUpdateParamsPaymentMethodDataAlma as SetupIntentUpdateParamsPaymentMethodDataAlma, + SetupIntentUpdateParamsPaymentMethodDataAmazonPay as SetupIntentUpdateParamsPaymentMethodDataAmazonPay, + SetupIntentUpdateParamsPaymentMethodDataAuBecsDebit as SetupIntentUpdateParamsPaymentMethodDataAuBecsDebit, + SetupIntentUpdateParamsPaymentMethodDataBacsDebit as SetupIntentUpdateParamsPaymentMethodDataBacsDebit, + SetupIntentUpdateParamsPaymentMethodDataBancontact as SetupIntentUpdateParamsPaymentMethodDataBancontact, + SetupIntentUpdateParamsPaymentMethodDataBillie as SetupIntentUpdateParamsPaymentMethodDataBillie, + SetupIntentUpdateParamsPaymentMethodDataBillingDetails as SetupIntentUpdateParamsPaymentMethodDataBillingDetails, + SetupIntentUpdateParamsPaymentMethodDataBillingDetailsAddress as SetupIntentUpdateParamsPaymentMethodDataBillingDetailsAddress, + SetupIntentUpdateParamsPaymentMethodDataBlik as SetupIntentUpdateParamsPaymentMethodDataBlik, + SetupIntentUpdateParamsPaymentMethodDataBoleto as SetupIntentUpdateParamsPaymentMethodDataBoleto, + SetupIntentUpdateParamsPaymentMethodDataCashapp as SetupIntentUpdateParamsPaymentMethodDataCashapp, + SetupIntentUpdateParamsPaymentMethodDataCrypto as SetupIntentUpdateParamsPaymentMethodDataCrypto, + SetupIntentUpdateParamsPaymentMethodDataCustomerBalance as SetupIntentUpdateParamsPaymentMethodDataCustomerBalance, + SetupIntentUpdateParamsPaymentMethodDataEps as SetupIntentUpdateParamsPaymentMethodDataEps, + SetupIntentUpdateParamsPaymentMethodDataFpx as SetupIntentUpdateParamsPaymentMethodDataFpx, + SetupIntentUpdateParamsPaymentMethodDataGiropay as SetupIntentUpdateParamsPaymentMethodDataGiropay, + SetupIntentUpdateParamsPaymentMethodDataGrabpay as SetupIntentUpdateParamsPaymentMethodDataGrabpay, + SetupIntentUpdateParamsPaymentMethodDataIdeal as SetupIntentUpdateParamsPaymentMethodDataIdeal, + SetupIntentUpdateParamsPaymentMethodDataInteracPresent as SetupIntentUpdateParamsPaymentMethodDataInteracPresent, + SetupIntentUpdateParamsPaymentMethodDataKakaoPay as SetupIntentUpdateParamsPaymentMethodDataKakaoPay, + SetupIntentUpdateParamsPaymentMethodDataKlarna as SetupIntentUpdateParamsPaymentMethodDataKlarna, + SetupIntentUpdateParamsPaymentMethodDataKlarnaDob as SetupIntentUpdateParamsPaymentMethodDataKlarnaDob, + SetupIntentUpdateParamsPaymentMethodDataKonbini as SetupIntentUpdateParamsPaymentMethodDataKonbini, + SetupIntentUpdateParamsPaymentMethodDataKrCard as SetupIntentUpdateParamsPaymentMethodDataKrCard, + SetupIntentUpdateParamsPaymentMethodDataLink as SetupIntentUpdateParamsPaymentMethodDataLink, + SetupIntentUpdateParamsPaymentMethodDataMbWay as SetupIntentUpdateParamsPaymentMethodDataMbWay, + SetupIntentUpdateParamsPaymentMethodDataMobilepay as SetupIntentUpdateParamsPaymentMethodDataMobilepay, + SetupIntentUpdateParamsPaymentMethodDataMultibanco as SetupIntentUpdateParamsPaymentMethodDataMultibanco, + SetupIntentUpdateParamsPaymentMethodDataNaverPay as SetupIntentUpdateParamsPaymentMethodDataNaverPay, + SetupIntentUpdateParamsPaymentMethodDataNzBankAccount as SetupIntentUpdateParamsPaymentMethodDataNzBankAccount, + SetupIntentUpdateParamsPaymentMethodDataOxxo as SetupIntentUpdateParamsPaymentMethodDataOxxo, + SetupIntentUpdateParamsPaymentMethodDataP24 as SetupIntentUpdateParamsPaymentMethodDataP24, + SetupIntentUpdateParamsPaymentMethodDataPayByBank as SetupIntentUpdateParamsPaymentMethodDataPayByBank, + SetupIntentUpdateParamsPaymentMethodDataPayco as SetupIntentUpdateParamsPaymentMethodDataPayco, + SetupIntentUpdateParamsPaymentMethodDataPaynow as SetupIntentUpdateParamsPaymentMethodDataPaynow, + SetupIntentUpdateParamsPaymentMethodDataPaypal as SetupIntentUpdateParamsPaymentMethodDataPaypal, + SetupIntentUpdateParamsPaymentMethodDataPix as SetupIntentUpdateParamsPaymentMethodDataPix, + SetupIntentUpdateParamsPaymentMethodDataPromptpay as SetupIntentUpdateParamsPaymentMethodDataPromptpay, + SetupIntentUpdateParamsPaymentMethodDataRadarOptions as SetupIntentUpdateParamsPaymentMethodDataRadarOptions, + SetupIntentUpdateParamsPaymentMethodDataRevolutPay as SetupIntentUpdateParamsPaymentMethodDataRevolutPay, + SetupIntentUpdateParamsPaymentMethodDataSamsungPay as SetupIntentUpdateParamsPaymentMethodDataSamsungPay, + SetupIntentUpdateParamsPaymentMethodDataSatispay as SetupIntentUpdateParamsPaymentMethodDataSatispay, + SetupIntentUpdateParamsPaymentMethodDataSepaDebit as SetupIntentUpdateParamsPaymentMethodDataSepaDebit, + SetupIntentUpdateParamsPaymentMethodDataSofort as SetupIntentUpdateParamsPaymentMethodDataSofort, + SetupIntentUpdateParamsPaymentMethodDataSwish as SetupIntentUpdateParamsPaymentMethodDataSwish, + SetupIntentUpdateParamsPaymentMethodDataTwint as SetupIntentUpdateParamsPaymentMethodDataTwint, + SetupIntentUpdateParamsPaymentMethodDataUsBankAccount as SetupIntentUpdateParamsPaymentMethodDataUsBankAccount, + SetupIntentUpdateParamsPaymentMethodDataWechatPay as SetupIntentUpdateParamsPaymentMethodDataWechatPay, + SetupIntentUpdateParamsPaymentMethodDataZip as SetupIntentUpdateParamsPaymentMethodDataZip, + SetupIntentUpdateParamsPaymentMethodOptions as SetupIntentUpdateParamsPaymentMethodOptions, + SetupIntentUpdateParamsPaymentMethodOptionsAcssDebit as SetupIntentUpdateParamsPaymentMethodOptionsAcssDebit, + SetupIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions as SetupIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions, + SetupIntentUpdateParamsPaymentMethodOptionsAmazonPay as SetupIntentUpdateParamsPaymentMethodOptionsAmazonPay, + SetupIntentUpdateParamsPaymentMethodOptionsBacsDebit as SetupIntentUpdateParamsPaymentMethodOptionsBacsDebit, + SetupIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions as SetupIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions, + SetupIntentUpdateParamsPaymentMethodOptionsCard as SetupIntentUpdateParamsPaymentMethodOptionsCard, + SetupIntentUpdateParamsPaymentMethodOptionsCardMandateOptions as SetupIntentUpdateParamsPaymentMethodOptionsCardMandateOptions, + SetupIntentUpdateParamsPaymentMethodOptionsCardPresent as SetupIntentUpdateParamsPaymentMethodOptionsCardPresent, + SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure as SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure, + SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions as SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions, + SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires as SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires, + SetupIntentUpdateParamsPaymentMethodOptionsKlarna as SetupIntentUpdateParamsPaymentMethodOptionsKlarna, + SetupIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand as SetupIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand, + SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription as SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription, + SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + SetupIntentUpdateParamsPaymentMethodOptionsLink as SetupIntentUpdateParamsPaymentMethodOptionsLink, + SetupIntentUpdateParamsPaymentMethodOptionsPaypal as SetupIntentUpdateParamsPaymentMethodOptionsPaypal, + SetupIntentUpdateParamsPaymentMethodOptionsSepaDebit as SetupIntentUpdateParamsPaymentMethodOptionsSepaDebit, + SetupIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions as SetupIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions, + SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccount as SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccount, + SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections as SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions as SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions, + SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks as SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks, + ) + from stripe.params._setup_intent_verify_microdeposits_params import ( + SetupIntentVerifyMicrodepositsParams as SetupIntentVerifyMicrodepositsParams, + ) + from stripe.params._shipping_rate_create_params import ( + ShippingRateCreateParams as ShippingRateCreateParams, + ShippingRateCreateParamsDeliveryEstimate as ShippingRateCreateParamsDeliveryEstimate, + ShippingRateCreateParamsDeliveryEstimateMaximum as ShippingRateCreateParamsDeliveryEstimateMaximum, + ShippingRateCreateParamsDeliveryEstimateMinimum as ShippingRateCreateParamsDeliveryEstimateMinimum, + ShippingRateCreateParamsFixedAmount as ShippingRateCreateParamsFixedAmount, + ShippingRateCreateParamsFixedAmountCurrencyOptions as ShippingRateCreateParamsFixedAmountCurrencyOptions, + ) + from stripe.params._shipping_rate_list_params import ( + ShippingRateListParams as ShippingRateListParams, + ShippingRateListParamsCreated as ShippingRateListParamsCreated, + ) + from stripe.params._shipping_rate_modify_params import ( + ShippingRateModifyParams as ShippingRateModifyParams, + ShippingRateModifyParamsFixedAmount as ShippingRateModifyParamsFixedAmount, + ShippingRateModifyParamsFixedAmountCurrencyOptions as ShippingRateModifyParamsFixedAmountCurrencyOptions, + ) + from stripe.params._shipping_rate_retrieve_params import ( + ShippingRateRetrieveParams as ShippingRateRetrieveParams, + ) + from stripe.params._shipping_rate_update_params import ( + ShippingRateUpdateParams as ShippingRateUpdateParams, + ShippingRateUpdateParamsFixedAmount as ShippingRateUpdateParamsFixedAmount, + ShippingRateUpdateParamsFixedAmountCurrencyOptions as ShippingRateUpdateParamsFixedAmountCurrencyOptions, + ) + from stripe.params._source_create_params import ( + SourceCreateParams as SourceCreateParams, + SourceCreateParamsMandate as SourceCreateParamsMandate, + SourceCreateParamsMandateAcceptance as SourceCreateParamsMandateAcceptance, + SourceCreateParamsMandateAcceptanceOffline as SourceCreateParamsMandateAcceptanceOffline, + SourceCreateParamsMandateAcceptanceOnline as SourceCreateParamsMandateAcceptanceOnline, + SourceCreateParamsOwner as SourceCreateParamsOwner, + SourceCreateParamsOwnerAddress as SourceCreateParamsOwnerAddress, + SourceCreateParamsReceiver as SourceCreateParamsReceiver, + SourceCreateParamsRedirect as SourceCreateParamsRedirect, + SourceCreateParamsSourceOrder as SourceCreateParamsSourceOrder, + SourceCreateParamsSourceOrderItem as SourceCreateParamsSourceOrderItem, + SourceCreateParamsSourceOrderShipping as SourceCreateParamsSourceOrderShipping, + SourceCreateParamsSourceOrderShippingAddress as SourceCreateParamsSourceOrderShippingAddress, + ) + from stripe.params._source_detach_params import ( + SourceDetachParams as SourceDetachParams, + ) + from stripe.params._source_list_source_transactions_params import ( + SourceListSourceTransactionsParams as SourceListSourceTransactionsParams, + ) + from stripe.params._source_modify_params import ( + SourceModifyParams as SourceModifyParams, + SourceModifyParamsMandate as SourceModifyParamsMandate, + SourceModifyParamsMandateAcceptance as SourceModifyParamsMandateAcceptance, + SourceModifyParamsMandateAcceptanceOffline as SourceModifyParamsMandateAcceptanceOffline, + SourceModifyParamsMandateAcceptanceOnline as SourceModifyParamsMandateAcceptanceOnline, + SourceModifyParamsOwner as SourceModifyParamsOwner, + SourceModifyParamsOwnerAddress as SourceModifyParamsOwnerAddress, + SourceModifyParamsSourceOrder as SourceModifyParamsSourceOrder, + SourceModifyParamsSourceOrderItem as SourceModifyParamsSourceOrderItem, + SourceModifyParamsSourceOrderShipping as SourceModifyParamsSourceOrderShipping, + SourceModifyParamsSourceOrderShippingAddress as SourceModifyParamsSourceOrderShippingAddress, + ) + from stripe.params._source_retrieve_params import ( + SourceRetrieveParams as SourceRetrieveParams, + ) + from stripe.params._source_transaction_list_params import ( + SourceTransactionListParams as SourceTransactionListParams, + ) + from stripe.params._source_update_params import ( + SourceUpdateParams as SourceUpdateParams, + SourceUpdateParamsMandate as SourceUpdateParamsMandate, + SourceUpdateParamsMandateAcceptance as SourceUpdateParamsMandateAcceptance, + SourceUpdateParamsMandateAcceptanceOffline as SourceUpdateParamsMandateAcceptanceOffline, + SourceUpdateParamsMandateAcceptanceOnline as SourceUpdateParamsMandateAcceptanceOnline, + SourceUpdateParamsOwner as SourceUpdateParamsOwner, + SourceUpdateParamsOwnerAddress as SourceUpdateParamsOwnerAddress, + SourceUpdateParamsSourceOrder as SourceUpdateParamsSourceOrder, + SourceUpdateParamsSourceOrderItem as SourceUpdateParamsSourceOrderItem, + SourceUpdateParamsSourceOrderShipping as SourceUpdateParamsSourceOrderShipping, + SourceUpdateParamsSourceOrderShippingAddress as SourceUpdateParamsSourceOrderShippingAddress, + ) + from stripe.params._source_verify_params import ( + SourceVerifyParams as SourceVerifyParams, + ) + from stripe.params._subscription_cancel_params import ( + SubscriptionCancelParams as SubscriptionCancelParams, + SubscriptionCancelParamsCancellationDetails as SubscriptionCancelParamsCancellationDetails, + ) + from stripe.params._subscription_create_params import ( + SubscriptionCreateParams as SubscriptionCreateParams, + SubscriptionCreateParamsAddInvoiceItem as SubscriptionCreateParamsAddInvoiceItem, + SubscriptionCreateParamsAddInvoiceItemDiscount as SubscriptionCreateParamsAddInvoiceItemDiscount, + SubscriptionCreateParamsAddInvoiceItemPeriod as SubscriptionCreateParamsAddInvoiceItemPeriod, + SubscriptionCreateParamsAddInvoiceItemPeriodEnd as SubscriptionCreateParamsAddInvoiceItemPeriodEnd, + SubscriptionCreateParamsAddInvoiceItemPeriodStart as SubscriptionCreateParamsAddInvoiceItemPeriodStart, + SubscriptionCreateParamsAddInvoiceItemPriceData as SubscriptionCreateParamsAddInvoiceItemPriceData, + SubscriptionCreateParamsAutomaticTax as SubscriptionCreateParamsAutomaticTax, + SubscriptionCreateParamsAutomaticTaxLiability as SubscriptionCreateParamsAutomaticTaxLiability, + SubscriptionCreateParamsBillingCycleAnchorConfig as SubscriptionCreateParamsBillingCycleAnchorConfig, + SubscriptionCreateParamsBillingMode as SubscriptionCreateParamsBillingMode, + SubscriptionCreateParamsBillingModeFlexible as SubscriptionCreateParamsBillingModeFlexible, + SubscriptionCreateParamsBillingThresholds as SubscriptionCreateParamsBillingThresholds, + SubscriptionCreateParamsDiscount as SubscriptionCreateParamsDiscount, + SubscriptionCreateParamsInvoiceSettings as SubscriptionCreateParamsInvoiceSettings, + SubscriptionCreateParamsInvoiceSettingsIssuer as SubscriptionCreateParamsInvoiceSettingsIssuer, + SubscriptionCreateParamsItem as SubscriptionCreateParamsItem, + SubscriptionCreateParamsItemBillingThresholds as SubscriptionCreateParamsItemBillingThresholds, + SubscriptionCreateParamsItemDiscount as SubscriptionCreateParamsItemDiscount, + SubscriptionCreateParamsItemPriceData as SubscriptionCreateParamsItemPriceData, + SubscriptionCreateParamsItemPriceDataRecurring as SubscriptionCreateParamsItemPriceDataRecurring, + SubscriptionCreateParamsPaymentSettings as SubscriptionCreateParamsPaymentSettings, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptions as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptions, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsBancontact as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsBancontact, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCard as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCard, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsKonbini as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsKonbini, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections, + SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + SubscriptionCreateParamsPendingInvoiceItemInterval as SubscriptionCreateParamsPendingInvoiceItemInterval, + SubscriptionCreateParamsTransferData as SubscriptionCreateParamsTransferData, + SubscriptionCreateParamsTrialSettings as SubscriptionCreateParamsTrialSettings, + SubscriptionCreateParamsTrialSettingsEndBehavior as SubscriptionCreateParamsTrialSettingsEndBehavior, + ) + from stripe.params._subscription_delete_discount_params import ( + SubscriptionDeleteDiscountParams as SubscriptionDeleteDiscountParams, + ) + from stripe.params._subscription_item_create_params import ( + SubscriptionItemCreateParams as SubscriptionItemCreateParams, + SubscriptionItemCreateParamsBillingThresholds as SubscriptionItemCreateParamsBillingThresholds, + SubscriptionItemCreateParamsDiscount as SubscriptionItemCreateParamsDiscount, + SubscriptionItemCreateParamsPriceData as SubscriptionItemCreateParamsPriceData, + SubscriptionItemCreateParamsPriceDataRecurring as SubscriptionItemCreateParamsPriceDataRecurring, + ) + from stripe.params._subscription_item_delete_params import ( + SubscriptionItemDeleteParams as SubscriptionItemDeleteParams, + ) + from stripe.params._subscription_item_list_params import ( + SubscriptionItemListParams as SubscriptionItemListParams, + ) + from stripe.params._subscription_item_modify_params import ( + SubscriptionItemModifyParams as SubscriptionItemModifyParams, + SubscriptionItemModifyParamsBillingThresholds as SubscriptionItemModifyParamsBillingThresholds, + SubscriptionItemModifyParamsDiscount as SubscriptionItemModifyParamsDiscount, + SubscriptionItemModifyParamsPriceData as SubscriptionItemModifyParamsPriceData, + SubscriptionItemModifyParamsPriceDataRecurring as SubscriptionItemModifyParamsPriceDataRecurring, + ) + from stripe.params._subscription_item_retrieve_params import ( + SubscriptionItemRetrieveParams as SubscriptionItemRetrieveParams, + ) + from stripe.params._subscription_item_update_params import ( + SubscriptionItemUpdateParams as SubscriptionItemUpdateParams, + SubscriptionItemUpdateParamsBillingThresholds as SubscriptionItemUpdateParamsBillingThresholds, + SubscriptionItemUpdateParamsDiscount as SubscriptionItemUpdateParamsDiscount, + SubscriptionItemUpdateParamsPriceData as SubscriptionItemUpdateParamsPriceData, + SubscriptionItemUpdateParamsPriceDataRecurring as SubscriptionItemUpdateParamsPriceDataRecurring, + ) + from stripe.params._subscription_list_params import ( + SubscriptionListParams as SubscriptionListParams, + SubscriptionListParamsAutomaticTax as SubscriptionListParamsAutomaticTax, + SubscriptionListParamsCreated as SubscriptionListParamsCreated, + SubscriptionListParamsCurrentPeriodEnd as SubscriptionListParamsCurrentPeriodEnd, + SubscriptionListParamsCurrentPeriodStart as SubscriptionListParamsCurrentPeriodStart, + ) + from stripe.params._subscription_migrate_params import ( + SubscriptionMigrateParams as SubscriptionMigrateParams, + SubscriptionMigrateParamsBillingMode as SubscriptionMigrateParamsBillingMode, + SubscriptionMigrateParamsBillingModeFlexible as SubscriptionMigrateParamsBillingModeFlexible, + ) + from stripe.params._subscription_modify_params import ( + SubscriptionModifyParams as SubscriptionModifyParams, + SubscriptionModifyParamsAddInvoiceItem as SubscriptionModifyParamsAddInvoiceItem, + SubscriptionModifyParamsAddInvoiceItemDiscount as SubscriptionModifyParamsAddInvoiceItemDiscount, + SubscriptionModifyParamsAddInvoiceItemPeriod as SubscriptionModifyParamsAddInvoiceItemPeriod, + SubscriptionModifyParamsAddInvoiceItemPeriodEnd as SubscriptionModifyParamsAddInvoiceItemPeriodEnd, + SubscriptionModifyParamsAddInvoiceItemPeriodStart as SubscriptionModifyParamsAddInvoiceItemPeriodStart, + SubscriptionModifyParamsAddInvoiceItemPriceData as SubscriptionModifyParamsAddInvoiceItemPriceData, + SubscriptionModifyParamsAutomaticTax as SubscriptionModifyParamsAutomaticTax, + SubscriptionModifyParamsAutomaticTaxLiability as SubscriptionModifyParamsAutomaticTaxLiability, + SubscriptionModifyParamsBillingThresholds as SubscriptionModifyParamsBillingThresholds, + SubscriptionModifyParamsCancellationDetails as SubscriptionModifyParamsCancellationDetails, + SubscriptionModifyParamsDiscount as SubscriptionModifyParamsDiscount, + SubscriptionModifyParamsInvoiceSettings as SubscriptionModifyParamsInvoiceSettings, + SubscriptionModifyParamsInvoiceSettingsIssuer as SubscriptionModifyParamsInvoiceSettingsIssuer, + SubscriptionModifyParamsItem as SubscriptionModifyParamsItem, + SubscriptionModifyParamsItemBillingThresholds as SubscriptionModifyParamsItemBillingThresholds, + SubscriptionModifyParamsItemDiscount as SubscriptionModifyParamsItemDiscount, + SubscriptionModifyParamsItemPriceData as SubscriptionModifyParamsItemPriceData, + SubscriptionModifyParamsItemPriceDataRecurring as SubscriptionModifyParamsItemPriceDataRecurring, + SubscriptionModifyParamsPauseCollection as SubscriptionModifyParamsPauseCollection, + SubscriptionModifyParamsPaymentSettings as SubscriptionModifyParamsPaymentSettings, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptions as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptions, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsBancontact as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsBancontact, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCard as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCard, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsKonbini as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsKonbini, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections, + SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + SubscriptionModifyParamsPendingInvoiceItemInterval as SubscriptionModifyParamsPendingInvoiceItemInterval, + SubscriptionModifyParamsTransferData as SubscriptionModifyParamsTransferData, + SubscriptionModifyParamsTrialSettings as SubscriptionModifyParamsTrialSettings, + SubscriptionModifyParamsTrialSettingsEndBehavior as SubscriptionModifyParamsTrialSettingsEndBehavior, + ) + from stripe.params._subscription_resume_params import ( + SubscriptionResumeParams as SubscriptionResumeParams, + ) + from stripe.params._subscription_retrieve_params import ( + SubscriptionRetrieveParams as SubscriptionRetrieveParams, + ) + from stripe.params._subscription_schedule_cancel_params import ( + SubscriptionScheduleCancelParams as SubscriptionScheduleCancelParams, + ) + from stripe.params._subscription_schedule_create_params import ( + SubscriptionScheduleCreateParams as SubscriptionScheduleCreateParams, + SubscriptionScheduleCreateParamsBillingMode as SubscriptionScheduleCreateParamsBillingMode, + SubscriptionScheduleCreateParamsBillingModeFlexible as SubscriptionScheduleCreateParamsBillingModeFlexible, + SubscriptionScheduleCreateParamsDefaultSettings as SubscriptionScheduleCreateParamsDefaultSettings, + SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTax as SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTax, + SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTaxLiability as SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTaxLiability, + SubscriptionScheduleCreateParamsDefaultSettingsBillingThresholds as SubscriptionScheduleCreateParamsDefaultSettingsBillingThresholds, + SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettings as SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettings, + SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettingsIssuer as SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettingsIssuer, + SubscriptionScheduleCreateParamsDefaultSettingsTransferData as SubscriptionScheduleCreateParamsDefaultSettingsTransferData, + SubscriptionScheduleCreateParamsPhase as SubscriptionScheduleCreateParamsPhase, + SubscriptionScheduleCreateParamsPhaseAddInvoiceItem as SubscriptionScheduleCreateParamsPhaseAddInvoiceItem, + SubscriptionScheduleCreateParamsPhaseAddInvoiceItemDiscount as SubscriptionScheduleCreateParamsPhaseAddInvoiceItemDiscount, + SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriod as SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriod, + SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodEnd as SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodEnd, + SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodStart as SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodStart, + SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPriceData as SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPriceData, + SubscriptionScheduleCreateParamsPhaseAutomaticTax as SubscriptionScheduleCreateParamsPhaseAutomaticTax, + SubscriptionScheduleCreateParamsPhaseAutomaticTaxLiability as SubscriptionScheduleCreateParamsPhaseAutomaticTaxLiability, + SubscriptionScheduleCreateParamsPhaseBillingThresholds as SubscriptionScheduleCreateParamsPhaseBillingThresholds, + SubscriptionScheduleCreateParamsPhaseDiscount as SubscriptionScheduleCreateParamsPhaseDiscount, + SubscriptionScheduleCreateParamsPhaseDuration as SubscriptionScheduleCreateParamsPhaseDuration, + SubscriptionScheduleCreateParamsPhaseInvoiceSettings as SubscriptionScheduleCreateParamsPhaseInvoiceSettings, + SubscriptionScheduleCreateParamsPhaseInvoiceSettingsIssuer as SubscriptionScheduleCreateParamsPhaseInvoiceSettingsIssuer, + SubscriptionScheduleCreateParamsPhaseItem as SubscriptionScheduleCreateParamsPhaseItem, + SubscriptionScheduleCreateParamsPhaseItemBillingThresholds as SubscriptionScheduleCreateParamsPhaseItemBillingThresholds, + SubscriptionScheduleCreateParamsPhaseItemDiscount as SubscriptionScheduleCreateParamsPhaseItemDiscount, + SubscriptionScheduleCreateParamsPhaseItemPriceData as SubscriptionScheduleCreateParamsPhaseItemPriceData, + SubscriptionScheduleCreateParamsPhaseItemPriceDataRecurring as SubscriptionScheduleCreateParamsPhaseItemPriceDataRecurring, + SubscriptionScheduleCreateParamsPhaseTransferData as SubscriptionScheduleCreateParamsPhaseTransferData, + ) + from stripe.params._subscription_schedule_list_params import ( + SubscriptionScheduleListParams as SubscriptionScheduleListParams, + SubscriptionScheduleListParamsCanceledAt as SubscriptionScheduleListParamsCanceledAt, + SubscriptionScheduleListParamsCompletedAt as SubscriptionScheduleListParamsCompletedAt, + SubscriptionScheduleListParamsCreated as SubscriptionScheduleListParamsCreated, + SubscriptionScheduleListParamsReleasedAt as SubscriptionScheduleListParamsReleasedAt, + ) + from stripe.params._subscription_schedule_modify_params import ( + SubscriptionScheduleModifyParams as SubscriptionScheduleModifyParams, + SubscriptionScheduleModifyParamsDefaultSettings as SubscriptionScheduleModifyParamsDefaultSettings, + SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTax as SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTax, + SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTaxLiability as SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTaxLiability, + SubscriptionScheduleModifyParamsDefaultSettingsBillingThresholds as SubscriptionScheduleModifyParamsDefaultSettingsBillingThresholds, + SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettings as SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettings, + SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettingsIssuer as SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettingsIssuer, + SubscriptionScheduleModifyParamsDefaultSettingsTransferData as SubscriptionScheduleModifyParamsDefaultSettingsTransferData, + SubscriptionScheduleModifyParamsPhase as SubscriptionScheduleModifyParamsPhase, + SubscriptionScheduleModifyParamsPhaseAddInvoiceItem as SubscriptionScheduleModifyParamsPhaseAddInvoiceItem, + SubscriptionScheduleModifyParamsPhaseAddInvoiceItemDiscount as SubscriptionScheduleModifyParamsPhaseAddInvoiceItemDiscount, + SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriod as SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriod, + SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodEnd as SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodEnd, + SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodStart as SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodStart, + SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPriceData as SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPriceData, + SubscriptionScheduleModifyParamsPhaseAutomaticTax as SubscriptionScheduleModifyParamsPhaseAutomaticTax, + SubscriptionScheduleModifyParamsPhaseAutomaticTaxLiability as SubscriptionScheduleModifyParamsPhaseAutomaticTaxLiability, + SubscriptionScheduleModifyParamsPhaseBillingThresholds as SubscriptionScheduleModifyParamsPhaseBillingThresholds, + SubscriptionScheduleModifyParamsPhaseDiscount as SubscriptionScheduleModifyParamsPhaseDiscount, + SubscriptionScheduleModifyParamsPhaseDuration as SubscriptionScheduleModifyParamsPhaseDuration, + SubscriptionScheduleModifyParamsPhaseInvoiceSettings as SubscriptionScheduleModifyParamsPhaseInvoiceSettings, + SubscriptionScheduleModifyParamsPhaseInvoiceSettingsIssuer as SubscriptionScheduleModifyParamsPhaseInvoiceSettingsIssuer, + SubscriptionScheduleModifyParamsPhaseItem as SubscriptionScheduleModifyParamsPhaseItem, + SubscriptionScheduleModifyParamsPhaseItemBillingThresholds as SubscriptionScheduleModifyParamsPhaseItemBillingThresholds, + SubscriptionScheduleModifyParamsPhaseItemDiscount as SubscriptionScheduleModifyParamsPhaseItemDiscount, + SubscriptionScheduleModifyParamsPhaseItemPriceData as SubscriptionScheduleModifyParamsPhaseItemPriceData, + SubscriptionScheduleModifyParamsPhaseItemPriceDataRecurring as SubscriptionScheduleModifyParamsPhaseItemPriceDataRecurring, + SubscriptionScheduleModifyParamsPhaseTransferData as SubscriptionScheduleModifyParamsPhaseTransferData, + ) + from stripe.params._subscription_schedule_release_params import ( + SubscriptionScheduleReleaseParams as SubscriptionScheduleReleaseParams, + ) + from stripe.params._subscription_schedule_retrieve_params import ( + SubscriptionScheduleRetrieveParams as SubscriptionScheduleRetrieveParams, + ) + from stripe.params._subscription_schedule_update_params import ( + SubscriptionScheduleUpdateParams as SubscriptionScheduleUpdateParams, + SubscriptionScheduleUpdateParamsDefaultSettings as SubscriptionScheduleUpdateParamsDefaultSettings, + SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTax as SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTax, + SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTaxLiability as SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTaxLiability, + SubscriptionScheduleUpdateParamsDefaultSettingsBillingThresholds as SubscriptionScheduleUpdateParamsDefaultSettingsBillingThresholds, + SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettings as SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettings, + SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettingsIssuer as SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettingsIssuer, + SubscriptionScheduleUpdateParamsDefaultSettingsTransferData as SubscriptionScheduleUpdateParamsDefaultSettingsTransferData, + SubscriptionScheduleUpdateParamsPhase as SubscriptionScheduleUpdateParamsPhase, + SubscriptionScheduleUpdateParamsPhaseAddInvoiceItem as SubscriptionScheduleUpdateParamsPhaseAddInvoiceItem, + SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemDiscount as SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemDiscount, + SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriod as SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriod, + SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodEnd as SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodEnd, + SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodStart as SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodStart, + SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPriceData as SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPriceData, + SubscriptionScheduleUpdateParamsPhaseAutomaticTax as SubscriptionScheduleUpdateParamsPhaseAutomaticTax, + SubscriptionScheduleUpdateParamsPhaseAutomaticTaxLiability as SubscriptionScheduleUpdateParamsPhaseAutomaticTaxLiability, + SubscriptionScheduleUpdateParamsPhaseBillingThresholds as SubscriptionScheduleUpdateParamsPhaseBillingThresholds, + SubscriptionScheduleUpdateParamsPhaseDiscount as SubscriptionScheduleUpdateParamsPhaseDiscount, + SubscriptionScheduleUpdateParamsPhaseDuration as SubscriptionScheduleUpdateParamsPhaseDuration, + SubscriptionScheduleUpdateParamsPhaseInvoiceSettings as SubscriptionScheduleUpdateParamsPhaseInvoiceSettings, + SubscriptionScheduleUpdateParamsPhaseInvoiceSettingsIssuer as SubscriptionScheduleUpdateParamsPhaseInvoiceSettingsIssuer, + SubscriptionScheduleUpdateParamsPhaseItem as SubscriptionScheduleUpdateParamsPhaseItem, + SubscriptionScheduleUpdateParamsPhaseItemBillingThresholds as SubscriptionScheduleUpdateParamsPhaseItemBillingThresholds, + SubscriptionScheduleUpdateParamsPhaseItemDiscount as SubscriptionScheduleUpdateParamsPhaseItemDiscount, + SubscriptionScheduleUpdateParamsPhaseItemPriceData as SubscriptionScheduleUpdateParamsPhaseItemPriceData, + SubscriptionScheduleUpdateParamsPhaseItemPriceDataRecurring as SubscriptionScheduleUpdateParamsPhaseItemPriceDataRecurring, + SubscriptionScheduleUpdateParamsPhaseTransferData as SubscriptionScheduleUpdateParamsPhaseTransferData, + ) + from stripe.params._subscription_search_params import ( + SubscriptionSearchParams as SubscriptionSearchParams, + ) + from stripe.params._subscription_update_params import ( + SubscriptionUpdateParams as SubscriptionUpdateParams, + SubscriptionUpdateParamsAddInvoiceItem as SubscriptionUpdateParamsAddInvoiceItem, + SubscriptionUpdateParamsAddInvoiceItemDiscount as SubscriptionUpdateParamsAddInvoiceItemDiscount, + SubscriptionUpdateParamsAddInvoiceItemPeriod as SubscriptionUpdateParamsAddInvoiceItemPeriod, + SubscriptionUpdateParamsAddInvoiceItemPeriodEnd as SubscriptionUpdateParamsAddInvoiceItemPeriodEnd, + SubscriptionUpdateParamsAddInvoiceItemPeriodStart as SubscriptionUpdateParamsAddInvoiceItemPeriodStart, + SubscriptionUpdateParamsAddInvoiceItemPriceData as SubscriptionUpdateParamsAddInvoiceItemPriceData, + SubscriptionUpdateParamsAutomaticTax as SubscriptionUpdateParamsAutomaticTax, + SubscriptionUpdateParamsAutomaticTaxLiability as SubscriptionUpdateParamsAutomaticTaxLiability, + SubscriptionUpdateParamsBillingThresholds as SubscriptionUpdateParamsBillingThresholds, + SubscriptionUpdateParamsCancellationDetails as SubscriptionUpdateParamsCancellationDetails, + SubscriptionUpdateParamsDiscount as SubscriptionUpdateParamsDiscount, + SubscriptionUpdateParamsInvoiceSettings as SubscriptionUpdateParamsInvoiceSettings, + SubscriptionUpdateParamsInvoiceSettingsIssuer as SubscriptionUpdateParamsInvoiceSettingsIssuer, + SubscriptionUpdateParamsItem as SubscriptionUpdateParamsItem, + SubscriptionUpdateParamsItemBillingThresholds as SubscriptionUpdateParamsItemBillingThresholds, + SubscriptionUpdateParamsItemDiscount as SubscriptionUpdateParamsItemDiscount, + SubscriptionUpdateParamsItemPriceData as SubscriptionUpdateParamsItemPriceData, + SubscriptionUpdateParamsItemPriceDataRecurring as SubscriptionUpdateParamsItemPriceDataRecurring, + SubscriptionUpdateParamsPauseCollection as SubscriptionUpdateParamsPauseCollection, + SubscriptionUpdateParamsPaymentSettings as SubscriptionUpdateParamsPaymentSettings, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptions as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptions, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCard as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCard, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections, + SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters as SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters, + SubscriptionUpdateParamsPendingInvoiceItemInterval as SubscriptionUpdateParamsPendingInvoiceItemInterval, + SubscriptionUpdateParamsTransferData as SubscriptionUpdateParamsTransferData, + SubscriptionUpdateParamsTrialSettings as SubscriptionUpdateParamsTrialSettings, + SubscriptionUpdateParamsTrialSettingsEndBehavior as SubscriptionUpdateParamsTrialSettingsEndBehavior, + ) + from stripe.params._tax_code_list_params import ( + TaxCodeListParams as TaxCodeListParams, + ) + from stripe.params._tax_code_retrieve_params import ( + TaxCodeRetrieveParams as TaxCodeRetrieveParams, + ) + from stripe.params._tax_id_create_params import ( + TaxIdCreateParams as TaxIdCreateParams, + TaxIdCreateParamsOwner as TaxIdCreateParamsOwner, + ) + from stripe.params._tax_id_delete_params import ( + TaxIdDeleteParams as TaxIdDeleteParams, + ) + from stripe.params._tax_id_list_params import ( + TaxIdListParams as TaxIdListParams, + TaxIdListParamsOwner as TaxIdListParamsOwner, + ) + from stripe.params._tax_id_retrieve_params import ( + TaxIdRetrieveParams as TaxIdRetrieveParams, + ) + from stripe.params._tax_rate_create_params import ( + TaxRateCreateParams as TaxRateCreateParams, + ) + from stripe.params._tax_rate_list_params import ( + TaxRateListParams as TaxRateListParams, + TaxRateListParamsCreated as TaxRateListParamsCreated, + ) + from stripe.params._tax_rate_modify_params import ( + TaxRateModifyParams as TaxRateModifyParams, + ) + from stripe.params._tax_rate_retrieve_params import ( + TaxRateRetrieveParams as TaxRateRetrieveParams, + ) + from stripe.params._tax_rate_update_params import ( + TaxRateUpdateParams as TaxRateUpdateParams, + ) + from stripe.params._token_create_params import ( + TokenCreateParams as TokenCreateParams, + TokenCreateParamsAccount as TokenCreateParamsAccount, + TokenCreateParamsAccountCompany as TokenCreateParamsAccountCompany, + TokenCreateParamsAccountCompanyAddress as TokenCreateParamsAccountCompanyAddress, + TokenCreateParamsAccountCompanyAddressKana as TokenCreateParamsAccountCompanyAddressKana, + TokenCreateParamsAccountCompanyAddressKanji as TokenCreateParamsAccountCompanyAddressKanji, + TokenCreateParamsAccountCompanyDirectorshipDeclaration as TokenCreateParamsAccountCompanyDirectorshipDeclaration, + TokenCreateParamsAccountCompanyOwnershipDeclaration as TokenCreateParamsAccountCompanyOwnershipDeclaration, + TokenCreateParamsAccountCompanyRegistrationDate as TokenCreateParamsAccountCompanyRegistrationDate, + TokenCreateParamsAccountCompanyRepresentativeDeclaration as TokenCreateParamsAccountCompanyRepresentativeDeclaration, + TokenCreateParamsAccountCompanyVerification as TokenCreateParamsAccountCompanyVerification, + TokenCreateParamsAccountCompanyVerificationDocument as TokenCreateParamsAccountCompanyVerificationDocument, + TokenCreateParamsAccountIndividual as TokenCreateParamsAccountIndividual, + TokenCreateParamsAccountIndividualAddress as TokenCreateParamsAccountIndividualAddress, + TokenCreateParamsAccountIndividualAddressKana as TokenCreateParamsAccountIndividualAddressKana, + TokenCreateParamsAccountIndividualAddressKanji as TokenCreateParamsAccountIndividualAddressKanji, + TokenCreateParamsAccountIndividualDob as TokenCreateParamsAccountIndividualDob, + TokenCreateParamsAccountIndividualRegisteredAddress as TokenCreateParamsAccountIndividualRegisteredAddress, + TokenCreateParamsAccountIndividualRelationship as TokenCreateParamsAccountIndividualRelationship, + TokenCreateParamsAccountIndividualVerification as TokenCreateParamsAccountIndividualVerification, + TokenCreateParamsAccountIndividualVerificationAdditionalDocument as TokenCreateParamsAccountIndividualVerificationAdditionalDocument, + TokenCreateParamsAccountIndividualVerificationDocument as TokenCreateParamsAccountIndividualVerificationDocument, + TokenCreateParamsBankAccount as TokenCreateParamsBankAccount, + TokenCreateParamsCard as TokenCreateParamsCard, + TokenCreateParamsCardNetworks as TokenCreateParamsCardNetworks, + TokenCreateParamsCvcUpdate as TokenCreateParamsCvcUpdate, + TokenCreateParamsPerson as TokenCreateParamsPerson, + TokenCreateParamsPersonAdditionalTosAcceptances as TokenCreateParamsPersonAdditionalTosAcceptances, + TokenCreateParamsPersonAdditionalTosAcceptancesAccount as TokenCreateParamsPersonAdditionalTosAcceptancesAccount, + TokenCreateParamsPersonAddress as TokenCreateParamsPersonAddress, + TokenCreateParamsPersonAddressKana as TokenCreateParamsPersonAddressKana, + TokenCreateParamsPersonAddressKanji as TokenCreateParamsPersonAddressKanji, + TokenCreateParamsPersonDob as TokenCreateParamsPersonDob, + TokenCreateParamsPersonDocuments as TokenCreateParamsPersonDocuments, + TokenCreateParamsPersonDocumentsCompanyAuthorization as TokenCreateParamsPersonDocumentsCompanyAuthorization, + TokenCreateParamsPersonDocumentsPassport as TokenCreateParamsPersonDocumentsPassport, + TokenCreateParamsPersonDocumentsVisa as TokenCreateParamsPersonDocumentsVisa, + TokenCreateParamsPersonRegisteredAddress as TokenCreateParamsPersonRegisteredAddress, + TokenCreateParamsPersonRelationship as TokenCreateParamsPersonRelationship, + TokenCreateParamsPersonUsCfpbData as TokenCreateParamsPersonUsCfpbData, + TokenCreateParamsPersonUsCfpbDataEthnicityDetails as TokenCreateParamsPersonUsCfpbDataEthnicityDetails, + TokenCreateParamsPersonUsCfpbDataRaceDetails as TokenCreateParamsPersonUsCfpbDataRaceDetails, + TokenCreateParamsPersonVerification as TokenCreateParamsPersonVerification, + TokenCreateParamsPersonVerificationAdditionalDocument as TokenCreateParamsPersonVerificationAdditionalDocument, + TokenCreateParamsPersonVerificationDocument as TokenCreateParamsPersonVerificationDocument, + TokenCreateParamsPii as TokenCreateParamsPii, + ) + from stripe.params._token_retrieve_params import ( + TokenRetrieveParams as TokenRetrieveParams, + ) + from stripe.params._topup_cancel_params import ( + TopupCancelParams as TopupCancelParams, + ) + from stripe.params._topup_create_params import ( + TopupCreateParams as TopupCreateParams, + ) + from stripe.params._topup_list_params import ( + TopupListParams as TopupListParams, + TopupListParamsAmount as TopupListParamsAmount, + TopupListParamsCreated as TopupListParamsCreated, + ) + from stripe.params._topup_modify_params import ( + TopupModifyParams as TopupModifyParams, + ) + from stripe.params._topup_retrieve_params import ( + TopupRetrieveParams as TopupRetrieveParams, + ) + from stripe.params._topup_update_params import ( + TopupUpdateParams as TopupUpdateParams, + ) + from stripe.params._transfer_create_params import ( + TransferCreateParams as TransferCreateParams, + ) + from stripe.params._transfer_create_reversal_params import ( + TransferCreateReversalParams as TransferCreateReversalParams, + ) + from stripe.params._transfer_list_params import ( + TransferListParams as TransferListParams, + TransferListParamsCreated as TransferListParamsCreated, + ) + from stripe.params._transfer_list_reversals_params import ( + TransferListReversalsParams as TransferListReversalsParams, + ) + from stripe.params._transfer_modify_params import ( + TransferModifyParams as TransferModifyParams, + ) + from stripe.params._transfer_modify_reversal_params import ( + TransferModifyReversalParams as TransferModifyReversalParams, + ) + from stripe.params._transfer_retrieve_params import ( + TransferRetrieveParams as TransferRetrieveParams, + ) + from stripe.params._transfer_retrieve_reversal_params import ( + TransferRetrieveReversalParams as TransferRetrieveReversalParams, + ) + from stripe.params._transfer_reversal_create_params import ( + TransferReversalCreateParams as TransferReversalCreateParams, + ) + from stripe.params._transfer_reversal_list_params import ( + TransferReversalListParams as TransferReversalListParams, + ) + from stripe.params._transfer_reversal_retrieve_params import ( + TransferReversalRetrieveParams as TransferReversalRetrieveParams, + ) + from stripe.params._transfer_reversal_update_params import ( + TransferReversalUpdateParams as TransferReversalUpdateParams, + ) + from stripe.params._transfer_update_params import ( + TransferUpdateParams as TransferUpdateParams, + ) + from stripe.params._webhook_endpoint_create_params import ( + WebhookEndpointCreateParams as WebhookEndpointCreateParams, + ) + from stripe.params._webhook_endpoint_delete_params import ( + WebhookEndpointDeleteParams as WebhookEndpointDeleteParams, + ) + from stripe.params._webhook_endpoint_list_params import ( + WebhookEndpointListParams as WebhookEndpointListParams, + ) + from stripe.params._webhook_endpoint_modify_params import ( + WebhookEndpointModifyParams as WebhookEndpointModifyParams, + ) + from stripe.params._webhook_endpoint_retrieve_params import ( + WebhookEndpointRetrieveParams as WebhookEndpointRetrieveParams, + ) + from stripe.params._webhook_endpoint_update_params import ( + WebhookEndpointUpdateParams as WebhookEndpointUpdateParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "apps": ("stripe.params.apps", True), + "billing": ("stripe.params.billing", True), + "billing_portal": ("stripe.params.billing_portal", True), + "checkout": ("stripe.params.checkout", True), + "climate": ("stripe.params.climate", True), + "entitlements": ("stripe.params.entitlements", True), + "financial_connections": ("stripe.params.financial_connections", True), + "forwarding": ("stripe.params.forwarding", True), + "identity": ("stripe.params.identity", True), + "issuing": ("stripe.params.issuing", True), + "radar": ("stripe.params.radar", True), + "reporting": ("stripe.params.reporting", True), + "sigma": ("stripe.params.sigma", True), + "tax": ("stripe.params.tax", True), + "terminal": ("stripe.params.terminal", True), + "test_helpers": ("stripe.params.test_helpers", True), + "treasury": ("stripe.params.treasury", True), + "AccountCapabilityListParams": ( + "stripe.params._account_capability_list_params", + False, + ), + "AccountCapabilityRetrieveParams": ( + "stripe.params._account_capability_retrieve_params", + False, + ), + "AccountCapabilityUpdateParams": ( + "stripe.params._account_capability_update_params", + False, + ), + "AccountCreateExternalAccountParams": ( + "stripe.params._account_create_external_account_params", + False, + ), + "AccountCreateExternalAccountParamsBankAccount": ( + "stripe.params._account_create_external_account_params", + False, + ), + "AccountCreateExternalAccountParamsCard": ( + "stripe.params._account_create_external_account_params", + False, + ), + "AccountCreateExternalAccountParamsCardToken": ( + "stripe.params._account_create_external_account_params", + False, + ), + "AccountCreateLoginLinkParams": ( + "stripe.params._account_create_login_link_params", + False, + ), + "AccountCreateParams": ("stripe.params._account_create_params", False), + "AccountCreateParamsBankAccount": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsBusinessProfile": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsBusinessProfileAnnualRevenue": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsBusinessProfileMonthlyEstimatedRevenue": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsBusinessProfileSupportAddress": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilities": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesAcssDebitPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesAffirmPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesAfterpayClearpayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesAlmaPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesAmazonPayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesAuBecsDebitPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesBacsDebitPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesBancontactPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesBankTransferPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesBilliePayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesBlikPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesBoletoPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesCardIssuing": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesCardPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesCartesBancairesPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesCashappPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesCryptoPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesEpsPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesFpxPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesGbBankTransferPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesGiropayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesGrabpayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesIdealPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesIndiaInternationalPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesJcbPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesJpBankTransferPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesKakaoPayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesKlarnaPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesKonbiniPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesKrCardPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesLegacyPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesLinkPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesMbWayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesMobilepayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesMultibancoPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesMxBankTransferPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesNaverPayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesNzBankAccountBecsDebitPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesOxxoPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesP24Payments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesPayByBankPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesPaycoPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesPaynowPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesPixPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesPromptpayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesRevolutPayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesSamsungPayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesSatispayPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesSepaBankTransferPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesSepaDebitPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesSofortPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesSwishPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesTaxReportingUs1099K": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesTaxReportingUs1099Misc": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesTransfers": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesTreasury": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesTwintPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesUsBankAccountAchPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesUsBankTransferPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCapabilitiesZipPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCard": ("stripe.params._account_create_params", False), + "AccountCreateParamsCardToken": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompany": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyAddress": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyAddressKana": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyAddressKanji": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyDirectorshipDeclaration": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyOwnershipDeclaration": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyRegistrationDate": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyRepresentativeDeclaration": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyVerification": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsCompanyVerificationDocument": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsController": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsControllerFees": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsControllerLosses": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsControllerStripeDashboard": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocuments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsBankAccountOwnershipVerification": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsCompanyLicense": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsCompanyMemorandumOfAssociation": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsCompanyMinisterialDecree": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsCompanyRegistrationVerification": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsCompanyTaxIdVerification": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsProofOfAddress": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsProofOfRegistration": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsDocumentsProofOfUltimateBeneficialOwnership": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsGroups": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividual": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualAddress": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualAddressKana": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualAddressKanji": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualDob": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualRegisteredAddress": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualRelationship": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualVerification": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualVerificationAdditionalDocument": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsIndividualVerificationDocument": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettings": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsBacsDebitPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsBranding": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsCardIssuing": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsCardIssuingTosAcceptance": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsCardPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsCardPaymentsDeclineOn": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsInvoices": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsPayments": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsPayouts": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsPayoutsSchedule": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsTreasury": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsSettingsTreasuryTosAcceptance": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreateParamsTosAcceptance": ( + "stripe.params._account_create_params", + False, + ), + "AccountCreatePersonParams": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsAdditionalTosAcceptances": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsAdditionalTosAcceptancesAccount": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsAddress": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsAddressKana": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsAddressKanji": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsDob": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsDocuments": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsDocumentsCompanyAuthorization": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsDocumentsPassport": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsDocumentsVisa": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsRegisteredAddress": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsRelationship": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsUsCfpbData": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsUsCfpbDataEthnicityDetails": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsUsCfpbDataRaceDetails": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsVerification": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsVerificationAdditionalDocument": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountCreatePersonParamsVerificationDocument": ( + "stripe.params._account_create_person_params", + False, + ), + "AccountDeleteExternalAccountParams": ( + "stripe.params._account_delete_external_account_params", + False, + ), + "AccountDeleteParams": ("stripe.params._account_delete_params", False), + "AccountDeletePersonParams": ( + "stripe.params._account_delete_person_params", + False, + ), + "AccountExternalAccountCreateParams": ( + "stripe.params._account_external_account_create_params", + False, + ), + "AccountExternalAccountCreateParamsBankAccount": ( + "stripe.params._account_external_account_create_params", + False, + ), + "AccountExternalAccountCreateParamsCard": ( + "stripe.params._account_external_account_create_params", + False, + ), + "AccountExternalAccountCreateParamsCardToken": ( + "stripe.params._account_external_account_create_params", + False, + ), + "AccountExternalAccountDeleteParams": ( + "stripe.params._account_external_account_delete_params", + False, + ), + "AccountExternalAccountListParams": ( + "stripe.params._account_external_account_list_params", + False, + ), + "AccountExternalAccountRetrieveParams": ( + "stripe.params._account_external_account_retrieve_params", + False, + ), + "AccountExternalAccountUpdateParams": ( + "stripe.params._account_external_account_update_params", + False, + ), + "AccountExternalAccountUpdateParamsDocuments": ( + "stripe.params._account_external_account_update_params", + False, + ), + "AccountExternalAccountUpdateParamsDocumentsBankAccountOwnershipVerification": ( + "stripe.params._account_external_account_update_params", + False, + ), + "AccountLinkCreateParams": ( + "stripe.params._account_link_create_params", + False, + ), + "AccountLinkCreateParamsCollectionOptions": ( + "stripe.params._account_link_create_params", + False, + ), + "AccountListCapabilitiesParams": ( + "stripe.params._account_list_capabilities_params", + False, + ), + "AccountListExternalAccountsParams": ( + "stripe.params._account_list_external_accounts_params", + False, + ), + "AccountListParams": ("stripe.params._account_list_params", False), + "AccountListParamsCreated": ("stripe.params._account_list_params", False), + "AccountListPersonsParams": ( + "stripe.params._account_list_persons_params", + False, + ), + "AccountListPersonsParamsRelationship": ( + "stripe.params._account_list_persons_params", + False, + ), + "AccountLoginLinkCreateParams": ( + "stripe.params._account_login_link_create_params", + False, + ), + "AccountModifyCapabilityParams": ( + "stripe.params._account_modify_capability_params", + False, + ), + "AccountModifyExternalAccountParams": ( + "stripe.params._account_modify_external_account_params", + False, + ), + "AccountModifyExternalAccountParamsDocuments": ( + "stripe.params._account_modify_external_account_params", + False, + ), + "AccountModifyExternalAccountParamsDocumentsBankAccountOwnershipVerification": ( + "stripe.params._account_modify_external_account_params", + False, + ), + "AccountModifyPersonParams": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsAdditionalTosAcceptances": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsAdditionalTosAcceptancesAccount": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsAddress": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsAddressKana": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsAddressKanji": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsDob": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsDocuments": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsDocumentsCompanyAuthorization": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsDocumentsPassport": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsDocumentsVisa": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsRegisteredAddress": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsRelationship": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsUsCfpbData": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsUsCfpbDataEthnicityDetails": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsUsCfpbDataRaceDetails": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsVerification": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsVerificationAdditionalDocument": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountModifyPersonParamsVerificationDocument": ( + "stripe.params._account_modify_person_params", + False, + ), + "AccountPersonCreateParams": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsAdditionalTosAcceptances": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsAdditionalTosAcceptancesAccount": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsAddress": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsAddressKana": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsAddressKanji": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsDob": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsDocuments": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsDocumentsCompanyAuthorization": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsDocumentsPassport": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsDocumentsVisa": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsRegisteredAddress": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsRelationship": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsUsCfpbData": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsUsCfpbDataEthnicityDetails": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsUsCfpbDataRaceDetails": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsVerification": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsVerificationAdditionalDocument": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonCreateParamsVerificationDocument": ( + "stripe.params._account_person_create_params", + False, + ), + "AccountPersonDeleteParams": ( + "stripe.params._account_person_delete_params", + False, + ), + "AccountPersonListParams": ( + "stripe.params._account_person_list_params", + False, + ), + "AccountPersonListParamsRelationship": ( + "stripe.params._account_person_list_params", + False, + ), + "AccountPersonRetrieveParams": ( + "stripe.params._account_person_retrieve_params", + False, + ), + "AccountPersonUpdateParams": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsAdditionalTosAcceptances": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsAdditionalTosAcceptancesAccount": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsAddress": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsAddressKana": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsAddressKanji": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsDob": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsDocuments": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsDocumentsCompanyAuthorization": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsDocumentsPassport": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsDocumentsVisa": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsRegisteredAddress": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsRelationship": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsUsCfpbData": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsUsCfpbDataEthnicityDetails": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsUsCfpbDataRaceDetails": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsVerification": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsVerificationAdditionalDocument": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonUpdateParamsVerificationDocument": ( + "stripe.params._account_person_update_params", + False, + ), + "AccountPersonsParams": ("stripe.params._account_persons_params", False), + "AccountPersonsParamsRelationship": ( + "stripe.params._account_persons_params", + False, + ), + "AccountRejectParams": ("stripe.params._account_reject_params", False), + "AccountRetrieveCapabilityParams": ( + "stripe.params._account_retrieve_capability_params", + False, + ), + "AccountRetrieveCurrentParams": ( + "stripe.params._account_retrieve_current_params", + False, + ), + "AccountRetrieveExternalAccountParams": ( + "stripe.params._account_retrieve_external_account_params", + False, + ), + "AccountRetrieveParams": ("stripe.params._account_retrieve_params", False), + "AccountRetrievePersonParams": ( + "stripe.params._account_retrieve_person_params", + False, + ), + "AccountSessionCreateParams": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponents": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsAccountManagement": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsAccountManagementFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsAccountOnboarding": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsAccountOnboardingFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsBalances": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsBalancesFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsDisputesList": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsDisputesListFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsDocuments": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsDocumentsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsFinancialAccount": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsFinancialAccountFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsFinancialAccountTransactions": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsFinancialAccountTransactionsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsInstantPayoutsPromotion": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsInstantPayoutsPromotionFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsIssuingCard": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsIssuingCardFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsIssuingCardsList": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsIssuingCardsListFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsNotificationBanner": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsNotificationBannerFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPaymentDetails": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPaymentDetailsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPaymentDisputes": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPaymentDisputesFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPayments": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPaymentsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPayoutDetails": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPayoutDetailsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPayouts": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPayoutsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPayoutsList": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsPayoutsListFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsTaxRegistrations": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsTaxRegistrationsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsTaxSettings": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountSessionCreateParamsComponentsTaxSettingsFeatures": ( + "stripe.params._account_session_create_params", + False, + ), + "AccountUpdateParams": ("stripe.params._account_update_params", False), + "AccountUpdateParamsBankAccount": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsBusinessProfile": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsBusinessProfileAnnualRevenue": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsBusinessProfileMonthlyEstimatedRevenue": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsBusinessProfileSupportAddress": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilities": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesAcssDebitPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesAffirmPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesAfterpayClearpayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesAlmaPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesAmazonPayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesAuBecsDebitPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesBacsDebitPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesBancontactPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesBankTransferPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesBilliePayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesBlikPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesBoletoPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesCardIssuing": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesCardPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesCartesBancairesPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesCashappPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesCryptoPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesEpsPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesFpxPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesGbBankTransferPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesGiropayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesGrabpayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesIdealPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesIndiaInternationalPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesJcbPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesJpBankTransferPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesKakaoPayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesKlarnaPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesKonbiniPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesKrCardPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesLegacyPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesLinkPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesMbWayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesMobilepayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesMultibancoPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesMxBankTransferPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesNaverPayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesNzBankAccountBecsDebitPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesOxxoPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesP24Payments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesPayByBankPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesPaycoPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesPaynowPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesPixPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesPromptpayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesRevolutPayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesSamsungPayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesSatispayPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesSepaBankTransferPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesSepaDebitPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesSofortPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesSwishPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesTaxReportingUs1099K": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesTaxReportingUs1099Misc": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesTransfers": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesTreasury": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesTwintPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesUsBankAccountAchPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesUsBankTransferPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCapabilitiesZipPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCard": ("stripe.params._account_update_params", False), + "AccountUpdateParamsCardToken": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompany": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyAddress": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyAddressKana": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyAddressKanji": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyDirectorshipDeclaration": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyOwnershipDeclaration": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyRegistrationDate": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyRepresentativeDeclaration": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyVerification": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsCompanyVerificationDocument": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocuments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsBankAccountOwnershipVerification": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsCompanyLicense": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsCompanyMemorandumOfAssociation": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsCompanyMinisterialDecree": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsCompanyRegistrationVerification": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsCompanyTaxIdVerification": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsProofOfAddress": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsProofOfRegistration": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsDocumentsProofOfUltimateBeneficialOwnership": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsGroups": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividual": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualAddress": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualAddressKana": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualAddressKanji": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualDob": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualRegisteredAddress": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualRelationship": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualVerification": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualVerificationAdditionalDocument": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsIndividualVerificationDocument": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettings": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsBacsDebitPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsBranding": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsCardIssuing": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsCardIssuingTosAcceptance": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsCardPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsCardPaymentsDeclineOn": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsInvoices": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsPayments": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsPayouts": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsPayoutsSchedule": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsTreasury": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsSettingsTreasuryTosAcceptance": ( + "stripe.params._account_update_params", + False, + ), + "AccountUpdateParamsTosAcceptance": ( + "stripe.params._account_update_params", + False, + ), + "ApplePayDomainCreateParams": ( + "stripe.params._apple_pay_domain_create_params", + False, + ), + "ApplePayDomainDeleteParams": ( + "stripe.params._apple_pay_domain_delete_params", + False, + ), + "ApplePayDomainListParams": ( + "stripe.params._apple_pay_domain_list_params", + False, + ), + "ApplePayDomainRetrieveParams": ( + "stripe.params._apple_pay_domain_retrieve_params", + False, + ), + "ApplicationFeeCreateRefundParams": ( + "stripe.params._application_fee_create_refund_params", + False, + ), + "ApplicationFeeListParams": ( + "stripe.params._application_fee_list_params", + False, + ), + "ApplicationFeeListParamsCreated": ( + "stripe.params._application_fee_list_params", + False, + ), + "ApplicationFeeListRefundsParams": ( + "stripe.params._application_fee_list_refunds_params", + False, + ), + "ApplicationFeeModifyRefundParams": ( + "stripe.params._application_fee_modify_refund_params", + False, + ), + "ApplicationFeeRefundCreateParams": ( + "stripe.params._application_fee_refund_create_params", + False, + ), + "ApplicationFeeRefundListParams": ( + "stripe.params._application_fee_refund_list_params", + False, + ), + "ApplicationFeeRefundParams": ( + "stripe.params._application_fee_refund_params", + False, + ), + "ApplicationFeeRefundRetrieveParams": ( + "stripe.params._application_fee_refund_retrieve_params", + False, + ), + "ApplicationFeeRefundUpdateParams": ( + "stripe.params._application_fee_refund_update_params", + False, + ), + "ApplicationFeeRetrieveParams": ( + "stripe.params._application_fee_retrieve_params", + False, + ), + "ApplicationFeeRetrieveRefundParams": ( + "stripe.params._application_fee_retrieve_refund_params", + False, + ), + "BalanceRetrieveParams": ("stripe.params._balance_retrieve_params", False), + "BalanceSettingsModifyParams": ( + "stripe.params._balance_settings_modify_params", + False, + ), + "BalanceSettingsModifyParamsPayments": ( + "stripe.params._balance_settings_modify_params", + False, + ), + "BalanceSettingsModifyParamsPaymentsPayouts": ( + "stripe.params._balance_settings_modify_params", + False, + ), + "BalanceSettingsModifyParamsPaymentsPayoutsSchedule": ( + "stripe.params._balance_settings_modify_params", + False, + ), + "BalanceSettingsModifyParamsPaymentsSettlementTiming": ( + "stripe.params._balance_settings_modify_params", + False, + ), + "BalanceSettingsRetrieveParams": ( + "stripe.params._balance_settings_retrieve_params", + False, + ), + "BalanceSettingsUpdateParams": ( + "stripe.params._balance_settings_update_params", + False, + ), + "BalanceSettingsUpdateParamsPayments": ( + "stripe.params._balance_settings_update_params", + False, + ), + "BalanceSettingsUpdateParamsPaymentsPayouts": ( + "stripe.params._balance_settings_update_params", + False, + ), + "BalanceSettingsUpdateParamsPaymentsPayoutsSchedule": ( + "stripe.params._balance_settings_update_params", + False, + ), + "BalanceSettingsUpdateParamsPaymentsSettlementTiming": ( + "stripe.params._balance_settings_update_params", + False, + ), + "BalanceTransactionListParams": ( + "stripe.params._balance_transaction_list_params", + False, + ), + "BalanceTransactionListParamsCreated": ( + "stripe.params._balance_transaction_list_params", + False, + ), + "BalanceTransactionRetrieveParams": ( + "stripe.params._balance_transaction_retrieve_params", + False, + ), + "BankAccountDeleteParams": ( + "stripe.params._bank_account_delete_params", + False, + ), + "CardDeleteParams": ("stripe.params._card_delete_params", False), + "ChargeCaptureParams": ("stripe.params._charge_capture_params", False), + "ChargeCaptureParamsTransferData": ( + "stripe.params._charge_capture_params", + False, + ), + "ChargeCreateParams": ("stripe.params._charge_create_params", False), + "ChargeCreateParamsDestination": ( + "stripe.params._charge_create_params", + False, + ), + "ChargeCreateParamsRadarOptions": ( + "stripe.params._charge_create_params", + False, + ), + "ChargeCreateParamsShipping": ( + "stripe.params._charge_create_params", + False, + ), + "ChargeCreateParamsShippingAddress": ( + "stripe.params._charge_create_params", + False, + ), + "ChargeCreateParamsTransferData": ( + "stripe.params._charge_create_params", + False, + ), + "ChargeListParams": ("stripe.params._charge_list_params", False), + "ChargeListParamsCreated": ("stripe.params._charge_list_params", False), + "ChargeListRefundsParams": ( + "stripe.params._charge_list_refunds_params", + False, + ), + "ChargeModifyParams": ("stripe.params._charge_modify_params", False), + "ChargeModifyParamsFraudDetails": ( + "stripe.params._charge_modify_params", + False, + ), + "ChargeModifyParamsShipping": ( + "stripe.params._charge_modify_params", + False, + ), + "ChargeModifyParamsShippingAddress": ( + "stripe.params._charge_modify_params", + False, + ), + "ChargeRetrieveParams": ("stripe.params._charge_retrieve_params", False), + "ChargeRetrieveRefundParams": ( + "stripe.params._charge_retrieve_refund_params", + False, + ), + "ChargeSearchParams": ("stripe.params._charge_search_params", False), + "ChargeUpdateParams": ("stripe.params._charge_update_params", False), + "ChargeUpdateParamsFraudDetails": ( + "stripe.params._charge_update_params", + False, + ), + "ChargeUpdateParamsShipping": ( + "stripe.params._charge_update_params", + False, + ), + "ChargeUpdateParamsShippingAddress": ( + "stripe.params._charge_update_params", + False, + ), + "ConfirmationTokenCreateParams": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodData": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAffirm": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAlipay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAlma": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBancontact": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBillie": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBlik": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBoleto": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataCashapp": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataCrypto": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataEps": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataFpx": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataGiropay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataGrabpay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataIdeal": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKlarna": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKonbini": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKrCard": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataLink": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataMbWay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataMobilepay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataMultibanco": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataNaverPay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataOxxo": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataP24": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPayByBank": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPayco": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPaynow": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPaypal": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPix": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPromptpay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSatispay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSofort": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSwish": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataTwint": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataWechatPay": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataZip": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptions": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptionsCard": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsShipping": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsShippingAddress": ( + "stripe.params._confirmation_token_create_params", + False, + ), + "ConfirmationTokenRetrieveParams": ( + "stripe.params._confirmation_token_retrieve_params", + False, + ), + "CountrySpecListParams": ( + "stripe.params._country_spec_list_params", + False, + ), + "CountrySpecRetrieveParams": ( + "stripe.params._country_spec_retrieve_params", + False, + ), + "CouponCreateParams": ("stripe.params._coupon_create_params", False), + "CouponCreateParamsAppliesTo": ( + "stripe.params._coupon_create_params", + False, + ), + "CouponCreateParamsCurrencyOptions": ( + "stripe.params._coupon_create_params", + False, + ), + "CouponDeleteParams": ("stripe.params._coupon_delete_params", False), + "CouponListParams": ("stripe.params._coupon_list_params", False), + "CouponListParamsCreated": ("stripe.params._coupon_list_params", False), + "CouponModifyParams": ("stripe.params._coupon_modify_params", False), + "CouponModifyParamsCurrencyOptions": ( + "stripe.params._coupon_modify_params", + False, + ), + "CouponRetrieveParams": ("stripe.params._coupon_retrieve_params", False), + "CouponUpdateParams": ("stripe.params._coupon_update_params", False), + "CouponUpdateParamsCurrencyOptions": ( + "stripe.params._coupon_update_params", + False, + ), + "CreditNoteCreateParams": ( + "stripe.params._credit_note_create_params", + False, + ), + "CreditNoteCreateParamsLine": ( + "stripe.params._credit_note_create_params", + False, + ), + "CreditNoteCreateParamsLineTaxAmount": ( + "stripe.params._credit_note_create_params", + False, + ), + "CreditNoteCreateParamsRefund": ( + "stripe.params._credit_note_create_params", + False, + ), + "CreditNoteCreateParamsRefundPaymentRecordRefund": ( + "stripe.params._credit_note_create_params", + False, + ), + "CreditNoteCreateParamsShippingCost": ( + "stripe.params._credit_note_create_params", + False, + ), + "CreditNoteLineItemListParams": ( + "stripe.params._credit_note_line_item_list_params", + False, + ), + "CreditNoteListLinesParams": ( + "stripe.params._credit_note_list_lines_params", + False, + ), + "CreditNoteListParams": ("stripe.params._credit_note_list_params", False), + "CreditNoteListParamsCreated": ( + "stripe.params._credit_note_list_params", + False, + ), + "CreditNoteModifyParams": ( + "stripe.params._credit_note_modify_params", + False, + ), + "CreditNotePreviewLinesListParams": ( + "stripe.params._credit_note_preview_lines_list_params", + False, + ), + "CreditNotePreviewLinesListParamsLine": ( + "stripe.params._credit_note_preview_lines_list_params", + False, + ), + "CreditNotePreviewLinesListParamsLineTaxAmount": ( + "stripe.params._credit_note_preview_lines_list_params", + False, + ), + "CreditNotePreviewLinesListParamsRefund": ( + "stripe.params._credit_note_preview_lines_list_params", + False, + ), + "CreditNotePreviewLinesListParamsRefundPaymentRecordRefund": ( + "stripe.params._credit_note_preview_lines_list_params", + False, + ), + "CreditNotePreviewLinesListParamsShippingCost": ( + "stripe.params._credit_note_preview_lines_list_params", + False, + ), + "CreditNotePreviewLinesParams": ( + "stripe.params._credit_note_preview_lines_params", + False, + ), + "CreditNotePreviewLinesParamsLine": ( + "stripe.params._credit_note_preview_lines_params", + False, + ), + "CreditNotePreviewLinesParamsLineTaxAmount": ( + "stripe.params._credit_note_preview_lines_params", + False, + ), + "CreditNotePreviewLinesParamsRefund": ( + "stripe.params._credit_note_preview_lines_params", + False, + ), + "CreditNotePreviewLinesParamsRefundPaymentRecordRefund": ( + "stripe.params._credit_note_preview_lines_params", + False, + ), + "CreditNotePreviewLinesParamsShippingCost": ( + "stripe.params._credit_note_preview_lines_params", + False, + ), + "CreditNotePreviewParams": ( + "stripe.params._credit_note_preview_params", + False, + ), + "CreditNotePreviewParamsLine": ( + "stripe.params._credit_note_preview_params", + False, + ), + "CreditNotePreviewParamsLineTaxAmount": ( + "stripe.params._credit_note_preview_params", + False, + ), + "CreditNotePreviewParamsRefund": ( + "stripe.params._credit_note_preview_params", + False, + ), + "CreditNotePreviewParamsRefundPaymentRecordRefund": ( + "stripe.params._credit_note_preview_params", + False, + ), + "CreditNotePreviewParamsShippingCost": ( + "stripe.params._credit_note_preview_params", + False, + ), + "CreditNoteRetrieveParams": ( + "stripe.params._credit_note_retrieve_params", + False, + ), + "CreditNoteUpdateParams": ( + "stripe.params._credit_note_update_params", + False, + ), + "CreditNoteVoidCreditNoteParams": ( + "stripe.params._credit_note_void_credit_note_params", + False, + ), + "CustomerBalanceTransactionCreateParams": ( + "stripe.params._customer_balance_transaction_create_params", + False, + ), + "CustomerBalanceTransactionListParams": ( + "stripe.params._customer_balance_transaction_list_params", + False, + ), + "CustomerBalanceTransactionRetrieveParams": ( + "stripe.params._customer_balance_transaction_retrieve_params", + False, + ), + "CustomerBalanceTransactionUpdateParams": ( + "stripe.params._customer_balance_transaction_update_params", + False, + ), + "CustomerCashBalanceRetrieveParams": ( + "stripe.params._customer_cash_balance_retrieve_params", + False, + ), + "CustomerCashBalanceTransactionListParams": ( + "stripe.params._customer_cash_balance_transaction_list_params", + False, + ), + "CustomerCashBalanceTransactionRetrieveParams": ( + "stripe.params._customer_cash_balance_transaction_retrieve_params", + False, + ), + "CustomerCashBalanceUpdateParams": ( + "stripe.params._customer_cash_balance_update_params", + False, + ), + "CustomerCashBalanceUpdateParamsSettings": ( + "stripe.params._customer_cash_balance_update_params", + False, + ), + "CustomerCreateBalanceTransactionParams": ( + "stripe.params._customer_create_balance_transaction_params", + False, + ), + "CustomerCreateFundingInstructionsParams": ( + "stripe.params._customer_create_funding_instructions_params", + False, + ), + "CustomerCreateFundingInstructionsParamsBankTransfer": ( + "stripe.params._customer_create_funding_instructions_params", + False, + ), + "CustomerCreateFundingInstructionsParamsBankTransferEuBankTransfer": ( + "stripe.params._customer_create_funding_instructions_params", + False, + ), + "CustomerCreateParams": ("stripe.params._customer_create_params", False), + "CustomerCreateParamsAddress": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsCashBalance": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsCashBalanceSettings": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsInvoiceSettings": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsInvoiceSettingsCustomField": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsInvoiceSettingsRenderingOptions": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsShipping": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsShippingAddress": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsTax": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateParamsTaxIdDatum": ( + "stripe.params._customer_create_params", + False, + ), + "CustomerCreateSourceParams": ( + "stripe.params._customer_create_source_params", + False, + ), + "CustomerCreateTaxIdParams": ( + "stripe.params._customer_create_tax_id_params", + False, + ), + "CustomerDeleteDiscountParams": ( + "stripe.params._customer_delete_discount_params", + False, + ), + "CustomerDeleteParams": ("stripe.params._customer_delete_params", False), + "CustomerDeleteSourceParams": ( + "stripe.params._customer_delete_source_params", + False, + ), + "CustomerDeleteTaxIdParams": ( + "stripe.params._customer_delete_tax_id_params", + False, + ), + "CustomerFundCashBalanceParams": ( + "stripe.params._customer_fund_cash_balance_params", + False, + ), + "CustomerFundingInstructionsCreateParams": ( + "stripe.params._customer_funding_instructions_create_params", + False, + ), + "CustomerFundingInstructionsCreateParamsBankTransfer": ( + "stripe.params._customer_funding_instructions_create_params", + False, + ), + "CustomerFundingInstructionsCreateParamsBankTransferEuBankTransfer": ( + "stripe.params._customer_funding_instructions_create_params", + False, + ), + "CustomerListBalanceTransactionsParams": ( + "stripe.params._customer_list_balance_transactions_params", + False, + ), + "CustomerListCashBalanceTransactionsParams": ( + "stripe.params._customer_list_cash_balance_transactions_params", + False, + ), + "CustomerListParams": ("stripe.params._customer_list_params", False), + "CustomerListParamsCreated": ( + "stripe.params._customer_list_params", + False, + ), + "CustomerListPaymentMethodsParams": ( + "stripe.params._customer_list_payment_methods_params", + False, + ), + "CustomerListSourcesParams": ( + "stripe.params._customer_list_sources_params", + False, + ), + "CustomerListTaxIdsParams": ( + "stripe.params._customer_list_tax_ids_params", + False, + ), + "CustomerModifyBalanceTransactionParams": ( + "stripe.params._customer_modify_balance_transaction_params", + False, + ), + "CustomerModifyCashBalanceParams": ( + "stripe.params._customer_modify_cash_balance_params", + False, + ), + "CustomerModifyCashBalanceParamsSettings": ( + "stripe.params._customer_modify_cash_balance_params", + False, + ), + "CustomerModifyParams": ("stripe.params._customer_modify_params", False), + "CustomerModifyParamsAddress": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsCashBalance": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsCashBalanceSettings": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsInvoiceSettings": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsInvoiceSettingsCustomField": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsInvoiceSettingsRenderingOptions": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsShipping": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsShippingAddress": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifyParamsTax": ( + "stripe.params._customer_modify_params", + False, + ), + "CustomerModifySourceParams": ( + "stripe.params._customer_modify_source_params", + False, + ), + "CustomerModifySourceParamsOwner": ( + "stripe.params._customer_modify_source_params", + False, + ), + "CustomerModifySourceParamsOwnerAddress": ( + "stripe.params._customer_modify_source_params", + False, + ), + "CustomerPaymentMethodListParams": ( + "stripe.params._customer_payment_method_list_params", + False, + ), + "CustomerPaymentMethodRetrieveParams": ( + "stripe.params._customer_payment_method_retrieve_params", + False, + ), + "CustomerPaymentSourceCreateParams": ( + "stripe.params._customer_payment_source_create_params", + False, + ), + "CustomerPaymentSourceDeleteParams": ( + "stripe.params._customer_payment_source_delete_params", + False, + ), + "CustomerPaymentSourceListParams": ( + "stripe.params._customer_payment_source_list_params", + False, + ), + "CustomerPaymentSourceRetrieveParams": ( + "stripe.params._customer_payment_source_retrieve_params", + False, + ), + "CustomerPaymentSourceUpdateParams": ( + "stripe.params._customer_payment_source_update_params", + False, + ), + "CustomerPaymentSourceUpdateParamsOwner": ( + "stripe.params._customer_payment_source_update_params", + False, + ), + "CustomerPaymentSourceUpdateParamsOwnerAddress": ( + "stripe.params._customer_payment_source_update_params", + False, + ), + "CustomerPaymentSourceVerifyParams": ( + "stripe.params._customer_payment_source_verify_params", + False, + ), + "CustomerRetrieveBalanceTransactionParams": ( + "stripe.params._customer_retrieve_balance_transaction_params", + False, + ), + "CustomerRetrieveCashBalanceParams": ( + "stripe.params._customer_retrieve_cash_balance_params", + False, + ), + "CustomerRetrieveCashBalanceTransactionParams": ( + "stripe.params._customer_retrieve_cash_balance_transaction_params", + False, + ), + "CustomerRetrieveParams": ( + "stripe.params._customer_retrieve_params", + False, + ), + "CustomerRetrievePaymentMethodParams": ( + "stripe.params._customer_retrieve_payment_method_params", + False, + ), + "CustomerRetrieveSourceParams": ( + "stripe.params._customer_retrieve_source_params", + False, + ), + "CustomerRetrieveTaxIdParams": ( + "stripe.params._customer_retrieve_tax_id_params", + False, + ), + "CustomerSearchParams": ("stripe.params._customer_search_params", False), + "CustomerSessionCreateParams": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponents": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsBuyButton": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsCustomerSheet": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsCustomerSheetFeatures": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsMobilePaymentElement": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsMobilePaymentElementFeatures": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsPaymentElement": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsPaymentElementFeatures": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerSessionCreateParamsComponentsPricingTable": ( + "stripe.params._customer_session_create_params", + False, + ), + "CustomerTaxIdCreateParams": ( + "stripe.params._customer_tax_id_create_params", + False, + ), + "CustomerTaxIdDeleteParams": ( + "stripe.params._customer_tax_id_delete_params", + False, + ), + "CustomerTaxIdListParams": ( + "stripe.params._customer_tax_id_list_params", + False, + ), + "CustomerTaxIdRetrieveParams": ( + "stripe.params._customer_tax_id_retrieve_params", + False, + ), + "CustomerUpdateParams": ("stripe.params._customer_update_params", False), + "CustomerUpdateParamsAddress": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsCashBalance": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsCashBalanceSettings": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsInvoiceSettings": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsInvoiceSettingsCustomField": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsInvoiceSettingsRenderingOptions": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsShipping": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsShippingAddress": ( + "stripe.params._customer_update_params", + False, + ), + "CustomerUpdateParamsTax": ( + "stripe.params._customer_update_params", + False, + ), + "DisputeCloseParams": ("stripe.params._dispute_close_params", False), + "DisputeListParams": ("stripe.params._dispute_list_params", False), + "DisputeListParamsCreated": ("stripe.params._dispute_list_params", False), + "DisputeModifyParams": ("stripe.params._dispute_modify_params", False), + "DisputeModifyParamsEvidence": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceEnhancedEvidence": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompliance": ( + "stripe.params._dispute_modify_params", + False, + ), + "DisputeRetrieveParams": ("stripe.params._dispute_retrieve_params", False), + "DisputeUpdateParams": ("stripe.params._dispute_update_params", False), + "DisputeUpdateParamsEvidence": ( + "stripe.params._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceEnhancedEvidence": ( + "stripe.params._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3": ( + "stripe.params._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction": ( + "stripe.params._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress": ( + "stripe.params._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction": ( + "stripe.params._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress": ( + "stripe.params._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompliance": ( + "stripe.params._dispute_update_params", + False, + ), + "EphemeralKeyCreateParams": ( + "stripe.params._ephemeral_key_create_params", + False, + ), + "EphemeralKeyDeleteParams": ( + "stripe.params._ephemeral_key_delete_params", + False, + ), + "EventListParams": ("stripe.params._event_list_params", False), + "EventListParamsCreated": ("stripe.params._event_list_params", False), + "EventRetrieveParams": ("stripe.params._event_retrieve_params", False), + "ExchangeRateListParams": ( + "stripe.params._exchange_rate_list_params", + False, + ), + "ExchangeRateRetrieveParams": ( + "stripe.params._exchange_rate_retrieve_params", + False, + ), + "FileCreateParams": ("stripe.params._file_create_params", False), + "FileCreateParamsFileLinkData": ( + "stripe.params._file_create_params", + False, + ), + "FileLinkCreateParams": ("stripe.params._file_link_create_params", False), + "FileLinkListParams": ("stripe.params._file_link_list_params", False), + "FileLinkListParamsCreated": ( + "stripe.params._file_link_list_params", + False, + ), + "FileLinkModifyParams": ("stripe.params._file_link_modify_params", False), + "FileLinkRetrieveParams": ( + "stripe.params._file_link_retrieve_params", + False, + ), + "FileLinkUpdateParams": ("stripe.params._file_link_update_params", False), + "FileListParams": ("stripe.params._file_list_params", False), + "FileListParamsCreated": ("stripe.params._file_list_params", False), + "FileRetrieveParams": ("stripe.params._file_retrieve_params", False), + "InvoiceAddLinesParams": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLine": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLineDiscount": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLinePeriod": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLinePriceData": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLinePriceDataProductData": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLinePricing": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLineTaxAmount": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAddLinesParamsLineTaxAmountTaxRateData": ( + "stripe.params._invoice_add_lines_params", + False, + ), + "InvoiceAttachPaymentParams": ( + "stripe.params._invoice_attach_payment_params", + False, + ), + "InvoiceCreateParams": ("stripe.params._invoice_create_params", False), + "InvoiceCreateParamsAutomaticTax": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsAutomaticTaxLiability": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsCustomField": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsDiscount": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsFromInvoice": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsIssuer": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettings": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptions": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsBancontact": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCard": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallments": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsKonbini": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsRendering": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsRenderingPdf": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingCost": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingCostShippingRateData": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimate": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMaximum": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMinimum": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingCostShippingRateDataFixedAmount": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingDetails": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsShippingDetailsAddress": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreateParamsTransferData": ( + "stripe.params._invoice_create_params", + False, + ), + "InvoiceCreatePreviewParams": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsAutomaticTax": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsAutomaticTaxLiability": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsCustomerDetails": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsCustomerDetailsAddress": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsCustomerDetailsShipping": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsCustomerDetailsShippingAddress": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsCustomerDetailsTax": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsCustomerDetailsTaxId": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsDiscount": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsInvoiceItem": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsInvoiceItemDiscount": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsInvoiceItemPeriod": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsInvoiceItemPriceData": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsIssuer": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetails": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsBillingMode": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsBillingModeFlexible": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhase": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItem": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemDiscount": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriod": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodEnd": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodStart": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPriceData": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTax": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTaxLiability": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseBillingThresholds": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseDiscount": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseDuration": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettings": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettingsIssuer": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseItem": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseItemBillingThresholds": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseItemDiscount": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceData": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceDataRecurring": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsScheduleDetailsPhaseTransferData": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetails": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetailsBillingMode": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetailsBillingModeFlexible": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetailsItem": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetailsItemBillingThresholds": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetailsItemDiscount": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceData": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceDataRecurring": ( + "stripe.params._invoice_create_preview_params", + False, + ), + "InvoiceDeleteParams": ("stripe.params._invoice_delete_params", False), + "InvoiceFinalizeInvoiceParams": ( + "stripe.params._invoice_finalize_invoice_params", + False, + ), + "InvoiceItemCreateParams": ( + "stripe.params._invoice_item_create_params", + False, + ), + "InvoiceItemCreateParamsDiscount": ( + "stripe.params._invoice_item_create_params", + False, + ), + "InvoiceItemCreateParamsPeriod": ( + "stripe.params._invoice_item_create_params", + False, + ), + "InvoiceItemCreateParamsPriceData": ( + "stripe.params._invoice_item_create_params", + False, + ), + "InvoiceItemCreateParamsPricing": ( + "stripe.params._invoice_item_create_params", + False, + ), + "InvoiceItemDeleteParams": ( + "stripe.params._invoice_item_delete_params", + False, + ), + "InvoiceItemListParams": ( + "stripe.params._invoice_item_list_params", + False, + ), + "InvoiceItemListParamsCreated": ( + "stripe.params._invoice_item_list_params", + False, + ), + "InvoiceItemModifyParams": ( + "stripe.params._invoice_item_modify_params", + False, + ), + "InvoiceItemModifyParamsDiscount": ( + "stripe.params._invoice_item_modify_params", + False, + ), + "InvoiceItemModifyParamsPeriod": ( + "stripe.params._invoice_item_modify_params", + False, + ), + "InvoiceItemModifyParamsPriceData": ( + "stripe.params._invoice_item_modify_params", + False, + ), + "InvoiceItemModifyParamsPricing": ( + "stripe.params._invoice_item_modify_params", + False, + ), + "InvoiceItemRetrieveParams": ( + "stripe.params._invoice_item_retrieve_params", + False, + ), + "InvoiceItemUpdateParams": ( + "stripe.params._invoice_item_update_params", + False, + ), + "InvoiceItemUpdateParamsDiscount": ( + "stripe.params._invoice_item_update_params", + False, + ), + "InvoiceItemUpdateParamsPeriod": ( + "stripe.params._invoice_item_update_params", + False, + ), + "InvoiceItemUpdateParamsPriceData": ( + "stripe.params._invoice_item_update_params", + False, + ), + "InvoiceItemUpdateParamsPricing": ( + "stripe.params._invoice_item_update_params", + False, + ), + "InvoiceLineItemListParams": ( + "stripe.params._invoice_line_item_list_params", + False, + ), + "InvoiceLineItemUpdateParams": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceLineItemUpdateParamsDiscount": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceLineItemUpdateParamsPeriod": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceLineItemUpdateParamsPriceData": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceLineItemUpdateParamsPriceDataProductData": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceLineItemUpdateParamsPricing": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceLineItemUpdateParamsTaxAmount": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceLineItemUpdateParamsTaxAmountTaxRateData": ( + "stripe.params._invoice_line_item_update_params", + False, + ), + "InvoiceListLinesParams": ( + "stripe.params._invoice_list_lines_params", + False, + ), + "InvoiceListParams": ("stripe.params._invoice_list_params", False), + "InvoiceListParamsCreated": ("stripe.params._invoice_list_params", False), + "InvoiceListParamsDueDate": ("stripe.params._invoice_list_params", False), + "InvoiceMarkUncollectibleParams": ( + "stripe.params._invoice_mark_uncollectible_params", + False, + ), + "InvoiceModifyParams": ("stripe.params._invoice_modify_params", False), + "InvoiceModifyParamsAutomaticTax": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsAutomaticTaxLiability": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsCustomField": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsDiscount": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsIssuer": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettings": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptions": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsBancontact": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCard": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallments": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsKonbini": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsRendering": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsRenderingPdf": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingCost": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingCostShippingRateData": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimate": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMaximum": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMinimum": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingCostShippingRateDataFixedAmount": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingCostShippingRateDataFixedAmountCurrencyOptions": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingDetails": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsShippingDetailsAddress": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoiceModifyParamsTransferData": ( + "stripe.params._invoice_modify_params", + False, + ), + "InvoicePayParams": ("stripe.params._invoice_pay_params", False), + "InvoicePaymentListParams": ( + "stripe.params._invoice_payment_list_params", + False, + ), + "InvoicePaymentListParamsPayment": ( + "stripe.params._invoice_payment_list_params", + False, + ), + "InvoicePaymentRetrieveParams": ( + "stripe.params._invoice_payment_retrieve_params", + False, + ), + "InvoiceRemoveLinesParams": ( + "stripe.params._invoice_remove_lines_params", + False, + ), + "InvoiceRemoveLinesParamsLine": ( + "stripe.params._invoice_remove_lines_params", + False, + ), + "InvoiceRenderingTemplateArchiveParams": ( + "stripe.params._invoice_rendering_template_archive_params", + False, + ), + "InvoiceRenderingTemplateListParams": ( + "stripe.params._invoice_rendering_template_list_params", + False, + ), + "InvoiceRenderingTemplateRetrieveParams": ( + "stripe.params._invoice_rendering_template_retrieve_params", + False, + ), + "InvoiceRenderingTemplateUnarchiveParams": ( + "stripe.params._invoice_rendering_template_unarchive_params", + False, + ), + "InvoiceRetrieveParams": ("stripe.params._invoice_retrieve_params", False), + "InvoiceSearchParams": ("stripe.params._invoice_search_params", False), + "InvoiceSendInvoiceParams": ( + "stripe.params._invoice_send_invoice_params", + False, + ), + "InvoiceUpdateLinesParams": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLine": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLineDiscount": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLinePeriod": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLinePriceData": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLinePriceDataProductData": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLinePricing": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLineTaxAmount": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateLinesParamsLineTaxAmountTaxRateData": ( + "stripe.params._invoice_update_lines_params", + False, + ), + "InvoiceUpdateParams": ("stripe.params._invoice_update_params", False), + "InvoiceUpdateParamsAutomaticTax": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsAutomaticTaxLiability": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsCustomField": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsDiscount": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsIssuer": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettings": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptions": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCard": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallments": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsRendering": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsRenderingPdf": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingCost": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingCostShippingRateData": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimate": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMaximum": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMinimum": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingCostShippingRateDataFixedAmount": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingDetails": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsShippingDetailsAddress": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceUpdateParamsTransferData": ( + "stripe.params._invoice_update_params", + False, + ), + "InvoiceVoidInvoiceParams": ( + "stripe.params._invoice_void_invoice_params", + False, + ), + "MandateRetrieveParams": ("stripe.params._mandate_retrieve_params", False), + "PaymentAttemptRecordListParams": ( + "stripe.params._payment_attempt_record_list_params", + False, + ), + "PaymentAttemptRecordRetrieveParams": ( + "stripe.params._payment_attempt_record_retrieve_params", + False, + ), + "PaymentIntentAmountDetailsLineItemListParams": ( + "stripe.params._payment_intent_amount_details_line_item_list_params", + False, + ), + "PaymentIntentApplyCustomerBalanceParams": ( + "stripe.params._payment_intent_apply_customer_balance_params", + False, + ), + "PaymentIntentCancelParams": ( + "stripe.params._payment_intent_cancel_params", + False, + ), + "PaymentIntentCaptureParams": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetails": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsLineItem": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptions": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsLineItemTax": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsShipping": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsAmountDetailsTax": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsPaymentDetails": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentCaptureParamsTransferData": ( + "stripe.params._payment_intent_capture_params", + False, + ), + "PaymentIntentConfirmParams": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetails": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsLineItem": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsLineItemTax": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsShipping": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsAmountDetailsTax": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsMandateData": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsMandateDataCustomerAcceptance": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOffline": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOnline": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentDetails": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodData": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataAcssDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataAffirm": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataAlipay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataAlma": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataAmazonPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataBacsDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataBancontact": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataBillie": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataBillingDetails": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataBlik": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataBoleto": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataCashapp": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataCrypto": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataEps": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataFpx": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataGiropay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataGrabpay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataIdeal": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataInteracPresent": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataKakaoPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataKlarna": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataKonbini": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataKrCard": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataLink": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataMbWay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataMobilepay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataMultibanco": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataNaverPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataOxxo": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataP24": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataPayByBank": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataPayco": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataPaynow": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataPaypal": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataPix": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataPromptpay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataRadarOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataRevolutPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataSamsungPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataSatispay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataSepaDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataSofort": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataSwish": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataTwint": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataWechatPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodDataZip": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAffirm": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAfterpayClearpay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAlipay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAlma": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsAuBecsDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsBancontact": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsBillie": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsBlik": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsBoleto": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallments": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardPresentRouting": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCashapp": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCrypto": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsEps": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsFpx": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsGiropay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsGrabpay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsIdeal": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsInteracPresent": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsKakaoPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsKonbini": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsKrCard": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsLink": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsMbWay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsMobilepay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsMultibanco": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsNaverPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsNzBankAccount": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsOxxo": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsP24": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsPayByBank": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsPayco": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsPaynow": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsPix": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsPromptpay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsRevolutPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsSamsungPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsSatispay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsSofort": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsSwish": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsTwint": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsWechatPay": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsPaymentMethodOptionsZip": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsRadarOptions": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsShipping": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentConfirmParamsShippingAddress": ( + "stripe.params._payment_intent_confirm_params", + False, + ), + "PaymentIntentCreateParams": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetails": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsLineItem": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsLineItemTax": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsShipping": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAmountDetailsTax": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsAutomaticPaymentMethods": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsMandateData": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsMandateDataCustomerAcceptance": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsMandateDataCustomerAcceptanceOffline": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsMandateDataCustomerAcceptanceOnline": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentDetails": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodData": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataAcssDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataAffirm": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataAlipay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataAlma": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataAmazonPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataBacsDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataBancontact": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataBillie": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataBillingDetails": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataBlik": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataBoleto": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataCashapp": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataCrypto": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataEps": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataFpx": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataGiropay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataGrabpay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataIdeal": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataInteracPresent": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataKakaoPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataKlarna": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataKonbini": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataKrCard": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataLink": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataMbWay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataMobilepay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataMultibanco": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataNaverPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataOxxo": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataP24": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataPayByBank": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataPayco": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataPaynow": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataPaypal": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataPix": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataPromptpay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataRadarOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataRevolutPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataSamsungPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataSatispay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataSepaDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataSofort": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataSwish": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataTwint": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataWechatPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodDataZip": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAffirm": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAfterpayClearpay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAlipay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAlma": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsAuBecsDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsBancontact": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsBillie": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsBlik": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsBoleto": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardInstallments": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardPresentRouting": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCashapp": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCrypto": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsEps": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsFpx": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsGiropay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsGrabpay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsIdeal": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsInteracPresent": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsKakaoPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsKonbini": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsKrCard": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsLink": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsMbWay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsMobilepay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsMultibanco": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsNaverPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsNzBankAccount": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsOxxo": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsP24": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsPayByBank": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsPayco": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsPaynow": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsPix": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsPromptpay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsRevolutPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsSamsungPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsSatispay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsSofort": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsSwish": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsTwint": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsWechatPay": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsPaymentMethodOptionsZip": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsRadarOptions": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsShipping": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsShippingAddress": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentCreateParamsTransferData": ( + "stripe.params._payment_intent_create_params", + False, + ), + "PaymentIntentIncrementAuthorizationParams": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetails": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItem": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptions": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemTax": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsShipping": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsAmountDetailsTax": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsPaymentDetails": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentIncrementAuthorizationParamsTransferData": ( + "stripe.params._payment_intent_increment_authorization_params", + False, + ), + "PaymentIntentListAmountDetailsLineItemsParams": ( + "stripe.params._payment_intent_list_amount_details_line_items_params", + False, + ), + "PaymentIntentListParams": ( + "stripe.params._payment_intent_list_params", + False, + ), + "PaymentIntentListParamsCreated": ( + "stripe.params._payment_intent_list_params", + False, + ), + "PaymentIntentModifyParams": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetails": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsLineItem": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsLineItemTax": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsShipping": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsAmountDetailsTax": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentDetails": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodData": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataAcssDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataAffirm": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataAlipay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataAlma": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataAmazonPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataBacsDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataBancontact": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataBillie": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataBillingDetails": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataBlik": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataBoleto": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataCashapp": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataCrypto": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataEps": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataFpx": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataGiropay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataGrabpay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataIdeal": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataInteracPresent": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataKakaoPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataKlarna": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataKonbini": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataKrCard": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataLink": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataMbWay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataMobilepay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataMultibanco": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataNaverPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataOxxo": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataP24": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataPayByBank": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataPayco": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataPaynow": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataPaypal": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataPix": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataPromptpay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataRadarOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataRevolutPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataSamsungPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataSatispay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataSepaDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataSofort": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataSwish": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataTwint": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataWechatPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodDataZip": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAffirm": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAfterpayClearpay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAlipay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAlma": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsAuBecsDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsBancontact": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsBillie": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsBlik": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsBoleto": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardInstallments": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardPresentRouting": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCashapp": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCrypto": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsEps": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsFpx": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsGiropay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsGrabpay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsIdeal": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsInteracPresent": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsKakaoPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsKonbini": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsKrCard": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsLink": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsMbWay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsMobilepay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsMultibanco": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsNaverPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsNzBankAccount": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsOxxo": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsP24": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsPayByBank": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsPayco": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsPaynow": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsPix": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsPromptpay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsRevolutPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsSamsungPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsSatispay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsSofort": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsSwish": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsTwint": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsWechatPay": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsPaymentMethodOptionsZip": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsShipping": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsShippingAddress": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentModifyParamsTransferData": ( + "stripe.params._payment_intent_modify_params", + False, + ), + "PaymentIntentRetrieveParams": ( + "stripe.params._payment_intent_retrieve_params", + False, + ), + "PaymentIntentSearchParams": ( + "stripe.params._payment_intent_search_params", + False, + ), + "PaymentIntentUpdateParams": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetails": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsLineItem": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsLineItemTax": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsShipping": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsAmountDetailsTax": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentDetails": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodData": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataAcssDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataAffirm": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataAlipay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataAlma": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataAmazonPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataBacsDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataBancontact": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataBillie": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataBillingDetails": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataBlik": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataBoleto": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataCashapp": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataCrypto": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataEps": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataFpx": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataGiropay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataGrabpay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataIdeal": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataInteracPresent": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataKakaoPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataKlarna": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataKonbini": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataKrCard": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataLink": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataMbWay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataMobilepay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataMultibanco": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataNaverPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataOxxo": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataP24": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataPayByBank": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataPayco": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataPaynow": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataPaypal": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataPix": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataPromptpay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataRadarOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataRevolutPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataSamsungPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataSatispay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataSepaDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataSofort": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataSwish": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataTwint": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataWechatPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodDataZip": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAffirm": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAfterpayClearpay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAlipay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAlma": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsAuBecsDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsBancontact": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsBillie": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsBlik": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsBoleto": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCard": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallments": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardPresentRouting": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCashapp": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCrypto": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsEps": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsFpx": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsGiropay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsGrabpay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsIdeal": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsInteracPresent": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsKakaoPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsKlarna": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsKonbini": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsKrCard": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsLink": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsMbWay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsMobilepay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsMultibanco": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsNaverPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsNzBankAccount": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsOxxo": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsP24": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsPayByBank": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsPayco": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsPaynow": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsPaypal": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsPix": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsPromptpay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsRevolutPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsSamsungPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsSatispay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsSofort": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsSwish": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsTwint": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsWechatPay": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsPaymentMethodOptionsZip": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsShipping": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsShippingAddress": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentUpdateParamsTransferData": ( + "stripe.params._payment_intent_update_params", + False, + ), + "PaymentIntentVerifyMicrodepositsParams": ( + "stripe.params._payment_intent_verify_microdeposits_params", + False, + ), + "PaymentLinkCreateParams": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsAfterCompletion": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsAfterCompletionHostedConfirmation": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsAfterCompletionRedirect": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsAutomaticTax": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsAutomaticTaxLiability": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsConsentCollection": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsConsentCollectionPaymentMethodReuseAgreement": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomField": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomFieldDropdown": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomFieldDropdownOption": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomFieldLabel": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomFieldNumeric": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomFieldText": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomText": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomTextAfterSubmit": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomTextShippingAddress": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomTextSubmit": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsCustomTextTermsOfServiceAcceptance": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsInvoiceCreation": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsInvoiceCreationInvoiceData": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsInvoiceCreationInvoiceDataCustomField": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsInvoiceCreationInvoiceDataIssuer": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsInvoiceCreationInvoiceDataRenderingOptions": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsLineItem": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsLineItemAdjustableQuantity": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsLineItemPriceData": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsLineItemPriceDataProductData": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsLineItemPriceDataRecurring": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsNameCollection": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsNameCollectionBusiness": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsNameCollectionIndividual": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsOptionalItem": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsOptionalItemAdjustableQuantity": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsPaymentIntentData": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsPhoneNumberCollection": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsRestrictions": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsRestrictionsCompletedSessions": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsShippingAddressCollection": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsShippingOption": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsSubscriptionData": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsSubscriptionDataInvoiceSettings": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsSubscriptionDataInvoiceSettingsIssuer": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsSubscriptionDataTrialSettings": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsSubscriptionDataTrialSettingsEndBehavior": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsTaxIdCollection": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkCreateParamsTransferData": ( + "stripe.params._payment_link_create_params", + False, + ), + "PaymentLinkLineItemListParams": ( + "stripe.params._payment_link_line_item_list_params", + False, + ), + "PaymentLinkListLineItemsParams": ( + "stripe.params._payment_link_list_line_items_params", + False, + ), + "PaymentLinkListParams": ( + "stripe.params._payment_link_list_params", + False, + ), + "PaymentLinkModifyParams": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsAfterCompletion": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsAfterCompletionHostedConfirmation": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsAfterCompletionRedirect": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsAutomaticTax": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsAutomaticTaxLiability": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomField": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomFieldDropdown": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomFieldDropdownOption": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomFieldLabel": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomFieldNumeric": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomFieldText": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomText": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomTextAfterSubmit": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomTextShippingAddress": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomTextSubmit": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsCustomTextTermsOfServiceAcceptance": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsInvoiceCreation": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsInvoiceCreationInvoiceData": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsInvoiceCreationInvoiceDataCustomField": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsInvoiceCreationInvoiceDataIssuer": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsInvoiceCreationInvoiceDataRenderingOptions": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsLineItem": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsLineItemAdjustableQuantity": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsNameCollection": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsNameCollectionBusiness": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsNameCollectionIndividual": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsPaymentIntentData": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsPhoneNumberCollection": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsRestrictions": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsRestrictionsCompletedSessions": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsShippingAddressCollection": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsSubscriptionData": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsSubscriptionDataInvoiceSettings": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsSubscriptionDataInvoiceSettingsIssuer": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsSubscriptionDataTrialSettings": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsSubscriptionDataTrialSettingsEndBehavior": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkModifyParamsTaxIdCollection": ( + "stripe.params._payment_link_modify_params", + False, + ), + "PaymentLinkRetrieveParams": ( + "stripe.params._payment_link_retrieve_params", + False, + ), + "PaymentLinkUpdateParams": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsAfterCompletion": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsAfterCompletionHostedConfirmation": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsAfterCompletionRedirect": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsAutomaticTax": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsAutomaticTaxLiability": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomField": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomFieldDropdown": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomFieldDropdownOption": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomFieldLabel": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomFieldNumeric": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomFieldText": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomText": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomTextAfterSubmit": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomTextShippingAddress": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomTextSubmit": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsCustomTextTermsOfServiceAcceptance": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsInvoiceCreation": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsInvoiceCreationInvoiceData": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsInvoiceCreationInvoiceDataCustomField": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsInvoiceCreationInvoiceDataIssuer": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsInvoiceCreationInvoiceDataRenderingOptions": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsLineItem": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsLineItemAdjustableQuantity": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsNameCollection": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsNameCollectionBusiness": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsNameCollectionIndividual": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsPaymentIntentData": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsPhoneNumberCollection": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsRestrictions": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsRestrictionsCompletedSessions": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsShippingAddressCollection": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsSubscriptionData": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsSubscriptionDataInvoiceSettings": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsSubscriptionDataInvoiceSettingsIssuer": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsSubscriptionDataTrialSettings": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsSubscriptionDataTrialSettingsEndBehavior": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentLinkUpdateParamsTaxIdCollection": ( + "stripe.params._payment_link_update_params", + False, + ), + "PaymentMethodAttachParams": ( + "stripe.params._payment_method_attach_params", + False, + ), + "PaymentMethodConfigurationCreateParams": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAcssDebit": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAcssDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAffirm": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAffirmDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAfterpayClearpay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAfterpayClearpayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAlipay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAlipayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAlma": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAlmaDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAmazonPay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAmazonPayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsApplePay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsApplePayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsApplePayLater": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsApplePayLaterDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAuBecsDebit": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsAuBecsDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBacsDebit": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBacsDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBancontact": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBancontactDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBillie": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBillieDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBlik": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBlikDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBoleto": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsBoletoDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCard": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCardDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCartesBancaires": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCartesBancairesDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCashapp": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCashappDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCrypto": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCryptoDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCustomerBalance": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsCustomerBalanceDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsEps": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsEpsDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsFpx": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsFpxDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsFrMealVoucherConecs": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsFrMealVoucherConecsDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsGiropay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsGiropayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsGooglePay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsGooglePayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsGrabpay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsGrabpayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsIdeal": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsIdealDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsJcb": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsJcbDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKakaoPay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKakaoPayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKlarna": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKlarnaDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKonbini": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKonbiniDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKrCard": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsKrCardDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsLink": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsLinkDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsMbWay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsMbWayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsMobilepay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsMobilepayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsMultibanco": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsMultibancoDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsNaverPay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsNaverPayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsNzBankAccount": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsNzBankAccountDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsOxxo": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsOxxoDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsP24": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsP24DisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPayByBank": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPayByBankDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPayco": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPaycoDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPaynow": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPaynowDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPaypal": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPaypalDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPix": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPixDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPromptpay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsPromptpayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsRevolutPay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsRevolutPayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSamsungPay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSamsungPayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSatispay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSatispayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSepaDebit": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSepaDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSofort": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSofortDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSwish": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsSwishDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsTwint": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsTwintDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsUsBankAccount": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsUsBankAccountDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsWechatPay": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsWechatPayDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsZip": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationCreateParamsZipDisplayPreference": ( + "stripe.params._payment_method_configuration_create_params", + False, + ), + "PaymentMethodConfigurationListParams": ( + "stripe.params._payment_method_configuration_list_params", + False, + ), + "PaymentMethodConfigurationModifyParams": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAcssDebit": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAcssDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAffirm": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAffirmDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAfterpayClearpay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAfterpayClearpayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAlipay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAlipayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAlma": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAlmaDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAmazonPay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAmazonPayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsApplePay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsApplePayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsApplePayLater": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsApplePayLaterDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAuBecsDebit": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsAuBecsDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBacsDebit": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBacsDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBancontact": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBancontactDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBillie": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBillieDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBlik": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBlikDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBoleto": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsBoletoDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCard": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCardDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCartesBancaires": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCartesBancairesDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCashapp": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCashappDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCrypto": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCryptoDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCustomerBalance": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsCustomerBalanceDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsEps": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsEpsDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsFpx": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsFpxDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsFrMealVoucherConecs": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsFrMealVoucherConecsDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsGiropay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsGiropayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsGooglePay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsGooglePayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsGrabpay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsGrabpayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsIdeal": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsIdealDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsJcb": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsJcbDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKakaoPay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKakaoPayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKlarna": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKlarnaDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKonbini": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKonbiniDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKrCard": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsKrCardDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsLink": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsLinkDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsMbWay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsMbWayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsMobilepay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsMobilepayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsMultibanco": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsMultibancoDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsNaverPay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsNaverPayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsNzBankAccount": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsNzBankAccountDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsOxxo": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsOxxoDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsP24": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsP24DisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPayByBank": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPayByBankDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPayco": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPaycoDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPaynow": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPaynowDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPaypal": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPaypalDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPix": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPixDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPromptpay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsPromptpayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsRevolutPay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsRevolutPayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSamsungPay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSamsungPayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSatispay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSatispayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSepaDebit": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSepaDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSofort": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSofortDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSwish": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsSwishDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsTwint": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsTwintDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsUsBankAccount": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsUsBankAccountDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsWechatPay": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsWechatPayDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsZip": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationModifyParamsZipDisplayPreference": ( + "stripe.params._payment_method_configuration_modify_params", + False, + ), + "PaymentMethodConfigurationRetrieveParams": ( + "stripe.params._payment_method_configuration_retrieve_params", + False, + ), + "PaymentMethodConfigurationUpdateParams": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAcssDebit": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAcssDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAffirm": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAffirmDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAfterpayClearpay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAfterpayClearpayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAlipay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAlipayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAlma": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAlmaDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAmazonPay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAmazonPayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsApplePay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsApplePayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsApplePayLater": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsApplePayLaterDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAuBecsDebit": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsAuBecsDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBacsDebit": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBacsDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBancontact": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBancontactDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBillie": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBillieDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBlik": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBlikDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBoleto": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsBoletoDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCard": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCardDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCartesBancaires": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCartesBancairesDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCashapp": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCashappDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCrypto": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCryptoDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCustomerBalance": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsCustomerBalanceDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsEps": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsEpsDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsFpx": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsFpxDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsFrMealVoucherConecs": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsFrMealVoucherConecsDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsGiropay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsGiropayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsGooglePay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsGooglePayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsGrabpay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsGrabpayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsIdeal": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsIdealDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsJcb": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsJcbDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKakaoPay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKakaoPayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKlarna": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKlarnaDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKonbini": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKonbiniDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKrCard": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsKrCardDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsLink": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsLinkDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsMbWay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsMbWayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsMobilepay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsMobilepayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsMultibanco": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsMultibancoDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsNaverPay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsNaverPayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsNzBankAccount": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsNzBankAccountDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsOxxo": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsOxxoDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsP24": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsP24DisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPayByBank": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPayByBankDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPayco": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPaycoDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPaynow": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPaynowDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPaypal": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPaypalDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPix": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPixDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPromptpay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsPromptpayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsRevolutPay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsRevolutPayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSamsungPay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSamsungPayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSatispay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSatispayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSepaDebit": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSepaDebitDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSofort": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSofortDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSwish": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsSwishDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsTwint": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsTwintDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsUsBankAccount": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsUsBankAccountDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsWechatPay": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsWechatPayDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsZip": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodConfigurationUpdateParamsZipDisplayPreference": ( + "stripe.params._payment_method_configuration_update_params", + False, + ), + "PaymentMethodCreateParams": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsAcssDebit": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsAffirm": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsAfterpayClearpay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsAlipay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsAlma": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsAmazonPay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsAuBecsDebit": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsBacsDebit": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsBancontact": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsBillie": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsBillingDetails": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsBillingDetailsAddress": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsBlik": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsBoleto": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsCard": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsCardNetworks": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsCashapp": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsCrypto": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsCustom": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsCustomerBalance": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsEps": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsFpx": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsGiropay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsGrabpay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsIdeal": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsInteracPresent": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsKakaoPay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsKlarna": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsKlarnaDob": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsKonbini": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsKrCard": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsLink": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsMbWay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsMobilepay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsMultibanco": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsNaverPay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsNzBankAccount": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsOxxo": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsP24": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsPayByBank": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsPayco": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsPaynow": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsPaypal": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsPix": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsPromptpay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsRadarOptions": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsRevolutPay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsSamsungPay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsSatispay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsSepaDebit": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsSofort": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsSwish": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsTwint": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsUsBankAccount": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsWechatPay": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodCreateParamsZip": ( + "stripe.params._payment_method_create_params", + False, + ), + "PaymentMethodDetachParams": ( + "stripe.params._payment_method_detach_params", + False, + ), + "PaymentMethodDomainCreateParams": ( + "stripe.params._payment_method_domain_create_params", + False, + ), + "PaymentMethodDomainListParams": ( + "stripe.params._payment_method_domain_list_params", + False, + ), + "PaymentMethodDomainModifyParams": ( + "stripe.params._payment_method_domain_modify_params", + False, + ), + "PaymentMethodDomainRetrieveParams": ( + "stripe.params._payment_method_domain_retrieve_params", + False, + ), + "PaymentMethodDomainUpdateParams": ( + "stripe.params._payment_method_domain_update_params", + False, + ), + "PaymentMethodDomainValidateParams": ( + "stripe.params._payment_method_domain_validate_params", + False, + ), + "PaymentMethodListParams": ( + "stripe.params._payment_method_list_params", + False, + ), + "PaymentMethodModifyParams": ( + "stripe.params._payment_method_modify_params", + False, + ), + "PaymentMethodModifyParamsBillingDetails": ( + "stripe.params._payment_method_modify_params", + False, + ), + "PaymentMethodModifyParamsBillingDetailsAddress": ( + "stripe.params._payment_method_modify_params", + False, + ), + "PaymentMethodModifyParamsCard": ( + "stripe.params._payment_method_modify_params", + False, + ), + "PaymentMethodModifyParamsCardNetworks": ( + "stripe.params._payment_method_modify_params", + False, + ), + "PaymentMethodModifyParamsUsBankAccount": ( + "stripe.params._payment_method_modify_params", + False, + ), + "PaymentMethodRetrieveParams": ( + "stripe.params._payment_method_retrieve_params", + False, + ), + "PaymentMethodUpdateParams": ( + "stripe.params._payment_method_update_params", + False, + ), + "PaymentMethodUpdateParamsBillingDetails": ( + "stripe.params._payment_method_update_params", + False, + ), + "PaymentMethodUpdateParamsBillingDetailsAddress": ( + "stripe.params._payment_method_update_params", + False, + ), + "PaymentMethodUpdateParamsCard": ( + "stripe.params._payment_method_update_params", + False, + ), + "PaymentMethodUpdateParamsCardNetworks": ( + "stripe.params._payment_method_update_params", + False, + ), + "PaymentMethodUpdateParamsUsBankAccount": ( + "stripe.params._payment_method_update_params", + False, + ), + "PaymentRecordReportPaymentAttemptCanceledParams": ( + "stripe.params._payment_record_report_payment_attempt_canceled_params", + False, + ), + "PaymentRecordReportPaymentAttemptFailedParams": ( + "stripe.params._payment_record_report_payment_attempt_failed_params", + False, + ), + "PaymentRecordReportPaymentAttemptGuaranteedParams": ( + "stripe.params._payment_record_report_payment_attempt_guaranteed_params", + False, + ), + "PaymentRecordReportPaymentAttemptInformationalParams": ( + "stripe.params._payment_record_report_payment_attempt_informational_params", + False, + ), + "PaymentRecordReportPaymentAttemptInformationalParamsCustomerDetails": ( + "stripe.params._payment_record_report_payment_attempt_informational_params", + False, + ), + "PaymentRecordReportPaymentAttemptInformationalParamsShippingDetails": ( + "stripe.params._payment_record_report_payment_attempt_informational_params", + False, + ), + "PaymentRecordReportPaymentAttemptInformationalParamsShippingDetailsAddress": ( + "stripe.params._payment_record_report_payment_attempt_informational_params", + False, + ), + "PaymentRecordReportPaymentAttemptParams": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsFailed": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsGuaranteed": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetails": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetails": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetailsAddress": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsCustom": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsShippingDetails": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentAttemptParamsShippingDetailsAddress": ( + "stripe.params._payment_record_report_payment_attempt_params", + False, + ), + "PaymentRecordReportPaymentParams": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsAmountRequested": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsCustomerDetails": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsFailed": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsGuaranteed": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsPaymentMethodDetails": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetails": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetailsAddress": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsPaymentMethodDetailsCustom": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsProcessorDetails": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsProcessorDetailsCustom": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsShippingDetails": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportPaymentParamsShippingDetailsAddress": ( + "stripe.params._payment_record_report_payment_params", + False, + ), + "PaymentRecordReportRefundParams": ( + "stripe.params._payment_record_report_refund_params", + False, + ), + "PaymentRecordReportRefundParamsAmount": ( + "stripe.params._payment_record_report_refund_params", + False, + ), + "PaymentRecordReportRefundParamsProcessorDetails": ( + "stripe.params._payment_record_report_refund_params", + False, + ), + "PaymentRecordReportRefundParamsProcessorDetailsCustom": ( + "stripe.params._payment_record_report_refund_params", + False, + ), + "PaymentRecordReportRefundParamsRefunded": ( + "stripe.params._payment_record_report_refund_params", + False, + ), + "PaymentRecordRetrieveParams": ( + "stripe.params._payment_record_retrieve_params", + False, + ), + "PayoutCancelParams": ("stripe.params._payout_cancel_params", False), + "PayoutCreateParams": ("stripe.params._payout_create_params", False), + "PayoutListParams": ("stripe.params._payout_list_params", False), + "PayoutListParamsArrivalDate": ( + "stripe.params._payout_list_params", + False, + ), + "PayoutListParamsCreated": ("stripe.params._payout_list_params", False), + "PayoutModifyParams": ("stripe.params._payout_modify_params", False), + "PayoutRetrieveParams": ("stripe.params._payout_retrieve_params", False), + "PayoutReverseParams": ("stripe.params._payout_reverse_params", False), + "PayoutUpdateParams": ("stripe.params._payout_update_params", False), + "PlanCreateParams": ("stripe.params._plan_create_params", False), + "PlanCreateParamsProduct": ("stripe.params._plan_create_params", False), + "PlanCreateParamsTier": ("stripe.params._plan_create_params", False), + "PlanCreateParamsTransformUsage": ( + "stripe.params._plan_create_params", + False, + ), + "PlanDeleteParams": ("stripe.params._plan_delete_params", False), + "PlanListParams": ("stripe.params._plan_list_params", False), + "PlanListParamsCreated": ("stripe.params._plan_list_params", False), + "PlanModifyParams": ("stripe.params._plan_modify_params", False), + "PlanRetrieveParams": ("stripe.params._plan_retrieve_params", False), + "PlanUpdateParams": ("stripe.params._plan_update_params", False), + "PriceCreateParams": ("stripe.params._price_create_params", False), + "PriceCreateParamsCurrencyOptions": ( + "stripe.params._price_create_params", + False, + ), + "PriceCreateParamsCurrencyOptionsCustomUnitAmount": ( + "stripe.params._price_create_params", + False, + ), + "PriceCreateParamsCurrencyOptionsTier": ( + "stripe.params._price_create_params", + False, + ), + "PriceCreateParamsCustomUnitAmount": ( + "stripe.params._price_create_params", + False, + ), + "PriceCreateParamsProductData": ( + "stripe.params._price_create_params", + False, + ), + "PriceCreateParamsRecurring": ( + "stripe.params._price_create_params", + False, + ), + "PriceCreateParamsTier": ("stripe.params._price_create_params", False), + "PriceCreateParamsTransformQuantity": ( + "stripe.params._price_create_params", + False, + ), + "PriceListParams": ("stripe.params._price_list_params", False), + "PriceListParamsCreated": ("stripe.params._price_list_params", False), + "PriceListParamsRecurring": ("stripe.params._price_list_params", False), + "PriceModifyParams": ("stripe.params._price_modify_params", False), + "PriceModifyParamsCurrencyOptions": ( + "stripe.params._price_modify_params", + False, + ), + "PriceModifyParamsCurrencyOptionsCustomUnitAmount": ( + "stripe.params._price_modify_params", + False, + ), + "PriceModifyParamsCurrencyOptionsTier": ( + "stripe.params._price_modify_params", + False, + ), + "PriceRetrieveParams": ("stripe.params._price_retrieve_params", False), + "PriceSearchParams": ("stripe.params._price_search_params", False), + "PriceUpdateParams": ("stripe.params._price_update_params", False), + "PriceUpdateParamsCurrencyOptions": ( + "stripe.params._price_update_params", + False, + ), + "PriceUpdateParamsCurrencyOptionsCustomUnitAmount": ( + "stripe.params._price_update_params", + False, + ), + "PriceUpdateParamsCurrencyOptionsTier": ( + "stripe.params._price_update_params", + False, + ), + "ProductCreateFeatureParams": ( + "stripe.params._product_create_feature_params", + False, + ), + "ProductCreateParams": ("stripe.params._product_create_params", False), + "ProductCreateParamsDefaultPriceData": ( + "stripe.params._product_create_params", + False, + ), + "ProductCreateParamsDefaultPriceDataCurrencyOptions": ( + "stripe.params._product_create_params", + False, + ), + "ProductCreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmount": ( + "stripe.params._product_create_params", + False, + ), + "ProductCreateParamsDefaultPriceDataCurrencyOptionsTier": ( + "stripe.params._product_create_params", + False, + ), + "ProductCreateParamsDefaultPriceDataCustomUnitAmount": ( + "stripe.params._product_create_params", + False, + ), + "ProductCreateParamsDefaultPriceDataRecurring": ( + "stripe.params._product_create_params", + False, + ), + "ProductCreateParamsMarketingFeature": ( + "stripe.params._product_create_params", + False, + ), + "ProductCreateParamsPackageDimensions": ( + "stripe.params._product_create_params", + False, + ), + "ProductDeleteFeatureParams": ( + "stripe.params._product_delete_feature_params", + False, + ), + "ProductDeleteParams": ("stripe.params._product_delete_params", False), + "ProductFeatureCreateParams": ( + "stripe.params._product_feature_create_params", + False, + ), + "ProductFeatureDeleteParams": ( + "stripe.params._product_feature_delete_params", + False, + ), + "ProductFeatureListParams": ( + "stripe.params._product_feature_list_params", + False, + ), + "ProductFeatureRetrieveParams": ( + "stripe.params._product_feature_retrieve_params", + False, + ), + "ProductListFeaturesParams": ( + "stripe.params._product_list_features_params", + False, + ), + "ProductListParams": ("stripe.params._product_list_params", False), + "ProductListParamsCreated": ("stripe.params._product_list_params", False), + "ProductModifyParams": ("stripe.params._product_modify_params", False), + "ProductModifyParamsMarketingFeature": ( + "stripe.params._product_modify_params", + False, + ), + "ProductModifyParamsPackageDimensions": ( + "stripe.params._product_modify_params", + False, + ), + "ProductRetrieveFeatureParams": ( + "stripe.params._product_retrieve_feature_params", + False, + ), + "ProductRetrieveParams": ("stripe.params._product_retrieve_params", False), + "ProductSearchParams": ("stripe.params._product_search_params", False), + "ProductUpdateParams": ("stripe.params._product_update_params", False), + "ProductUpdateParamsMarketingFeature": ( + "stripe.params._product_update_params", + False, + ), + "ProductUpdateParamsPackageDimensions": ( + "stripe.params._product_update_params", + False, + ), + "PromotionCodeCreateParams": ( + "stripe.params._promotion_code_create_params", + False, + ), + "PromotionCodeCreateParamsPromotion": ( + "stripe.params._promotion_code_create_params", + False, + ), + "PromotionCodeCreateParamsRestrictions": ( + "stripe.params._promotion_code_create_params", + False, + ), + "PromotionCodeCreateParamsRestrictionsCurrencyOptions": ( + "stripe.params._promotion_code_create_params", + False, + ), + "PromotionCodeListParams": ( + "stripe.params._promotion_code_list_params", + False, + ), + "PromotionCodeListParamsCreated": ( + "stripe.params._promotion_code_list_params", + False, + ), + "PromotionCodeModifyParams": ( + "stripe.params._promotion_code_modify_params", + False, + ), + "PromotionCodeModifyParamsRestrictions": ( + "stripe.params._promotion_code_modify_params", + False, + ), + "PromotionCodeModifyParamsRestrictionsCurrencyOptions": ( + "stripe.params._promotion_code_modify_params", + False, + ), + "PromotionCodeRetrieveParams": ( + "stripe.params._promotion_code_retrieve_params", + False, + ), + "PromotionCodeUpdateParams": ( + "stripe.params._promotion_code_update_params", + False, + ), + "PromotionCodeUpdateParamsRestrictions": ( + "stripe.params._promotion_code_update_params", + False, + ), + "PromotionCodeUpdateParamsRestrictionsCurrencyOptions": ( + "stripe.params._promotion_code_update_params", + False, + ), + "QuoteAcceptParams": ("stripe.params._quote_accept_params", False), + "QuoteCancelParams": ("stripe.params._quote_cancel_params", False), + "QuoteComputedUpfrontLineItemsListParams": ( + "stripe.params._quote_computed_upfront_line_items_list_params", + False, + ), + "QuoteCreateParams": ("stripe.params._quote_create_params", False), + "QuoteCreateParamsAutomaticTax": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsAutomaticTaxLiability": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsDiscount": ("stripe.params._quote_create_params", False), + "QuoteCreateParamsFromQuote": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsInvoiceSettings": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsInvoiceSettingsIssuer": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsLineItem": ("stripe.params._quote_create_params", False), + "QuoteCreateParamsLineItemDiscount": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsLineItemPriceData": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsLineItemPriceDataRecurring": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsSubscriptionData": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsSubscriptionDataBillingMode": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsSubscriptionDataBillingModeFlexible": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteCreateParamsTransferData": ( + "stripe.params._quote_create_params", + False, + ), + "QuoteFinalizeQuoteParams": ( + "stripe.params._quote_finalize_quote_params", + False, + ), + "QuoteLineItemListParams": ( + "stripe.params._quote_line_item_list_params", + False, + ), + "QuoteListComputedUpfrontLineItemsParams": ( + "stripe.params._quote_list_computed_upfront_line_items_params", + False, + ), + "QuoteListLineItemsParams": ( + "stripe.params._quote_list_line_items_params", + False, + ), + "QuoteListParams": ("stripe.params._quote_list_params", False), + "QuoteModifyParams": ("stripe.params._quote_modify_params", False), + "QuoteModifyParamsAutomaticTax": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsAutomaticTaxLiability": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsDiscount": ("stripe.params._quote_modify_params", False), + "QuoteModifyParamsInvoiceSettings": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsInvoiceSettingsIssuer": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsLineItem": ("stripe.params._quote_modify_params", False), + "QuoteModifyParamsLineItemDiscount": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsLineItemPriceData": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsLineItemPriceDataRecurring": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsSubscriptionData": ( + "stripe.params._quote_modify_params", + False, + ), + "QuoteModifyParamsTransferData": ( + "stripe.params._quote_modify_params", + False, + ), + "QuotePdfParams": ("stripe.params._quote_pdf_params", False), + "QuoteRetrieveParams": ("stripe.params._quote_retrieve_params", False), + "QuoteUpdateParams": ("stripe.params._quote_update_params", False), + "QuoteUpdateParamsAutomaticTax": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsAutomaticTaxLiability": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsDiscount": ("stripe.params._quote_update_params", False), + "QuoteUpdateParamsInvoiceSettings": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsInvoiceSettingsIssuer": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsLineItem": ("stripe.params._quote_update_params", False), + "QuoteUpdateParamsLineItemDiscount": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsLineItemPriceData": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsLineItemPriceDataRecurring": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsSubscriptionData": ( + "stripe.params._quote_update_params", + False, + ), + "QuoteUpdateParamsTransferData": ( + "stripe.params._quote_update_params", + False, + ), + "RefundCancelParams": ("stripe.params._refund_cancel_params", False), + "RefundCreateParams": ("stripe.params._refund_create_params", False), + "RefundExpireParams": ("stripe.params._refund_expire_params", False), + "RefundListParams": ("stripe.params._refund_list_params", False), + "RefundListParamsCreated": ("stripe.params._refund_list_params", False), + "RefundModifyParams": ("stripe.params._refund_modify_params", False), + "RefundRetrieveParams": ("stripe.params._refund_retrieve_params", False), + "RefundUpdateParams": ("stripe.params._refund_update_params", False), + "ReviewApproveParams": ("stripe.params._review_approve_params", False), + "ReviewListParams": ("stripe.params._review_list_params", False), + "ReviewListParamsCreated": ("stripe.params._review_list_params", False), + "ReviewRetrieveParams": ("stripe.params._review_retrieve_params", False), + "SetupAttemptListParams": ( + "stripe.params._setup_attempt_list_params", + False, + ), + "SetupAttemptListParamsCreated": ( + "stripe.params._setup_attempt_list_params", + False, + ), + "SetupIntentCancelParams": ( + "stripe.params._setup_intent_cancel_params", + False, + ), + "SetupIntentConfirmParams": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsMandateData": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsMandateDataCustomerAcceptance": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsMandateDataCustomerAcceptanceOffline": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsMandateDataCustomerAcceptanceOnline": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodData": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataAcssDebit": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataAffirm": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataAlipay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataAlma": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataAmazonPay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataBacsDebit": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataBancontact": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataBillie": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataBillingDetails": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataBlik": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataBoleto": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataCashapp": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataCrypto": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataEps": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataFpx": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataGiropay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataGrabpay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataIdeal": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataInteracPresent": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataKakaoPay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataKlarna": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataKonbini": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataKrCard": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataLink": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataMbWay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataMobilepay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataMultibanco": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataNaverPay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataOxxo": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataP24": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataPayByBank": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataPayco": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataPaynow": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataPaypal": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataPix": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataPromptpay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataRadarOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataRevolutPay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataSamsungPay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataSatispay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataSepaDebit": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataSofort": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataSwish": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataTwint": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataWechatPay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodDataZip": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsCard": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsKlarna": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsLink": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsPaypal": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._setup_intent_confirm_params", + False, + ), + "SetupIntentCreateParams": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsAutomaticPaymentMethods": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsMandateData": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsMandateDataCustomerAcceptance": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsMandateDataCustomerAcceptanceOffline": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsMandateDataCustomerAcceptanceOnline": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodData": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataAcssDebit": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataAffirm": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataAlipay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataAlma": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataAmazonPay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataBacsDebit": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataBancontact": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataBillie": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataBillingDetails": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataBlik": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataBoleto": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataCashapp": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataCrypto": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataEps": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataFpx": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataGiropay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataGrabpay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataIdeal": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataInteracPresent": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataKakaoPay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataKlarna": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataKonbini": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataKrCard": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataLink": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataMbWay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataMobilepay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataMultibanco": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataNaverPay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataOxxo": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataP24": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataPayByBank": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataPayco": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataPaynow": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataPaypal": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataPix": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataPromptpay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataRadarOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataRevolutPay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataSamsungPay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataSatispay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataSepaDebit": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataSofort": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataSwish": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataTwint": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataWechatPay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodDataZip": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsCard": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsKlarna": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsLink": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsPaypal": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentCreateParamsSingleUse": ( + "stripe.params._setup_intent_create_params", + False, + ), + "SetupIntentListParams": ( + "stripe.params._setup_intent_list_params", + False, + ), + "SetupIntentListParamsCreated": ( + "stripe.params._setup_intent_list_params", + False, + ), + "SetupIntentModifyParams": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodData": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataAcssDebit": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataAffirm": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataAlipay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataAlma": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataAmazonPay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataBacsDebit": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataBancontact": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataBillie": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataBillingDetails": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataBlik": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataBoleto": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataCashapp": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataCrypto": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataEps": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataFpx": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataGiropay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataGrabpay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataIdeal": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataInteracPresent": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataKakaoPay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataKlarna": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataKonbini": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataKrCard": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataLink": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataMbWay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataMobilepay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataMultibanco": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataNaverPay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataOxxo": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataP24": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataPayByBank": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataPayco": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataPaynow": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataPaypal": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataPix": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataPromptpay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataRadarOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataRevolutPay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataSamsungPay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataSatispay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataSepaDebit": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataSofort": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataSwish": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataTwint": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataWechatPay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodDataZip": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsCard": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsKlarna": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsLink": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsPaypal": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._setup_intent_modify_params", + False, + ), + "SetupIntentRetrieveParams": ( + "stripe.params._setup_intent_retrieve_params", + False, + ), + "SetupIntentUpdateParams": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodData": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataAcssDebit": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataAffirm": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataAlipay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataAlma": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataAmazonPay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataBacsDebit": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataBancontact": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataBillie": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataBillingDetails": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataBlik": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataBoleto": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataCashapp": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataCrypto": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataCustomerBalance": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataEps": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataFpx": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataGiropay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataGrabpay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataIdeal": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataInteracPresent": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataKakaoPay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataKlarna": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataKlarnaDob": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataKonbini": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataKrCard": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataLink": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataMbWay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataMobilepay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataMultibanco": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataNaverPay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataNzBankAccount": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataOxxo": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataP24": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataPayByBank": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataPayco": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataPaynow": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataPaypal": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataPix": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataPromptpay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataRadarOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataRevolutPay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataSamsungPay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataSatispay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataSepaDebit": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataSofort": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataSwish": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataTwint": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataUsBankAccount": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataWechatPay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodDataZip": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsCard": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsCardPresent": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsKlarna": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsLink": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsPaypal": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks": ( + "stripe.params._setup_intent_update_params", + False, + ), + "SetupIntentVerifyMicrodepositsParams": ( + "stripe.params._setup_intent_verify_microdeposits_params", + False, + ), + "ShippingRateCreateParams": ( + "stripe.params._shipping_rate_create_params", + False, + ), + "ShippingRateCreateParamsDeliveryEstimate": ( + "stripe.params._shipping_rate_create_params", + False, + ), + "ShippingRateCreateParamsDeliveryEstimateMaximum": ( + "stripe.params._shipping_rate_create_params", + False, + ), + "ShippingRateCreateParamsDeliveryEstimateMinimum": ( + "stripe.params._shipping_rate_create_params", + False, + ), + "ShippingRateCreateParamsFixedAmount": ( + "stripe.params._shipping_rate_create_params", + False, + ), + "ShippingRateCreateParamsFixedAmountCurrencyOptions": ( + "stripe.params._shipping_rate_create_params", + False, + ), + "ShippingRateListParams": ( + "stripe.params._shipping_rate_list_params", + False, + ), + "ShippingRateListParamsCreated": ( + "stripe.params._shipping_rate_list_params", + False, + ), + "ShippingRateModifyParams": ( + "stripe.params._shipping_rate_modify_params", + False, + ), + "ShippingRateModifyParamsFixedAmount": ( + "stripe.params._shipping_rate_modify_params", + False, + ), + "ShippingRateModifyParamsFixedAmountCurrencyOptions": ( + "stripe.params._shipping_rate_modify_params", + False, + ), + "ShippingRateRetrieveParams": ( + "stripe.params._shipping_rate_retrieve_params", + False, + ), + "ShippingRateUpdateParams": ( + "stripe.params._shipping_rate_update_params", + False, + ), + "ShippingRateUpdateParamsFixedAmount": ( + "stripe.params._shipping_rate_update_params", + False, + ), + "ShippingRateUpdateParamsFixedAmountCurrencyOptions": ( + "stripe.params._shipping_rate_update_params", + False, + ), + "SourceCreateParams": ("stripe.params._source_create_params", False), + "SourceCreateParamsMandate": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsMandateAcceptance": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsMandateAcceptanceOffline": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsMandateAcceptanceOnline": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsOwner": ("stripe.params._source_create_params", False), + "SourceCreateParamsOwnerAddress": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsReceiver": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsRedirect": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsSourceOrder": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsSourceOrderItem": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsSourceOrderShipping": ( + "stripe.params._source_create_params", + False, + ), + "SourceCreateParamsSourceOrderShippingAddress": ( + "stripe.params._source_create_params", + False, + ), + "SourceDetachParams": ("stripe.params._source_detach_params", False), + "SourceListSourceTransactionsParams": ( + "stripe.params._source_list_source_transactions_params", + False, + ), + "SourceModifyParams": ("stripe.params._source_modify_params", False), + "SourceModifyParamsMandate": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsMandateAcceptance": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsMandateAcceptanceOffline": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsMandateAcceptanceOnline": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsOwner": ("stripe.params._source_modify_params", False), + "SourceModifyParamsOwnerAddress": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsSourceOrder": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsSourceOrderItem": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsSourceOrderShipping": ( + "stripe.params._source_modify_params", + False, + ), + "SourceModifyParamsSourceOrderShippingAddress": ( + "stripe.params._source_modify_params", + False, + ), + "SourceRetrieveParams": ("stripe.params._source_retrieve_params", False), + "SourceTransactionListParams": ( + "stripe.params._source_transaction_list_params", + False, + ), + "SourceUpdateParams": ("stripe.params._source_update_params", False), + "SourceUpdateParamsMandate": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsMandateAcceptance": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsMandateAcceptanceOffline": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsMandateAcceptanceOnline": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsOwner": ("stripe.params._source_update_params", False), + "SourceUpdateParamsOwnerAddress": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsSourceOrder": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsSourceOrderItem": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsSourceOrderShipping": ( + "stripe.params._source_update_params", + False, + ), + "SourceUpdateParamsSourceOrderShippingAddress": ( + "stripe.params._source_update_params", + False, + ), + "SourceVerifyParams": ("stripe.params._source_verify_params", False), + "SubscriptionCancelParams": ( + "stripe.params._subscription_cancel_params", + False, + ), + "SubscriptionCancelParamsCancellationDetails": ( + "stripe.params._subscription_cancel_params", + False, + ), + "SubscriptionCreateParams": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAddInvoiceItem": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAddInvoiceItemDiscount": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAddInvoiceItemPeriod": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAddInvoiceItemPeriodEnd": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAddInvoiceItemPeriodStart": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAddInvoiceItemPriceData": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAutomaticTax": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsAutomaticTaxLiability": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsBillingCycleAnchorConfig": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsBillingMode": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsBillingModeFlexible": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsBillingThresholds": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsDiscount": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsInvoiceSettings": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsInvoiceSettingsIssuer": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsItem": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsItemBillingThresholds": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsItemDiscount": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsItemPriceData": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsItemPriceDataRecurring": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettings": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptions": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsBancontact": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCard": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsKonbini": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsPendingInvoiceItemInterval": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsTransferData": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsTrialSettings": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionCreateParamsTrialSettingsEndBehavior": ( + "stripe.params._subscription_create_params", + False, + ), + "SubscriptionDeleteDiscountParams": ( + "stripe.params._subscription_delete_discount_params", + False, + ), + "SubscriptionItemCreateParams": ( + "stripe.params._subscription_item_create_params", + False, + ), + "SubscriptionItemCreateParamsBillingThresholds": ( + "stripe.params._subscription_item_create_params", + False, + ), + "SubscriptionItemCreateParamsDiscount": ( + "stripe.params._subscription_item_create_params", + False, + ), + "SubscriptionItemCreateParamsPriceData": ( + "stripe.params._subscription_item_create_params", + False, + ), + "SubscriptionItemCreateParamsPriceDataRecurring": ( + "stripe.params._subscription_item_create_params", + False, + ), + "SubscriptionItemDeleteParams": ( + "stripe.params._subscription_item_delete_params", + False, + ), + "SubscriptionItemListParams": ( + "stripe.params._subscription_item_list_params", + False, + ), + "SubscriptionItemModifyParams": ( + "stripe.params._subscription_item_modify_params", + False, + ), + "SubscriptionItemModifyParamsBillingThresholds": ( + "stripe.params._subscription_item_modify_params", + False, + ), + "SubscriptionItemModifyParamsDiscount": ( + "stripe.params._subscription_item_modify_params", + False, + ), + "SubscriptionItemModifyParamsPriceData": ( + "stripe.params._subscription_item_modify_params", + False, + ), + "SubscriptionItemModifyParamsPriceDataRecurring": ( + "stripe.params._subscription_item_modify_params", + False, + ), + "SubscriptionItemRetrieveParams": ( + "stripe.params._subscription_item_retrieve_params", + False, + ), + "SubscriptionItemUpdateParams": ( + "stripe.params._subscription_item_update_params", + False, + ), + "SubscriptionItemUpdateParamsBillingThresholds": ( + "stripe.params._subscription_item_update_params", + False, + ), + "SubscriptionItemUpdateParamsDiscount": ( + "stripe.params._subscription_item_update_params", + False, + ), + "SubscriptionItemUpdateParamsPriceData": ( + "stripe.params._subscription_item_update_params", + False, + ), + "SubscriptionItemUpdateParamsPriceDataRecurring": ( + "stripe.params._subscription_item_update_params", + False, + ), + "SubscriptionListParams": ( + "stripe.params._subscription_list_params", + False, + ), + "SubscriptionListParamsAutomaticTax": ( + "stripe.params._subscription_list_params", + False, + ), + "SubscriptionListParamsCreated": ( + "stripe.params._subscription_list_params", + False, + ), + "SubscriptionListParamsCurrentPeriodEnd": ( + "stripe.params._subscription_list_params", + False, + ), + "SubscriptionListParamsCurrentPeriodStart": ( + "stripe.params._subscription_list_params", + False, + ), + "SubscriptionMigrateParams": ( + "stripe.params._subscription_migrate_params", + False, + ), + "SubscriptionMigrateParamsBillingMode": ( + "stripe.params._subscription_migrate_params", + False, + ), + "SubscriptionMigrateParamsBillingModeFlexible": ( + "stripe.params._subscription_migrate_params", + False, + ), + "SubscriptionModifyParams": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAddInvoiceItem": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAddInvoiceItemDiscount": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAddInvoiceItemPeriod": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAddInvoiceItemPeriodEnd": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAddInvoiceItemPeriodStart": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAddInvoiceItemPriceData": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAutomaticTax": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsAutomaticTaxLiability": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsBillingThresholds": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsCancellationDetails": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsDiscount": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsInvoiceSettings": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsInvoiceSettingsIssuer": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsItem": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsItemBillingThresholds": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsItemDiscount": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsItemPriceData": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsItemPriceDataRecurring": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPauseCollection": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettings": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptions": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsBancontact": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCard": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsKonbini": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsPendingInvoiceItemInterval": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsTransferData": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsTrialSettings": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionModifyParamsTrialSettingsEndBehavior": ( + "stripe.params._subscription_modify_params", + False, + ), + "SubscriptionResumeParams": ( + "stripe.params._subscription_resume_params", + False, + ), + "SubscriptionRetrieveParams": ( + "stripe.params._subscription_retrieve_params", + False, + ), + "SubscriptionScheduleCancelParams": ( + "stripe.params._subscription_schedule_cancel_params", + False, + ), + "SubscriptionScheduleCreateParams": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsBillingMode": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsBillingModeFlexible": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsDefaultSettings": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTax": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTaxLiability": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsDefaultSettingsBillingThresholds": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettings": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettingsIssuer": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsDefaultSettingsTransferData": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhase": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItem": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemDiscount": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriod": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodEnd": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodStart": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPriceData": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAutomaticTax": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseAutomaticTaxLiability": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseBillingThresholds": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseDiscount": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseDuration": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseInvoiceSettings": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseInvoiceSettingsIssuer": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseItem": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseItemBillingThresholds": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseItemDiscount": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseItemPriceData": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseItemPriceDataRecurring": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleCreateParamsPhaseTransferData": ( + "stripe.params._subscription_schedule_create_params", + False, + ), + "SubscriptionScheduleListParams": ( + "stripe.params._subscription_schedule_list_params", + False, + ), + "SubscriptionScheduleListParamsCanceledAt": ( + "stripe.params._subscription_schedule_list_params", + False, + ), + "SubscriptionScheduleListParamsCompletedAt": ( + "stripe.params._subscription_schedule_list_params", + False, + ), + "SubscriptionScheduleListParamsCreated": ( + "stripe.params._subscription_schedule_list_params", + False, + ), + "SubscriptionScheduleListParamsReleasedAt": ( + "stripe.params._subscription_schedule_list_params", + False, + ), + "SubscriptionScheduleModifyParams": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsDefaultSettings": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTax": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTaxLiability": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsDefaultSettingsBillingThresholds": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettings": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettingsIssuer": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsDefaultSettingsTransferData": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhase": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItem": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemDiscount": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriod": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodEnd": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodStart": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPriceData": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAutomaticTax": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseAutomaticTaxLiability": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseBillingThresholds": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseDiscount": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseDuration": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseInvoiceSettings": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseInvoiceSettingsIssuer": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseItem": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseItemBillingThresholds": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseItemDiscount": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseItemPriceData": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseItemPriceDataRecurring": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleModifyParamsPhaseTransferData": ( + "stripe.params._subscription_schedule_modify_params", + False, + ), + "SubscriptionScheduleReleaseParams": ( + "stripe.params._subscription_schedule_release_params", + False, + ), + "SubscriptionScheduleRetrieveParams": ( + "stripe.params._subscription_schedule_retrieve_params", + False, + ), + "SubscriptionScheduleUpdateParams": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsDefaultSettings": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTax": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTaxLiability": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsDefaultSettingsBillingThresholds": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettings": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettingsIssuer": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsDefaultSettingsTransferData": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhase": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItem": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemDiscount": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriod": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodEnd": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodStart": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPriceData": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAutomaticTax": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseAutomaticTaxLiability": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseBillingThresholds": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseDiscount": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseDuration": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseInvoiceSettings": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseInvoiceSettingsIssuer": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseItem": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseItemBillingThresholds": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseItemDiscount": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseItemPriceData": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseItemPriceDataRecurring": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionScheduleUpdateParamsPhaseTransferData": ( + "stripe.params._subscription_schedule_update_params", + False, + ), + "SubscriptionSearchParams": ( + "stripe.params._subscription_search_params", + False, + ), + "SubscriptionUpdateParams": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAddInvoiceItem": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAddInvoiceItemDiscount": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAddInvoiceItemPeriod": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAddInvoiceItemPeriodEnd": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAddInvoiceItemPeriodStart": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAddInvoiceItemPriceData": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAutomaticTax": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsAutomaticTaxLiability": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsBillingThresholds": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsCancellationDetails": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsDiscount": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsInvoiceSettings": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsInvoiceSettingsIssuer": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsItem": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsItemBillingThresholds": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsItemDiscount": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsItemPriceData": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsItemPriceDataRecurring": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPauseCollection": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettings": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptions": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCard": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsPendingInvoiceItemInterval": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsTransferData": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsTrialSettings": ( + "stripe.params._subscription_update_params", + False, + ), + "SubscriptionUpdateParamsTrialSettingsEndBehavior": ( + "stripe.params._subscription_update_params", + False, + ), + "TaxCodeListParams": ("stripe.params._tax_code_list_params", False), + "TaxCodeRetrieveParams": ( + "stripe.params._tax_code_retrieve_params", + False, + ), + "TaxIdCreateParams": ("stripe.params._tax_id_create_params", False), + "TaxIdCreateParamsOwner": ("stripe.params._tax_id_create_params", False), + "TaxIdDeleteParams": ("stripe.params._tax_id_delete_params", False), + "TaxIdListParams": ("stripe.params._tax_id_list_params", False), + "TaxIdListParamsOwner": ("stripe.params._tax_id_list_params", False), + "TaxIdRetrieveParams": ("stripe.params._tax_id_retrieve_params", False), + "TaxRateCreateParams": ("stripe.params._tax_rate_create_params", False), + "TaxRateListParams": ("stripe.params._tax_rate_list_params", False), + "TaxRateListParamsCreated": ("stripe.params._tax_rate_list_params", False), + "TaxRateModifyParams": ("stripe.params._tax_rate_modify_params", False), + "TaxRateRetrieveParams": ( + "stripe.params._tax_rate_retrieve_params", + False, + ), + "TaxRateUpdateParams": ("stripe.params._tax_rate_update_params", False), + "TokenCreateParams": ("stripe.params._token_create_params", False), + "TokenCreateParamsAccount": ("stripe.params._token_create_params", False), + "TokenCreateParamsAccountCompany": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyAddress": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyAddressKana": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyAddressKanji": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyDirectorshipDeclaration": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyOwnershipDeclaration": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyRegistrationDate": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyRepresentativeDeclaration": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyVerification": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountCompanyVerificationDocument": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividual": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualAddress": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualAddressKana": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualAddressKanji": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualDob": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualRegisteredAddress": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualRelationship": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualVerification": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualVerificationAdditionalDocument": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsAccountIndividualVerificationDocument": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsBankAccount": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsCard": ("stripe.params._token_create_params", False), + "TokenCreateParamsCardNetworks": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsCvcUpdate": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPerson": ("stripe.params._token_create_params", False), + "TokenCreateParamsPersonAdditionalTosAcceptances": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonAdditionalTosAcceptancesAccount": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonAddress": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonAddressKana": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonAddressKanji": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonDob": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonDocuments": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonDocumentsCompanyAuthorization": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonDocumentsPassport": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonDocumentsVisa": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonRegisteredAddress": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonRelationship": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonUsCfpbData": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonUsCfpbDataEthnicityDetails": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonUsCfpbDataRaceDetails": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonVerification": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonVerificationAdditionalDocument": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPersonVerificationDocument": ( + "stripe.params._token_create_params", + False, + ), + "TokenCreateParamsPii": ("stripe.params._token_create_params", False), + "TokenRetrieveParams": ("stripe.params._token_retrieve_params", False), + "TopupCancelParams": ("stripe.params._topup_cancel_params", False), + "TopupCreateParams": ("stripe.params._topup_create_params", False), + "TopupListParams": ("stripe.params._topup_list_params", False), + "TopupListParamsAmount": ("stripe.params._topup_list_params", False), + "TopupListParamsCreated": ("stripe.params._topup_list_params", False), + "TopupModifyParams": ("stripe.params._topup_modify_params", False), + "TopupRetrieveParams": ("stripe.params._topup_retrieve_params", False), + "TopupUpdateParams": ("stripe.params._topup_update_params", False), + "TransferCreateParams": ("stripe.params._transfer_create_params", False), + "TransferCreateReversalParams": ( + "stripe.params._transfer_create_reversal_params", + False, + ), + "TransferListParams": ("stripe.params._transfer_list_params", False), + "TransferListParamsCreated": ( + "stripe.params._transfer_list_params", + False, + ), + "TransferListReversalsParams": ( + "stripe.params._transfer_list_reversals_params", + False, + ), + "TransferModifyParams": ("stripe.params._transfer_modify_params", False), + "TransferModifyReversalParams": ( + "stripe.params._transfer_modify_reversal_params", + False, + ), + "TransferRetrieveParams": ( + "stripe.params._transfer_retrieve_params", + False, + ), + "TransferRetrieveReversalParams": ( + "stripe.params._transfer_retrieve_reversal_params", + False, + ), + "TransferReversalCreateParams": ( + "stripe.params._transfer_reversal_create_params", + False, + ), + "TransferReversalListParams": ( + "stripe.params._transfer_reversal_list_params", + False, + ), + "TransferReversalRetrieveParams": ( + "stripe.params._transfer_reversal_retrieve_params", + False, + ), + "TransferReversalUpdateParams": ( + "stripe.params._transfer_reversal_update_params", + False, + ), + "TransferUpdateParams": ("stripe.params._transfer_update_params", False), + "WebhookEndpointCreateParams": ( + "stripe.params._webhook_endpoint_create_params", + False, + ), + "WebhookEndpointDeleteParams": ( + "stripe.params._webhook_endpoint_delete_params", + False, + ), + "WebhookEndpointListParams": ( + "stripe.params._webhook_endpoint_list_params", + False, + ), + "WebhookEndpointModifyParams": ( + "stripe.params._webhook_endpoint_modify_params", + False, + ), + "WebhookEndpointRetrieveParams": ( + "stripe.params._webhook_endpoint_retrieve_params", + False, + ), + "WebhookEndpointUpdateParams": ( + "stripe.params._webhook_endpoint_update_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..939c6557 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_list_params.cpython-312.pyc new file mode 100644 index 00000000..cedf3c25 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..2b4b3999 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_update_params.cpython-312.pyc new file mode 100644 index 00000000..e96703d8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_capability_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_external_account_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_external_account_params.cpython-312.pyc new file mode 100644 index 00000000..e983f4d4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_external_account_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_login_link_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_login_link_params.cpython-312.pyc new file mode 100644 index 00000000..ef39f48e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_login_link_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_params.cpython-312.pyc new file mode 100644 index 00000000..67fc2d0c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_person_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_person_params.cpython-312.pyc new file mode 100644 index 00000000..eae81e09 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_create_person_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_external_account_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_external_account_params.cpython-312.pyc new file mode 100644 index 00000000..6d6c40a1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_external_account_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_params.cpython-312.pyc new file mode 100644 index 00000000..7beb8560 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_person_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_person_params.cpython-312.pyc new file mode 100644 index 00000000..7431cbec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_delete_person_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_create_params.cpython-312.pyc new file mode 100644 index 00000000..71b07c4f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_delete_params.cpython-312.pyc new file mode 100644 index 00000000..7978b161 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_list_params.cpython-312.pyc new file mode 100644 index 00000000..29ed63ae Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..28c58a7c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_update_params.cpython-312.pyc new file mode 100644 index 00000000..ec513efe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_external_account_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_link_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_link_create_params.cpython-312.pyc new file mode 100644 index 00000000..844bb653 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_link_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_capabilities_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_capabilities_params.cpython-312.pyc new file mode 100644 index 00000000..977f6edd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_capabilities_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_external_accounts_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_external_accounts_params.cpython-312.pyc new file mode 100644 index 00000000..31ca82ff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_external_accounts_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_params.cpython-312.pyc new file mode 100644 index 00000000..c94768fe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_persons_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_persons_params.cpython-312.pyc new file mode 100644 index 00000000..e567150d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_list_persons_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_login_link_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_login_link_create_params.cpython-312.pyc new file mode 100644 index 00000000..1b2fc573 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_login_link_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_capability_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_capability_params.cpython-312.pyc new file mode 100644 index 00000000..a563e945 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_capability_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_external_account_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_external_account_params.cpython-312.pyc new file mode 100644 index 00000000..1a26b64b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_external_account_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_person_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_person_params.cpython-312.pyc new file mode 100644 index 00000000..f839a453 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_modify_person_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_create_params.cpython-312.pyc new file mode 100644 index 00000000..f63be03d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_delete_params.cpython-312.pyc new file mode 100644 index 00000000..5a3def71 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_list_params.cpython-312.pyc new file mode 100644 index 00000000..567a3cd7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..00d328b0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_update_params.cpython-312.pyc new file mode 100644 index 00000000..c2113102 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_person_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_persons_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_persons_params.cpython-312.pyc new file mode 100644 index 00000000..01829090 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_persons_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_reject_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_reject_params.cpython-312.pyc new file mode 100644 index 00000000..eb0553f8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_reject_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_capability_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_capability_params.cpython-312.pyc new file mode 100644 index 00000000..55b85456 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_capability_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_current_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_current_params.cpython-312.pyc new file mode 100644 index 00000000..8f2c65d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_current_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_external_account_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_external_account_params.cpython-312.pyc new file mode 100644 index 00000000..0e31792a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_external_account_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..65a4462a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_person_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_person_params.cpython-312.pyc new file mode 100644 index 00000000..df4fe198 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_retrieve_person_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_session_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_session_create_params.cpython-312.pyc new file mode 100644 index 00000000..c7af6e0e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_session_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_update_params.cpython-312.pyc new file mode 100644 index 00000000..cba92611 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_account_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_create_params.cpython-312.pyc new file mode 100644 index 00000000..06b9db3c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_delete_params.cpython-312.pyc new file mode 100644 index 00000000..a3e77b42 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_list_params.cpython-312.pyc new file mode 100644 index 00000000..3f523652 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..38c28517 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_apple_pay_domain_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_create_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_create_refund_params.cpython-312.pyc new file mode 100644 index 00000000..7920a9d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_create_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_list_params.cpython-312.pyc new file mode 100644 index 00000000..90cdf50c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_list_refunds_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_list_refunds_params.cpython-312.pyc new file mode 100644 index 00000000..64e7dd5d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_list_refunds_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_modify_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_modify_refund_params.cpython-312.pyc new file mode 100644 index 00000000..be30d0e5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_modify_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_create_params.cpython-312.pyc new file mode 100644 index 00000000..d3e6ab1f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_list_params.cpython-312.pyc new file mode 100644 index 00000000..e4746f6d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_params.cpython-312.pyc new file mode 100644 index 00000000..57b735ac Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..c2f4225d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_update_params.cpython-312.pyc new file mode 100644 index 00000000..5666a3ef Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_refund_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..817a2b8d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_retrieve_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_retrieve_refund_params.cpython-312.pyc new file mode 100644 index 00000000..889c2436 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_application_fee_retrieve_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..938914ff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_modify_params.cpython-312.pyc new file mode 100644 index 00000000..39a95684 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..2c4190e4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_update_params.cpython-312.pyc new file mode 100644 index 00000000..536bc96d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_settings_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..ee198ec9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..42910137 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_balance_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_bank_account_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_bank_account_delete_params.cpython-312.pyc new file mode 100644 index 00000000..e1c684f6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_bank_account_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_card_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_card_delete_params.cpython-312.pyc new file mode 100644 index 00000000..ef040ff6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_card_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_capture_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_capture_params.cpython-312.pyc new file mode 100644 index 00000000..20b2476d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_capture_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_create_params.cpython-312.pyc new file mode 100644 index 00000000..d3bd64f6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_list_params.cpython-312.pyc new file mode 100644 index 00000000..7af6ea4d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_list_refunds_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_list_refunds_params.cpython-312.pyc new file mode 100644 index 00000000..08d709a7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_list_refunds_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_modify_params.cpython-312.pyc new file mode 100644 index 00000000..868d4760 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..19432988 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_retrieve_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_retrieve_refund_params.cpython-312.pyc new file mode 100644 index 00000000..7d1c7bbf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_retrieve_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_search_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_search_params.cpython-312.pyc new file mode 100644 index 00000000..782be563 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_search_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_update_params.cpython-312.pyc new file mode 100644 index 00000000..35fced24 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_charge_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_confirmation_token_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_confirmation_token_create_params.cpython-312.pyc new file mode 100644 index 00000000..4ad07ec4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_confirmation_token_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_confirmation_token_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_confirmation_token_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..9cc6371e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_confirmation_token_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_country_spec_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_country_spec_list_params.cpython-312.pyc new file mode 100644 index 00000000..3c5dfb6f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_country_spec_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_country_spec_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_country_spec_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f11a4936 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_country_spec_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_create_params.cpython-312.pyc new file mode 100644 index 00000000..6769152b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_delete_params.cpython-312.pyc new file mode 100644 index 00000000..73d67f3e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_list_params.cpython-312.pyc new file mode 100644 index 00000000..98d3a45a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_modify_params.cpython-312.pyc new file mode 100644 index 00000000..4d07f2bf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..88fb187b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_update_params.cpython-312.pyc new file mode 100644 index 00000000..a23ed534 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_coupon_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_create_params.cpython-312.pyc new file mode 100644 index 00000000..a9779c5c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..e9233027 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_list_lines_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_list_lines_params.cpython-312.pyc new file mode 100644 index 00000000..d24f4739 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_list_lines_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_list_params.cpython-312.pyc new file mode 100644 index 00000000..3da895fd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_modify_params.cpython-312.pyc new file mode 100644 index 00000000..91b04ecc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_lines_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_lines_list_params.cpython-312.pyc new file mode 100644 index 00000000..a7dea764 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_lines_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_lines_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_lines_params.cpython-312.pyc new file mode 100644 index 00000000..926df283 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_lines_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_params.cpython-312.pyc new file mode 100644 index 00000000..88476e2b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_preview_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..014e440c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_update_params.cpython-312.pyc new file mode 100644 index 00000000..30c90378 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_void_credit_note_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_void_credit_note_params.cpython-312.pyc new file mode 100644 index 00000000..7b425e94 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_credit_note_void_credit_note_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_create_params.cpython-312.pyc new file mode 100644 index 00000000..9a308338 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..b03e32e7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..6fa411b0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_update_params.cpython-312.pyc new file mode 100644 index 00000000..e57a793a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_balance_transaction_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..6fea4203 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..e6a864a4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f595f113 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_update_params.cpython-312.pyc new file mode 100644 index 00000000..63b55b55 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_cash_balance_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_balance_transaction_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_balance_transaction_params.cpython-312.pyc new file mode 100644 index 00000000..8f1fc2e6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_balance_transaction_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_funding_instructions_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_funding_instructions_params.cpython-312.pyc new file mode 100644 index 00000000..19b1f02c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_funding_instructions_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_params.cpython-312.pyc new file mode 100644 index 00000000..65a1354c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_source_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_source_params.cpython-312.pyc new file mode 100644 index 00000000..6c3fb0e9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_source_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_tax_id_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_tax_id_params.cpython-312.pyc new file mode 100644 index 00000000..ca06c238 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_create_tax_id_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_discount_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_discount_params.cpython-312.pyc new file mode 100644 index 00000000..1fae35cf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_discount_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_params.cpython-312.pyc new file mode 100644 index 00000000..a452a0b6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_source_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_source_params.cpython-312.pyc new file mode 100644 index 00000000..910faaec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_source_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_tax_id_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_tax_id_params.cpython-312.pyc new file mode 100644 index 00000000..78260a5d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_delete_tax_id_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc new file mode 100644 index 00000000..0aa1e9d5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_funding_instructions_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_funding_instructions_create_params.cpython-312.pyc new file mode 100644 index 00000000..114101f6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_funding_instructions_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_balance_transactions_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_balance_transactions_params.cpython-312.pyc new file mode 100644 index 00000000..6f04b0ff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_balance_transactions_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_cash_balance_transactions_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_cash_balance_transactions_params.cpython-312.pyc new file mode 100644 index 00000000..ae058f00 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_cash_balance_transactions_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_params.cpython-312.pyc new file mode 100644 index 00000000..4302460e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_payment_methods_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_payment_methods_params.cpython-312.pyc new file mode 100644 index 00000000..450d4890 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_payment_methods_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_sources_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_sources_params.cpython-312.pyc new file mode 100644 index 00000000..3d0eb10c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_sources_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_tax_ids_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_tax_ids_params.cpython-312.pyc new file mode 100644 index 00000000..96b48932 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_list_tax_ids_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_balance_transaction_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_balance_transaction_params.cpython-312.pyc new file mode 100644 index 00000000..42b9c748 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_balance_transaction_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_cash_balance_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_cash_balance_params.cpython-312.pyc new file mode 100644 index 00000000..2a418afe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_cash_balance_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_params.cpython-312.pyc new file mode 100644 index 00000000..45595bb8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_source_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_source_params.cpython-312.pyc new file mode 100644 index 00000000..0b014703 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_modify_source_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_method_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_method_list_params.cpython-312.pyc new file mode 100644 index 00000000..89c1654c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_method_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_method_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_method_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..0bec3d8e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_method_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_create_params.cpython-312.pyc new file mode 100644 index 00000000..0cb73a90 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_delete_params.cpython-312.pyc new file mode 100644 index 00000000..b62f1432 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_list_params.cpython-312.pyc new file mode 100644 index 00000000..471d7036 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..0480bd39 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_update_params.cpython-312.pyc new file mode 100644 index 00000000..16660372 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_verify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_verify_params.cpython-312.pyc new file mode 100644 index 00000000..59187b7b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_payment_source_verify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_balance_transaction_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_balance_transaction_params.cpython-312.pyc new file mode 100644 index 00000000..4c6f5e09 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_balance_transaction_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_cash_balance_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_cash_balance_params.cpython-312.pyc new file mode 100644 index 00000000..8a0f888a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_cash_balance_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_cash_balance_transaction_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_cash_balance_transaction_params.cpython-312.pyc new file mode 100644 index 00000000..8567b856 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_cash_balance_transaction_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..9f4df9eb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_payment_method_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_payment_method_params.cpython-312.pyc new file mode 100644 index 00000000..38fc8a4e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_payment_method_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_source_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_source_params.cpython-312.pyc new file mode 100644 index 00000000..25786caa Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_source_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_tax_id_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_tax_id_params.cpython-312.pyc new file mode 100644 index 00000000..e71006d6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_retrieve_tax_id_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_search_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_search_params.cpython-312.pyc new file mode 100644 index 00000000..a3b32181 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_search_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_session_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_session_create_params.cpython-312.pyc new file mode 100644 index 00000000..89e34e64 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_session_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_create_params.cpython-312.pyc new file mode 100644 index 00000000..5545da25 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_delete_params.cpython-312.pyc new file mode 100644 index 00000000..4b543f0e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_list_params.cpython-312.pyc new file mode 100644 index 00000000..60d79507 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..d9068284 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_tax_id_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_update_params.cpython-312.pyc new file mode 100644 index 00000000..1b9230b7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_customer_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_close_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_close_params.cpython-312.pyc new file mode 100644 index 00000000..a3b6c56a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_close_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_list_params.cpython-312.pyc new file mode 100644 index 00000000..857698c0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_modify_params.cpython-312.pyc new file mode 100644 index 00000000..24b2cb3a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..e5538cb1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_update_params.cpython-312.pyc new file mode 100644 index 00000000..0046b318 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_dispute_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_ephemeral_key_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_ephemeral_key_create_params.cpython-312.pyc new file mode 100644 index 00000000..42a41e78 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_ephemeral_key_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_ephemeral_key_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_ephemeral_key_delete_params.cpython-312.pyc new file mode 100644 index 00000000..80347eef Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_ephemeral_key_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_event_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_event_list_params.cpython-312.pyc new file mode 100644 index 00000000..1a481f09 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_event_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_event_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_event_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..60f816b0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_event_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_exchange_rate_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_exchange_rate_list_params.cpython-312.pyc new file mode 100644 index 00000000..e60fa989 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_exchange_rate_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_exchange_rate_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_exchange_rate_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..b3a99f30 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_exchange_rate_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_create_params.cpython-312.pyc new file mode 100644 index 00000000..8a0602aa Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_create_params.cpython-312.pyc new file mode 100644 index 00000000..0b1a4515 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_list_params.cpython-312.pyc new file mode 100644 index 00000000..cf39eac4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_modify_params.cpython-312.pyc new file mode 100644 index 00000000..cbe932fc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..1d5ea80a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_update_params.cpython-312.pyc new file mode 100644 index 00000000..d2b712ab Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_link_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_list_params.cpython-312.pyc new file mode 100644 index 00000000..4cc5649f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..9cfc7fff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_file_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_add_lines_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_add_lines_params.cpython-312.pyc new file mode 100644 index 00000000..548d3713 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_add_lines_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_attach_payment_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_attach_payment_params.cpython-312.pyc new file mode 100644 index 00000000..3991772b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_attach_payment_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_create_params.cpython-312.pyc new file mode 100644 index 00000000..b954f711 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_create_preview_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_create_preview_params.cpython-312.pyc new file mode 100644 index 00000000..b824383d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_create_preview_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_delete_params.cpython-312.pyc new file mode 100644 index 00000000..aac132c6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_finalize_invoice_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_finalize_invoice_params.cpython-312.pyc new file mode 100644 index 00000000..833f6a69 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_finalize_invoice_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_create_params.cpython-312.pyc new file mode 100644 index 00000000..692d0fb6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_delete_params.cpython-312.pyc new file mode 100644 index 00000000..12e8a58b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..237fbe87 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_modify_params.cpython-312.pyc new file mode 100644 index 00000000..98607ff5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..6c4e13ba Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_update_params.cpython-312.pyc new file mode 100644 index 00000000..ecabe8dc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_item_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..7f93cb05 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_line_item_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_line_item_update_params.cpython-312.pyc new file mode 100644 index 00000000..15964d9e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_line_item_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_list_lines_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_list_lines_params.cpython-312.pyc new file mode 100644 index 00000000..f9204796 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_list_lines_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_list_params.cpython-312.pyc new file mode 100644 index 00000000..463d2b89 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_mark_uncollectible_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_mark_uncollectible_params.cpython-312.pyc new file mode 100644 index 00000000..009f9a9a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_mark_uncollectible_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_modify_params.cpython-312.pyc new file mode 100644 index 00000000..f2126c99 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_pay_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_pay_params.cpython-312.pyc new file mode 100644 index 00000000..56acf492 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_pay_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_payment_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_payment_list_params.cpython-312.pyc new file mode 100644 index 00000000..5967f84b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_payment_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_payment_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_payment_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..ffd2a828 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_payment_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_remove_lines_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_remove_lines_params.cpython-312.pyc new file mode 100644 index 00000000..4be4e964 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_remove_lines_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_archive_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_archive_params.cpython-312.pyc new file mode 100644 index 00000000..3b84dbc9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_archive_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_list_params.cpython-312.pyc new file mode 100644 index 00000000..c1d016ff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..cd244a9c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_unarchive_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_unarchive_params.cpython-312.pyc new file mode 100644 index 00000000..68365ca4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_rendering_template_unarchive_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..a72c5b15 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_search_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_search_params.cpython-312.pyc new file mode 100644 index 00000000..db23a9e8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_search_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_send_invoice_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_send_invoice_params.cpython-312.pyc new file mode 100644 index 00000000..4cc3b17c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_send_invoice_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_update_lines_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_update_lines_params.cpython-312.pyc new file mode 100644 index 00000000..7f25c109 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_update_lines_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_update_params.cpython-312.pyc new file mode 100644 index 00000000..af6f5c03 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_void_invoice_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_void_invoice_params.cpython-312.pyc new file mode 100644 index 00000000..4ad4278b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_invoice_void_invoice_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_mandate_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_mandate_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..67d9bdca Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_mandate_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_attempt_record_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_attempt_record_list_params.cpython-312.pyc new file mode 100644 index 00000000..5033351d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_attempt_record_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_attempt_record_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_attempt_record_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..d38cd133 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_attempt_record_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_amount_details_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_amount_details_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..407ed1ae Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_amount_details_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_apply_customer_balance_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_apply_customer_balance_params.cpython-312.pyc new file mode 100644 index 00000000..74e01714 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_apply_customer_balance_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..6ba0cdb9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_capture_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_capture_params.cpython-312.pyc new file mode 100644 index 00000000..4051ba6b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_capture_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_confirm_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_confirm_params.cpython-312.pyc new file mode 100644 index 00000000..73ee2dec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_confirm_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_create_params.cpython-312.pyc new file mode 100644 index 00000000..c5321f96 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_increment_authorization_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_increment_authorization_params.cpython-312.pyc new file mode 100644 index 00000000..bf3fab4f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_increment_authorization_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_list_amount_details_line_items_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_list_amount_details_line_items_params.cpython-312.pyc new file mode 100644 index 00000000..40d8f5e3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_list_amount_details_line_items_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_list_params.cpython-312.pyc new file mode 100644 index 00000000..40cd0787 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_modify_params.cpython-312.pyc new file mode 100644 index 00000000..2b2d9ed0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..4096b01e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_search_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_search_params.cpython-312.pyc new file mode 100644 index 00000000..d010cfb1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_search_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_update_params.cpython-312.pyc new file mode 100644 index 00000000..8e596d0d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_verify_microdeposits_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_verify_microdeposits_params.cpython-312.pyc new file mode 100644 index 00000000..461af855 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_intent_verify_microdeposits_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_create_params.cpython-312.pyc new file mode 100644 index 00000000..c1c7f192 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..965923b1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_list_line_items_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_list_line_items_params.cpython-312.pyc new file mode 100644 index 00000000..b2ad6865 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_list_line_items_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_list_params.cpython-312.pyc new file mode 100644 index 00000000..bd37f539 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_modify_params.cpython-312.pyc new file mode 100644 index 00000000..8fa05299 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..22e19fce Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_update_params.cpython-312.pyc new file mode 100644 index 00000000..e5a483f1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_link_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_attach_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_attach_params.cpython-312.pyc new file mode 100644 index 00000000..a1c3e5ee Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_attach_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_create_params.cpython-312.pyc new file mode 100644 index 00000000..6603fe1f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_list_params.cpython-312.pyc new file mode 100644 index 00000000..06771f8e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_modify_params.cpython-312.pyc new file mode 100644 index 00000000..66a1dfc2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f319fdc1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_update_params.cpython-312.pyc new file mode 100644 index 00000000..d0b17ef2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_configuration_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_create_params.cpython-312.pyc new file mode 100644 index 00000000..84513042 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_detach_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_detach_params.cpython-312.pyc new file mode 100644 index 00000000..52fcf9df Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_detach_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_create_params.cpython-312.pyc new file mode 100644 index 00000000..e3a407d7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_list_params.cpython-312.pyc new file mode 100644 index 00000000..9696925f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_modify_params.cpython-312.pyc new file mode 100644 index 00000000..5dc45ec6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..6100f7f1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_update_params.cpython-312.pyc new file mode 100644 index 00000000..75bf0b30 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_validate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_validate_params.cpython-312.pyc new file mode 100644 index 00000000..3039c4ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_domain_validate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_list_params.cpython-312.pyc new file mode 100644 index 00000000..0cbf3e37 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_modify_params.cpython-312.pyc new file mode 100644 index 00000000..045ecc30 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..9e968543 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_update_params.cpython-312.pyc new file mode 100644 index 00000000..e5673955 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_method_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_canceled_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_canceled_params.cpython-312.pyc new file mode 100644 index 00000000..04614752 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_canceled_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_failed_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_failed_params.cpython-312.pyc new file mode 100644 index 00000000..677a50e0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_failed_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_guaranteed_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_guaranteed_params.cpython-312.pyc new file mode 100644 index 00000000..ea9a08ad Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_guaranteed_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_informational_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_informational_params.cpython-312.pyc new file mode 100644 index 00000000..3fcc1f33 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_informational_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_params.cpython-312.pyc new file mode 100644 index 00000000..f149c8e9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_attempt_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_params.cpython-312.pyc new file mode 100644 index 00000000..235dff48 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_payment_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_refund_params.cpython-312.pyc new file mode 100644 index 00000000..03699551 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_report_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..86af5a09 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payment_record_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..bbd74065 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_create_params.cpython-312.pyc new file mode 100644 index 00000000..5930b9ea Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_list_params.cpython-312.pyc new file mode 100644 index 00000000..0ebd2648 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_modify_params.cpython-312.pyc new file mode 100644 index 00000000..a09711db Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..828e69dd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_reverse_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_reverse_params.cpython-312.pyc new file mode 100644 index 00000000..45ab5d98 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_reverse_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_update_params.cpython-312.pyc new file mode 100644 index 00000000..bb71c13b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_payout_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_create_params.cpython-312.pyc new file mode 100644 index 00000000..6a6faa6c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_delete_params.cpython-312.pyc new file mode 100644 index 00000000..965b493f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_list_params.cpython-312.pyc new file mode 100644 index 00000000..4cc17a6b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_modify_params.cpython-312.pyc new file mode 100644 index 00000000..0d762a4d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..1ec31644 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_update_params.cpython-312.pyc new file mode 100644 index 00000000..a16de5a3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_plan_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_create_params.cpython-312.pyc new file mode 100644 index 00000000..9ed8e2b4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_list_params.cpython-312.pyc new file mode 100644 index 00000000..d6c21ea2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_modify_params.cpython-312.pyc new file mode 100644 index 00000000..e4fd0920 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..26e6d320 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_search_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_search_params.cpython-312.pyc new file mode 100644 index 00000000..57651fc9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_search_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_update_params.cpython-312.pyc new file mode 100644 index 00000000..4e934811 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_price_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_create_feature_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_create_feature_params.cpython-312.pyc new file mode 100644 index 00000000..e0dc7dc6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_create_feature_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_create_params.cpython-312.pyc new file mode 100644 index 00000000..e1e64848 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_delete_feature_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_delete_feature_params.cpython-312.pyc new file mode 100644 index 00000000..a1cd20e3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_delete_feature_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_delete_params.cpython-312.pyc new file mode 100644 index 00000000..320758b2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_create_params.cpython-312.pyc new file mode 100644 index 00000000..686b68f9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_delete_params.cpython-312.pyc new file mode 100644 index 00000000..1095a270 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_list_params.cpython-312.pyc new file mode 100644 index 00000000..506b1c97 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..53523f00 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_feature_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_list_features_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_list_features_params.cpython-312.pyc new file mode 100644 index 00000000..0be90105 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_list_features_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_list_params.cpython-312.pyc new file mode 100644 index 00000000..69ecb288 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_modify_params.cpython-312.pyc new file mode 100644 index 00000000..2bde8dd3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_retrieve_feature_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_retrieve_feature_params.cpython-312.pyc new file mode 100644 index 00000000..0be6d57e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_retrieve_feature_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..2feb0b9a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_search_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_search_params.cpython-312.pyc new file mode 100644 index 00000000..ba1dac80 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_search_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_update_params.cpython-312.pyc new file mode 100644 index 00000000..22455ddf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_product_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_create_params.cpython-312.pyc new file mode 100644 index 00000000..ff35361c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_list_params.cpython-312.pyc new file mode 100644 index 00000000..304417c0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_modify_params.cpython-312.pyc new file mode 100644 index 00000000..f6e4ca21 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f456be24 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_update_params.cpython-312.pyc new file mode 100644 index 00000000..448d19f3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_promotion_code_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_accept_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_accept_params.cpython-312.pyc new file mode 100644 index 00000000..e24f8f0f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_accept_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..565c0d4b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_computed_upfront_line_items_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_computed_upfront_line_items_list_params.cpython-312.pyc new file mode 100644 index 00000000..94ee7731 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_computed_upfront_line_items_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_create_params.cpython-312.pyc new file mode 100644 index 00000000..4b17a836 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_finalize_quote_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_finalize_quote_params.cpython-312.pyc new file mode 100644 index 00000000..b6cb1d86 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_finalize_quote_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..7c93bee1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_computed_upfront_line_items_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_computed_upfront_line_items_params.cpython-312.pyc new file mode 100644 index 00000000..82b8df0d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_computed_upfront_line_items_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_line_items_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_line_items_params.cpython-312.pyc new file mode 100644 index 00000000..8a839d3e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_line_items_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_params.cpython-312.pyc new file mode 100644 index 00000000..99acfa18 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_modify_params.cpython-312.pyc new file mode 100644 index 00000000..49d6bcac Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_pdf_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_pdf_params.cpython-312.pyc new file mode 100644 index 00000000..bd2cf60d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_pdf_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..765e4351 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_update_params.cpython-312.pyc new file mode 100644 index 00000000..628bf6c2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_quote_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..65bb4ca4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_create_params.cpython-312.pyc new file mode 100644 index 00000000..65b0e259 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_expire_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_expire_params.cpython-312.pyc new file mode 100644 index 00000000..4d0320bd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_expire_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_list_params.cpython-312.pyc new file mode 100644 index 00000000..4a63f18f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_modify_params.cpython-312.pyc new file mode 100644 index 00000000..4c2935cf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..843044ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_update_params.cpython-312.pyc new file mode 100644 index 00000000..e77df7c6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_refund_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_approve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_approve_params.cpython-312.pyc new file mode 100644 index 00000000..04ad20fc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_approve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_list_params.cpython-312.pyc new file mode 100644 index 00000000..26705460 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..79c147e1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_review_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_attempt_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_attempt_list_params.cpython-312.pyc new file mode 100644 index 00000000..48a288ba Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_attempt_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..cd203dbb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_confirm_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_confirm_params.cpython-312.pyc new file mode 100644 index 00000000..4c4fc5ec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_confirm_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_create_params.cpython-312.pyc new file mode 100644 index 00000000..1ef754a4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_list_params.cpython-312.pyc new file mode 100644 index 00000000..dd1a4bb6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_modify_params.cpython-312.pyc new file mode 100644 index 00000000..d1be45ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..b4a16db1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_update_params.cpython-312.pyc new file mode 100644 index 00000000..d6932f95 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_verify_microdeposits_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_verify_microdeposits_params.cpython-312.pyc new file mode 100644 index 00000000..9e717fd0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_setup_intent_verify_microdeposits_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_create_params.cpython-312.pyc new file mode 100644 index 00000000..ab65ba12 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_list_params.cpython-312.pyc new file mode 100644 index 00000000..baaf7134 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_modify_params.cpython-312.pyc new file mode 100644 index 00000000..e7a6a291 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..8e5f7741 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_update_params.cpython-312.pyc new file mode 100644 index 00000000..1da3cf2d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_shipping_rate_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_create_params.cpython-312.pyc new file mode 100644 index 00000000..3a5cc531 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_detach_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_detach_params.cpython-312.pyc new file mode 100644 index 00000000..14ba607b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_detach_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_list_source_transactions_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_list_source_transactions_params.cpython-312.pyc new file mode 100644 index 00000000..f5c55dda Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_list_source_transactions_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_modify_params.cpython-312.pyc new file mode 100644 index 00000000..1055d9f1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..dacdc524 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..fdb0e93e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_update_params.cpython-312.pyc new file mode 100644 index 00000000..6b01bd10 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_verify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_verify_params.cpython-312.pyc new file mode 100644 index 00000000..326dbaec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_source_verify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..ada2b7bf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_create_params.cpython-312.pyc new file mode 100644 index 00000000..ef494e66 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_delete_discount_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_delete_discount_params.cpython-312.pyc new file mode 100644 index 00000000..54590afe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_delete_discount_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_create_params.cpython-312.pyc new file mode 100644 index 00000000..cbea19ce Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_delete_params.cpython-312.pyc new file mode 100644 index 00000000..018e9fce Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..96705327 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_modify_params.cpython-312.pyc new file mode 100644 index 00000000..0524b2df Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..ada077f2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_update_params.cpython-312.pyc new file mode 100644 index 00000000..af82d3eb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_item_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_list_params.cpython-312.pyc new file mode 100644 index 00000000..bf5fa3a0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_migrate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_migrate_params.cpython-312.pyc new file mode 100644 index 00000000..db63d3f3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_migrate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_modify_params.cpython-312.pyc new file mode 100644 index 00000000..16b3e88b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_resume_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_resume_params.cpython-312.pyc new file mode 100644 index 00000000..71ce66ff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_resume_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..679e1ab0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..7b8fd3ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_create_params.cpython-312.pyc new file mode 100644 index 00000000..8d799842 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_list_params.cpython-312.pyc new file mode 100644 index 00000000..79ad0a1a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_modify_params.cpython-312.pyc new file mode 100644 index 00000000..dd5b891d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_release_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_release_params.cpython-312.pyc new file mode 100644 index 00000000..9e2c2709 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_release_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..572eb1f5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_update_params.cpython-312.pyc new file mode 100644 index 00000000..22c028eb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_schedule_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_search_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_search_params.cpython-312.pyc new file mode 100644 index 00000000..e8cf6334 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_search_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_update_params.cpython-312.pyc new file mode 100644 index 00000000..2cb483ec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_subscription_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_code_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_code_list_params.cpython-312.pyc new file mode 100644 index 00000000..952b7029 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_code_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_code_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_code_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..4bfaec57 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_code_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_create_params.cpython-312.pyc new file mode 100644 index 00000000..e25e19f8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_delete_params.cpython-312.pyc new file mode 100644 index 00000000..144320ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_list_params.cpython-312.pyc new file mode 100644 index 00000000..fbf36a98 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..fe19c9d4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_id_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_create_params.cpython-312.pyc new file mode 100644 index 00000000..964b4e53 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_list_params.cpython-312.pyc new file mode 100644 index 00000000..9a6902b1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_modify_params.cpython-312.pyc new file mode 100644 index 00000000..9e8cc545 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..2fc9a28f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_update_params.cpython-312.pyc new file mode 100644 index 00000000..2c37d681 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_tax_rate_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_token_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_token_create_params.cpython-312.pyc new file mode 100644 index 00000000..5569c564 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_token_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_token_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_token_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..0a40c7b3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_token_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..6e27a55f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_create_params.cpython-312.pyc new file mode 100644 index 00000000..2c6d46b1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_list_params.cpython-312.pyc new file mode 100644 index 00000000..6d6bacff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_modify_params.cpython-312.pyc new file mode 100644 index 00000000..93306b97 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..2f535ae4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_update_params.cpython-312.pyc new file mode 100644 index 00000000..7bca0c94 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_topup_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_create_params.cpython-312.pyc new file mode 100644 index 00000000..b9c0125e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_create_reversal_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_create_reversal_params.cpython-312.pyc new file mode 100644 index 00000000..a0094ce7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_create_reversal_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_list_params.cpython-312.pyc new file mode 100644 index 00000000..3cb557e4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_list_reversals_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_list_reversals_params.cpython-312.pyc new file mode 100644 index 00000000..e68e5e46 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_list_reversals_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_modify_params.cpython-312.pyc new file mode 100644 index 00000000..dc5c2af5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_modify_reversal_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_modify_reversal_params.cpython-312.pyc new file mode 100644 index 00000000..347cec7c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_modify_reversal_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..aed9831e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_retrieve_reversal_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_retrieve_reversal_params.cpython-312.pyc new file mode 100644 index 00000000..35fdf330 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_retrieve_reversal_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_create_params.cpython-312.pyc new file mode 100644 index 00000000..4664829f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_list_params.cpython-312.pyc new file mode 100644 index 00000000..5d9c5b5e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..582777fd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_update_params.cpython-312.pyc new file mode 100644 index 00000000..c63f16fc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_reversal_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_update_params.cpython-312.pyc new file mode 100644 index 00000000..a598c732 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_transfer_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_create_params.cpython-312.pyc new file mode 100644 index 00000000..35f11987 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_delete_params.cpython-312.pyc new file mode 100644 index 00000000..d4ac168e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_list_params.cpython-312.pyc new file mode 100644 index 00000000..ce29c28b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_modify_params.cpython-312.pyc new file mode 100644 index 00000000..fddf63eb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..0c1dd788 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_update_params.cpython-312.pyc new file mode 100644 index 00000000..c12b7f27 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/__pycache__/_webhook_endpoint_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_list_params.py new file mode 100644 index 00000000..efeeb3cb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_list_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountCapabilityListParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_retrieve_params.py new file mode 100644 index 00000000..c6ac87f3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountCapabilityRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_update_params.py new file mode 100644 index 00000000..3c323d67 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_capability_update_params.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountCapabilityUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + requested: NotRequired[bool] + """ + To request a new capability for an account, pass true. There can be a delay before the requested capability becomes active. If the capability has any activation requirements, the response includes them in the `requirements` arrays. + + If a capability isn't permanent, you can remove it from the account by passing false. Some capabilities are permanent after they've been requested. Attempting to remove a permanent capability returns an error. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_external_account_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_external_account_params.py new file mode 100644 index 00000000..82ccbfb5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_external_account_params.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountCreateExternalAccountParams(RequestOptions): + default_for_currency: NotRequired[bool] + """ + When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + external_account: Union[ + str, + "AccountCreateExternalAccountParamsCard", + "AccountCreateExternalAccountParamsBankAccount", + "AccountCreateExternalAccountParamsCardToken", + ] + """ + A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js) or a dictionary containing a user's external account details (with the options shown below). Please refer to full [documentation](https://stripe.com/docs/api/external_accounts) instead. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + + +class AccountCreateExternalAccountParamsCard(TypedDict): + object: Literal["card"] + address_city: NotRequired[str] + address_country: NotRequired[str] + address_line1: NotRequired[str] + address_line2: NotRequired[str] + address_state: NotRequired[str] + address_zip: NotRequired[str] + currency: NotRequired[str] + cvc: NotRequired[str] + exp_month: int + exp_year: int + name: NotRequired[str] + number: str + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + + +class AccountCreateExternalAccountParamsBankAccount(TypedDict): + object: Literal["bank_account"] + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account.This field is required when attaching the bank account to a `Customer` object. + """ + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + The type of entity that holds the account. It can be `company` or `individual`. This field is required when attaching the bank account to a `Customer` object. + """ + account_number: str + """ + The account number for the bank account, in string form. Must be a checking account. + """ + country: str + """ + The country in which the bank account is located. + """ + currency: NotRequired[str] + """ + The currency the bank account is in. This must be a country/currency pairing that [Stripe supports.](docs/payouts) + """ + routing_number: NotRequired[str] + """ + The routing number, sort code, or other country-appropriate institution number for the bank account. For US bank accounts, this is required and should be the ACH routing number, not the wire routing number. If you are providing an IBAN for `account_number`, this field is not required. + """ + + +class AccountCreateExternalAccountParamsCardToken(TypedDict): + object: Literal["card"] + currency: NotRequired[str] + token: str diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_login_link_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_login_link_params.py new file mode 100644 index 00000000..a9b2f628 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_login_link_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountCreateLoginLinkParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_params.py new file mode 100644 index 00000000..f77ac9d7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_params.py @@ -0,0 +1,1980 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountCreateParams(RequestOptions): + account_token: NotRequired[str] + """ + An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account. + """ + business_profile: NotRequired["AccountCreateParamsBusinessProfile"] + """ + Business information about the account. + """ + business_type: NotRequired[ + Literal["company", "government_entity", "individual", "non_profit"] + ] + """ + The business type. Once you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + capabilities: NotRequired["AccountCreateParamsCapabilities"] + """ + Each key of the dictionary represents a capability, and each capability + maps to its settings (for example, whether it has been requested or not). Each + capability is inactive until you have provided its specific + requirements and Stripe has verified them. An account might have some + of its requested capabilities be active and some be inactive. + + Required when [account.controller.stripe_dashboard.type](https://docs.stripe.com/api/accounts/create#create_account-controller-dashboard-type) + is `none`, which includes Custom accounts. + """ + company: NotRequired["AccountCreateParamsCompany"] + """ + Information about the company or business. This field is available for any `business_type`. Once you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + controller: NotRequired["AccountCreateParamsController"] + """ + A hash of configuration describing the account controller's attributes. + """ + country: NotRequired[str] + """ + The country in which the account holder resides, or in which the business is legally established. This should be an ISO 3166-1 alpha-2 country code. For example, if you are in the United States and the business for which you're creating an account is legally represented in Canada, you would use `CA` as the country for the account being created. Available countries include [Stripe's global markets](https://stripe.com/global) as well as countries where [cross-border payouts](https://stripe.com/docs/connect/cross-border-payouts) are supported. + """ + default_currency: NotRequired[str] + """ + Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts). + """ + documents: NotRequired["AccountCreateParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + email: NotRequired[str] + """ + The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + external_account: NotRequired[ + "str|AccountCreateParamsBankAccount|AccountCreateParamsCard|AccountCreateParamsCardToken" + ] + """ + A card or bank account to attach to the account for receiving [payouts](https://docs.stripe.com/connect/bank-debit-card-payouts) (you won't be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](https://docs.stripe.com/js), or a dictionary, as documented in the `external_account` parameter for [bank account](https://docs.stripe.com/api#account_create_bank_account) creation. + + By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](https://docs.stripe.com/api#account_create_bank_account) or [card creation](https://docs.stripe.com/api#account_create_card) APIs. After you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + groups: NotRequired["AccountCreateParamsGroups"] + """ + A hash of account group type to tokens. These are account groups this account should be added to. + """ + individual: NotRequired["AccountCreateParamsIndividual"] + """ + Information about the person represented by the account. This field is null unless `business_type` is set to `individual`. Once you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + settings: NotRequired["AccountCreateParamsSettings"] + """ + Options for customizing how the account functions within Stripe. + """ + tos_acceptance: NotRequired["AccountCreateParamsTosAcceptance"] + """ + Details on the account's acceptance of the [Stripe Services Agreement](https://docs.stripe.com/connect/updating-accounts#tos-acceptance). This property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. This property defaults to a `full` service agreement when empty. + """ + type: NotRequired[Literal["custom", "express", "standard"]] + """ + The type of Stripe account to create. May be one of `custom`, `express` or `standard`. + """ + + +class AccountCreateParamsBusinessProfile(TypedDict): + annual_revenue: NotRequired[ + "AccountCreateParamsBusinessProfileAnnualRevenue" + ] + """ + The applicant's gross annual revenue for its preceding fiscal year. + """ + estimated_worker_count: NotRequired[int] + """ + An estimated upper bound of employees, contractors, vendors, etc. currently working for the business. + """ + mcc: NotRequired[str] + """ + [The merchant category code for the account](https://docs.stripe.com/connect/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide. + """ + minority_owned_business_designation: NotRequired[ + List[ + Literal[ + "lgbtqi_owned_business", + "minority_owned_business", + "none_of_these_apply", + "prefer_not_to_answer", + "women_owned_business", + ] + ] + ] + """ + Whether the business is a minority-owned, women-owned, and/or LGBTQI+ -owned business. + """ + monthly_estimated_revenue: NotRequired[ + "AccountCreateParamsBusinessProfileMonthlyEstimatedRevenue" + ] + """ + An estimate of the monthly revenue of the business. Only accepted for accounts in Brazil and India. + """ + name: NotRequired[str] + """ + The customer-facing business name. + """ + product_description: NotRequired[str] + """ + Internal-only description of the product sold by, or service provided by, the business. Used by Stripe for risk and underwriting purposes. + """ + support_address: NotRequired[ + "AccountCreateParamsBusinessProfileSupportAddress" + ] + """ + A publicly available mailing address for sending support issues to. + """ + support_email: NotRequired[str] + """ + A publicly available email address for sending support issues to. + """ + support_phone: NotRequired[str] + """ + A publicly available phone number to call with support issues. + """ + support_url: NotRequired["Literal['']|str"] + """ + A publicly available website for handling support issues. + """ + url: NotRequired[str] + """ + The business's publicly available website. + """ + + +class AccountCreateParamsBusinessProfileAnnualRevenue(TypedDict): + amount: int + """ + A non-negative integer representing the amount in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + fiscal_year_end: str + """ + The close-out date of the preceding fiscal year in ISO 8601 format. E.g. 2023-12-31 for the 31st of December, 2023. + """ + + +class AccountCreateParamsBusinessProfileMonthlyEstimatedRevenue(TypedDict): + amount: int + """ + A non-negative integer representing how much to charge in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + + +class AccountCreateParamsBusinessProfileSupportAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountCreateParamsCapabilities(TypedDict): + acss_debit_payments: NotRequired[ + "AccountCreateParamsCapabilitiesAcssDebitPayments" + ] + """ + The acss_debit_payments capability. + """ + affirm_payments: NotRequired[ + "AccountCreateParamsCapabilitiesAffirmPayments" + ] + """ + The affirm_payments capability. + """ + afterpay_clearpay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesAfterpayClearpayPayments" + ] + """ + The afterpay_clearpay_payments capability. + """ + alma_payments: NotRequired["AccountCreateParamsCapabilitiesAlmaPayments"] + """ + The alma_payments capability. + """ + amazon_pay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesAmazonPayPayments" + ] + """ + The amazon_pay_payments capability. + """ + au_becs_debit_payments: NotRequired[ + "AccountCreateParamsCapabilitiesAuBecsDebitPayments" + ] + """ + The au_becs_debit_payments capability. + """ + bacs_debit_payments: NotRequired[ + "AccountCreateParamsCapabilitiesBacsDebitPayments" + ] + """ + The bacs_debit_payments capability. + """ + bancontact_payments: NotRequired[ + "AccountCreateParamsCapabilitiesBancontactPayments" + ] + """ + The bancontact_payments capability. + """ + bank_transfer_payments: NotRequired[ + "AccountCreateParamsCapabilitiesBankTransferPayments" + ] + """ + The bank_transfer_payments capability. + """ + billie_payments: NotRequired[ + "AccountCreateParamsCapabilitiesBilliePayments" + ] + """ + The billie_payments capability. + """ + blik_payments: NotRequired["AccountCreateParamsCapabilitiesBlikPayments"] + """ + The blik_payments capability. + """ + boleto_payments: NotRequired[ + "AccountCreateParamsCapabilitiesBoletoPayments" + ] + """ + The boleto_payments capability. + """ + card_issuing: NotRequired["AccountCreateParamsCapabilitiesCardIssuing"] + """ + The card_issuing capability. + """ + card_payments: NotRequired["AccountCreateParamsCapabilitiesCardPayments"] + """ + The card_payments capability. + """ + cartes_bancaires_payments: NotRequired[ + "AccountCreateParamsCapabilitiesCartesBancairesPayments" + ] + """ + The cartes_bancaires_payments capability. + """ + cashapp_payments: NotRequired[ + "AccountCreateParamsCapabilitiesCashappPayments" + ] + """ + The cashapp_payments capability. + """ + crypto_payments: NotRequired[ + "AccountCreateParamsCapabilitiesCryptoPayments" + ] + """ + The crypto_payments capability. + """ + eps_payments: NotRequired["AccountCreateParamsCapabilitiesEpsPayments"] + """ + The eps_payments capability. + """ + fpx_payments: NotRequired["AccountCreateParamsCapabilitiesFpxPayments"] + """ + The fpx_payments capability. + """ + gb_bank_transfer_payments: NotRequired[ + "AccountCreateParamsCapabilitiesGbBankTransferPayments" + ] + """ + The gb_bank_transfer_payments capability. + """ + giropay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesGiropayPayments" + ] + """ + The giropay_payments capability. + """ + grabpay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesGrabpayPayments" + ] + """ + The grabpay_payments capability. + """ + ideal_payments: NotRequired["AccountCreateParamsCapabilitiesIdealPayments"] + """ + The ideal_payments capability. + """ + india_international_payments: NotRequired[ + "AccountCreateParamsCapabilitiesIndiaInternationalPayments" + ] + """ + The india_international_payments capability. + """ + jcb_payments: NotRequired["AccountCreateParamsCapabilitiesJcbPayments"] + """ + The jcb_payments capability. + """ + jp_bank_transfer_payments: NotRequired[ + "AccountCreateParamsCapabilitiesJpBankTransferPayments" + ] + """ + The jp_bank_transfer_payments capability. + """ + kakao_pay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesKakaoPayPayments" + ] + """ + The kakao_pay_payments capability. + """ + klarna_payments: NotRequired[ + "AccountCreateParamsCapabilitiesKlarnaPayments" + ] + """ + The klarna_payments capability. + """ + konbini_payments: NotRequired[ + "AccountCreateParamsCapabilitiesKonbiniPayments" + ] + """ + The konbini_payments capability. + """ + kr_card_payments: NotRequired[ + "AccountCreateParamsCapabilitiesKrCardPayments" + ] + """ + The kr_card_payments capability. + """ + legacy_payments: NotRequired[ + "AccountCreateParamsCapabilitiesLegacyPayments" + ] + """ + The legacy_payments capability. + """ + link_payments: NotRequired["AccountCreateParamsCapabilitiesLinkPayments"] + """ + The link_payments capability. + """ + mb_way_payments: NotRequired[ + "AccountCreateParamsCapabilitiesMbWayPayments" + ] + """ + The mb_way_payments capability. + """ + mobilepay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesMobilepayPayments" + ] + """ + The mobilepay_payments capability. + """ + multibanco_payments: NotRequired[ + "AccountCreateParamsCapabilitiesMultibancoPayments" + ] + """ + The multibanco_payments capability. + """ + mx_bank_transfer_payments: NotRequired[ + "AccountCreateParamsCapabilitiesMxBankTransferPayments" + ] + """ + The mx_bank_transfer_payments capability. + """ + naver_pay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesNaverPayPayments" + ] + """ + The naver_pay_payments capability. + """ + nz_bank_account_becs_debit_payments: NotRequired[ + "AccountCreateParamsCapabilitiesNzBankAccountBecsDebitPayments" + ] + """ + The nz_bank_account_becs_debit_payments capability. + """ + oxxo_payments: NotRequired["AccountCreateParamsCapabilitiesOxxoPayments"] + """ + The oxxo_payments capability. + """ + p24_payments: NotRequired["AccountCreateParamsCapabilitiesP24Payments"] + """ + The p24_payments capability. + """ + pay_by_bank_payments: NotRequired[ + "AccountCreateParamsCapabilitiesPayByBankPayments" + ] + """ + The pay_by_bank_payments capability. + """ + payco_payments: NotRequired["AccountCreateParamsCapabilitiesPaycoPayments"] + """ + The payco_payments capability. + """ + paynow_payments: NotRequired[ + "AccountCreateParamsCapabilitiesPaynowPayments" + ] + """ + The paynow_payments capability. + """ + pix_payments: NotRequired["AccountCreateParamsCapabilitiesPixPayments"] + """ + The pix_payments capability. + """ + promptpay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesPromptpayPayments" + ] + """ + The promptpay_payments capability. + """ + revolut_pay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesRevolutPayPayments" + ] + """ + The revolut_pay_payments capability. + """ + samsung_pay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesSamsungPayPayments" + ] + """ + The samsung_pay_payments capability. + """ + satispay_payments: NotRequired[ + "AccountCreateParamsCapabilitiesSatispayPayments" + ] + """ + The satispay_payments capability. + """ + sepa_bank_transfer_payments: NotRequired[ + "AccountCreateParamsCapabilitiesSepaBankTransferPayments" + ] + """ + The sepa_bank_transfer_payments capability. + """ + sepa_debit_payments: NotRequired[ + "AccountCreateParamsCapabilitiesSepaDebitPayments" + ] + """ + The sepa_debit_payments capability. + """ + sofort_payments: NotRequired[ + "AccountCreateParamsCapabilitiesSofortPayments" + ] + """ + The sofort_payments capability. + """ + swish_payments: NotRequired["AccountCreateParamsCapabilitiesSwishPayments"] + """ + The swish_payments capability. + """ + tax_reporting_us_1099_k: NotRequired[ + "AccountCreateParamsCapabilitiesTaxReportingUs1099K" + ] + """ + The tax_reporting_us_1099_k capability. + """ + tax_reporting_us_1099_misc: NotRequired[ + "AccountCreateParamsCapabilitiesTaxReportingUs1099Misc" + ] + """ + The tax_reporting_us_1099_misc capability. + """ + transfers: NotRequired["AccountCreateParamsCapabilitiesTransfers"] + """ + The transfers capability. + """ + treasury: NotRequired["AccountCreateParamsCapabilitiesTreasury"] + """ + The treasury capability. + """ + twint_payments: NotRequired["AccountCreateParamsCapabilitiesTwintPayments"] + """ + The twint_payments capability. + """ + us_bank_account_ach_payments: NotRequired[ + "AccountCreateParamsCapabilitiesUsBankAccountAchPayments" + ] + """ + The us_bank_account_ach_payments capability. + """ + us_bank_transfer_payments: NotRequired[ + "AccountCreateParamsCapabilitiesUsBankTransferPayments" + ] + """ + The us_bank_transfer_payments capability. + """ + zip_payments: NotRequired["AccountCreateParamsCapabilitiesZipPayments"] + """ + The zip_payments capability. + """ + + +class AccountCreateParamsCapabilitiesAcssDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesAffirmPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesAfterpayClearpayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesAlmaPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesAmazonPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesAuBecsDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesBacsDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesBancontactPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesBilliePayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesBlikPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesBoletoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesCardIssuing(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesCardPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesCartesBancairesPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesCashappPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesCryptoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesEpsPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesFpxPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesGbBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesGiropayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesGrabpayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesIdealPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesIndiaInternationalPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesJcbPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesJpBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesKakaoPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesKlarnaPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesKonbiniPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesKrCardPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesLegacyPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesLinkPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesMbWayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesMobilepayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesMultibancoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesMxBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesNaverPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesNzBankAccountBecsDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesOxxoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesP24Payments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesPayByBankPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesPaycoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesPaynowPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesPixPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesPromptpayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesRevolutPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesSamsungPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesSatispayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesSepaBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesSepaDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesSofortPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesSwishPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesTaxReportingUs1099K(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesTaxReportingUs1099Misc(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesTransfers(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesTreasury(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesTwintPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesUsBankAccountAchPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesUsBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCapabilitiesZipPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountCreateParamsCompany(TypedDict): + address: NotRequired["AccountCreateParamsCompanyAddress"] + """ + The company's primary address. + """ + address_kana: NotRequired["AccountCreateParamsCompanyAddressKana"] + """ + The Kana variation of the company's primary address (Japan only). + """ + address_kanji: NotRequired["AccountCreateParamsCompanyAddressKanji"] + """ + The Kanji variation of the company's primary address (Japan only). + """ + directors_provided: NotRequired[bool] + """ + Whether the company's directors have been provided. Set this Boolean to `true` after creating all the company's directors with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.director` requirement. This value is not automatically set to `true` after creating directors, so it needs to be updated to indicate all directors have been provided. + """ + directorship_declaration: NotRequired[ + "AccountCreateParamsCompanyDirectorshipDeclaration" + ] + """ + This hash is used to attest that the directors information provided to Stripe is both current and correct. + """ + executives_provided: NotRequired[bool] + """ + Whether the company's executives have been provided. Set this Boolean to `true` after creating all the company's executives with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.executive` requirement. + """ + export_license_id: NotRequired[str] + """ + The export license ID number of the company, also referred as Import Export Code (India only). + """ + export_purpose_code: NotRequired[str] + """ + The purpose code to use for export transactions (India only). + """ + name: NotRequired[str] + """ + The company's legal name. + """ + name_kana: NotRequired[str] + """ + The Kana variation of the company's legal name (Japan only). + """ + name_kanji: NotRequired[str] + """ + The Kanji variation of the company's legal name (Japan only). + """ + owners_provided: NotRequired[bool] + """ + Whether the company's owners have been provided. Set this Boolean to `true` after creating all the company's owners with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.owner` requirement. + """ + ownership_declaration: NotRequired[ + "AccountCreateParamsCompanyOwnershipDeclaration" + ] + """ + This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct. + """ + ownership_exemption_reason: NotRequired[ + "Literal['']|Literal['qualified_entity_exceeds_ownership_threshold', 'qualifies_as_financial_institution']" + ] + """ + This value is used to determine if a business is exempt from providing ultimate beneficial owners. See [this support article](https://support.stripe.com/questions/exemption-from-providing-ownership-details) and [changelog](https://docs.stripe.com/changelog/acacia/2025-01-27/ownership-exemption-reason-accounts-api) for more details. + """ + phone: NotRequired[str] + """ + The company's phone number (used for verification). + """ + registration_date: NotRequired[ + "Literal['']|AccountCreateParamsCompanyRegistrationDate" + ] + """ + When the business was incorporated or registered. + """ + registration_number: NotRequired[str] + """ + The identification number given to a company when it is registered or incorporated, if distinct from the identification number used for filing taxes. (Examples are the CIN for companies and LLP IN for partnerships in India, and the Company Registration Number in Hong Kong). + """ + representative_declaration: NotRequired[ + "AccountCreateParamsCompanyRepresentativeDeclaration" + ] + """ + This hash is used to attest that the representative is authorized to act as the representative of their legal entity. + """ + structure: NotRequired[ + "Literal['']|Literal['free_zone_establishment', 'free_zone_llc', 'government_instrumentality', 'governmental_unit', 'incorporated_non_profit', 'incorporated_partnership', 'limited_liability_partnership', 'llc', 'multi_member_llc', 'private_company', 'private_corporation', 'private_partnership', 'public_company', 'public_corporation', 'public_partnership', 'registered_charity', 'single_member_llc', 'sole_establishment', 'sole_proprietorship', 'tax_exempt_government_instrumentality', 'unincorporated_association', 'unincorporated_non_profit', 'unincorporated_partnership']" + ] + """ + The category identifying the legal structure of the company or legal entity. See [Business structure](https://docs.stripe.com/connect/identity-verification#business-structure) for more details. Pass an empty string to unset this value. + """ + tax_id: NotRequired[str] + """ + The business ID number of the company, as appropriate for the company's country. (Examples are an Employer ID Number in the U.S., a Business Number in Canada, or a Company Number in the UK.) + """ + tax_id_registrar: NotRequired[str] + """ + The jurisdiction in which the `tax_id` is registered (Germany-based companies only). + """ + vat_id: NotRequired[str] + """ + The VAT number of the company. + """ + verification: NotRequired["AccountCreateParamsCompanyVerification"] + """ + Information on the verification state of the company. + """ + + +class AccountCreateParamsCompanyAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountCreateParamsCompanyAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountCreateParamsCompanyAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountCreateParamsCompanyDirectorshipDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the directorship declaration attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the directorship declaration attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the directorship declaration attestation was made. + """ + + +class AccountCreateParamsCompanyOwnershipDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the beneficial owner attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the beneficial owner attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the beneficial owner attestation was made. + """ + + +class AccountCreateParamsCompanyRegistrationDate(TypedDict): + day: int + """ + The day of registration, between 1 and 31. + """ + month: int + """ + The month of registration, between 1 and 12. + """ + year: int + """ + The four-digit year of registration. + """ + + +class AccountCreateParamsCompanyRepresentativeDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the representative declaration attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the representative declaration attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the representative declaration attestation was made. + """ + + +class AccountCreateParamsCompanyVerification(TypedDict): + document: NotRequired["AccountCreateParamsCompanyVerificationDocument"] + """ + A document verifying the business. + """ + + +class AccountCreateParamsCompanyVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountCreateParamsController(TypedDict): + fees: NotRequired["AccountCreateParamsControllerFees"] + """ + A hash of configuration for who pays Stripe fees for product usage on this account. + """ + losses: NotRequired["AccountCreateParamsControllerLosses"] + """ + A hash of configuration for products that have negative balance liability, and whether Stripe or a Connect application is responsible for them. + """ + requirement_collection: NotRequired[Literal["application", "stripe"]] + """ + A value indicating responsibility for collecting updated information when requirements on the account are due or change. Defaults to `stripe`. + """ + stripe_dashboard: NotRequired[ + "AccountCreateParamsControllerStripeDashboard" + ] + """ + A hash of configuration for Stripe-hosted dashboards. + """ + + +class AccountCreateParamsControllerFees(TypedDict): + payer: NotRequired[Literal["account", "application"]] + """ + A value indicating the responsible payer of Stripe fees on this account. Defaults to `account`. Learn more about [fee behavior on connected accounts](https://docs.stripe.com/connect/direct-charges-fee-payer-behavior). + """ + + +class AccountCreateParamsControllerLosses(TypedDict): + payments: NotRequired[Literal["application", "stripe"]] + """ + A value indicating who is liable when this account can't pay back negative balances resulting from payments. Defaults to `stripe`. + """ + + +class AccountCreateParamsControllerStripeDashboard(TypedDict): + type: NotRequired[Literal["express", "full", "none"]] + """ + Whether this account should have access to the full Stripe Dashboard (`full`), to the Express Dashboard (`express`), or to no Stripe-hosted dashboard (`none`). Defaults to `full`. + """ + + +class AccountCreateParamsDocuments(TypedDict): + bank_account_ownership_verification: NotRequired[ + "AccountCreateParamsDocumentsBankAccountOwnershipVerification" + ] + """ + One or more documents that support the [Bank account ownership verification](https://support.stripe.com/questions/bank-account-ownership-verification) requirement. Must be a document associated with the account's primary active bank account that displays the last 4 digits of the account number, either a statement or a check. + """ + company_license: NotRequired["AccountCreateParamsDocumentsCompanyLicense"] + """ + One or more documents that demonstrate proof of a company's license to operate. + """ + company_memorandum_of_association: NotRequired[ + "AccountCreateParamsDocumentsCompanyMemorandumOfAssociation" + ] + """ + One or more documents showing the company's Memorandum of Association. + """ + company_ministerial_decree: NotRequired[ + "AccountCreateParamsDocumentsCompanyMinisterialDecree" + ] + """ + (Certain countries only) One or more documents showing the ministerial decree legalizing the company's establishment. + """ + company_registration_verification: NotRequired[ + "AccountCreateParamsDocumentsCompanyRegistrationVerification" + ] + """ + One or more documents that demonstrate proof of a company's registration with the appropriate local authorities. + """ + company_tax_id_verification: NotRequired[ + "AccountCreateParamsDocumentsCompanyTaxIdVerification" + ] + """ + One or more documents that demonstrate proof of a company's tax ID. + """ + proof_of_address: NotRequired["AccountCreateParamsDocumentsProofOfAddress"] + """ + One or more documents that demonstrate proof of address. + """ + proof_of_registration: NotRequired[ + "AccountCreateParamsDocumentsProofOfRegistration" + ] + """ + One or more documents showing the company's proof of registration with the national business registry. + """ + proof_of_ultimate_beneficial_ownership: NotRequired[ + "AccountCreateParamsDocumentsProofOfUltimateBeneficialOwnership" + ] + """ + One or more documents that demonstrate proof of ultimate beneficial ownership. + """ + + +class AccountCreateParamsDocumentsBankAccountOwnershipVerification(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsCompanyLicense(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsCompanyMemorandumOfAssociation(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsCompanyMinisterialDecree(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsCompanyRegistrationVerification(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsCompanyTaxIdVerification(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsProofOfAddress(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsProofOfRegistration(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsDocumentsProofOfUltimateBeneficialOwnership( + TypedDict +): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreateParamsBankAccount(TypedDict): + object: Literal["bank_account"] + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account.This field is required when attaching the bank account to a `Customer` object. + """ + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + The type of entity that holds the account. It can be `company` or `individual`. This field is required when attaching the bank account to a `Customer` object. + """ + account_number: str + """ + The account number for the bank account, in string form. Must be a checking account. + """ + country: str + """ + The country in which the bank account is located. + """ + currency: NotRequired[str] + """ + The currency the bank account is in. This must be a country/currency pairing that [Stripe supports.](docs/payouts) + """ + routing_number: NotRequired[str] + """ + The routing number, sort code, or other country-appropriate institution number for the bank account. For US bank accounts, this is required and should be the ACH routing number, not the wire routing number. If you are providing an IBAN for `account_number`, this field is not required. + """ + + +class AccountCreateParamsCard(TypedDict): + object: Literal["card"] + address_city: NotRequired[str] + address_country: NotRequired[str] + address_line1: NotRequired[str] + address_line2: NotRequired[str] + address_state: NotRequired[str] + address_zip: NotRequired[str] + currency: NotRequired[str] + cvc: NotRequired[str] + exp_month: int + exp_year: int + name: NotRequired[str] + number: str + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + default_for_currency: NotRequired[bool] + + +class AccountCreateParamsCardToken(TypedDict): + object: Literal["card"] + currency: NotRequired[str] + token: str + + +class AccountCreateParamsGroups(TypedDict): + payments_pricing: NotRequired["Literal['']|str"] + """ + The group the account is in to determine their payments pricing, and null if the account is on customized pricing. [See the Platform pricing tool documentation](https://stripe.com/docs/connect/platform-pricing-tools) for details. + """ + + +class AccountCreateParamsIndividual(TypedDict): + address: NotRequired["AccountCreateParamsIndividualAddress"] + """ + The individual's primary address. + """ + address_kana: NotRequired["AccountCreateParamsIndividualAddressKana"] + """ + The Kana variation of the individual's primary address (Japan only). + """ + address_kanji: NotRequired["AccountCreateParamsIndividualAddressKanji"] + """ + The Kanji variation of the individual's primary address (Japan only). + """ + dob: NotRequired["Literal['']|AccountCreateParamsIndividualDob"] + """ + The individual's date of birth. + """ + email: NotRequired[str] + """ + The individual's email address. + """ + first_name: NotRequired[str] + """ + The individual's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the individual's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the individual's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the individual is known by. + """ + gender: NotRequired[str] + """ + The individual's gender + """ + id_number: NotRequired[str] + """ + The government-issued ID number of the individual, as appropriate for the representative's country. (Examples are a Social Security Number in the U.S., or a Social Insurance Number in Canada). Instead of the number itself, you can also provide a [PII token created with Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The government-issued secondary ID number of the individual, as appropriate for the representative's country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token created with Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The individual's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the individual's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the individual's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The individual's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone: NotRequired[str] + """ + The individual's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired[ + "AccountCreateParamsIndividualRegisteredAddress" + ] + """ + The individual's registered address. + """ + relationship: NotRequired["AccountCreateParamsIndividualRelationship"] + """ + Describes the person's relationship to the account. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the individual's Social Security Number (U.S. only). + """ + verification: NotRequired["AccountCreateParamsIndividualVerification"] + """ + The individual's verification document information. + """ + + +class AccountCreateParamsIndividualAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountCreateParamsIndividualAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountCreateParamsIndividualAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountCreateParamsIndividualDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class AccountCreateParamsIndividualRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountCreateParamsIndividualRelationship(TypedDict): + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class AccountCreateParamsIndividualVerification(TypedDict): + additional_document: NotRequired[ + "AccountCreateParamsIndividualVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired["AccountCreateParamsIndividualVerificationDocument"] + """ + An identifying document, either a passport or local ID card. + """ + + +class AccountCreateParamsIndividualVerificationAdditionalDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountCreateParamsIndividualVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountCreateParamsSettings(TypedDict): + bacs_debit_payments: NotRequired[ + "AccountCreateParamsSettingsBacsDebitPayments" + ] + """ + Settings specific to Bacs Direct Debit. + """ + branding: NotRequired["AccountCreateParamsSettingsBranding"] + """ + Settings used to apply the account's branding to email receipts, invoices, Checkout, and other products. + """ + card_issuing: NotRequired["AccountCreateParamsSettingsCardIssuing"] + """ + Settings specific to the account's use of the Card Issuing product. + """ + card_payments: NotRequired["AccountCreateParamsSettingsCardPayments"] + """ + Settings specific to card charging on the account. + """ + invoices: NotRequired["AccountCreateParamsSettingsInvoices"] + """ + Settings specific to the account's use of Invoices. + """ + payments: NotRequired["AccountCreateParamsSettingsPayments"] + """ + Settings that apply across payment methods for charging on the account. + """ + payouts: NotRequired["AccountCreateParamsSettingsPayouts"] + """ + Settings specific to the account's payouts. + """ + treasury: NotRequired["AccountCreateParamsSettingsTreasury"] + """ + Settings specific to the account's Treasury FinancialAccounts. + """ + + +class AccountCreateParamsSettingsBacsDebitPayments(TypedDict): + display_name: NotRequired[str] + """ + The Bacs Direct Debit Display Name for this account. For payments made with Bacs Direct Debit, this name appears on the mandate as the statement descriptor. Mobile banking apps display it as the name of the business. To use custom branding, set the Bacs Direct Debit Display Name during or right after creation. Custom branding incurs an additional monthly fee for the platform. If you don't set the display name before requesting Bacs capability, it's automatically set as "Stripe" and the account is onboarded to Stripe branding, which is free. + """ + + +class AccountCreateParamsSettingsBranding(TypedDict): + icon: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) An icon for the account. Must be square and at least 128px x 128px. + """ + logo: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A logo for the account that will be used in Checkout instead of the icon and without the account's name next to it if provided. Must be at least 128px x 128px. + """ + primary_color: NotRequired[str] + """ + A CSS hex color value representing the primary branding color for this account. + """ + secondary_color: NotRequired[str] + """ + A CSS hex color value representing the secondary branding color for this account. + """ + + +class AccountCreateParamsSettingsCardIssuing(TypedDict): + tos_acceptance: NotRequired[ + "AccountCreateParamsSettingsCardIssuingTosAcceptance" + ] + """ + Details on the account's acceptance of the [Stripe Issuing Terms and Disclosures](https://docs.stripe.com/issuing/connect/tos_acceptance). + """ + + +class AccountCreateParamsSettingsCardIssuingTosAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountCreateParamsSettingsCardPayments(TypedDict): + decline_on: NotRequired["AccountCreateParamsSettingsCardPaymentsDeclineOn"] + """ + Automatically declines certain charge types regardless of whether the card issuer accepted or declined the charge. + """ + statement_descriptor_prefix: NotRequired[str] + """ + The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge. `statement_descriptor_prefix` is useful for maximizing descriptor space for the dynamic portion. + """ + statement_descriptor_prefix_kana: NotRequired["Literal['']|str"] + """ + The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kana` specified on the charge. `statement_descriptor_prefix_kana` is useful for maximizing descriptor space for the dynamic portion. + """ + statement_descriptor_prefix_kanji: NotRequired["Literal['']|str"] + """ + The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kanji` specified on the charge. `statement_descriptor_prefix_kanji` is useful for maximizing descriptor space for the dynamic portion. + """ + + +class AccountCreateParamsSettingsCardPaymentsDeclineOn(TypedDict): + avs_failure: NotRequired[bool] + """ + Whether Stripe automatically declines charges with an incorrect ZIP or postal code. This setting only applies when a ZIP or postal code is provided and they fail bank verification. + """ + cvc_failure: NotRequired[bool] + """ + Whether Stripe automatically declines charges with an incorrect CVC. This setting only applies when a CVC is provided and it fails bank verification. + """ + + +class AccountCreateParamsSettingsInvoices(TypedDict): + hosted_payment_method_save: NotRequired[ + Literal["always", "never", "offer"] + ] + """ + Whether to save the payment method after a payment is completed for a one-time invoice or a subscription invoice when the customer already has a default payment method on the hosted invoice page. + """ + + +class AccountCreateParamsSettingsPayments(TypedDict): + statement_descriptor: NotRequired[str] + """ + The default text that appears on statements for non-card charges outside of Japan. For card charges, if you don't set a `statement_descriptor_prefix`, this text is also used as the statement descriptor prefix. In that case, if concatenating the statement descriptor suffix causes the combined statement descriptor to exceed 22 characters, we truncate the `statement_descriptor` text to limit the full descriptor to 22 characters. For more information about statement descriptors and their requirements, see the [account settings documentation](https://docs.stripe.com/get-started/account/statement-descriptors). + """ + statement_descriptor_kana: NotRequired[str] + """ + The Kana variation of `statement_descriptor` used for charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + statement_descriptor_kanji: NotRequired[str] + """ + The Kanji variation of `statement_descriptor` used for charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + + +class AccountCreateParamsSettingsPayouts(TypedDict): + debit_negative_balances: NotRequired[bool] + """ + A Boolean indicating whether Stripe should try to reclaim negative balances from an attached bank account. For details, see [Understanding Connect Account Balances](https://docs.stripe.com/connect/account-balances). + """ + schedule: NotRequired["AccountCreateParamsSettingsPayoutsSchedule"] + """ + Details on when funds from charges are available, and when they are paid out to an external account. For details, see our [Setting Bank and Debit Card Payouts](https://docs.stripe.com/connect/bank-transfers#payout-information) documentation. + """ + statement_descriptor: NotRequired[str] + """ + The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard. + """ + + +class AccountCreateParamsSettingsPayoutsSchedule(TypedDict): + delay_days: NotRequired["Literal['minimum']|int"] + """ + The number of days charge funds are held before being paid out. May also be set to `minimum`, representing the lowest available value for the account country. Default is `minimum`. The `delay_days` parameter remains at the last configured value if `interval` is `manual`. [Learn more about controlling payout delay days](https://docs.stripe.com/connect/manage-payout-schedule). + """ + interval: NotRequired[Literal["daily", "manual", "monthly", "weekly"]] + """ + How frequently available funds are paid out. One of: `daily`, `manual`, `weekly`, or `monthly`. Default is `daily`. + """ + monthly_anchor: NotRequired[int] + """ + The day of the month when available funds are paid out, specified as a number between 1--31. Payouts nominally scheduled between the 29th and 31st of the month are instead sent on the last day of a shorter month. Required and applicable only if `interval` is `monthly`. + """ + monthly_payout_days: NotRequired[List[int]] + """ + The days of the month when available funds are paid out, specified as an array of numbers between 1--31. Payouts nominally scheduled between the 29th and 31st of the month are instead sent on the last day of a shorter month. Required and applicable only if `interval` is `monthly` and `monthly_anchor` is not set. + """ + weekly_anchor: NotRequired[ + Literal[ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday", + ] + ] + """ + The day of the week when available funds are paid out, specified as `monday`, `tuesday`, etc. Required and applicable only if `interval` is `weekly`. + """ + weekly_payout_days: NotRequired[ + List[Literal["friday", "monday", "thursday", "tuesday", "wednesday"]] + ] + """ + The days of the week when available funds are paid out, specified as an array, e.g., [`monday`, `tuesday`]. Required and applicable only if `interval` is `weekly`. + """ + + +class AccountCreateParamsSettingsTreasury(TypedDict): + tos_acceptance: NotRequired[ + "AccountCreateParamsSettingsTreasuryTosAcceptance" + ] + """ + Details on the account's acceptance of the Stripe Treasury Services Agreement. + """ + + +class AccountCreateParamsSettingsTreasuryTosAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountCreateParamsTosAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted their service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted their service agreement. + """ + service_agreement: NotRequired[str] + """ + The user's service agreement type. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the account representative accepted their service agreement. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_person_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_person_params.py new file mode 100644 index 00000000..d52502b9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_create_person_params.py @@ -0,0 +1,471 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountCreatePersonParams(RequestOptions): + additional_tos_acceptances: NotRequired[ + "AccountCreatePersonParamsAdditionalTosAcceptances" + ] + """ + Details on the legal guardian's or authorizer's acceptance of the required Stripe agreements. + """ + address: NotRequired["AccountCreatePersonParamsAddress"] + """ + The person's address. + """ + address_kana: NotRequired["AccountCreatePersonParamsAddressKana"] + """ + The Kana variation of the person's address (Japan only). + """ + address_kanji: NotRequired["AccountCreatePersonParamsAddressKanji"] + """ + The Kanji variation of the person's address (Japan only). + """ + dob: NotRequired["Literal['']|AccountCreatePersonParamsDob"] + """ + The person's date of birth. + """ + documents: NotRequired["AccountCreatePersonParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + email: NotRequired[str] + """ + The person's email address. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + first_name: NotRequired[str] + """ + The person's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the person's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the person is known by. + """ + gender: NotRequired[str] + """ + The person's gender (International regulations require either "male" or "female"). + """ + id_number: NotRequired[str] + """ + The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The person's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the person's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The person's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nationality: NotRequired[str] + """ + The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable. + """ + person_token: NotRequired[str] + """ + A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person. + """ + phone: NotRequired[str] + """ + The person's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired[ + "AccountCreatePersonParamsRegisteredAddress" + ] + """ + The person's registered address. + """ + relationship: NotRequired["AccountCreatePersonParamsRelationship"] + """ + The relationship that this person has with the account's legal entity. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the person's Social Security number (U.S. only). + """ + us_cfpb_data: NotRequired["AccountCreatePersonParamsUsCfpbData"] + """ + Demographic data related to the person. + """ + verification: NotRequired["AccountCreatePersonParamsVerification"] + """ + The person's verification status. + """ + + +class AccountCreatePersonParamsAdditionalTosAcceptances(TypedDict): + account: NotRequired[ + "AccountCreatePersonParamsAdditionalTosAcceptancesAccount" + ] + """ + Details on the legal guardian's acceptance of the main Stripe service agreement. + """ + + +class AccountCreatePersonParamsAdditionalTosAcceptancesAccount(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountCreatePersonParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountCreatePersonParamsAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountCreatePersonParamsAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountCreatePersonParamsDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class AccountCreatePersonParamsDocuments(TypedDict): + company_authorization: NotRequired[ + "AccountCreatePersonParamsDocumentsCompanyAuthorization" + ] + """ + One or more documents that demonstrate proof that this person is authorized to represent the company. + """ + passport: NotRequired["AccountCreatePersonParamsDocumentsPassport"] + """ + One or more documents showing the person's passport page with photo and personal data. + """ + visa: NotRequired["AccountCreatePersonParamsDocumentsVisa"] + """ + One or more documents showing the person's visa required for living in the country where they are residing. + """ + + +class AccountCreatePersonParamsDocumentsCompanyAuthorization(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreatePersonParamsDocumentsPassport(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreatePersonParamsDocumentsVisa(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountCreatePersonParamsRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountCreatePersonParamsRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + Whether the person is the authorizer of the account's representative. + """ + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + legal_guardian: NotRequired[bool] + """ + Whether the person is the legal guardian of the account's representative. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + representative: NotRequired[bool] + """ + Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class AccountCreatePersonParamsUsCfpbData(TypedDict): + ethnicity_details: NotRequired[ + "AccountCreatePersonParamsUsCfpbDataEthnicityDetails" + ] + """ + The persons ethnicity details + """ + race_details: NotRequired["AccountCreatePersonParamsUsCfpbDataRaceDetails"] + """ + The persons race details + """ + self_identified_gender: NotRequired[str] + """ + The persons self-identified gender + """ + + +class AccountCreatePersonParamsUsCfpbDataEthnicityDetails(TypedDict): + ethnicity: NotRequired[ + List[ + Literal[ + "cuban", + "hispanic_or_latino", + "mexican", + "not_hispanic_or_latino", + "other_hispanic_or_latino", + "prefer_not_to_answer", + "puerto_rican", + ] + ] + ] + """ + The persons ethnicity + """ + ethnicity_other: NotRequired[str] + """ + Please specify your origin, when other is selected. + """ + + +class AccountCreatePersonParamsUsCfpbDataRaceDetails(TypedDict): + race: NotRequired[ + List[ + Literal[ + "african_american", + "american_indian_or_alaska_native", + "asian", + "asian_indian", + "black_or_african_american", + "chinese", + "ethiopian", + "filipino", + "guamanian_or_chamorro", + "haitian", + "jamaican", + "japanese", + "korean", + "native_hawaiian", + "native_hawaiian_or_other_pacific_islander", + "nigerian", + "other_asian", + "other_black_or_african_american", + "other_pacific_islander", + "prefer_not_to_answer", + "samoan", + "somali", + "vietnamese", + "white", + ] + ] + ] + """ + The persons race. + """ + race_other: NotRequired[str] + """ + Please specify your race, when other is selected. + """ + + +class AccountCreatePersonParamsVerification(TypedDict): + additional_document: NotRequired[ + "AccountCreatePersonParamsVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired["AccountCreatePersonParamsVerificationDocument"] + """ + An identifying document, either a passport or local ID card. + """ + + +class AccountCreatePersonParamsVerificationAdditionalDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountCreatePersonParamsVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_external_account_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_external_account_params.py new file mode 100644 index 00000000..dd702e9c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_external_account_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class AccountDeleteExternalAccountParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_params.py new file mode 100644 index 00000000..9a587fb7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class AccountDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_person_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_person_params.py new file mode 100644 index 00000000..843ae373 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_delete_person_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class AccountDeletePersonParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_create_params.py new file mode 100644 index 00000000..144d7585 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_create_params.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountExternalAccountCreateParams(TypedDict): + default_for_currency: NotRequired[bool] + """ + When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + external_account: Union[ + str, + "AccountExternalAccountCreateParamsCard", + "AccountExternalAccountCreateParamsBankAccount", + "AccountExternalAccountCreateParamsCardToken", + ] + """ + A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js) or a dictionary containing a user's external account details (with the options shown below). Please refer to full [documentation](https://stripe.com/docs/api/external_accounts) instead. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + + +class AccountExternalAccountCreateParamsCard(TypedDict): + object: Literal["card"] + address_city: NotRequired[str] + address_country: NotRequired[str] + address_line1: NotRequired[str] + address_line2: NotRequired[str] + address_state: NotRequired[str] + address_zip: NotRequired[str] + currency: NotRequired[str] + cvc: NotRequired[str] + exp_month: int + exp_year: int + name: NotRequired[str] + number: str + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + + +class AccountExternalAccountCreateParamsBankAccount(TypedDict): + object: Literal["bank_account"] + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account.This field is required when attaching the bank account to a `Customer` object. + """ + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + The type of entity that holds the account. It can be `company` or `individual`. This field is required when attaching the bank account to a `Customer` object. + """ + account_number: str + """ + The account number for the bank account, in string form. Must be a checking account. + """ + country: str + """ + The country in which the bank account is located. + """ + currency: NotRequired[str] + """ + The currency the bank account is in. This must be a country/currency pairing that [Stripe supports.](docs/payouts) + """ + routing_number: NotRequired[str] + """ + The routing number, sort code, or other country-appropriate institution number for the bank account. For US bank accounts, this is required and should be the ACH routing number, not the wire routing number. If you are providing an IBAN for `account_number`, this field is not required. + """ + + +class AccountExternalAccountCreateParamsCardToken(TypedDict): + object: Literal["card"] + currency: NotRequired[str] + token: str diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_delete_params.py new file mode 100644 index 00000000..441739cb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class AccountExternalAccountDeleteParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_list_params.py new file mode 100644 index 00000000..1afd1d46 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_list_params.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountExternalAccountListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + object: NotRequired[Literal["bank_account", "card"]] + """ + Filter external accounts according to a particular object type. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_retrieve_params.py new file mode 100644 index 00000000..70ebac58 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountExternalAccountRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_update_params.py new file mode 100644 index 00000000..04642cd7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_external_account_update_params.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountExternalAccountUpdateParams(TypedDict): + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account. + """ + account_holder_type: NotRequired[ + "Literal['']|Literal['company', 'individual']" + ] + """ + The type of entity that holds the account. This can be either `individual` or `company`. + """ + account_type: NotRequired[Literal["checking", "futsu", "savings", "toza"]] + """ + The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`. + """ + address_city: NotRequired[str] + """ + City/District/Suburb/Town/Village. + """ + address_country: NotRequired[str] + """ + Billing address country, if provided when creating card. + """ + address_line1: NotRequired[str] + """ + Address line 1 (Street address/PO Box/Company name). + """ + address_line2: NotRequired[str] + """ + Address line 2 (Apartment/Suite/Unit/Building). + """ + address_state: NotRequired[str] + """ + State/County/Province/Region. + """ + address_zip: NotRequired[str] + """ + ZIP or postal code. + """ + default_for_currency: NotRequired[bool] + """ + When set to true, this becomes the default external account for its currency. + """ + documents: NotRequired["AccountExternalAccountUpdateParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + exp_month: NotRequired[str] + """ + Two digit number representing the card's expiration month. + """ + exp_year: NotRequired[str] + """ + Four digit number representing the card's expiration year. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Cardholder name. + """ + + +class AccountExternalAccountUpdateParamsDocuments(TypedDict): + bank_account_ownership_verification: NotRequired[ + "AccountExternalAccountUpdateParamsDocumentsBankAccountOwnershipVerification" + ] + """ + One or more documents that support the [Bank account ownership verification](https://support.stripe.com/questions/bank-account-ownership-verification) requirement. Must be a document associated with the bank account that displays the last 4 digits of the account number, either a statement or a check. + """ + + +class AccountExternalAccountUpdateParamsDocumentsBankAccountOwnershipVerification( + TypedDict, +): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_link_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_link_create_params.py new file mode 100644 index 00000000..aa7168af --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_link_create_params.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountLinkCreateParams(RequestOptions): + account: str + """ + The identifier of the account to create an account link for. + """ + collect: NotRequired[Literal["currently_due", "eventually_due"]] + """ + The collect parameter is deprecated. Use `collection_options` instead. + """ + collection_options: NotRequired["AccountLinkCreateParamsCollectionOptions"] + """ + Specifies the requirements that Stripe collects from connected accounts in the Connect Onboarding flow. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + refresh_url: NotRequired[str] + """ + The URL the user will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid. The URL you specify should attempt to generate a new account link with the same parameters used to create the original account link, then redirect the user to the new account link's URL so they can continue with Connect Onboarding. If a new account link cannot be generated or the redirect fails you should display a useful error to the user. + """ + return_url: NotRequired[str] + """ + The URL that the user will be redirected to upon leaving or completing the linked flow. + """ + type: Literal["account_onboarding", "account_update"] + """ + The type of account link the user is requesting. + + You can create Account Links of type `account_update` only for connected accounts where your platform is responsible for collecting requirements, including Custom accounts. You can't create them for accounts that have access to a Stripe-hosted Dashboard. If you use [Connect embedded components](https://docs.stripe.com/connect/get-started-connect-embedded-components), you can include components that allow your connected accounts to update their own information. For an account without Stripe-hosted Dashboard access where Stripe is liable for negative balances, you must use embedded components. + """ + + +class AccountLinkCreateParamsCollectionOptions(TypedDict): + fields: NotRequired[Literal["currently_due", "eventually_due"]] + """ + Specifies whether the platform collects only currently_due requirements (`currently_due`) or both currently_due and eventually_due requirements (`eventually_due`). If you don't specify `collection_options`, the default value is `currently_due`. + """ + future_requirements: NotRequired[Literal["include", "omit"]] + """ + Specifies whether the platform collects future_requirements in addition to requirements in Connect Onboarding. The default value is `omit`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_capabilities_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_capabilities_params.py new file mode 100644 index 00000000..390ea381 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_capabilities_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountListCapabilitiesParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_external_accounts_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_external_accounts_params.py new file mode 100644 index 00000000..45f1f078 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_external_accounts_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class AccountListExternalAccountsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + object: NotRequired[Literal["bank_account", "card"]] + """ + Filter external accounts according to a particular object type. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_params.py new file mode 100644 index 00000000..541093c0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_params.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountListParams(RequestOptions): + created: NotRequired["AccountListParamsCreated|int"] + """ + Only return connected accounts that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class AccountListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_persons_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_persons_params.py new file mode 100644 index 00000000..fbd9cb28 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_list_persons_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountListPersonsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + relationship: NotRequired["AccountListPersonsParamsRelationship"] + """ + Filters on the list of people returned based on the person's relationship to the account's company. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class AccountListPersonsParamsRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are authorizers of the account's representative. + """ + director: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are directors of the account's company. + """ + executive: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are executives of the account's company. + """ + legal_guardian: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are legal guardians of the account's representative. + """ + owner: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are owners of the account's company. + """ + representative: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are the representative of the account's company. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_login_link_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_login_link_create_params.py new file mode 100644 index 00000000..f9a0ea38 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_login_link_create_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountLoginLinkCreateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_capability_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_capability_params.py new file mode 100644 index 00000000..ebbfa934 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_capability_params.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountModifyCapabilityParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + requested: NotRequired[bool] + """ + To request a new capability for an account, pass true. There can be a delay before the requested capability becomes active. If the capability has any activation requirements, the response includes them in the `requirements` arrays. + + If a capability isn't permanent, you can remove it from the account by passing false. Some capabilities are permanent after they've been requested. Attempting to remove a permanent capability returns an error. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_external_account_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_external_account_params.py new file mode 100644 index 00000000..682ec49e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_external_account_params.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountModifyExternalAccountParams(RequestOptions): + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account. + """ + account_holder_type: NotRequired[ + "Literal['']|Literal['company', 'individual']" + ] + """ + The type of entity that holds the account. This can be either `individual` or `company`. + """ + account_type: NotRequired[Literal["checking", "futsu", "savings", "toza"]] + """ + The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`. + """ + address_city: NotRequired[str] + """ + City/District/Suburb/Town/Village. + """ + address_country: NotRequired[str] + """ + Billing address country, if provided when creating card. + """ + address_line1: NotRequired[str] + """ + Address line 1 (Street address/PO Box/Company name). + """ + address_line2: NotRequired[str] + """ + Address line 2 (Apartment/Suite/Unit/Building). + """ + address_state: NotRequired[str] + """ + State/County/Province/Region. + """ + address_zip: NotRequired[str] + """ + ZIP or postal code. + """ + default_for_currency: NotRequired[bool] + """ + When set to true, this becomes the default external account for its currency. + """ + documents: NotRequired["AccountModifyExternalAccountParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + exp_month: NotRequired[str] + """ + Two digit number representing the card's expiration month. + """ + exp_year: NotRequired[str] + """ + Four digit number representing the card's expiration year. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Cardholder name. + """ + + +class AccountModifyExternalAccountParamsDocuments(TypedDict): + bank_account_ownership_verification: NotRequired[ + "AccountModifyExternalAccountParamsDocumentsBankAccountOwnershipVerification" + ] + """ + One or more documents that support the [Bank account ownership verification](https://support.stripe.com/questions/bank-account-ownership-verification) requirement. Must be a document associated with the bank account that displays the last 4 digits of the account number, either a statement or a check. + """ + + +class AccountModifyExternalAccountParamsDocumentsBankAccountOwnershipVerification( + TypedDict, +): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_person_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_person_params.py new file mode 100644 index 00000000..08a3455a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_modify_person_params.py @@ -0,0 +1,471 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountModifyPersonParams(RequestOptions): + additional_tos_acceptances: NotRequired[ + "AccountModifyPersonParamsAdditionalTosAcceptances" + ] + """ + Details on the legal guardian's or authorizer's acceptance of the required Stripe agreements. + """ + address: NotRequired["AccountModifyPersonParamsAddress"] + """ + The person's address. + """ + address_kana: NotRequired["AccountModifyPersonParamsAddressKana"] + """ + The Kana variation of the person's address (Japan only). + """ + address_kanji: NotRequired["AccountModifyPersonParamsAddressKanji"] + """ + The Kanji variation of the person's address (Japan only). + """ + dob: NotRequired["Literal['']|AccountModifyPersonParamsDob"] + """ + The person's date of birth. + """ + documents: NotRequired["AccountModifyPersonParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + email: NotRequired[str] + """ + The person's email address. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + first_name: NotRequired[str] + """ + The person's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the person's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the person is known by. + """ + gender: NotRequired[str] + """ + The person's gender (International regulations require either "male" or "female"). + """ + id_number: NotRequired[str] + """ + The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The person's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the person's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The person's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nationality: NotRequired[str] + """ + The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable. + """ + person_token: NotRequired[str] + """ + A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person. + """ + phone: NotRequired[str] + """ + The person's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired[ + "AccountModifyPersonParamsRegisteredAddress" + ] + """ + The person's registered address. + """ + relationship: NotRequired["AccountModifyPersonParamsRelationship"] + """ + The relationship that this person has with the account's legal entity. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the person's Social Security number (U.S. only). + """ + us_cfpb_data: NotRequired["AccountModifyPersonParamsUsCfpbData"] + """ + Demographic data related to the person. + """ + verification: NotRequired["AccountModifyPersonParamsVerification"] + """ + The person's verification status. + """ + + +class AccountModifyPersonParamsAdditionalTosAcceptances(TypedDict): + account: NotRequired[ + "AccountModifyPersonParamsAdditionalTosAcceptancesAccount" + ] + """ + Details on the legal guardian's acceptance of the main Stripe service agreement. + """ + + +class AccountModifyPersonParamsAdditionalTosAcceptancesAccount(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountModifyPersonParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountModifyPersonParamsAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountModifyPersonParamsAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountModifyPersonParamsDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class AccountModifyPersonParamsDocuments(TypedDict): + company_authorization: NotRequired[ + "AccountModifyPersonParamsDocumentsCompanyAuthorization" + ] + """ + One or more documents that demonstrate proof that this person is authorized to represent the company. + """ + passport: NotRequired["AccountModifyPersonParamsDocumentsPassport"] + """ + One or more documents showing the person's passport page with photo and personal data. + """ + visa: NotRequired["AccountModifyPersonParamsDocumentsVisa"] + """ + One or more documents showing the person's visa required for living in the country where they are residing. + """ + + +class AccountModifyPersonParamsDocumentsCompanyAuthorization(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountModifyPersonParamsDocumentsPassport(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountModifyPersonParamsDocumentsVisa(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountModifyPersonParamsRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountModifyPersonParamsRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + Whether the person is the authorizer of the account's representative. + """ + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + legal_guardian: NotRequired[bool] + """ + Whether the person is the legal guardian of the account's representative. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + representative: NotRequired[bool] + """ + Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class AccountModifyPersonParamsUsCfpbData(TypedDict): + ethnicity_details: NotRequired[ + "AccountModifyPersonParamsUsCfpbDataEthnicityDetails" + ] + """ + The persons ethnicity details + """ + race_details: NotRequired["AccountModifyPersonParamsUsCfpbDataRaceDetails"] + """ + The persons race details + """ + self_identified_gender: NotRequired[str] + """ + The persons self-identified gender + """ + + +class AccountModifyPersonParamsUsCfpbDataEthnicityDetails(TypedDict): + ethnicity: NotRequired[ + List[ + Literal[ + "cuban", + "hispanic_or_latino", + "mexican", + "not_hispanic_or_latino", + "other_hispanic_or_latino", + "prefer_not_to_answer", + "puerto_rican", + ] + ] + ] + """ + The persons ethnicity + """ + ethnicity_other: NotRequired[str] + """ + Please specify your origin, when other is selected. + """ + + +class AccountModifyPersonParamsUsCfpbDataRaceDetails(TypedDict): + race: NotRequired[ + List[ + Literal[ + "african_american", + "american_indian_or_alaska_native", + "asian", + "asian_indian", + "black_or_african_american", + "chinese", + "ethiopian", + "filipino", + "guamanian_or_chamorro", + "haitian", + "jamaican", + "japanese", + "korean", + "native_hawaiian", + "native_hawaiian_or_other_pacific_islander", + "nigerian", + "other_asian", + "other_black_or_african_american", + "other_pacific_islander", + "prefer_not_to_answer", + "samoan", + "somali", + "vietnamese", + "white", + ] + ] + ] + """ + The persons race. + """ + race_other: NotRequired[str] + """ + Please specify your race, when other is selected. + """ + + +class AccountModifyPersonParamsVerification(TypedDict): + additional_document: NotRequired[ + "AccountModifyPersonParamsVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired["AccountModifyPersonParamsVerificationDocument"] + """ + An identifying document, either a passport or local ID card. + """ + + +class AccountModifyPersonParamsVerificationAdditionalDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountModifyPersonParamsVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_create_params.py new file mode 100644 index 00000000..bf5abaf4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_create_params.py @@ -0,0 +1,470 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountPersonCreateParams(TypedDict): + additional_tos_acceptances: NotRequired[ + "AccountPersonCreateParamsAdditionalTosAcceptances" + ] + """ + Details on the legal guardian's or authorizer's acceptance of the required Stripe agreements. + """ + address: NotRequired["AccountPersonCreateParamsAddress"] + """ + The person's address. + """ + address_kana: NotRequired["AccountPersonCreateParamsAddressKana"] + """ + The Kana variation of the person's address (Japan only). + """ + address_kanji: NotRequired["AccountPersonCreateParamsAddressKanji"] + """ + The Kanji variation of the person's address (Japan only). + """ + dob: NotRequired["Literal['']|AccountPersonCreateParamsDob"] + """ + The person's date of birth. + """ + documents: NotRequired["AccountPersonCreateParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + email: NotRequired[str] + """ + The person's email address. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + first_name: NotRequired[str] + """ + The person's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the person's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the person is known by. + """ + gender: NotRequired[str] + """ + The person's gender (International regulations require either "male" or "female"). + """ + id_number: NotRequired[str] + """ + The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The person's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the person's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The person's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nationality: NotRequired[str] + """ + The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable. + """ + person_token: NotRequired[str] + """ + A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person. + """ + phone: NotRequired[str] + """ + The person's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired[ + "AccountPersonCreateParamsRegisteredAddress" + ] + """ + The person's registered address. + """ + relationship: NotRequired["AccountPersonCreateParamsRelationship"] + """ + The relationship that this person has with the account's legal entity. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the person's Social Security number (U.S. only). + """ + us_cfpb_data: NotRequired["AccountPersonCreateParamsUsCfpbData"] + """ + Demographic data related to the person. + """ + verification: NotRequired["AccountPersonCreateParamsVerification"] + """ + The person's verification status. + """ + + +class AccountPersonCreateParamsAdditionalTosAcceptances(TypedDict): + account: NotRequired[ + "AccountPersonCreateParamsAdditionalTosAcceptancesAccount" + ] + """ + Details on the legal guardian's acceptance of the main Stripe service agreement. + """ + + +class AccountPersonCreateParamsAdditionalTosAcceptancesAccount(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountPersonCreateParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountPersonCreateParamsAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountPersonCreateParamsAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountPersonCreateParamsDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class AccountPersonCreateParamsDocuments(TypedDict): + company_authorization: NotRequired[ + "AccountPersonCreateParamsDocumentsCompanyAuthorization" + ] + """ + One or more documents that demonstrate proof that this person is authorized to represent the company. + """ + passport: NotRequired["AccountPersonCreateParamsDocumentsPassport"] + """ + One or more documents showing the person's passport page with photo and personal data. + """ + visa: NotRequired["AccountPersonCreateParamsDocumentsVisa"] + """ + One or more documents showing the person's visa required for living in the country where they are residing. + """ + + +class AccountPersonCreateParamsDocumentsCompanyAuthorization(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountPersonCreateParamsDocumentsPassport(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountPersonCreateParamsDocumentsVisa(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountPersonCreateParamsRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountPersonCreateParamsRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + Whether the person is the authorizer of the account's representative. + """ + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + legal_guardian: NotRequired[bool] + """ + Whether the person is the legal guardian of the account's representative. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + representative: NotRequired[bool] + """ + Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class AccountPersonCreateParamsUsCfpbData(TypedDict): + ethnicity_details: NotRequired[ + "AccountPersonCreateParamsUsCfpbDataEthnicityDetails" + ] + """ + The persons ethnicity details + """ + race_details: NotRequired["AccountPersonCreateParamsUsCfpbDataRaceDetails"] + """ + The persons race details + """ + self_identified_gender: NotRequired[str] + """ + The persons self-identified gender + """ + + +class AccountPersonCreateParamsUsCfpbDataEthnicityDetails(TypedDict): + ethnicity: NotRequired[ + List[ + Literal[ + "cuban", + "hispanic_or_latino", + "mexican", + "not_hispanic_or_latino", + "other_hispanic_or_latino", + "prefer_not_to_answer", + "puerto_rican", + ] + ] + ] + """ + The persons ethnicity + """ + ethnicity_other: NotRequired[str] + """ + Please specify your origin, when other is selected. + """ + + +class AccountPersonCreateParamsUsCfpbDataRaceDetails(TypedDict): + race: NotRequired[ + List[ + Literal[ + "african_american", + "american_indian_or_alaska_native", + "asian", + "asian_indian", + "black_or_african_american", + "chinese", + "ethiopian", + "filipino", + "guamanian_or_chamorro", + "haitian", + "jamaican", + "japanese", + "korean", + "native_hawaiian", + "native_hawaiian_or_other_pacific_islander", + "nigerian", + "other_asian", + "other_black_or_african_american", + "other_pacific_islander", + "prefer_not_to_answer", + "samoan", + "somali", + "vietnamese", + "white", + ] + ] + ] + """ + The persons race. + """ + race_other: NotRequired[str] + """ + Please specify your race, when other is selected. + """ + + +class AccountPersonCreateParamsVerification(TypedDict): + additional_document: NotRequired[ + "AccountPersonCreateParamsVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired["AccountPersonCreateParamsVerificationDocument"] + """ + An identifying document, either a passport or local ID card. + """ + + +class AccountPersonCreateParamsVerificationAdditionalDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountPersonCreateParamsVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_delete_params.py new file mode 100644 index 00000000..14b51a6f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class AccountPersonDeleteParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_list_params.py new file mode 100644 index 00000000..053853a2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_list_params.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountPersonListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + relationship: NotRequired["AccountPersonListParamsRelationship"] + """ + Filters on the list of people returned based on the person's relationship to the account's company. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class AccountPersonListParamsRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are authorizers of the account's representative. + """ + director: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are directors of the account's company. + """ + executive: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are executives of the account's company. + """ + legal_guardian: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are legal guardians of the account's representative. + """ + owner: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are owners of the account's company. + """ + representative: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are the representative of the account's company. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_retrieve_params.py new file mode 100644 index 00000000..aa5b0f94 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountPersonRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_update_params.py new file mode 100644 index 00000000..c1571370 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_person_update_params.py @@ -0,0 +1,470 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountPersonUpdateParams(TypedDict): + additional_tos_acceptances: NotRequired[ + "AccountPersonUpdateParamsAdditionalTosAcceptances" + ] + """ + Details on the legal guardian's or authorizer's acceptance of the required Stripe agreements. + """ + address: NotRequired["AccountPersonUpdateParamsAddress"] + """ + The person's address. + """ + address_kana: NotRequired["AccountPersonUpdateParamsAddressKana"] + """ + The Kana variation of the person's address (Japan only). + """ + address_kanji: NotRequired["AccountPersonUpdateParamsAddressKanji"] + """ + The Kanji variation of the person's address (Japan only). + """ + dob: NotRequired["Literal['']|AccountPersonUpdateParamsDob"] + """ + The person's date of birth. + """ + documents: NotRequired["AccountPersonUpdateParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + email: NotRequired[str] + """ + The person's email address. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + first_name: NotRequired[str] + """ + The person's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the person's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the person is known by. + """ + gender: NotRequired[str] + """ + The person's gender (International regulations require either "male" or "female"). + """ + id_number: NotRequired[str] + """ + The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The person's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the person's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The person's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nationality: NotRequired[str] + """ + The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable. + """ + person_token: NotRequired[str] + """ + A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person. + """ + phone: NotRequired[str] + """ + The person's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired[ + "AccountPersonUpdateParamsRegisteredAddress" + ] + """ + The person's registered address. + """ + relationship: NotRequired["AccountPersonUpdateParamsRelationship"] + """ + The relationship that this person has with the account's legal entity. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the person's Social Security number (U.S. only). + """ + us_cfpb_data: NotRequired["AccountPersonUpdateParamsUsCfpbData"] + """ + Demographic data related to the person. + """ + verification: NotRequired["AccountPersonUpdateParamsVerification"] + """ + The person's verification status. + """ + + +class AccountPersonUpdateParamsAdditionalTosAcceptances(TypedDict): + account: NotRequired[ + "AccountPersonUpdateParamsAdditionalTosAcceptancesAccount" + ] + """ + Details on the legal guardian's acceptance of the main Stripe service agreement. + """ + + +class AccountPersonUpdateParamsAdditionalTosAcceptancesAccount(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountPersonUpdateParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountPersonUpdateParamsAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountPersonUpdateParamsAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountPersonUpdateParamsDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class AccountPersonUpdateParamsDocuments(TypedDict): + company_authorization: NotRequired[ + "AccountPersonUpdateParamsDocumentsCompanyAuthorization" + ] + """ + One or more documents that demonstrate proof that this person is authorized to represent the company. + """ + passport: NotRequired["AccountPersonUpdateParamsDocumentsPassport"] + """ + One or more documents showing the person's passport page with photo and personal data. + """ + visa: NotRequired["AccountPersonUpdateParamsDocumentsVisa"] + """ + One or more documents showing the person's visa required for living in the country where they are residing. + """ + + +class AccountPersonUpdateParamsDocumentsCompanyAuthorization(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountPersonUpdateParamsDocumentsPassport(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountPersonUpdateParamsDocumentsVisa(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountPersonUpdateParamsRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountPersonUpdateParamsRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + Whether the person is the authorizer of the account's representative. + """ + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + legal_guardian: NotRequired[bool] + """ + Whether the person is the legal guardian of the account's representative. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + representative: NotRequired[bool] + """ + Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class AccountPersonUpdateParamsUsCfpbData(TypedDict): + ethnicity_details: NotRequired[ + "AccountPersonUpdateParamsUsCfpbDataEthnicityDetails" + ] + """ + The persons ethnicity details + """ + race_details: NotRequired["AccountPersonUpdateParamsUsCfpbDataRaceDetails"] + """ + The persons race details + """ + self_identified_gender: NotRequired[str] + """ + The persons self-identified gender + """ + + +class AccountPersonUpdateParamsUsCfpbDataEthnicityDetails(TypedDict): + ethnicity: NotRequired[ + List[ + Literal[ + "cuban", + "hispanic_or_latino", + "mexican", + "not_hispanic_or_latino", + "other_hispanic_or_latino", + "prefer_not_to_answer", + "puerto_rican", + ] + ] + ] + """ + The persons ethnicity + """ + ethnicity_other: NotRequired[str] + """ + Please specify your origin, when other is selected. + """ + + +class AccountPersonUpdateParamsUsCfpbDataRaceDetails(TypedDict): + race: NotRequired[ + List[ + Literal[ + "african_american", + "american_indian_or_alaska_native", + "asian", + "asian_indian", + "black_or_african_american", + "chinese", + "ethiopian", + "filipino", + "guamanian_or_chamorro", + "haitian", + "jamaican", + "japanese", + "korean", + "native_hawaiian", + "native_hawaiian_or_other_pacific_islander", + "nigerian", + "other_asian", + "other_black_or_african_american", + "other_pacific_islander", + "prefer_not_to_answer", + "samoan", + "somali", + "vietnamese", + "white", + ] + ] + ] + """ + The persons race. + """ + race_other: NotRequired[str] + """ + Please specify your race, when other is selected. + """ + + +class AccountPersonUpdateParamsVerification(TypedDict): + additional_document: NotRequired[ + "AccountPersonUpdateParamsVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired["AccountPersonUpdateParamsVerificationDocument"] + """ + An identifying document, either a passport or local ID card. + """ + + +class AccountPersonUpdateParamsVerificationAdditionalDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountPersonUpdateParamsVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_persons_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_persons_params.py new file mode 100644 index 00000000..32654828 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_persons_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountPersonsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + relationship: NotRequired["AccountPersonsParamsRelationship"] + """ + Filters on the list of people returned based on the person's relationship to the account's company. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class AccountPersonsParamsRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are authorizers of the account's representative. + """ + director: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are directors of the account's company. + """ + executive: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are executives of the account's company. + """ + legal_guardian: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are legal guardians of the account's representative. + """ + owner: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are owners of the account's company. + """ + representative: NotRequired[bool] + """ + A filter on the list of people returned based on whether these people are the representative of the account's company. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_reject_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_reject_params.py new file mode 100644 index 00000000..d94d097b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_reject_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountRejectParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + reason: str + """ + The reason for rejecting the account. Can be `fraud`, `terms_of_service`, or `other`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_capability_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_capability_params.py new file mode 100644 index 00000000..64072972 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_capability_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountRetrieveCapabilityParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_current_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_current_params.py new file mode 100644 index 00000000..4ac5f8ee --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_current_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountRetrieveCurrentParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_external_account_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_external_account_params.py new file mode 100644 index 00000000..46990ff2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_external_account_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountRetrieveExternalAccountParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_params.py new file mode 100644 index 00000000..a9e3c8a2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_person_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_person_params.py new file mode 100644 index 00000000..77eb3ff1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_retrieve_person_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountRetrievePersonParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_session_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_session_create_params.py new file mode 100644 index 00000000..41812dfe --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_session_create_params.py @@ -0,0 +1,638 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountSessionCreateParams(RequestOptions): + account: str + """ + The identifier of the account to create an Account Session for. + """ + components: "AccountSessionCreateParamsComponents" + """ + Each key of the dictionary represents an embedded component, and each embedded component maps to its configuration (e.g. whether it has been enabled or not). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + + +class AccountSessionCreateParamsComponents(TypedDict): + account_management: NotRequired[ + "AccountSessionCreateParamsComponentsAccountManagement" + ] + """ + Configuration for the [account management](https://docs.stripe.com/connect/supported-embedded-components/account-management/) embedded component. + """ + account_onboarding: NotRequired[ + "AccountSessionCreateParamsComponentsAccountOnboarding" + ] + """ + Configuration for the [account onboarding](https://docs.stripe.com/connect/supported-embedded-components/account-onboarding/) embedded component. + """ + balances: NotRequired["AccountSessionCreateParamsComponentsBalances"] + """ + Configuration for the [balances](https://docs.stripe.com/connect/supported-embedded-components/balances/) embedded component. + """ + disputes_list: NotRequired[ + "AccountSessionCreateParamsComponentsDisputesList" + ] + """ + Configuration for the [disputes list](https://docs.stripe.com/connect/supported-embedded-components/disputes-list/) embedded component. + """ + documents: NotRequired["AccountSessionCreateParamsComponentsDocuments"] + """ + Configuration for the [documents](https://docs.stripe.com/connect/supported-embedded-components/documents/) embedded component. + """ + financial_account: NotRequired[ + "AccountSessionCreateParamsComponentsFinancialAccount" + ] + """ + Configuration for the [financial account](https://docs.stripe.com/connect/supported-embedded-components/financial-account/) embedded component. + """ + financial_account_transactions: NotRequired[ + "AccountSessionCreateParamsComponentsFinancialAccountTransactions" + ] + """ + Configuration for the [financial account transactions](https://docs.stripe.com/connect/supported-embedded-components/financial-account-transactions/) embedded component. + """ + instant_payouts_promotion: NotRequired[ + "AccountSessionCreateParamsComponentsInstantPayoutsPromotion" + ] + """ + Configuration for the [instant payouts promotion](https://docs.stripe.com/connect/supported-embedded-components/instant-payouts-promotion/) embedded component. + """ + issuing_card: NotRequired[ + "AccountSessionCreateParamsComponentsIssuingCard" + ] + """ + Configuration for the [issuing card](https://docs.stripe.com/connect/supported-embedded-components/issuing-card/) embedded component. + """ + issuing_cards_list: NotRequired[ + "AccountSessionCreateParamsComponentsIssuingCardsList" + ] + """ + Configuration for the [issuing cards list](https://docs.stripe.com/connect/supported-embedded-components/issuing-cards-list/) embedded component. + """ + notification_banner: NotRequired[ + "AccountSessionCreateParamsComponentsNotificationBanner" + ] + """ + Configuration for the [notification banner](https://docs.stripe.com/connect/supported-embedded-components/notification-banner/) embedded component. + """ + payment_details: NotRequired[ + "AccountSessionCreateParamsComponentsPaymentDetails" + ] + """ + Configuration for the [payment details](https://docs.stripe.com/connect/supported-embedded-components/payment-details/) embedded component. + """ + payment_disputes: NotRequired[ + "AccountSessionCreateParamsComponentsPaymentDisputes" + ] + """ + Configuration for the [payment disputes](https://docs.stripe.com/connect/supported-embedded-components/payment-disputes/) embedded component. + """ + payments: NotRequired["AccountSessionCreateParamsComponentsPayments"] + """ + Configuration for the [payments](https://docs.stripe.com/connect/supported-embedded-components/payments/) embedded component. + """ + payout_details: NotRequired[ + "AccountSessionCreateParamsComponentsPayoutDetails" + ] + """ + Configuration for the [payout details](https://docs.stripe.com/connect/supported-embedded-components/payout-details/) embedded component. + """ + payouts: NotRequired["AccountSessionCreateParamsComponentsPayouts"] + """ + Configuration for the [payouts](https://docs.stripe.com/connect/supported-embedded-components/payouts/) embedded component. + """ + payouts_list: NotRequired[ + "AccountSessionCreateParamsComponentsPayoutsList" + ] + """ + Configuration for the [payouts list](https://docs.stripe.com/connect/supported-embedded-components/payouts-list/) embedded component. + """ + tax_registrations: NotRequired[ + "AccountSessionCreateParamsComponentsTaxRegistrations" + ] + """ + Configuration for the [tax registrations](https://docs.stripe.com/connect/supported-embedded-components/tax-registrations/) embedded component. + """ + tax_settings: NotRequired[ + "AccountSessionCreateParamsComponentsTaxSettings" + ] + """ + Configuration for the [tax settings](https://docs.stripe.com/connect/supported-embedded-components/tax-settings/) embedded component. + """ + + +class AccountSessionCreateParamsComponentsAccountManagement(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsAccountManagementFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsAccountManagementFeatures(TypedDict): + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: NotRequired[bool] + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + + +class AccountSessionCreateParamsComponentsAccountOnboarding(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsAccountOnboardingFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsAccountOnboardingFeatures(TypedDict): + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: NotRequired[bool] + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + + +class AccountSessionCreateParamsComponentsBalances(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsBalancesFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsBalancesFeatures(TypedDict): + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + edit_payout_schedule: NotRequired[bool] + """ + Whether to allow payout schedule to be changed. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + external_account_collection: NotRequired[bool] + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + instant_payouts: NotRequired[bool] + """ + Whether to allow creation of instant payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + standard_payouts: NotRequired[bool] + """ + Whether to allow creation of standard payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + + +class AccountSessionCreateParamsComponentsDisputesList(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsDisputesListFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsDisputesListFeatures(TypedDict): + capture_payments: NotRequired[bool] + """ + Whether to allow capturing and cancelling payment intents. This is `true` by default. + """ + destination_on_behalf_of_charge_management: NotRequired[bool] + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: NotRequired[bool] + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: NotRequired[bool] + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + +class AccountSessionCreateParamsComponentsDocuments(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsDocumentsFeatures" + ] + """ + An empty list, because this embedded component has no features. + """ + + +class AccountSessionCreateParamsComponentsDocumentsFeatures(TypedDict): + pass + + +class AccountSessionCreateParamsComponentsFinancialAccount(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsFinancialAccountFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsFinancialAccountFeatures(TypedDict): + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: NotRequired[bool] + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + send_money: NotRequired[bool] + """ + Whether to allow sending money. + """ + transfer_balance: NotRequired[bool] + """ + Whether to allow transferring balance. + """ + + +class AccountSessionCreateParamsComponentsFinancialAccountTransactions( + TypedDict, +): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsFinancialAccountTransactionsFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsFinancialAccountTransactionsFeatures( + TypedDict, +): + card_spend_dispute_management: NotRequired[bool] + """ + Whether to allow card spend dispute management features. + """ + + +class AccountSessionCreateParamsComponentsInstantPayoutsPromotion(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsInstantPayoutsPromotionFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsInstantPayoutsPromotionFeatures( + TypedDict, +): + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: NotRequired[bool] + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + instant_payouts: NotRequired[bool] + """ + Whether to allow creation of instant payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + + +class AccountSessionCreateParamsComponentsIssuingCard(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsIssuingCardFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsIssuingCardFeatures(TypedDict): + card_management: NotRequired[bool] + """ + Whether to allow card management features. + """ + card_spend_dispute_management: NotRequired[bool] + """ + Whether to allow card spend dispute management features. + """ + cardholder_management: NotRequired[bool] + """ + Whether to allow cardholder management features. + """ + spend_control_management: NotRequired[bool] + """ + Whether to allow spend control management features. + """ + + +class AccountSessionCreateParamsComponentsIssuingCardsList(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsIssuingCardsListFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsIssuingCardsListFeatures(TypedDict): + card_management: NotRequired[bool] + """ + Whether to allow card management features. + """ + card_spend_dispute_management: NotRequired[bool] + """ + Whether to allow card spend dispute management features. + """ + cardholder_management: NotRequired[bool] + """ + Whether to allow cardholder management features. + """ + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + spend_control_management: NotRequired[bool] + """ + Whether to allow spend control management features. + """ + + +class AccountSessionCreateParamsComponentsNotificationBanner(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsNotificationBannerFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsNotificationBannerFeatures( + TypedDict +): + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + external_account_collection: NotRequired[bool] + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + + +class AccountSessionCreateParamsComponentsPaymentDetails(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsPaymentDetailsFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsPaymentDetailsFeatures(TypedDict): + capture_payments: NotRequired[bool] + """ + Whether to allow capturing and cancelling payment intents. This is `true` by default. + """ + destination_on_behalf_of_charge_management: NotRequired[bool] + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: NotRequired[bool] + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: NotRequired[bool] + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + +class AccountSessionCreateParamsComponentsPaymentDisputes(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsPaymentDisputesFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsPaymentDisputesFeatures(TypedDict): + destination_on_behalf_of_charge_management: NotRequired[bool] + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: NotRequired[bool] + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: NotRequired[bool] + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + +class AccountSessionCreateParamsComponentsPayments(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsPaymentsFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsPaymentsFeatures(TypedDict): + capture_payments: NotRequired[bool] + """ + Whether to allow capturing and cancelling payment intents. This is `true` by default. + """ + destination_on_behalf_of_charge_management: NotRequired[bool] + """ + Whether connected accounts can manage destination charges that are created on behalf of them. This is `false` by default. + """ + dispute_management: NotRequired[bool] + """ + Whether responding to disputes is enabled, including submitting evidence and accepting disputes. This is `true` by default. + """ + refund_management: NotRequired[bool] + """ + Whether sending refunds is enabled. This is `true` by default. + """ + + +class AccountSessionCreateParamsComponentsPayoutDetails(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsPayoutDetailsFeatures" + ] + """ + An empty list, because this embedded component has no features. + """ + + +class AccountSessionCreateParamsComponentsPayoutDetailsFeatures(TypedDict): + pass + + +class AccountSessionCreateParamsComponentsPayouts(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsPayoutsFeatures" + ] + """ + The list of features enabled in the embedded component. + """ + + +class AccountSessionCreateParamsComponentsPayoutsFeatures(TypedDict): + disable_stripe_user_authentication: NotRequired[bool] + """ + Whether Stripe user authentication is disabled. This value can only be `true` for accounts where `controller.requirement_collection` is `application` for the account. The default value is the opposite of the `external_account_collection` value. For example, if you don't set `external_account_collection`, it defaults to `true` and `disable_stripe_user_authentication` defaults to `false`. + """ + edit_payout_schedule: NotRequired[bool] + """ + Whether to allow payout schedule to be changed. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + external_account_collection: NotRequired[bool] + """ + Whether external account collection is enabled. This feature can only be `false` for accounts where you're responsible for collecting updated information when requirements are due or change, like Custom accounts. The default value for this feature is `true`. + """ + instant_payouts: NotRequired[bool] + """ + Whether to allow creation of instant payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + standard_payouts: NotRequired[bool] + """ + Whether to allow creation of standard payouts. Defaults to `true` when `controller.losses.payments` is set to `stripe` for the account, otherwise `false`. + """ + + +class AccountSessionCreateParamsComponentsPayoutsList(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsPayoutsListFeatures" + ] + """ + An empty list, because this embedded component has no features. + """ + + +class AccountSessionCreateParamsComponentsPayoutsListFeatures(TypedDict): + pass + + +class AccountSessionCreateParamsComponentsTaxRegistrations(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsTaxRegistrationsFeatures" + ] + """ + An empty list, because this embedded component has no features. + """ + + +class AccountSessionCreateParamsComponentsTaxRegistrationsFeatures(TypedDict): + pass + + +class AccountSessionCreateParamsComponentsTaxSettings(TypedDict): + enabled: bool + """ + Whether the embedded component is enabled. + """ + features: NotRequired[ + "AccountSessionCreateParamsComponentsTaxSettingsFeatures" + ] + """ + An empty list, because this embedded component has no features. + """ + + +class AccountSessionCreateParamsComponentsTaxSettingsFeatures(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_update_params.py new file mode 100644 index 00000000..0b3275ff --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_account_update_params.py @@ -0,0 +1,1926 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountUpdateParams(TypedDict): + account_token: NotRequired[str] + """ + An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account. + """ + business_profile: NotRequired["AccountUpdateParamsBusinessProfile"] + """ + Business information about the account. + """ + business_type: NotRequired[ + Literal["company", "government_entity", "individual", "non_profit"] + ] + """ + The business type. Once you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + capabilities: NotRequired["AccountUpdateParamsCapabilities"] + """ + Each key of the dictionary represents a capability, and each capability + maps to its settings (for example, whether it has been requested or not). Each + capability is inactive until you have provided its specific + requirements and Stripe has verified them. An account might have some + of its requested capabilities be active and some be inactive. + + Required when [account.controller.stripe_dashboard.type](https://docs.stripe.com/api/accounts/create#create_account-controller-dashboard-type) + is `none`, which includes Custom accounts. + """ + company: NotRequired["AccountUpdateParamsCompany"] + """ + Information about the company or business. This field is available for any `business_type`. Once you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + default_currency: NotRequired[str] + """ + Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts). + """ + documents: NotRequired["AccountUpdateParamsDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + email: NotRequired[str] + """ + The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + external_account: NotRequired[ + "Literal['']|str|AccountUpdateParamsBankAccount|AccountUpdateParamsCard|AccountUpdateParamsCardToken" + ] + """ + A card or bank account to attach to the account for receiving [payouts](https://docs.stripe.com/connect/bank-debit-card-payouts) (you won't be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](https://docs.stripe.com/js), or a dictionary, as documented in the `external_account` parameter for [bank account](https://docs.stripe.com/api#account_create_bank_account) creation. + + By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](https://docs.stripe.com/api#account_create_bank_account) or [card creation](https://docs.stripe.com/api#account_create_card) APIs. After you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + groups: NotRequired["AccountUpdateParamsGroups"] + """ + A hash of account group type to tokens. These are account groups this account should be added to. + """ + individual: NotRequired["AccountUpdateParamsIndividual"] + """ + Information about the person represented by the account. This field is null unless `business_type` is set to `individual`. Once you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + settings: NotRequired["AccountUpdateParamsSettings"] + """ + Options for customizing how the account functions within Stripe. + """ + tos_acceptance: NotRequired["AccountUpdateParamsTosAcceptance"] + """ + Details on the account's acceptance of the [Stripe Services Agreement](https://docs.stripe.com/connect/updating-accounts#tos-acceptance). This property can only be updated for accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. This property defaults to a `full` service agreement when empty. + """ + + +class AccountUpdateParamsBusinessProfile(TypedDict): + annual_revenue: NotRequired[ + "AccountUpdateParamsBusinessProfileAnnualRevenue" + ] + """ + The applicant's gross annual revenue for its preceding fiscal year. + """ + estimated_worker_count: NotRequired[int] + """ + An estimated upper bound of employees, contractors, vendors, etc. currently working for the business. + """ + mcc: NotRequired[str] + """ + [The merchant category code for the account](https://docs.stripe.com/connect/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide. + """ + minority_owned_business_designation: NotRequired[ + List[ + Literal[ + "lgbtqi_owned_business", + "minority_owned_business", + "none_of_these_apply", + "prefer_not_to_answer", + "women_owned_business", + ] + ] + ] + """ + Whether the business is a minority-owned, women-owned, and/or LGBTQI+ -owned business. + """ + monthly_estimated_revenue: NotRequired[ + "AccountUpdateParamsBusinessProfileMonthlyEstimatedRevenue" + ] + """ + An estimate of the monthly revenue of the business. Only accepted for accounts in Brazil and India. + """ + name: NotRequired[str] + """ + The customer-facing business name. + """ + product_description: NotRequired[str] + """ + Internal-only description of the product sold by, or service provided by, the business. Used by Stripe for risk and underwriting purposes. + """ + support_address: NotRequired[ + "AccountUpdateParamsBusinessProfileSupportAddress" + ] + """ + A publicly available mailing address for sending support issues to. + """ + support_email: NotRequired[str] + """ + A publicly available email address for sending support issues to. + """ + support_phone: NotRequired[str] + """ + A publicly available phone number to call with support issues. + """ + support_url: NotRequired["Literal['']|str"] + """ + A publicly available website for handling support issues. + """ + url: NotRequired[str] + """ + The business's publicly available website. + """ + + +class AccountUpdateParamsBusinessProfileAnnualRevenue(TypedDict): + amount: int + """ + A non-negative integer representing the amount in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + fiscal_year_end: str + """ + The close-out date of the preceding fiscal year in ISO 8601 format. E.g. 2023-12-31 for the 31st of December, 2023. + """ + + +class AccountUpdateParamsBusinessProfileMonthlyEstimatedRevenue(TypedDict): + amount: int + """ + A non-negative integer representing how much to charge in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + + +class AccountUpdateParamsBusinessProfileSupportAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountUpdateParamsCapabilities(TypedDict): + acss_debit_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesAcssDebitPayments" + ] + """ + The acss_debit_payments capability. + """ + affirm_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesAffirmPayments" + ] + """ + The affirm_payments capability. + """ + afterpay_clearpay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesAfterpayClearpayPayments" + ] + """ + The afterpay_clearpay_payments capability. + """ + alma_payments: NotRequired["AccountUpdateParamsCapabilitiesAlmaPayments"] + """ + The alma_payments capability. + """ + amazon_pay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesAmazonPayPayments" + ] + """ + The amazon_pay_payments capability. + """ + au_becs_debit_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesAuBecsDebitPayments" + ] + """ + The au_becs_debit_payments capability. + """ + bacs_debit_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesBacsDebitPayments" + ] + """ + The bacs_debit_payments capability. + """ + bancontact_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesBancontactPayments" + ] + """ + The bancontact_payments capability. + """ + bank_transfer_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesBankTransferPayments" + ] + """ + The bank_transfer_payments capability. + """ + billie_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesBilliePayments" + ] + """ + The billie_payments capability. + """ + blik_payments: NotRequired["AccountUpdateParamsCapabilitiesBlikPayments"] + """ + The blik_payments capability. + """ + boleto_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesBoletoPayments" + ] + """ + The boleto_payments capability. + """ + card_issuing: NotRequired["AccountUpdateParamsCapabilitiesCardIssuing"] + """ + The card_issuing capability. + """ + card_payments: NotRequired["AccountUpdateParamsCapabilitiesCardPayments"] + """ + The card_payments capability. + """ + cartes_bancaires_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesCartesBancairesPayments" + ] + """ + The cartes_bancaires_payments capability. + """ + cashapp_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesCashappPayments" + ] + """ + The cashapp_payments capability. + """ + crypto_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesCryptoPayments" + ] + """ + The crypto_payments capability. + """ + eps_payments: NotRequired["AccountUpdateParamsCapabilitiesEpsPayments"] + """ + The eps_payments capability. + """ + fpx_payments: NotRequired["AccountUpdateParamsCapabilitiesFpxPayments"] + """ + The fpx_payments capability. + """ + gb_bank_transfer_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesGbBankTransferPayments" + ] + """ + The gb_bank_transfer_payments capability. + """ + giropay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesGiropayPayments" + ] + """ + The giropay_payments capability. + """ + grabpay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesGrabpayPayments" + ] + """ + The grabpay_payments capability. + """ + ideal_payments: NotRequired["AccountUpdateParamsCapabilitiesIdealPayments"] + """ + The ideal_payments capability. + """ + india_international_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesIndiaInternationalPayments" + ] + """ + The india_international_payments capability. + """ + jcb_payments: NotRequired["AccountUpdateParamsCapabilitiesJcbPayments"] + """ + The jcb_payments capability. + """ + jp_bank_transfer_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesJpBankTransferPayments" + ] + """ + The jp_bank_transfer_payments capability. + """ + kakao_pay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesKakaoPayPayments" + ] + """ + The kakao_pay_payments capability. + """ + klarna_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesKlarnaPayments" + ] + """ + The klarna_payments capability. + """ + konbini_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesKonbiniPayments" + ] + """ + The konbini_payments capability. + """ + kr_card_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesKrCardPayments" + ] + """ + The kr_card_payments capability. + """ + legacy_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesLegacyPayments" + ] + """ + The legacy_payments capability. + """ + link_payments: NotRequired["AccountUpdateParamsCapabilitiesLinkPayments"] + """ + The link_payments capability. + """ + mb_way_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesMbWayPayments" + ] + """ + The mb_way_payments capability. + """ + mobilepay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesMobilepayPayments" + ] + """ + The mobilepay_payments capability. + """ + multibanco_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesMultibancoPayments" + ] + """ + The multibanco_payments capability. + """ + mx_bank_transfer_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesMxBankTransferPayments" + ] + """ + The mx_bank_transfer_payments capability. + """ + naver_pay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesNaverPayPayments" + ] + """ + The naver_pay_payments capability. + """ + nz_bank_account_becs_debit_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesNzBankAccountBecsDebitPayments" + ] + """ + The nz_bank_account_becs_debit_payments capability. + """ + oxxo_payments: NotRequired["AccountUpdateParamsCapabilitiesOxxoPayments"] + """ + The oxxo_payments capability. + """ + p24_payments: NotRequired["AccountUpdateParamsCapabilitiesP24Payments"] + """ + The p24_payments capability. + """ + pay_by_bank_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesPayByBankPayments" + ] + """ + The pay_by_bank_payments capability. + """ + payco_payments: NotRequired["AccountUpdateParamsCapabilitiesPaycoPayments"] + """ + The payco_payments capability. + """ + paynow_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesPaynowPayments" + ] + """ + The paynow_payments capability. + """ + pix_payments: NotRequired["AccountUpdateParamsCapabilitiesPixPayments"] + """ + The pix_payments capability. + """ + promptpay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesPromptpayPayments" + ] + """ + The promptpay_payments capability. + """ + revolut_pay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesRevolutPayPayments" + ] + """ + The revolut_pay_payments capability. + """ + samsung_pay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesSamsungPayPayments" + ] + """ + The samsung_pay_payments capability. + """ + satispay_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesSatispayPayments" + ] + """ + The satispay_payments capability. + """ + sepa_bank_transfer_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesSepaBankTransferPayments" + ] + """ + The sepa_bank_transfer_payments capability. + """ + sepa_debit_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesSepaDebitPayments" + ] + """ + The sepa_debit_payments capability. + """ + sofort_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesSofortPayments" + ] + """ + The sofort_payments capability. + """ + swish_payments: NotRequired["AccountUpdateParamsCapabilitiesSwishPayments"] + """ + The swish_payments capability. + """ + tax_reporting_us_1099_k: NotRequired[ + "AccountUpdateParamsCapabilitiesTaxReportingUs1099K" + ] + """ + The tax_reporting_us_1099_k capability. + """ + tax_reporting_us_1099_misc: NotRequired[ + "AccountUpdateParamsCapabilitiesTaxReportingUs1099Misc" + ] + """ + The tax_reporting_us_1099_misc capability. + """ + transfers: NotRequired["AccountUpdateParamsCapabilitiesTransfers"] + """ + The transfers capability. + """ + treasury: NotRequired["AccountUpdateParamsCapabilitiesTreasury"] + """ + The treasury capability. + """ + twint_payments: NotRequired["AccountUpdateParamsCapabilitiesTwintPayments"] + """ + The twint_payments capability. + """ + us_bank_account_ach_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesUsBankAccountAchPayments" + ] + """ + The us_bank_account_ach_payments capability. + """ + us_bank_transfer_payments: NotRequired[ + "AccountUpdateParamsCapabilitiesUsBankTransferPayments" + ] + """ + The us_bank_transfer_payments capability. + """ + zip_payments: NotRequired["AccountUpdateParamsCapabilitiesZipPayments"] + """ + The zip_payments capability. + """ + + +class AccountUpdateParamsCapabilitiesAcssDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesAffirmPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesAfterpayClearpayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesAlmaPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesAmazonPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesAuBecsDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesBacsDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesBancontactPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesBilliePayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesBlikPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesBoletoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesCardIssuing(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesCardPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesCartesBancairesPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesCashappPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesCryptoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesEpsPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesFpxPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesGbBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesGiropayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesGrabpayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesIdealPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesIndiaInternationalPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesJcbPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesJpBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesKakaoPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesKlarnaPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesKonbiniPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesKrCardPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesLegacyPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesLinkPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesMbWayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesMobilepayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesMultibancoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesMxBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesNaverPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesNzBankAccountBecsDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesOxxoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesP24Payments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesPayByBankPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesPaycoPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesPaynowPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesPixPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesPromptpayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesRevolutPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesSamsungPayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesSatispayPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesSepaBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesSepaDebitPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesSofortPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesSwishPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesTaxReportingUs1099K(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesTaxReportingUs1099Misc(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesTransfers(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesTreasury(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesTwintPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesUsBankAccountAchPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesUsBankTransferPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCapabilitiesZipPayments(TypedDict): + requested: NotRequired[bool] + """ + Passing true requests the capability for the account, if it is not already requested. A requested capability may not immediately become active. Any requirements to activate the capability are returned in the `requirements` arrays. + """ + + +class AccountUpdateParamsCompany(TypedDict): + address: NotRequired["AccountUpdateParamsCompanyAddress"] + """ + The company's primary address. + """ + address_kana: NotRequired["AccountUpdateParamsCompanyAddressKana"] + """ + The Kana variation of the company's primary address (Japan only). + """ + address_kanji: NotRequired["AccountUpdateParamsCompanyAddressKanji"] + """ + The Kanji variation of the company's primary address (Japan only). + """ + directors_provided: NotRequired[bool] + """ + Whether the company's directors have been provided. Set this Boolean to `true` after creating all the company's directors with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.director` requirement. This value is not automatically set to `true` after creating directors, so it needs to be updated to indicate all directors have been provided. + """ + directorship_declaration: NotRequired[ + "AccountUpdateParamsCompanyDirectorshipDeclaration" + ] + """ + This hash is used to attest that the directors information provided to Stripe is both current and correct. + """ + executives_provided: NotRequired[bool] + """ + Whether the company's executives have been provided. Set this Boolean to `true` after creating all the company's executives with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.executive` requirement. + """ + export_license_id: NotRequired[str] + """ + The export license ID number of the company, also referred as Import Export Code (India only). + """ + export_purpose_code: NotRequired[str] + """ + The purpose code to use for export transactions (India only). + """ + name: NotRequired[str] + """ + The company's legal name. + """ + name_kana: NotRequired[str] + """ + The Kana variation of the company's legal name (Japan only). + """ + name_kanji: NotRequired[str] + """ + The Kanji variation of the company's legal name (Japan only). + """ + owners_provided: NotRequired[bool] + """ + Whether the company's owners have been provided. Set this Boolean to `true` after creating all the company's owners with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.owner` requirement. + """ + ownership_declaration: NotRequired[ + "AccountUpdateParamsCompanyOwnershipDeclaration" + ] + """ + This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct. + """ + ownership_exemption_reason: NotRequired[ + "Literal['']|Literal['qualified_entity_exceeds_ownership_threshold', 'qualifies_as_financial_institution']" + ] + """ + This value is used to determine if a business is exempt from providing ultimate beneficial owners. See [this support article](https://support.stripe.com/questions/exemption-from-providing-ownership-details) and [changelog](https://docs.stripe.com/changelog/acacia/2025-01-27/ownership-exemption-reason-accounts-api) for more details. + """ + phone: NotRequired[str] + """ + The company's phone number (used for verification). + """ + registration_date: NotRequired[ + "Literal['']|AccountUpdateParamsCompanyRegistrationDate" + ] + registration_number: NotRequired[str] + """ + The identification number given to a company when it is registered or incorporated, if distinct from the identification number used for filing taxes. (Examples are the CIN for companies and LLP IN for partnerships in India, and the Company Registration Number in Hong Kong). + """ + representative_declaration: NotRequired[ + "AccountUpdateParamsCompanyRepresentativeDeclaration" + ] + """ + This hash is used to attest that the representative is authorized to act as the representative of their legal entity. + """ + structure: NotRequired[ + "Literal['']|Literal['free_zone_establishment', 'free_zone_llc', 'government_instrumentality', 'governmental_unit', 'incorporated_non_profit', 'incorporated_partnership', 'limited_liability_partnership', 'llc', 'multi_member_llc', 'private_company', 'private_corporation', 'private_partnership', 'public_company', 'public_corporation', 'public_partnership', 'registered_charity', 'single_member_llc', 'sole_establishment', 'sole_proprietorship', 'tax_exempt_government_instrumentality', 'unincorporated_association', 'unincorporated_non_profit', 'unincorporated_partnership']" + ] + """ + The category identifying the legal structure of the company or legal entity. See [Business structure](https://docs.stripe.com/connect/identity-verification#business-structure) for more details. Pass an empty string to unset this value. + """ + tax_id: NotRequired[str] + """ + The business ID number of the company, as appropriate for the company's country. (Examples are an Employer ID Number in the U.S., a Business Number in Canada, or a Company Number in the UK.) + """ + tax_id_registrar: NotRequired[str] + """ + The jurisdiction in which the `tax_id` is registered (Germany-based companies only). + """ + vat_id: NotRequired[str] + """ + The VAT number of the company. + """ + verification: NotRequired["AccountUpdateParamsCompanyVerification"] + """ + Information on the verification state of the company. + """ + + +class AccountUpdateParamsCompanyAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountUpdateParamsCompanyAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountUpdateParamsCompanyAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountUpdateParamsCompanyDirectorshipDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the directorship declaration attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the directorship declaration attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the directorship declaration attestation was made. + """ + + +class AccountUpdateParamsCompanyOwnershipDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the beneficial owner attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the beneficial owner attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the beneficial owner attestation was made. + """ + + +class AccountUpdateParamsCompanyRegistrationDate(TypedDict): + day: int + """ + The day of registration, between 1 and 31. + """ + month: int + """ + The month of registration, between 1 and 12. + """ + year: int + """ + The four-digit year of registration. + """ + + +class AccountUpdateParamsCompanyRepresentativeDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the representative declaration attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the representative declaration attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the representative declaration attestation was made. + """ + + +class AccountUpdateParamsCompanyVerification(TypedDict): + document: NotRequired["AccountUpdateParamsCompanyVerificationDocument"] + """ + A document verifying the business. + """ + + +class AccountUpdateParamsCompanyVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountUpdateParamsDocuments(TypedDict): + bank_account_ownership_verification: NotRequired[ + "AccountUpdateParamsDocumentsBankAccountOwnershipVerification" + ] + """ + One or more documents that support the [Bank account ownership verification](https://support.stripe.com/questions/bank-account-ownership-verification) requirement. Must be a document associated with the account's primary active bank account that displays the last 4 digits of the account number, either a statement or a check. + """ + company_license: NotRequired["AccountUpdateParamsDocumentsCompanyLicense"] + """ + One or more documents that demonstrate proof of a company's license to operate. + """ + company_memorandum_of_association: NotRequired[ + "AccountUpdateParamsDocumentsCompanyMemorandumOfAssociation" + ] + """ + One or more documents showing the company's Memorandum of Association. + """ + company_ministerial_decree: NotRequired[ + "AccountUpdateParamsDocumentsCompanyMinisterialDecree" + ] + """ + (Certain countries only) One or more documents showing the ministerial decree legalizing the company's establishment. + """ + company_registration_verification: NotRequired[ + "AccountUpdateParamsDocumentsCompanyRegistrationVerification" + ] + """ + One or more documents that demonstrate proof of a company's registration with the appropriate local authorities. + """ + company_tax_id_verification: NotRequired[ + "AccountUpdateParamsDocumentsCompanyTaxIdVerification" + ] + """ + One or more documents that demonstrate proof of a company's tax ID. + """ + proof_of_address: NotRequired["AccountUpdateParamsDocumentsProofOfAddress"] + """ + One or more documents that demonstrate proof of address. + """ + proof_of_registration: NotRequired[ + "AccountUpdateParamsDocumentsProofOfRegistration" + ] + """ + One or more documents showing the company's proof of registration with the national business registry. + """ + proof_of_ultimate_beneficial_ownership: NotRequired[ + "AccountUpdateParamsDocumentsProofOfUltimateBeneficialOwnership" + ] + """ + One or more documents that demonstrate proof of ultimate beneficial ownership. + """ + + +class AccountUpdateParamsDocumentsBankAccountOwnershipVerification(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsCompanyLicense(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsCompanyMemorandumOfAssociation(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsCompanyMinisterialDecree(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsCompanyRegistrationVerification(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsCompanyTaxIdVerification(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsProofOfAddress(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsProofOfRegistration(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsDocumentsProofOfUltimateBeneficialOwnership( + TypedDict +): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class AccountUpdateParamsBankAccount(TypedDict): + object: Literal["bank_account"] + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account.This field is required when attaching the bank account to a `Customer` object. + """ + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + The type of entity that holds the account. It can be `company` or `individual`. This field is required when attaching the bank account to a `Customer` object. + """ + account_number: str + """ + The account number for the bank account, in string form. Must be a checking account. + """ + country: str + """ + The country in which the bank account is located. + """ + currency: NotRequired[str] + """ + The currency the bank account is in. This must be a country/currency pairing that [Stripe supports.](docs/payouts) + """ + routing_number: NotRequired[str] + """ + The routing number, sort code, or other country-appropriate institution number for the bank account. For US bank accounts, this is required and should be the ACH routing number, not the wire routing number. If you are providing an IBAN for `account_number`, this field is not required. + """ + + +class AccountUpdateParamsCard(TypedDict): + object: Literal["card"] + address_city: NotRequired[str] + address_country: NotRequired[str] + address_line1: NotRequired[str] + address_line2: NotRequired[str] + address_state: NotRequired[str] + address_zip: NotRequired[str] + currency: NotRequired[str] + cvc: NotRequired[str] + exp_month: int + exp_year: int + name: NotRequired[str] + number: str + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + default_for_currency: NotRequired[bool] + + +class AccountUpdateParamsCardToken(TypedDict): + object: Literal["card"] + currency: NotRequired[str] + token: str + + +class AccountUpdateParamsGroups(TypedDict): + payments_pricing: NotRequired["Literal['']|str"] + """ + The group the account is in to determine their payments pricing, and null if the account is on customized pricing. [See the Platform pricing tool documentation](https://stripe.com/docs/connect/platform-pricing-tools) for details. + """ + + +class AccountUpdateParamsIndividual(TypedDict): + address: NotRequired["AccountUpdateParamsIndividualAddress"] + """ + The individual's primary address. + """ + address_kana: NotRequired["AccountUpdateParamsIndividualAddressKana"] + """ + The Kana variation of the individual's primary address (Japan only). + """ + address_kanji: NotRequired["AccountUpdateParamsIndividualAddressKanji"] + """ + The Kanji variation of the individual's primary address (Japan only). + """ + dob: NotRequired["Literal['']|AccountUpdateParamsIndividualDob"] + """ + The individual's date of birth. + """ + email: NotRequired[str] + """ + The individual's email address. + """ + first_name: NotRequired[str] + """ + The individual's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the individual's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the individual's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the individual is known by. + """ + gender: NotRequired[str] + """ + The individual's gender + """ + id_number: NotRequired[str] + """ + The government-issued ID number of the individual, as appropriate for the representative's country. (Examples are a Social Security Number in the U.S., or a Social Insurance Number in Canada). Instead of the number itself, you can also provide a [PII token created with Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The government-issued secondary ID number of the individual, as appropriate for the representative's country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token created with Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The individual's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the individual's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the individual's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The individual's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone: NotRequired[str] + """ + The individual's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired[ + "AccountUpdateParamsIndividualRegisteredAddress" + ] + """ + The individual's registered address. + """ + relationship: NotRequired["AccountUpdateParamsIndividualRelationship"] + """ + Describes the person's relationship to the account. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the individual's Social Security Number (U.S. only). + """ + verification: NotRequired["AccountUpdateParamsIndividualVerification"] + """ + The individual's verification document information. + """ + + +class AccountUpdateParamsIndividualAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountUpdateParamsIndividualAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountUpdateParamsIndividualAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class AccountUpdateParamsIndividualDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class AccountUpdateParamsIndividualRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class AccountUpdateParamsIndividualRelationship(TypedDict): + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class AccountUpdateParamsIndividualVerification(TypedDict): + additional_document: NotRequired[ + "AccountUpdateParamsIndividualVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired["AccountUpdateParamsIndividualVerificationDocument"] + """ + An identifying document, either a passport or local ID card. + """ + + +class AccountUpdateParamsIndividualVerificationAdditionalDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountUpdateParamsIndividualVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class AccountUpdateParamsSettings(TypedDict): + bacs_debit_payments: NotRequired[ + "AccountUpdateParamsSettingsBacsDebitPayments" + ] + """ + Settings specific to Bacs Direct Debit payments. + """ + branding: NotRequired["AccountUpdateParamsSettingsBranding"] + """ + Settings used to apply the account's branding to email receipts, invoices, Checkout, and other products. + """ + card_issuing: NotRequired["AccountUpdateParamsSettingsCardIssuing"] + """ + Settings specific to the account's use of the Card Issuing product. + """ + card_payments: NotRequired["AccountUpdateParamsSettingsCardPayments"] + """ + Settings specific to card charging on the account. + """ + invoices: NotRequired["AccountUpdateParamsSettingsInvoices"] + """ + Settings specific to the account's use of Invoices. + """ + payments: NotRequired["AccountUpdateParamsSettingsPayments"] + """ + Settings that apply across payment methods for charging on the account. + """ + payouts: NotRequired["AccountUpdateParamsSettingsPayouts"] + """ + Settings specific to the account's payouts. + """ + treasury: NotRequired["AccountUpdateParamsSettingsTreasury"] + """ + Settings specific to the account's Treasury FinancialAccounts. + """ + + +class AccountUpdateParamsSettingsBacsDebitPayments(TypedDict): + display_name: NotRequired[str] + """ + The Bacs Direct Debit Display Name for this account. For payments made with Bacs Direct Debit, this name appears on the mandate as the statement descriptor. Mobile banking apps display it as the name of the business. To use custom branding, set the Bacs Direct Debit Display Name during or right after creation. Custom branding incurs an additional monthly fee for the platform. If you don't set the display name before requesting Bacs capability, it's automatically set as "Stripe" and the account is onboarded to Stripe branding, which is free. + """ + + +class AccountUpdateParamsSettingsBranding(TypedDict): + icon: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) An icon for the account. Must be square and at least 128px x 128px. + """ + logo: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A logo for the account that will be used in Checkout instead of the icon and without the account's name next to it if provided. Must be at least 128px x 128px. + """ + primary_color: NotRequired[str] + """ + A CSS hex color value representing the primary branding color for this account. + """ + secondary_color: NotRequired[str] + """ + A CSS hex color value representing the secondary branding color for this account. + """ + + +class AccountUpdateParamsSettingsCardIssuing(TypedDict): + tos_acceptance: NotRequired[ + "AccountUpdateParamsSettingsCardIssuingTosAcceptance" + ] + """ + Details on the account's acceptance of the [Stripe Issuing Terms and Disclosures](https://docs.stripe.com/issuing/connect/tos_acceptance). + """ + + +class AccountUpdateParamsSettingsCardIssuingTosAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountUpdateParamsSettingsCardPayments(TypedDict): + decline_on: NotRequired["AccountUpdateParamsSettingsCardPaymentsDeclineOn"] + """ + Automatically declines certain charge types regardless of whether the card issuer accepted or declined the charge. + """ + statement_descriptor_prefix: NotRequired[str] + """ + The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge. `statement_descriptor_prefix` is useful for maximizing descriptor space for the dynamic portion. + """ + statement_descriptor_prefix_kana: NotRequired["Literal['']|str"] + """ + The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kana` specified on the charge. `statement_descriptor_prefix_kana` is useful for maximizing descriptor space for the dynamic portion. + """ + statement_descriptor_prefix_kanji: NotRequired["Literal['']|str"] + """ + The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kanji` specified on the charge. `statement_descriptor_prefix_kanji` is useful for maximizing descriptor space for the dynamic portion. + """ + + +class AccountUpdateParamsSettingsCardPaymentsDeclineOn(TypedDict): + avs_failure: NotRequired[bool] + """ + Whether Stripe automatically declines charges with an incorrect ZIP or postal code. This setting only applies when a ZIP or postal code is provided and they fail bank verification. + """ + cvc_failure: NotRequired[bool] + """ + Whether Stripe automatically declines charges with an incorrect CVC. This setting only applies when a CVC is provided and it fails bank verification. + """ + + +class AccountUpdateParamsSettingsInvoices(TypedDict): + default_account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The list of default Account Tax IDs to automatically include on invoices. Account Tax IDs get added when an invoice is finalized. + """ + hosted_payment_method_save: NotRequired[ + Literal["always", "never", "offer"] + ] + """ + Whether to save the payment method after a payment is completed for a one-time invoice or a subscription invoice when the customer already has a default payment method on the hosted invoice page. + """ + + +class AccountUpdateParamsSettingsPayments(TypedDict): + statement_descriptor: NotRequired[str] + """ + The default text that appears on statements for non-card charges outside of Japan. For card charges, if you don't set a `statement_descriptor_prefix`, this text is also used as the statement descriptor prefix. In that case, if concatenating the statement descriptor suffix causes the combined statement descriptor to exceed 22 characters, we truncate the `statement_descriptor` text to limit the full descriptor to 22 characters. For more information about statement descriptors and their requirements, see the [account settings documentation](https://docs.stripe.com/get-started/account/statement-descriptors). + """ + statement_descriptor_kana: NotRequired[str] + """ + The Kana variation of `statement_descriptor` used for charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + statement_descriptor_kanji: NotRequired[str] + """ + The Kanji variation of `statement_descriptor` used for charges in Japan. Japanese statement descriptors have [special requirements](https://docs.stripe.com/get-started/account/statement-descriptors#set-japanese-statement-descriptors). + """ + + +class AccountUpdateParamsSettingsPayouts(TypedDict): + debit_negative_balances: NotRequired[bool] + """ + A Boolean indicating whether Stripe should try to reclaim negative balances from an attached bank account. For details, see [Understanding Connect Account Balances](https://docs.stripe.com/connect/account-balances). + """ + schedule: NotRequired["AccountUpdateParamsSettingsPayoutsSchedule"] + """ + Details on when funds from charges are available, and when they are paid out to an external account. For details, see our [Setting Bank and Debit Card Payouts](https://docs.stripe.com/connect/bank-transfers#payout-information) documentation. + """ + statement_descriptor: NotRequired[str] + """ + The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard. + """ + + +class AccountUpdateParamsSettingsPayoutsSchedule(TypedDict): + delay_days: NotRequired["Literal['minimum']|int"] + """ + The number of days charge funds are held before being paid out. May also be set to `minimum`, representing the lowest available value for the account country. Default is `minimum`. The `delay_days` parameter remains at the last configured value if `interval` is `manual`. [Learn more about controlling payout delay days](https://docs.stripe.com/connect/manage-payout-schedule). + """ + interval: NotRequired[Literal["daily", "manual", "monthly", "weekly"]] + """ + How frequently available funds are paid out. One of: `daily`, `manual`, `weekly`, or `monthly`. Default is `daily`. + """ + monthly_anchor: NotRequired[int] + """ + The day of the month when available funds are paid out, specified as a number between 1--31. Payouts nominally scheduled between the 29th and 31st of the month are instead sent on the last day of a shorter month. Required and applicable only if `interval` is `monthly`. + """ + monthly_payout_days: NotRequired[List[int]] + """ + The days of the month when available funds are paid out, specified as an array of numbers between 1--31. Payouts nominally scheduled between the 29th and 31st of the month are instead sent on the last day of a shorter month. Required and applicable only if `interval` is `monthly` and `monthly_anchor` is not set. + """ + weekly_anchor: NotRequired[ + Literal[ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday", + ] + ] + """ + The day of the week when available funds are paid out, specified as `monday`, `tuesday`, etc. Required and applicable only if `interval` is `weekly`. + """ + weekly_payout_days: NotRequired[ + List[Literal["friday", "monday", "thursday", "tuesday", "wednesday"]] + ] + """ + The days of the week when available funds are paid out, specified as an array, e.g., [`monday`, `tuesday`]. Required and applicable only if `interval` is `weekly`. + """ + + +class AccountUpdateParamsSettingsTreasury(TypedDict): + tos_acceptance: NotRequired[ + "AccountUpdateParamsSettingsTreasuryTosAcceptance" + ] + """ + Details on the account's acceptance of the Stripe Treasury Services Agreement. + """ + + +class AccountUpdateParamsSettingsTreasuryTosAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class AccountUpdateParamsTosAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted their service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted their service agreement. + """ + service_agreement: NotRequired[str] + """ + The user's service agreement type. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the account representative accepted their service agreement. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_create_params.py new file mode 100644 index 00000000..42db145a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_create_params.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ApplePayDomainCreateParams(RequestOptions): + domain_name: str + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_delete_params.py new file mode 100644 index 00000000..11099305 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class ApplePayDomainDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_list_params.py new file mode 100644 index 00000000..c301315a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_list_params.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ApplePayDomainListParams(RequestOptions): + domain_name: NotRequired[str] + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_retrieve_params.py new file mode 100644 index 00000000..6730ed44 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_apple_pay_domain_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ApplePayDomainRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_create_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_create_refund_params.py new file mode 100644 index 00000000..4d209e6a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_create_refund_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class ApplicationFeeCreateRefundParams(RequestOptions): + amount: NotRequired[int] + """ + A positive integer, in _cents (or local equivalent)_, representing how much of this fee to refund. Can refund only up to the remaining unrefunded amount of the fee. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_list_params.py new file mode 100644 index 00000000..988ecd88 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_list_params.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ApplicationFeeListParams(RequestOptions): + charge: NotRequired[str] + """ + Only return application fees for the charge specified by this charge ID. + """ + created: NotRequired["ApplicationFeeListParamsCreated|int"] + """ + Only return applications fees that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class ApplicationFeeListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_list_refunds_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_list_refunds_params.py new file mode 100644 index 00000000..e109a31f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_list_refunds_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ApplicationFeeListRefundsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_modify_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_modify_refund_params.py new file mode 100644 index 00000000..a0b49b61 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_modify_refund_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class ApplicationFeeModifyRefundParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_create_params.py new file mode 100644 index 00000000..6f7a7569 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_create_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import NotRequired, TypedDict + + +class ApplicationFeeRefundCreateParams(TypedDict): + amount: NotRequired[int] + """ + A positive integer, in _cents (or local equivalent)_, representing how much of this fee to refund. Can refund only up to the remaining unrefunded amount of the fee. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_list_params.py new file mode 100644 index 00000000..d19af68b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ApplicationFeeRefundListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_params.py new file mode 100644 index 00000000..66e53b61 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class ApplicationFeeRefundParams(RequestOptions): + amount: NotRequired[int] + """ + A positive integer, in _cents (or local equivalent)_, representing how much of this fee to refund. Can refund only up to the remaining unrefunded amount of the fee. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_retrieve_params.py new file mode 100644 index 00000000..44081157 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ApplicationFeeRefundRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_update_params.py new file mode 100644 index 00000000..9d2a63eb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_refund_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ApplicationFeeRefundUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_retrieve_params.py new file mode 100644 index 00000000..f569febc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ApplicationFeeRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_retrieve_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_retrieve_refund_params.py new file mode 100644 index 00000000..b4ec7af1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_application_fee_retrieve_refund_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ApplicationFeeRetrieveRefundParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_retrieve_params.py new file mode 100644 index 00000000..2c3d9a3b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class BalanceRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_modify_params.py new file mode 100644 index 00000000..86ae9e1b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_modify_params.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class BalanceSettingsModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payments: NotRequired["BalanceSettingsModifyParamsPayments"] + """ + Settings that apply to the [Payments Balance](https://docs.stripe.com/api/balance). + """ + + +class BalanceSettingsModifyParamsPayments(TypedDict): + debit_negative_balances: NotRequired[bool] + """ + A Boolean indicating whether Stripe should try to reclaim negative balances from an attached bank account. For details, see [Understanding Connect Account Balances](https://docs.stripe.com/connect/account-balances). + """ + payouts: NotRequired["BalanceSettingsModifyParamsPaymentsPayouts"] + """ + Settings specific to the account's payouts. + """ + settlement_timing: NotRequired[ + "BalanceSettingsModifyParamsPaymentsSettlementTiming" + ] + """ + Settings related to the account's balance settlement timing. + """ + + +class BalanceSettingsModifyParamsPaymentsPayouts(TypedDict): + minimum_balance_by_currency: NotRequired[ + "Literal['']|Dict[str, Union[Literal[''], int]]" + ] + """ + The minimum balance amount to retain per currency after automatic payouts. Only funds that exceed these amounts are paid out. Learn more about the [minimum balances for automatic payouts](https://docs.stripe.com/payouts/minimum-balances-for-automatic-payouts). + """ + schedule: NotRequired["BalanceSettingsModifyParamsPaymentsPayoutsSchedule"] + """ + Details on when funds from charges are available, and when they are paid out to an external account. For details, see our [Setting Bank and Debit Card Payouts](https://docs.stripe.com/connect/bank-transfers#payout-information) documentation. + """ + statement_descriptor: NotRequired[str] + """ + The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard. + """ + + +class BalanceSettingsModifyParamsPaymentsPayoutsSchedule(TypedDict): + interval: NotRequired[Literal["daily", "manual", "monthly", "weekly"]] + """ + How frequently available funds are paid out. One of: `daily`, `manual`, `weekly`, or `monthly`. Default is `daily`. + """ + monthly_payout_days: NotRequired[List[int]] + """ + The days of the month when available funds are paid out, specified as an array of numbers between 1--31. Payouts nominally scheduled between the 29th and 31st of the month are instead sent on the last day of a shorter month. Required and applicable only if `interval` is `monthly`. + """ + weekly_payout_days: NotRequired[ + List[Literal["friday", "monday", "thursday", "tuesday", "wednesday"]] + ] + """ + The days of the week when available funds are paid out, specified as an array, e.g., [`monday`, `tuesday`]. Required and applicable only if `interval` is `weekly`. + """ + + +class BalanceSettingsModifyParamsPaymentsSettlementTiming(TypedDict): + delay_days_override: NotRequired["Literal['']|int"] + """ + Change `delay_days` for this account, which determines the number of days charge funds are held before becoming available. The maximum value is 31. Passing an empty string to `delay_days_override` will return `delay_days` to the default, which is the lowest available value for the account. [Learn more about controlling delay days](https://docs.stripe.com/connect/manage-payout-schedule). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_retrieve_params.py new file mode 100644 index 00000000..a47e2c01 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class BalanceSettingsRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_update_params.py new file mode 100644 index 00000000..24bbf782 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_settings_update_params.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class BalanceSettingsUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payments: NotRequired["BalanceSettingsUpdateParamsPayments"] + """ + Settings that apply to the [Payments Balance](https://docs.stripe.com/api/balance). + """ + + +class BalanceSettingsUpdateParamsPayments(TypedDict): + debit_negative_balances: NotRequired[bool] + """ + A Boolean indicating whether Stripe should try to reclaim negative balances from an attached bank account. For details, see [Understanding Connect Account Balances](https://docs.stripe.com/connect/account-balances). + """ + payouts: NotRequired["BalanceSettingsUpdateParamsPaymentsPayouts"] + """ + Settings specific to the account's payouts. + """ + settlement_timing: NotRequired[ + "BalanceSettingsUpdateParamsPaymentsSettlementTiming" + ] + """ + Settings related to the account's balance settlement timing. + """ + + +class BalanceSettingsUpdateParamsPaymentsPayouts(TypedDict): + minimum_balance_by_currency: NotRequired[ + "Literal['']|Dict[str, Union[Literal[''], int]]" + ] + """ + The minimum balance amount to retain per currency after automatic payouts. Only funds that exceed these amounts are paid out. Learn more about the [minimum balances for automatic payouts](https://docs.stripe.com/payouts/minimum-balances-for-automatic-payouts). + """ + schedule: NotRequired["BalanceSettingsUpdateParamsPaymentsPayoutsSchedule"] + """ + Details on when funds from charges are available, and when they are paid out to an external account. For details, see our [Setting Bank and Debit Card Payouts](https://docs.stripe.com/connect/bank-transfers#payout-information) documentation. + """ + statement_descriptor: NotRequired[str] + """ + The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard. + """ + + +class BalanceSettingsUpdateParamsPaymentsPayoutsSchedule(TypedDict): + interval: NotRequired[Literal["daily", "manual", "monthly", "weekly"]] + """ + How frequently available funds are paid out. One of: `daily`, `manual`, `weekly`, or `monthly`. Default is `daily`. + """ + monthly_payout_days: NotRequired[List[int]] + """ + The days of the month when available funds are paid out, specified as an array of numbers between 1--31. Payouts nominally scheduled between the 29th and 31st of the month are instead sent on the last day of a shorter month. Required and applicable only if `interval` is `monthly`. + """ + weekly_payout_days: NotRequired[ + List[Literal["friday", "monday", "thursday", "tuesday", "wednesday"]] + ] + """ + The days of the week when available funds are paid out, specified as an array, e.g., [`monday`, `tuesday`]. Required and applicable only if `interval` is `weekly`. + """ + + +class BalanceSettingsUpdateParamsPaymentsSettlementTiming(TypedDict): + delay_days_override: NotRequired["Literal['']|int"] + """ + Change `delay_days` for this account, which determines the number of days charge funds are held before becoming available. The maximum value is 31. Passing an empty string to `delay_days_override` will return `delay_days` to the default, which is the lowest available value for the account. [Learn more about controlling delay days](https://docs.stripe.com/connect/manage-payout-schedule). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_transaction_list_params.py new file mode 100644 index 00000000..4c154b4c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_transaction_list_params.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class BalanceTransactionListParams(RequestOptions): + created: NotRequired["BalanceTransactionListParamsCreated|int"] + """ + Only return transactions that were created during the given date interval. + """ + currency: NotRequired[str] + """ + Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payout: NotRequired[str] + """ + For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID. + """ + source: NotRequired[str] + """ + Only returns the original transaction. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[str] + """ + Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `payout_minimum_balance_hold`, `payout_minimum_balance_release`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `stripe_balance_payment_debit`, `stripe_balance_payment_debit_reversal`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. + """ + + +class BalanceTransactionListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_transaction_retrieve_params.py new file mode 100644 index 00000000..b674c88c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_balance_transaction_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class BalanceTransactionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_bank_account_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_bank_account_delete_params.py new file mode 100644 index 00000000..e804f5bf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_bank_account_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class BankAccountDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_card_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_card_delete_params.py new file mode 100644 index 00000000..6e56a15f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_card_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class CardDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_capture_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_capture_params.py new file mode 100644 index 00000000..6de38129 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_capture_params.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ChargeCaptureParams(RequestOptions): + amount: NotRequired[int] + """ + The amount to capture, which must be less than or equal to the original amount. + """ + application_fee: NotRequired[int] + """ + An application fee to add on to this charge. + """ + application_fee_amount: NotRequired[int] + """ + An application fee amount to add on to this charge, which must be less than or equal to the original amount. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + receipt_email: NotRequired[str] + """ + The email address to send this charge's receipt to. This will override the previously-specified email address for this charge, if one was set. Receipts will not be sent in test mode. + """ + statement_descriptor: NotRequired[str] + """ + For a non-card charge, text that appears on the customer's statement as the statement descriptor. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + For a card charge, this value is ignored unless you don't specify a `statement_descriptor_suffix`, in which case this value is used as the suffix. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. If the account has no prefix value, the suffix is concatenated to the account's statement descriptor. + """ + transfer_data: NotRequired["ChargeCaptureParamsTransferData"] + """ + An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details. + """ + transfer_group: NotRequired[str] + """ + A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details. + """ + + +class ChargeCaptureParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_create_params.py new file mode 100644 index 00000000..a305b0f8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_create_params.py @@ -0,0 +1,159 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ChargeCreateParams(RequestOptions): + amount: NotRequired[int] + """ + Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + application_fee: NotRequired[int] + application_fee_amount: NotRequired[int] + """ + A fee in cents (or local equivalent) that will be applied to the charge and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the `Stripe-Account` header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/connect/direct-charges#collect-fees). + """ + capture: NotRequired[bool] + """ + Whether to immediately capture the charge. Defaults to `true`. When `false`, the charge issues an authorization (or pre-authorization), and will need to be [captured](https://stripe.com/docs/api#capture_charge) later. Uncaptured charges expire after a set number of days (7 by default). For more information, see the [authorizing charges and settling later](https://stripe.com/docs/charges/placing-a-hold) documentation. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: NotRequired[str] + """ + The ID of an existing customer that will be charged in this request. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to a `Charge` object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing. + """ + destination: NotRequired["ChargeCreateParamsDestination"] + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The Stripe account ID for which these funds are intended. Automatically set if you use the `destination` parameter. For details, see [Creating Separate Charges and Transfers](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). + """ + radar_options: NotRequired["ChargeCreateParamsRadarOptions"] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + receipt_email: NotRequired[str] + """ + The email address to which this charge's [receipt](https://stripe.com/docs/dashboard/receipts) will be sent. The receipt will not be sent until the charge is paid, and no receipts will be sent for test mode charges. If this charge is for a [Customer](https://stripe.com/docs/api/customers/object), the email address specified here will override the customer's email address. If `receipt_email` is specified for a charge in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails). + """ + shipping: NotRequired["ChargeCreateParamsShipping"] + """ + Shipping information for the charge. Helps prevent fraud on charges for physical goods. + """ + source: NotRequired[str] + """ + A payment source to be charged. This can be the ID of a [card](https://stripe.com/docs/api#cards) (i.e., credit or debit card), a [bank account](https://stripe.com/docs/api#bank_accounts), a [source](https://stripe.com/docs/api#sources), a [token](https://stripe.com/docs/api#tokens), or a [connected account](https://stripe.com/docs/connect/account-debits#charging-a-connected-account). For certain sources---namely, [cards](https://stripe.com/docs/api#cards), [bank accounts](https://stripe.com/docs/api#bank_accounts), and attached [sources](https://stripe.com/docs/api#sources)---you must also pass the ID of the associated customer. + """ + statement_descriptor: NotRequired[str] + """ + For a non-card charge, text that appears on the customer's statement as the statement descriptor. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + For a card charge, this value is ignored unless you don't specify a `statement_descriptor_suffix`, in which case this value is used as the suffix. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. If the account has no prefix value, the suffix is concatenated to the account's statement descriptor. + """ + transfer_data: NotRequired["ChargeCreateParamsTransferData"] + """ + An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details. + """ + transfer_group: NotRequired[str] + """ + A string that identifies this transaction as part of a group. For details, see [Grouping transactions](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options). + """ + + +class ChargeCreateParamsDestination(TypedDict): + account: str + """ + ID of an existing, connected Stripe account. + """ + amount: NotRequired[int] + """ + The amount to transfer to the destination account without creating an `Application Fee` object. Cannot be combined with the `application_fee` parameter. Must be less than or equal to the charge amount. + """ + + +class ChargeCreateParamsRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class ChargeCreateParamsShipping(TypedDict): + address: "ChargeCreateParamsShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class ChargeCreateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class ChargeCreateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_list_params.py new file mode 100644 index 00000000..748fb6b5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_list_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ChargeListParams(RequestOptions): + created: NotRequired["ChargeListParamsCreated|int"] + """ + Only return charges that were created during the given date interval. + """ + customer: NotRequired[str] + """ + Only return charges for the customer specified by this customer ID. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment_intent: NotRequired[str] + """ + Only return charges that were created by the PaymentIntent specified by this PaymentIntent ID. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + transfer_group: NotRequired[str] + """ + Only return charges for this transfer group, limited to 100. + """ + + +class ChargeListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_list_refunds_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_list_refunds_params.py new file mode 100644 index 00000000..6971b3ca --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_list_refunds_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ChargeListRefundsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_modify_params.py new file mode 100644 index 00000000..dd881f57 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_modify_params.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class ChargeModifyParams(RequestOptions): + customer: NotRequired[str] + """ + The ID of an existing customer that will be associated with this request. This field may only be updated if there is no existing associated customer with this charge. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to a charge object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fraud_details: NotRequired["ChargeModifyParamsFraudDetails"] + """ + A set of key-value pairs you can attach to a charge giving information about its riskiness. If you believe a charge is fraudulent, include a `user_report` key with a value of `fraudulent`. If you believe a charge is safe, include a `user_report` key with a value of `safe`. Stripe will use the information you send to improve our fraud detection algorithms. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + receipt_email: NotRequired[str] + """ + This is the email address that the receipt for this charge will be sent to. If this field is updated, then a new email receipt will be sent to the updated address. + """ + shipping: NotRequired["ChargeModifyParamsShipping"] + """ + Shipping information for the charge. Helps prevent fraud on charges for physical goods. + """ + transfer_group: NotRequired[str] + """ + A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details. + """ + + +class ChargeModifyParamsFraudDetails(TypedDict): + user_report: Union[Literal[""], Literal["fraudulent", "safe"]] + """ + Either `safe` or `fraudulent`. + """ + + +class ChargeModifyParamsShipping(TypedDict): + address: "ChargeModifyParamsShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class ChargeModifyParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_retrieve_params.py new file mode 100644 index 00000000..7f47da1d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ChargeRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_retrieve_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_retrieve_refund_params.py new file mode 100644 index 00000000..8e05f9fa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_retrieve_refund_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ChargeRetrieveRefundParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_search_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_search_params.py new file mode 100644 index 00000000..a936ec93 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_search_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ChargeSearchParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + page: NotRequired[str] + """ + A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + """ + query: str + """ + The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for charges](https://stripe.com/docs/search#query-fields-for-charges). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_update_params.py new file mode 100644 index 00000000..be2e3c23 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_charge_update_params.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class ChargeUpdateParams(TypedDict): + customer: NotRequired[str] + """ + The ID of an existing customer that will be associated with this request. This field may only be updated if there is no existing associated customer with this charge. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to a charge object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fraud_details: NotRequired["ChargeUpdateParamsFraudDetails"] + """ + A set of key-value pairs you can attach to a charge giving information about its riskiness. If you believe a charge is fraudulent, include a `user_report` key with a value of `fraudulent`. If you believe a charge is safe, include a `user_report` key with a value of `safe`. Stripe will use the information you send to improve our fraud detection algorithms. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + receipt_email: NotRequired[str] + """ + This is the email address that the receipt for this charge will be sent to. If this field is updated, then a new email receipt will be sent to the updated address. + """ + shipping: NotRequired["ChargeUpdateParamsShipping"] + """ + Shipping information for the charge. Helps prevent fraud on charges for physical goods. + """ + transfer_group: NotRequired[str] + """ + A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details. + """ + + +class ChargeUpdateParamsFraudDetails(TypedDict): + user_report: Union[Literal[""], Literal["fraudulent", "safe"]] + """ + Either `safe` or `fraudulent`. + """ + + +class ChargeUpdateParamsShipping(TypedDict): + address: "ChargeUpdateParamsShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class ChargeUpdateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_confirmation_token_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_confirmation_token_create_params.py new file mode 100644 index 00000000..3c724409 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_confirmation_token_create_params.py @@ -0,0 +1,926 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfirmationTokenCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payment_method: NotRequired[str] + """ + ID of an existing PaymentMethod. + """ + payment_method_data: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodData" + ] + """ + If provided, this hash will be used to create a PaymentMethod. + """ + payment_method_options: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration for this ConfirmationToken. + """ + return_url: NotRequired[str] + """ + Return URL used to confirm the Intent. + """ + setup_future_usage: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates that you intend to make future payments with this ConfirmationToken's payment method. + + The presence of this property will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. + """ + shipping: NotRequired["ConfirmationTokenCreateParamsShipping"] + """ + Shipping information for this ConfirmationToken. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataCashapp" + ] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataGiropay" + ] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataGrabpay" + ] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataKonbini" + ] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataKrCard" + ] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataMobilepay" + ] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataSatispay" + ] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay( + TypedDict +): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAlma(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataBillie(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBlik(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataLink(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPayco(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPix(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataSwish(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataTwint(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataZip(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodOptions(TypedDict): + card: NotRequired["ConfirmationTokenCreateParamsPaymentMethodOptionsCard"] + """ + Configuration for any card payments confirmed using this ConfirmationToken. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodOptionsCard(TypedDict): + installments: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments confirmed using this ConfirmationToken. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments( + TypedDict, +): + plan: ( + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan" + ) + """ + The selected installment plan to use for this payment attempt. + This parameter can only be provided during confirmation. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class ConfirmationTokenCreateParamsShipping(TypedDict): + address: "ConfirmationTokenCreateParamsShippingAddress" + """ + Shipping address + """ + name: str + """ + Recipient name. + """ + phone: NotRequired["Literal['']|str"] + """ + Recipient phone (including extension) + """ + + +class ConfirmationTokenCreateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_confirmation_token_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_confirmation_token_retrieve_params.py new file mode 100644 index 00000000..f2725628 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_confirmation_token_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ConfirmationTokenRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_country_spec_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_country_spec_list_params.py new file mode 100644 index 00000000..33261a59 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_country_spec_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CountrySpecListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_country_spec_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_country_spec_retrieve_params.py new file mode 100644 index 00000000..cecc86f3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_country_spec_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CountrySpecRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_create_params.py new file mode 100644 index 00000000..f6b02506 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_create_params.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CouponCreateParams(RequestOptions): + amount_off: NotRequired[int] + """ + A positive integer representing the amount to subtract from an invoice total (required if `percent_off` is not passed). + """ + applies_to: NotRequired["CouponCreateParamsAppliesTo"] + """ + A hash containing directions for what this Coupon will apply discounts to. + """ + currency: NotRequired[str] + """ + Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `amount_off` parameter (required if `amount_off` is passed). + """ + currency_options: NotRequired[ + Dict[str, "CouponCreateParamsCurrencyOptions"] + ] + """ + Coupons defined in each available currency option (only supported if `amount_off` is passed). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + duration: NotRequired[Literal["forever", "once", "repeating"]] + """ + Specifies how long the discount will be in effect if used on a subscription. Defaults to `once`. + """ + duration_in_months: NotRequired[int] + """ + Required only if `duration` is `repeating`, in which case it must be a positive integer that specifies the number of months the discount will be in effect. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + id: NotRequired[str] + """ + Unique string of your choice that will be used to identify this coupon when applying it to a customer. If you don't want to specify a particular code, you can leave the ID blank and we'll generate a random code for you. + """ + max_redemptions: NotRequired[int] + """ + A positive integer specifying the number of times the coupon can be redeemed before it's no longer valid. For example, you might have a 50% off coupon that the first 20 readers of your blog can use. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set. + """ + percent_off: NotRequired[float] + """ + A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if `amount_off` is not passed). + """ + redeem_by: NotRequired[int] + """ + Unix timestamp specifying the last time at which the coupon can be redeemed. After the redeem_by date, the coupon can no longer be applied to new customers. + """ + + +class CouponCreateParamsAppliesTo(TypedDict): + products: NotRequired[List[str]] + """ + An array of Product IDs that this Coupon will apply to. + """ + + +class CouponCreateParamsCurrencyOptions(TypedDict): + amount_off: int + """ + A positive integer representing the amount to subtract from an invoice total. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_delete_params.py new file mode 100644 index 00000000..2b64b4dc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class CouponDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_list_params.py new file mode 100644 index 00000000..bf133f0e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_list_params.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CouponListParams(RequestOptions): + created: NotRequired["CouponListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class CouponListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_modify_params.py new file mode 100644 index 00000000..3a40e77a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_modify_params.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CouponModifyParams(RequestOptions): + currency_options: NotRequired[ + Dict[str, "CouponModifyParamsCurrencyOptions"] + ] + """ + Coupons defined in each available currency option (only supported if the coupon is amount-based). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set. + """ + + +class CouponModifyParamsCurrencyOptions(TypedDict): + amount_off: int + """ + A positive integer representing the amount to subtract from an invoice total. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_retrieve_params.py new file mode 100644 index 00000000..34e1a8e8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CouponRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_update_params.py new file mode 100644 index 00000000..bbd7d067 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_coupon_update_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CouponUpdateParams(TypedDict): + currency_options: NotRequired[ + Dict[str, "CouponUpdateParamsCurrencyOptions"] + ] + """ + Coupons defined in each available currency option (only supported if the coupon is amount-based). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set. + """ + + +class CouponUpdateParamsCurrencyOptions(TypedDict): + amount_off: int + """ + A positive integer representing the amount to subtract from an invoice total. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_create_params.py new file mode 100644 index 00000000..349d1d6f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_create_params.py @@ -0,0 +1,163 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CreditNoteCreateParams(RequestOptions): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the total amount of the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + credit_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice. + """ + effective_at: NotRequired[int] + """ + The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF. + """ + email_type: NotRequired[Literal["credit_note", "none"]] + """ + Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: str + """ + ID of the invoice. + """ + lines: NotRequired[List["CreditNoteCreateParamsLine"]] + """ + Line items that make up the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + memo: NotRequired[str] + """ + The credit note's memo appears on the credit note PDF. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + out_of_band_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe. + """ + reason: NotRequired[ + Literal[ + "duplicate", "fraudulent", "order_change", "product_unsatisfactory" + ] + ] + """ + Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + """ + refund_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice. + """ + refunds: NotRequired[List["CreditNoteCreateParamsRefund"]] + """ + Refunds to link to this credit note. + """ + shipping_cost: NotRequired["CreditNoteCreateParamsShippingCost"] + """ + When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + + +class CreditNoteCreateParamsLine(TypedDict): + amount: NotRequired[int] + """ + The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive + """ + description: NotRequired[str] + """ + The description of the credit note line item. Only valid when the `type` is `custom_line_item`. + """ + invoice_line_item: NotRequired[str] + """ + The invoice line item to credit. Only valid when the `type` is `invoice_line_item`. + """ + quantity: NotRequired[int] + """ + The line item quantity to credit. + """ + tax_amounts: NotRequired[ + "Literal['']|List[CreditNoteCreateParamsLineTaxAmount]" + ] + """ + A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`. + """ + type: Literal["custom_line_item", "invoice_line_item"] + """ + Type of the credit note line item, one of `invoice_line_item` or `custom_line_item` + """ + unit_amount: NotRequired[int] + """ + The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class CreditNoteCreateParamsLineTaxAmount(TypedDict): + amount: int + """ + The amount, in cents (or local equivalent), of the tax. + """ + tax_rate: str + """ + The id of the tax rate for this tax amount. The tax rate must have been automatically created by Stripe. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + +class CreditNoteCreateParamsRefund(TypedDict): + amount_refunded: NotRequired[int] + """ + Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount. + """ + payment_record_refund: NotRequired[ + "CreditNoteCreateParamsRefundPaymentRecordRefund" + ] + """ + The PaymentRecord refund details to link to this credit note. Required when `type` is `payment_record_refund`. + """ + refund: NotRequired[str] + """ + ID of an existing refund to link this credit note to. Required when `type` is `refund`. + """ + type: NotRequired[Literal["payment_record_refund", "refund"]] + """ + Type of the refund, one of `refund` or `payment_record_refund`. Defaults to `refund`. + """ + + +class CreditNoteCreateParamsRefundPaymentRecordRefund(TypedDict): + payment_record: str + """ + The ID of the PaymentRecord with the refund to link to this credit note. + """ + refund_group: str + """ + The PaymentRecord refund group to link to this credit note. For refunds processed off-Stripe, this will correspond to the `processor_details.custom.refund_reference` field provided when reporting the refund on the PaymentRecord. + """ + + +class CreditNoteCreateParamsShippingCost(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the shipping rate to use for this order. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_line_item_list_params.py new file mode 100644 index 00000000..4eda752b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CreditNoteLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_list_lines_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_list_lines_params.py new file mode 100644 index 00000000..4eb8eacc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_list_lines_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditNoteListLinesParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_list_params.py new file mode 100644 index 00000000..1f2f7e63 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CreditNoteListParams(RequestOptions): + created: NotRequired["CreditNoteListParamsCreated|int"] + """ + Only return credit notes that were created during the given date interval. + """ + customer: NotRequired[str] + """ + Only return credit notes for the customer specified by this customer ID. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: NotRequired[str] + """ + Only return credit notes for the invoice specified by this invoice ID. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class CreditNoteListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_modify_params.py new file mode 100644 index 00000000..7b53aa67 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_modify_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class CreditNoteModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + memo: NotRequired[str] + """ + Credit note memo. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_lines_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_lines_list_params.py new file mode 100644 index 00000000..337f7e9d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_lines_list_params.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CreditNotePreviewLinesListParams(TypedDict): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the total amount of the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + credit_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice. + """ + effective_at: NotRequired[int] + """ + The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF. + """ + email_type: NotRequired[Literal["credit_note", "none"]] + """ + Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: str + """ + ID of the invoice. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + lines: NotRequired[List["CreditNotePreviewLinesListParamsLine"]] + """ + Line items that make up the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + memo: NotRequired[str] + """ + The credit note's memo appears on the credit note PDF. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + out_of_band_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe. + """ + reason: NotRequired[ + Literal[ + "duplicate", "fraudulent", "order_change", "product_unsatisfactory" + ] + ] + """ + Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + """ + refund_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice. + """ + refunds: NotRequired[List["CreditNotePreviewLinesListParamsRefund"]] + """ + Refunds to link to this credit note. + """ + shipping_cost: NotRequired["CreditNotePreviewLinesListParamsShippingCost"] + """ + When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class CreditNotePreviewLinesListParamsLine(TypedDict): + amount: NotRequired[int] + """ + The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive + """ + description: NotRequired[str] + """ + The description of the credit note line item. Only valid when the `type` is `custom_line_item`. + """ + invoice_line_item: NotRequired[str] + """ + The invoice line item to credit. Only valid when the `type` is `invoice_line_item`. + """ + quantity: NotRequired[int] + """ + The line item quantity to credit. + """ + tax_amounts: NotRequired[ + "Literal['']|List[CreditNotePreviewLinesListParamsLineTaxAmount]" + ] + """ + A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`. + """ + type: Literal["custom_line_item", "invoice_line_item"] + """ + Type of the credit note line item, one of `invoice_line_item` or `custom_line_item` + """ + unit_amount: NotRequired[int] + """ + The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class CreditNotePreviewLinesListParamsLineTaxAmount(TypedDict): + amount: int + """ + The amount, in cents (or local equivalent), of the tax. + """ + tax_rate: str + """ + The id of the tax rate for this tax amount. The tax rate must have been automatically created by Stripe. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + +class CreditNotePreviewLinesListParamsRefund(TypedDict): + amount_refunded: NotRequired[int] + """ + Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount. + """ + payment_record_refund: NotRequired[ + "CreditNotePreviewLinesListParamsRefundPaymentRecordRefund" + ] + """ + The PaymentRecord refund details to link to this credit note. Required when `type` is `payment_record_refund`. + """ + refund: NotRequired[str] + """ + ID of an existing refund to link this credit note to. Required when `type` is `refund`. + """ + type: NotRequired[Literal["payment_record_refund", "refund"]] + """ + Type of the refund, one of `refund` or `payment_record_refund`. Defaults to `refund`. + """ + + +class CreditNotePreviewLinesListParamsRefundPaymentRecordRefund(TypedDict): + payment_record: str + """ + The ID of the PaymentRecord with the refund to link to this credit note. + """ + refund_group: str + """ + The PaymentRecord refund group to link to this credit note. For refunds processed off-Stripe, this will correspond to the `processor_details.custom.refund_reference` field provided when reporting the refund on the PaymentRecord. + """ + + +class CreditNotePreviewLinesListParamsShippingCost(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the shipping rate to use for this order. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_lines_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_lines_params.py new file mode 100644 index 00000000..c1a761dc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_lines_params.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CreditNotePreviewLinesParams(RequestOptions): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the total amount of the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + credit_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice. + """ + effective_at: NotRequired[int] + """ + The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF. + """ + email_type: NotRequired[Literal["credit_note", "none"]] + """ + Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: str + """ + ID of the invoice. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + lines: NotRequired[List["CreditNotePreviewLinesParamsLine"]] + """ + Line items that make up the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + memo: NotRequired[str] + """ + The credit note's memo appears on the credit note PDF. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + out_of_band_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe. + """ + reason: NotRequired[ + Literal[ + "duplicate", "fraudulent", "order_change", "product_unsatisfactory" + ] + ] + """ + Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + """ + refund_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice. + """ + refunds: NotRequired[List["CreditNotePreviewLinesParamsRefund"]] + """ + Refunds to link to this credit note. + """ + shipping_cost: NotRequired["CreditNotePreviewLinesParamsShippingCost"] + """ + When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class CreditNotePreviewLinesParamsLine(TypedDict): + amount: NotRequired[int] + """ + The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive + """ + description: NotRequired[str] + """ + The description of the credit note line item. Only valid when the `type` is `custom_line_item`. + """ + invoice_line_item: NotRequired[str] + """ + The invoice line item to credit. Only valid when the `type` is `invoice_line_item`. + """ + quantity: NotRequired[int] + """ + The line item quantity to credit. + """ + tax_amounts: NotRequired[ + "Literal['']|List[CreditNotePreviewLinesParamsLineTaxAmount]" + ] + """ + A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`. + """ + type: Literal["custom_line_item", "invoice_line_item"] + """ + Type of the credit note line item, one of `invoice_line_item` or `custom_line_item` + """ + unit_amount: NotRequired[int] + """ + The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class CreditNotePreviewLinesParamsLineTaxAmount(TypedDict): + amount: int + """ + The amount, in cents (or local equivalent), of the tax. + """ + tax_rate: str + """ + The id of the tax rate for this tax amount. The tax rate must have been automatically created by Stripe. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + +class CreditNotePreviewLinesParamsRefund(TypedDict): + amount_refunded: NotRequired[int] + """ + Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount. + """ + payment_record_refund: NotRequired[ + "CreditNotePreviewLinesParamsRefundPaymentRecordRefund" + ] + """ + The PaymentRecord refund details to link to this credit note. Required when `type` is `payment_record_refund`. + """ + refund: NotRequired[str] + """ + ID of an existing refund to link this credit note to. Required when `type` is `refund`. + """ + type: NotRequired[Literal["payment_record_refund", "refund"]] + """ + Type of the refund, one of `refund` or `payment_record_refund`. Defaults to `refund`. + """ + + +class CreditNotePreviewLinesParamsRefundPaymentRecordRefund(TypedDict): + payment_record: str + """ + The ID of the PaymentRecord with the refund to link to this credit note. + """ + refund_group: str + """ + The PaymentRecord refund group to link to this credit note. For refunds processed off-Stripe, this will correspond to the `processor_details.custom.refund_reference` field provided when reporting the refund on the PaymentRecord. + """ + + +class CreditNotePreviewLinesParamsShippingCost(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the shipping rate to use for this order. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_params.py new file mode 100644 index 00000000..9626dba9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_preview_params.py @@ -0,0 +1,163 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CreditNotePreviewParams(RequestOptions): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the total amount of the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + credit_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice. + """ + effective_at: NotRequired[int] + """ + The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF. + """ + email_type: NotRequired[Literal["credit_note", "none"]] + """ + Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: str + """ + ID of the invoice. + """ + lines: NotRequired[List["CreditNotePreviewParamsLine"]] + """ + Line items that make up the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + memo: NotRequired[str] + """ + The credit note's memo appears on the credit note PDF. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + out_of_band_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe. + """ + reason: NotRequired[ + Literal[ + "duplicate", "fraudulent", "order_change", "product_unsatisfactory" + ] + ] + """ + Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + """ + refund_amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice. + """ + refunds: NotRequired[List["CreditNotePreviewParamsRefund"]] + """ + Refunds to link to this credit note. + """ + shipping_cost: NotRequired["CreditNotePreviewParamsShippingCost"] + """ + When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note. One of `amount`, `lines`, or `shipping_cost` must be provided. + """ + + +class CreditNotePreviewParamsLine(TypedDict): + amount: NotRequired[int] + """ + The line item amount to credit. Only valid when `type` is `invoice_line_item`. If invoice is set up with `automatic_tax[enabled]=true`, this amount is tax exclusive + """ + description: NotRequired[str] + """ + The description of the credit note line item. Only valid when the `type` is `custom_line_item`. + """ + invoice_line_item: NotRequired[str] + """ + The invoice line item to credit. Only valid when the `type` is `invoice_line_item`. + """ + quantity: NotRequired[int] + """ + The line item quantity to credit. + """ + tax_amounts: NotRequired[ + "Literal['']|List[CreditNotePreviewParamsLineTaxAmount]" + ] + """ + A list of up to 10 tax amounts for the credit note line item. Cannot be mixed with `tax_rates`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the credit note line item. Only valid when the `type` is `custom_line_item` and cannot be mixed with `tax_amounts`. + """ + type: Literal["custom_line_item", "invoice_line_item"] + """ + Type of the credit note line item, one of `invoice_line_item` or `custom_line_item` + """ + unit_amount: NotRequired[int] + """ + The integer unit amount in cents (or local equivalent) of the credit note line item. This `unit_amount` will be multiplied by the quantity to get the full amount to credit for this line item. Only valid when `type` is `custom_line_item`. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class CreditNotePreviewParamsLineTaxAmount(TypedDict): + amount: int + """ + The amount, in cents (or local equivalent), of the tax. + """ + tax_rate: str + """ + The id of the tax rate for this tax amount. The tax rate must have been automatically created by Stripe. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + +class CreditNotePreviewParamsRefund(TypedDict): + amount_refunded: NotRequired[int] + """ + Amount of the refund that applies to this credit note, in cents (or local equivalent). Defaults to the entire refund amount. + """ + payment_record_refund: NotRequired[ + "CreditNotePreviewParamsRefundPaymentRecordRefund" + ] + """ + The PaymentRecord refund details to link to this credit note. Required when `type` is `payment_record_refund`. + """ + refund: NotRequired[str] + """ + ID of an existing refund to link this credit note to. Required when `type` is `refund`. + """ + type: NotRequired[Literal["payment_record_refund", "refund"]] + """ + Type of the refund, one of `refund` or `payment_record_refund`. Defaults to `refund`. + """ + + +class CreditNotePreviewParamsRefundPaymentRecordRefund(TypedDict): + payment_record: str + """ + The ID of the PaymentRecord with the refund to link to this credit note. + """ + refund_group: str + """ + The PaymentRecord refund group to link to this credit note. For refunds processed off-Stripe, this will correspond to the `processor_details.custom.refund_reference` field provided when reporting the refund on the PaymentRecord. + """ + + +class CreditNotePreviewParamsShippingCost(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the shipping rate to use for this order. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_retrieve_params.py new file mode 100644 index 00000000..0fabf9b7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditNoteRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_update_params.py new file mode 100644 index 00000000..240ca264 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import NotRequired, TypedDict + + +class CreditNoteUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + memo: NotRequired[str] + """ + Credit note memo. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_void_credit_note_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_void_credit_note_params.py new file mode 100644 index 00000000..5b9df830 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_credit_note_void_credit_note_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditNoteVoidCreditNoteParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_create_params.py new file mode 100644 index 00000000..4795d1b7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_create_params.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerBalanceTransactionCreateParams(TypedDict): + amount: int + """ + The integer amount in **cents (or local equivalent)** to apply to the customer's credit balance. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Specifies the [`invoice_credit_balance`](https://stripe.com/docs/api/customers/object#customer_object-invoice_credit_balance) that this transaction will apply to. If the customer's `currency` is not set, it will be updated to this value. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_list_params.py new file mode 100644 index 00000000..6ef239a1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerBalanceTransactionListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_retrieve_params.py new file mode 100644 index 00000000..bf34aed7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerBalanceTransactionRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_update_params.py new file mode 100644 index 00000000..d4766b55 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_balance_transaction_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerBalanceTransactionUpdateParams(TypedDict): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_retrieve_params.py new file mode 100644 index 00000000..f94c4332 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerCashBalanceRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_transaction_list_params.py new file mode 100644 index 00000000..c0c9d4e7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_transaction_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerCashBalanceTransactionListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_transaction_retrieve_params.py new file mode 100644 index 00000000..c0d01026 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_transaction_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerCashBalanceTransactionRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_update_params.py new file mode 100644 index 00000000..2f1bd2ce --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_cash_balance_update_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerCashBalanceUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + settings: NotRequired["CustomerCashBalanceUpdateParamsSettings"] + """ + A hash of settings for this cash balance. + """ + + +class CustomerCashBalanceUpdateParamsSettings(TypedDict): + reconciliation_mode: NotRequired[ + Literal["automatic", "manual", "merchant_default"] + ] + """ + Controls how funds transferred by the customer are applied to payment intents and invoices. Valid options are `automatic`, `manual`, or `merchant_default`. For more information about these reconciliation modes, see [Reconciliation](https://stripe.com/docs/payments/customer-balance/reconciliation). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_balance_transaction_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_balance_transaction_params.py new file mode 100644 index 00000000..7d979c0a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_balance_transaction_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class CustomerCreateBalanceTransactionParams(RequestOptions): + amount: int + """ + The integer amount in **cents (or local equivalent)** to apply to the customer's credit balance. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Specifies the [`invoice_credit_balance`](https://stripe.com/docs/api/customers/object#customer_object-invoice_credit_balance) that this transaction will apply to. If the customer's `currency` is not set, it will be updated to this value. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_funding_instructions_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_funding_instructions_params.py new file mode 100644 index 00000000..a2792948 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_funding_instructions_params.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerCreateFundingInstructionsParams(RequestOptions): + bank_transfer: "CustomerCreateFundingInstructionsParamsBankTransfer" + """ + Additional parameters for `bank_transfer` funding types + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + funding_type: Literal["bank_transfer"] + """ + The `funding_type` to get the instructions for. + """ + + +class CustomerCreateFundingInstructionsParamsBankTransfer(TypedDict): + eu_bank_transfer: NotRequired[ + "CustomerCreateFundingInstructionsParamsBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + requested_address_types: NotRequired[ + List[Literal["iban", "sort_code", "spei", "zengin"]] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The type of the `bank_transfer` + """ + + +class CustomerCreateFundingInstructionsParamsBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_params.py new file mode 100644 index 00000000..3d7ae3df --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_params.py @@ -0,0 +1,357 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerCreateParams(RequestOptions): + address: NotRequired["Literal['']|CustomerCreateParamsAddress"] + """ + The customer's address. + """ + balance: NotRequired[int] + """ + An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice. + """ + business_name: NotRequired["Literal['']|str"] + """ + The customer's business name. This may be up to *150 characters*. + """ + cash_balance: NotRequired["CustomerCreateParamsCashBalance"] + """ + Balance information and default balance settings for this customer. + """ + description: NotRequired[str] + """ + An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard. + """ + email: NotRequired[str] + """ + Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters*. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + individual_name: NotRequired["Literal['']|str"] + """ + The customer's full name. This may be up to *150 characters*. + """ + invoice_prefix: NotRequired[str] + """ + The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase letters or numbers. + """ + invoice_settings: NotRequired["CustomerCreateParamsInvoiceSettings"] + """ + Default invoice settings for this customer. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + The customer's full name or business name. + """ + next_invoice_sequence: NotRequired[int] + """ + The sequence to be used on the customer's next invoice. Defaults to 1. + """ + payment_method: NotRequired[str] + phone: NotRequired[str] + """ + The customer's phone number. + """ + preferred_locales: NotRequired[List[str]] + """ + Customer's preferred languages, ordered by preference. + """ + shipping: NotRequired["Literal['']|CustomerCreateParamsShipping"] + """ + The customer's shipping information. Appears on invoices emailed to this customer. + """ + source: NotRequired[str] + tax: NotRequired["CustomerCreateParamsTax"] + """ + Tax details about the customer. + """ + tax_exempt: NotRequired["Literal['']|Literal['exempt', 'none', 'reverse']"] + """ + The customer's tax exemption. One of `none`, `exempt`, or `reverse`. + """ + tax_id_data: NotRequired[List["CustomerCreateParamsTaxIdDatum"]] + """ + The customer's tax IDs. + """ + test_clock: NotRequired[str] + """ + ID of the test clock to attach to the customer. + """ + validate: NotRequired[bool] + + +class CustomerCreateParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CustomerCreateParamsCashBalance(TypedDict): + settings: NotRequired["CustomerCreateParamsCashBalanceSettings"] + """ + Settings controlling the behavior of the customer's cash balance, + such as reconciliation of funds received. + """ + + +class CustomerCreateParamsCashBalanceSettings(TypedDict): + reconciliation_mode: NotRequired[ + Literal["automatic", "manual", "merchant_default"] + ] + """ + Controls how funds transferred by the customer are applied to payment intents and invoices. Valid options are `automatic`, `manual`, or `merchant_default`. For more information about these reconciliation modes, see [Reconciliation](https://stripe.com/docs/payments/customer-balance/reconciliation). + """ + + +class CustomerCreateParamsInvoiceSettings(TypedDict): + custom_fields: NotRequired[ + "Literal['']|List[CustomerCreateParamsInvoiceSettingsCustomField]" + ] + """ + The list of up to 4 default custom fields to be displayed on invoices for this customer. When updating, pass an empty string to remove previously-defined fields. + """ + default_payment_method: NotRequired[str] + """ + ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices. + """ + footer: NotRequired[str] + """ + Default footer to be displayed on invoices for this customer. + """ + rendering_options: NotRequired[ + "Literal['']|CustomerCreateParamsInvoiceSettingsRenderingOptions" + ] + """ + Default options for invoice PDF rendering for this customer. + """ + + +class CustomerCreateParamsInvoiceSettingsCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class CustomerCreateParamsInvoiceSettingsRenderingOptions(TypedDict): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for future invoices. + """ + + +class CustomerCreateParamsShipping(TypedDict): + address: "CustomerCreateParamsShippingAddress" + """ + Customer shipping address. + """ + name: str + """ + Customer name. + """ + phone: NotRequired[str] + """ + Customer phone (including extension). + """ + + +class CustomerCreateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CustomerCreateParamsTax(TypedDict): + ip_address: NotRequired["Literal['']|str"] + """ + A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes. + """ + validate_location: NotRequired[Literal["deferred", "immediately"]] + """ + A flag that indicates when Stripe should validate the customer tax location. Defaults to `deferred`. + """ + + +class CustomerCreateParamsTaxIdDatum(TypedDict): + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin` + """ + value: str + """ + Value of the tax ID. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_source_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_source_params.py new file mode 100644 index 00000000..80318b03 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_source_params.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class CustomerCreateSourceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + source: str + """ + Please refer to full [documentation](https://stripe.com/docs/api) instead. + """ + validate: NotRequired[bool] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_tax_id_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_tax_id_params.py new file mode 100644 index 00000000..ddaa0246 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_create_tax_id_params.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class CustomerCreateTaxIdParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin` + """ + value: str + """ + Value of the tax ID. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_discount_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_discount_params.py new file mode 100644 index 00000000..5097006c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_discount_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class CustomerDeleteDiscountParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_params.py new file mode 100644 index 00000000..ac50ae63 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class CustomerDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_source_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_source_params.py new file mode 100644 index 00000000..b1bf3484 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_source_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerDeleteSourceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_tax_id_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_tax_id_params.py new file mode 100644 index 00000000..362ba6fe --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_delete_tax_id_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class CustomerDeleteTaxIdParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_fund_cash_balance_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_fund_cash_balance_params.py new file mode 100644 index 00000000..50645a32 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_fund_cash_balance_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerFundCashBalanceParams(RequestOptions): + amount: int + """ + Amount to be used for this test cash balance transaction. A positive integer representing how much to fund in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to fund $1.00 or 100 to fund ¥100, a zero-decimal currency). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + reference: NotRequired[str] + """ + A description of the test funding. This simulates free-text references supplied by customers when making bank transfers to their cash balance. You can use this to test how Stripe's [reconciliation algorithm](https://stripe.com/docs/payments/customer-balance/reconciliation) applies to different user inputs. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_funding_instructions_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_funding_instructions_create_params.py new file mode 100644 index 00000000..24d23ad4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_funding_instructions_create_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerFundingInstructionsCreateParams(TypedDict): + bank_transfer: "CustomerFundingInstructionsCreateParamsBankTransfer" + """ + Additional parameters for `bank_transfer` funding types + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + funding_type: Literal["bank_transfer"] + """ + The `funding_type` to get the instructions for. + """ + + +class CustomerFundingInstructionsCreateParamsBankTransfer(TypedDict): + eu_bank_transfer: NotRequired[ + "CustomerFundingInstructionsCreateParamsBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + requested_address_types: NotRequired[ + List[Literal["iban", "sort_code", "spei", "zengin"]] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The type of the `bank_transfer` + """ + + +class CustomerFundingInstructionsCreateParamsBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_balance_transactions_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_balance_transactions_params.py new file mode 100644 index 00000000..25815352 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_balance_transactions_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerListBalanceTransactionsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_cash_balance_transactions_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_cash_balance_transactions_params.py new file mode 100644 index 00000000..7b41fc85 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_cash_balance_transactions_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerListCashBalanceTransactionsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_params.py new file mode 100644 index 00000000..84a76a03 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerListParams(RequestOptions): + created: NotRequired["CustomerListParamsCreated|int"] + """ + Only return customers that were created during the given date interval. + """ + email: NotRequired[str] + """ + A case-sensitive filter on the list based on the customer's `email` field. The value must be a string. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + test_clock: NotRequired[str] + """ + Provides a list of customers that are associated with the specified test clock. The response will not include customers with test clocks if this parameter is not set. + """ + + +class CustomerListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_payment_methods_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_payment_methods_params.py new file mode 100644 index 00000000..ed2ff348 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_payment_methods_params.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class CustomerListPaymentMethodsParams(RequestOptions): + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + """ + An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_sources_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_sources_params.py new file mode 100644 index 00000000..8e372def --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_sources_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerListSourcesParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + object: NotRequired[str] + """ + Filter sources according to a particular object type. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_tax_ids_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_tax_ids_params.py new file mode 100644 index 00000000..48e701b9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_list_tax_ids_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerListTaxIdsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_balance_transaction_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_balance_transaction_params.py new file mode 100644 index 00000000..9201b626 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_balance_transaction_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class CustomerModifyBalanceTransactionParams(RequestOptions): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_cash_balance_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_cash_balance_params.py new file mode 100644 index 00000000..825733e1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_cash_balance_params.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerModifyCashBalanceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + settings: NotRequired["CustomerModifyCashBalanceParamsSettings"] + """ + A hash of settings for this cash balance. + """ + + +class CustomerModifyCashBalanceParamsSettings(TypedDict): + reconciliation_mode: NotRequired[ + Literal["automatic", "manual", "merchant_default"] + ] + """ + Controls how funds transferred by the customer are applied to payment intents and invoices. Valid options are `automatic`, `manual`, or `merchant_default`. For more information about these reconciliation modes, see [Reconciliation](https://stripe.com/docs/payments/customer-balance/reconciliation). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_params.py new file mode 100644 index 00000000..4e1f5e8b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_params.py @@ -0,0 +1,234 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerModifyParams(RequestOptions): + address: NotRequired["Literal['']|CustomerModifyParamsAddress"] + """ + The customer's address. + """ + balance: NotRequired[int] + """ + An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice. + """ + business_name: NotRequired["Literal['']|str"] + """ + The customer's business name. This may be up to *150 characters*. + """ + cash_balance: NotRequired["CustomerModifyParamsCashBalance"] + """ + Balance information and default balance settings for this customer. + """ + default_source: NotRequired[str] + """ + If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) parameter. + + Provide the ID of a payment source already attached to this customer to make it this customer's default payment source. + + If you want to add a new payment source and make it the default, see the [source](https://stripe.com/docs/api/customers/update#update_customer-source) property. + """ + description: NotRequired[str] + """ + An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard. + """ + email: NotRequired[str] + """ + Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters*. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + individual_name: NotRequired["Literal['']|str"] + """ + The customer's full name. This may be up to *150 characters*. + """ + invoice_prefix: NotRequired[str] + """ + The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase letters or numbers. + """ + invoice_settings: NotRequired["CustomerModifyParamsInvoiceSettings"] + """ + Default invoice settings for this customer. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + The customer's full name or business name. + """ + next_invoice_sequence: NotRequired[int] + """ + The sequence to be used on the customer's next invoice. Defaults to 1. + """ + phone: NotRequired[str] + """ + The customer's phone number. + """ + preferred_locales: NotRequired[List[str]] + """ + Customer's preferred languages, ordered by preference. + """ + shipping: NotRequired["Literal['']|CustomerModifyParamsShipping"] + """ + The customer's shipping information. Appears on invoices emailed to this customer. + """ + source: NotRequired[str] + tax: NotRequired["CustomerModifyParamsTax"] + """ + Tax details about the customer. + """ + tax_exempt: NotRequired["Literal['']|Literal['exempt', 'none', 'reverse']"] + """ + The customer's tax exemption. One of `none`, `exempt`, or `reverse`. + """ + validate: NotRequired[bool] + + +class CustomerModifyParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CustomerModifyParamsCashBalance(TypedDict): + settings: NotRequired["CustomerModifyParamsCashBalanceSettings"] + """ + Settings controlling the behavior of the customer's cash balance, + such as reconciliation of funds received. + """ + + +class CustomerModifyParamsCashBalanceSettings(TypedDict): + reconciliation_mode: NotRequired[ + Literal["automatic", "manual", "merchant_default"] + ] + """ + Controls how funds transferred by the customer are applied to payment intents and invoices. Valid options are `automatic`, `manual`, or `merchant_default`. For more information about these reconciliation modes, see [Reconciliation](https://stripe.com/docs/payments/customer-balance/reconciliation). + """ + + +class CustomerModifyParamsInvoiceSettings(TypedDict): + custom_fields: NotRequired[ + "Literal['']|List[CustomerModifyParamsInvoiceSettingsCustomField]" + ] + """ + The list of up to 4 default custom fields to be displayed on invoices for this customer. When updating, pass an empty string to remove previously-defined fields. + """ + default_payment_method: NotRequired[str] + """ + ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices. + """ + footer: NotRequired[str] + """ + Default footer to be displayed on invoices for this customer. + """ + rendering_options: NotRequired[ + "Literal['']|CustomerModifyParamsInvoiceSettingsRenderingOptions" + ] + """ + Default options for invoice PDF rendering for this customer. + """ + + +class CustomerModifyParamsInvoiceSettingsCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class CustomerModifyParamsInvoiceSettingsRenderingOptions(TypedDict): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for future invoices. + """ + + +class CustomerModifyParamsShipping(TypedDict): + address: "CustomerModifyParamsShippingAddress" + """ + Customer shipping address. + """ + name: str + """ + Customer name. + """ + phone: NotRequired[str] + """ + Customer phone (including extension). + """ + + +class CustomerModifyParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CustomerModifyParamsTax(TypedDict): + ip_address: NotRequired["Literal['']|str"] + """ + A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes. + """ + validate_location: NotRequired[Literal["auto", "deferred", "immediately"]] + """ + A flag that indicates when Stripe should validate the customer tax location. Defaults to `auto`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_source_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_source_params.py new file mode 100644 index 00000000..844a6a70 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_modify_source_params.py @@ -0,0 +1,107 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerModifySourceParams(RequestOptions): + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account. + """ + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + The type of entity that holds the account. This can be either `individual` or `company`. + """ + address_city: NotRequired[str] + """ + City/District/Suburb/Town/Village. + """ + address_country: NotRequired[str] + """ + Billing address country, if provided when creating card. + """ + address_line1: NotRequired[str] + """ + Address line 1 (Street address/PO Box/Company name). + """ + address_line2: NotRequired[str] + """ + Address line 2 (Apartment/Suite/Unit/Building). + """ + address_state: NotRequired[str] + """ + State/County/Province/Region. + """ + address_zip: NotRequired[str] + """ + ZIP or postal code. + """ + exp_month: NotRequired[str] + """ + Two digit number representing the card's expiration month. + """ + exp_year: NotRequired[str] + """ + Four digit number representing the card's expiration year. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Cardholder name. + """ + owner: NotRequired["CustomerModifySourceParamsOwner"] + + +class CustomerModifySourceParamsOwner(TypedDict): + address: NotRequired["CustomerModifySourceParamsOwnerAddress"] + """ + Owner's address. + """ + email: NotRequired[str] + """ + Owner's email address. + """ + name: NotRequired[str] + """ + Owner's full name. + """ + phone: NotRequired[str] + """ + Owner's phone number. + """ + + +class CustomerModifySourceParamsOwnerAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_method_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_method_list_params.py new file mode 100644 index 00000000..e13f8cd1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_method_list_params.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerPaymentMethodListParams(TypedDict): + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + """ + An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_method_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_method_retrieve_params.py new file mode 100644 index 00000000..2be20f68 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_method_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerPaymentMethodRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_create_params.py new file mode 100644 index 00000000..20c45c9f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_create_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import NotRequired, TypedDict + + +class CustomerPaymentSourceCreateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + source: str + """ + Please refer to full [documentation](https://stripe.com/docs/api) instead. + """ + validate: NotRequired[bool] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_delete_params.py new file mode 100644 index 00000000..b7c9db28 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_delete_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerPaymentSourceDeleteParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_list_params.py new file mode 100644 index 00000000..50e7d599 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_list_params.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerPaymentSourceListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + object: NotRequired[str] + """ + Filter sources according to a particular object type. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_retrieve_params.py new file mode 100644 index 00000000..20b7bc4d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerPaymentSourceRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_update_params.py new file mode 100644 index 00000000..33e5b352 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_update_params.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerPaymentSourceUpdateParams(TypedDict): + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account. + """ + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + The type of entity that holds the account. This can be either `individual` or `company`. + """ + address_city: NotRequired[str] + """ + City/District/Suburb/Town/Village. + """ + address_country: NotRequired[str] + """ + Billing address country, if provided when creating card. + """ + address_line1: NotRequired[str] + """ + Address line 1 (Street address/PO Box/Company name). + """ + address_line2: NotRequired[str] + """ + Address line 2 (Apartment/Suite/Unit/Building). + """ + address_state: NotRequired[str] + """ + State/County/Province/Region. + """ + address_zip: NotRequired[str] + """ + ZIP or postal code. + """ + exp_month: NotRequired[str] + """ + Two digit number representing the card's expiration month. + """ + exp_year: NotRequired[str] + """ + Four digit number representing the card's expiration year. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Cardholder name. + """ + owner: NotRequired["CustomerPaymentSourceUpdateParamsOwner"] + + +class CustomerPaymentSourceUpdateParamsOwner(TypedDict): + address: NotRequired["CustomerPaymentSourceUpdateParamsOwnerAddress"] + """ + Owner's address. + """ + email: NotRequired[str] + """ + Owner's email address. + """ + name: NotRequired[str] + """ + Owner's full name. + """ + phone: NotRequired[str] + """ + Owner's phone number. + """ + + +class CustomerPaymentSourceUpdateParamsOwnerAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_verify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_verify_params.py new file mode 100644 index 00000000..91b036c7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_payment_source_verify_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerPaymentSourceVerifyParams(TypedDict): + amounts: NotRequired[List[int]] + """ + Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_balance_transaction_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_balance_transaction_params.py new file mode 100644 index 00000000..c945e82d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_balance_transaction_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerRetrieveBalanceTransactionParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_cash_balance_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_cash_balance_params.py new file mode 100644 index 00000000..be8d5f6e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_cash_balance_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerRetrieveCashBalanceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_cash_balance_transaction_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_cash_balance_transaction_params.py new file mode 100644 index 00000000..9f175a32 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_cash_balance_transaction_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerRetrieveCashBalanceTransactionParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_params.py new file mode 100644 index 00000000..17e5db37 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_payment_method_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_payment_method_params.py new file mode 100644 index 00000000..27ef7b92 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_payment_method_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerRetrievePaymentMethodParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_source_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_source_params.py new file mode 100644 index 00000000..2a9969e4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_source_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerRetrieveSourceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_tax_id_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_tax_id_params.py new file mode 100644 index 00000000..84b95c4b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_retrieve_tax_id_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerRetrieveTaxIdParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_search_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_search_params.py new file mode 100644 index 00000000..7cb55610 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_search_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CustomerSearchParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + page: NotRequired[str] + """ + A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + """ + query: str + """ + The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for customers](https://stripe.com/docs/search#query-fields-for-customers). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_session_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_session_create_params.py new file mode 100644 index 00000000..04316c59 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_session_create_params.py @@ -0,0 +1,197 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerSessionCreateParams(RequestOptions): + components: "CustomerSessionCreateParamsComponents" + """ + Configuration for each component. At least 1 component must be enabled. + """ + customer: str + """ + The ID of an existing customer for which to create the Customer Session. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + + +class CustomerSessionCreateParamsComponents(TypedDict): + buy_button: NotRequired["CustomerSessionCreateParamsComponentsBuyButton"] + """ + Configuration for buy button. + """ + customer_sheet: NotRequired[ + "CustomerSessionCreateParamsComponentsCustomerSheet" + ] + """ + Configuration for the customer sheet. + """ + mobile_payment_element: NotRequired[ + "CustomerSessionCreateParamsComponentsMobilePaymentElement" + ] + """ + Configuration for the mobile payment element. + """ + payment_element: NotRequired[ + "CustomerSessionCreateParamsComponentsPaymentElement" + ] + """ + Configuration for the Payment Element. + """ + pricing_table: NotRequired[ + "CustomerSessionCreateParamsComponentsPricingTable" + ] + """ + Configuration for the pricing table. + """ + + +class CustomerSessionCreateParamsComponentsBuyButton(TypedDict): + enabled: bool + """ + Whether the buy button is enabled. + """ + + +class CustomerSessionCreateParamsComponentsCustomerSheet(TypedDict): + enabled: bool + """ + Whether the customer sheet is enabled. + """ + features: NotRequired[ + "CustomerSessionCreateParamsComponentsCustomerSheetFeatures" + ] + """ + This hash defines whether the customer sheet supports certain features. + """ + + +class CustomerSessionCreateParamsComponentsCustomerSheetFeatures(TypedDict): + payment_method_allow_redisplay_filters: NotRequired[ + List[Literal["always", "limited", "unspecified"]] + ] + """ + A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the customer sheet displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list. + + If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"]. + """ + payment_method_remove: NotRequired[Literal["disabled", "enabled"]] + """ + Controls whether the customer sheet displays the option to remove a saved payment method." + + Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods). + """ + + +class CustomerSessionCreateParamsComponentsMobilePaymentElement(TypedDict): + enabled: bool + """ + Whether the mobile payment element is enabled. + """ + features: NotRequired[ + "CustomerSessionCreateParamsComponentsMobilePaymentElementFeatures" + ] + """ + This hash defines whether the mobile payment element supports certain features. + """ + + +class CustomerSessionCreateParamsComponentsMobilePaymentElementFeatures( + TypedDict, +): + payment_method_allow_redisplay_filters: NotRequired[ + List[Literal["always", "limited", "unspecified"]] + ] + """ + A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the mobile payment element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list. + + If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"]. + """ + payment_method_redisplay: NotRequired[Literal["disabled", "enabled"]] + """ + Controls whether or not the mobile payment element shows saved payment methods. + """ + payment_method_remove: NotRequired[Literal["disabled", "enabled"]] + """ + Controls whether the mobile payment element displays the option to remove a saved payment method." + + Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods). + """ + payment_method_save: NotRequired[Literal["disabled", "enabled"]] + """ + Controls whether the mobile payment element displays a checkbox offering to save a new payment method. + + If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`. + """ + payment_method_save_allow_redisplay_override: NotRequired[ + Literal["always", "limited", "unspecified"] + ] + """ + Allows overriding the value of allow_override when saving a new payment method when payment_method_save is set to disabled. Use values: "always", "limited", or "unspecified". + + If not specified, defaults to `nil` (no override value). + """ + + +class CustomerSessionCreateParamsComponentsPaymentElement(TypedDict): + enabled: bool + """ + Whether the Payment Element is enabled. + """ + features: NotRequired[ + "CustomerSessionCreateParamsComponentsPaymentElementFeatures" + ] + """ + This hash defines whether the Payment Element supports certain features. + """ + + +class CustomerSessionCreateParamsComponentsPaymentElementFeatures(TypedDict): + payment_method_allow_redisplay_filters: NotRequired[ + List[Literal["always", "limited", "unspecified"]] + ] + """ + A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the Payment Element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list. + + If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"]. + """ + payment_method_redisplay: NotRequired[Literal["disabled", "enabled"]] + """ + Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled`. + """ + payment_method_redisplay_limit: NotRequired[int] + """ + Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `3`. The maximum redisplay limit is `10`. + """ + payment_method_remove: NotRequired[Literal["disabled", "enabled"]] + """ + Controls whether the Payment Element displays the option to remove a saved payment method. This parameter defaults to `disabled`. + + Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods). + """ + payment_method_save: NotRequired[Literal["disabled", "enabled"]] + """ + Controls whether the Payment Element displays a checkbox offering to save a new payment method. This parameter defaults to `disabled`. + + If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`. + """ + payment_method_save_usage: NotRequired[ + Literal["off_session", "on_session"] + ] + """ + When using PaymentIntents and the customer checks the save checkbox, this field determines the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value used to confirm the PaymentIntent. + + When using SetupIntents, directly configure the [`usage`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-usage) value on SetupIntent creation. + """ + + +class CustomerSessionCreateParamsComponentsPricingTable(TypedDict): + enabled: bool + """ + Whether the pricing table is enabled. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_create_params.py new file mode 100644 index 00000000..f30e900c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_create_params.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerTaxIdCreateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin` + """ + value: str + """ + Value of the tax ID. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_delete_params.py new file mode 100644 index 00000000..e301b4e4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class CustomerTaxIdDeleteParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_list_params.py new file mode 100644 index 00000000..cf87ac1c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerTaxIdListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_retrieve_params.py new file mode 100644 index 00000000..8f5adeff --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_tax_id_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerTaxIdRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_update_params.py new file mode 100644 index 00000000..b325846d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_customer_update_params.py @@ -0,0 +1,233 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CustomerUpdateParams(TypedDict): + address: NotRequired["Literal['']|CustomerUpdateParamsAddress"] + """ + The customer's address. + """ + balance: NotRequired[int] + """ + An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice. + """ + business_name: NotRequired["Literal['']|str"] + """ + The customer's business name. This may be up to *150 characters*. + """ + cash_balance: NotRequired["CustomerUpdateParamsCashBalance"] + """ + Balance information and default balance settings for this customer. + """ + default_source: NotRequired[str] + """ + If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) parameter. + + Provide the ID of a payment source already attached to this customer to make it this customer's default payment source. + + If you want to add a new payment source and make it the default, see the [source](https://stripe.com/docs/api/customers/update#update_customer-source) property. + """ + description: NotRequired[str] + """ + An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard. + """ + email: NotRequired[str] + """ + Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters*. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + individual_name: NotRequired["Literal['']|str"] + """ + The customer's full name. This may be up to *150 characters*. + """ + invoice_prefix: NotRequired[str] + """ + The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase letters or numbers. + """ + invoice_settings: NotRequired["CustomerUpdateParamsInvoiceSettings"] + """ + Default invoice settings for this customer. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + The customer's full name or business name. + """ + next_invoice_sequence: NotRequired[int] + """ + The sequence to be used on the customer's next invoice. Defaults to 1. + """ + phone: NotRequired[str] + """ + The customer's phone number. + """ + preferred_locales: NotRequired[List[str]] + """ + Customer's preferred languages, ordered by preference. + """ + shipping: NotRequired["Literal['']|CustomerUpdateParamsShipping"] + """ + The customer's shipping information. Appears on invoices emailed to this customer. + """ + source: NotRequired[str] + tax: NotRequired["CustomerUpdateParamsTax"] + """ + Tax details about the customer. + """ + tax_exempt: NotRequired["Literal['']|Literal['exempt', 'none', 'reverse']"] + """ + The customer's tax exemption. One of `none`, `exempt`, or `reverse`. + """ + validate: NotRequired[bool] + + +class CustomerUpdateParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CustomerUpdateParamsCashBalance(TypedDict): + settings: NotRequired["CustomerUpdateParamsCashBalanceSettings"] + """ + Settings controlling the behavior of the customer's cash balance, + such as reconciliation of funds received. + """ + + +class CustomerUpdateParamsCashBalanceSettings(TypedDict): + reconciliation_mode: NotRequired[ + Literal["automatic", "manual", "merchant_default"] + ] + """ + Controls how funds transferred by the customer are applied to payment intents and invoices. Valid options are `automatic`, `manual`, or `merchant_default`. For more information about these reconciliation modes, see [Reconciliation](https://stripe.com/docs/payments/customer-balance/reconciliation). + """ + + +class CustomerUpdateParamsInvoiceSettings(TypedDict): + custom_fields: NotRequired[ + "Literal['']|List[CustomerUpdateParamsInvoiceSettingsCustomField]" + ] + """ + The list of up to 4 default custom fields to be displayed on invoices for this customer. When updating, pass an empty string to remove previously-defined fields. + """ + default_payment_method: NotRequired[str] + """ + ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices. + """ + footer: NotRequired[str] + """ + Default footer to be displayed on invoices for this customer. + """ + rendering_options: NotRequired[ + "Literal['']|CustomerUpdateParamsInvoiceSettingsRenderingOptions" + ] + """ + Default options for invoice PDF rendering for this customer. + """ + + +class CustomerUpdateParamsInvoiceSettingsCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class CustomerUpdateParamsInvoiceSettingsRenderingOptions(TypedDict): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for future invoices. + """ + + +class CustomerUpdateParamsShipping(TypedDict): + address: "CustomerUpdateParamsShippingAddress" + """ + Customer shipping address. + """ + name: str + """ + Customer name. + """ + phone: NotRequired[str] + """ + Customer phone (including extension). + """ + + +class CustomerUpdateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CustomerUpdateParamsTax(TypedDict): + ip_address: NotRequired["Literal['']|str"] + """ + A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes. + """ + validate_location: NotRequired[Literal["auto", "deferred", "immediately"]] + """ + A flag that indicates when Stripe should validate the customer tax location. Defaults to `auto`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_close_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_close_params.py new file mode 100644 index 00000000..41118c00 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_close_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class DisputeCloseParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_list_params.py new file mode 100644 index 00000000..e70d16e7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class DisputeListParams(RequestOptions): + charge: NotRequired[str] + """ + Only return disputes associated to the charge specified by this charge ID. + """ + created: NotRequired["DisputeListParamsCreated|int"] + """ + Only return disputes that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment_intent: NotRequired[str] + """ + Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class DisputeListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_modify_params.py new file mode 100644 index 00000000..5f8f30a5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_modify_params.py @@ -0,0 +1,318 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class DisputeModifyParams(RequestOptions): + evidence: NotRequired["DisputeModifyParamsEvidence"] + """ + Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review. The combined character count of all fields is limited to 150,000. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + submit: NotRequired[bool] + """ + Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default). + """ + + +class DisputeModifyParamsEvidence(TypedDict): + access_activity_log: NotRequired[str] + """ + Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000. + """ + billing_address: NotRequired[str] + """ + The billing address provided by the customer. + """ + cancellation_policy: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer. + """ + cancellation_policy_disclosure: NotRequired[str] + """ + An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000. + """ + cancellation_rebuttal: NotRequired[str] + """ + A justification for why the customer's subscription was not canceled. Has a maximum character count of 20,000. + """ + customer_communication: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service. + """ + customer_email_address: NotRequired[str] + """ + The email address of the customer. + """ + customer_name: NotRequired[str] + """ + The name of the customer. + """ + customer_purchase_ip: NotRequired[str] + """ + The IP address that the customer used when making the purchase. + """ + customer_signature: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature. + """ + duplicate_charge_documentation: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate. + """ + duplicate_charge_explanation: NotRequired[str] + """ + An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000. + """ + duplicate_charge_id: NotRequired[str] + """ + The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge. + """ + enhanced_evidence: NotRequired[ + "Literal['']|DisputeModifyParamsEvidenceEnhancedEvidence" + ] + """ + Additional evidence for qualifying evidence programs. + """ + product_description: NotRequired[str] + """ + A description of the product or service that was sold. Has a maximum character count of 20,000. + """ + receipt: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge. + """ + refund_policy: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer. + """ + refund_policy_disclosure: NotRequired[str] + """ + Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000. + """ + refund_refusal_explanation: NotRequired[str] + """ + A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000. + """ + service_date: NotRequired[str] + """ + The date on which the customer received or began receiving the purchased service, in a clear human-readable format. + """ + service_documentation: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement. + """ + shipping_address: NotRequired[str] + """ + The address to which a physical product was shipped. You should try to include as complete address information as possible. + """ + shipping_carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas. + """ + shipping_date: NotRequired[str] + """ + The date on which a physical product began its route to the shipping address, in a clear human-readable format. + """ + shipping_documentation: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible. + """ + shipping_tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + uncategorized_file: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements. + """ + uncategorized_text: NotRequired[str] + """ + Any additional evidence or statements. Has a maximum character count of 20,000. + """ + + +class DisputeModifyParamsEvidenceEnhancedEvidence(TypedDict): + visa_compelling_evidence_3: NotRequired[ + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3" + ] + """ + Evidence provided for Visa Compelling Evidence 3.0 evidence submission. + """ + visa_compliance: NotRequired[ + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompliance" + ] + """ + Evidence provided for Visa compliance evidence submission. + """ + + +class DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3( + TypedDict, +): + disputed_transaction: NotRequired[ + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction" + ] + """ + Disputed transaction details for Visa Compelling Evidence 3.0 evidence submission. + """ + prior_undisputed_transactions: NotRequired[ + List[ + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction" + ] + ] + """ + List of exactly two prior undisputed transaction objects for Visa Compelling Evidence 3.0 evidence submission. + """ + + +class DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction( + TypedDict, +): + customer_account_id: NotRequired["Literal['']|str"] + """ + User Account ID used to log into business platform. Must be recognizable by the user. + """ + customer_device_fingerprint: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters. + """ + customer_device_id: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters. + """ + customer_email_address: NotRequired["Literal['']|str"] + """ + The email address of the customer. + """ + customer_purchase_ip: NotRequired["Literal['']|str"] + """ + The IP address that the customer used when making the purchase. + """ + merchandise_or_services: NotRequired[Literal["merchandise", "services"]] + """ + Categorization of disputed payment. + """ + product_description: NotRequired["Literal['']|str"] + """ + A description of the product or service that was sold. + """ + shipping_address: NotRequired[ + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress" + ] + """ + The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission. + """ + + +class DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress( + TypedDict, +): + city: NotRequired["Literal['']|str"] + """ + City, district, suburb, town, or village. + """ + country: NotRequired["Literal['']|str"] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired["Literal['']|str"] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired["Literal['']|str"] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired["Literal['']|str"] + """ + ZIP or postal code. + """ + state: NotRequired["Literal['']|str"] + """ + State, county, province, or region. + """ + + +class DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction( + TypedDict, +): + charge: str + """ + Stripe charge ID for the Visa Compelling Evidence 3.0 eligible prior charge. + """ + customer_account_id: NotRequired["Literal['']|str"] + """ + User Account ID used to log into business platform. Must be recognizable by the user. + """ + customer_device_fingerprint: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters. + """ + customer_device_id: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters. + """ + customer_email_address: NotRequired["Literal['']|str"] + """ + The email address of the customer. + """ + customer_purchase_ip: NotRequired["Literal['']|str"] + """ + The IP address that the customer used when making the purchase. + """ + product_description: NotRequired["Literal['']|str"] + """ + A description of the product or service that was sold. + """ + shipping_address: NotRequired[ + "DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress" + ] + """ + The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission. + """ + + +class DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress( + TypedDict, +): + city: NotRequired["Literal['']|str"] + """ + City, district, suburb, town, or village. + """ + country: NotRequired["Literal['']|str"] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired["Literal['']|str"] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired["Literal['']|str"] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired["Literal['']|str"] + """ + ZIP or postal code. + """ + state: NotRequired["Literal['']|str"] + """ + State, county, province, or region. + """ + + +class DisputeModifyParamsEvidenceEnhancedEvidenceVisaCompliance(TypedDict): + fee_acknowledged: NotRequired[bool] + """ + A field acknowledging the fee incurred when countering a Visa compliance dispute. If this field is set to true, evidence can be submitted for the compliance dispute. Stripe collects a 500 USD (or local equivalent) amount to cover the network costs associated with resolving compliance disputes. Stripe refunds the 500 USD network fee if you win the dispute. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_retrieve_params.py new file mode 100644 index 00000000..5d350dc8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class DisputeRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_update_params.py new file mode 100644 index 00000000..b09f6f5f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_dispute_update_params.py @@ -0,0 +1,317 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class DisputeUpdateParams(TypedDict): + evidence: NotRequired["DisputeUpdateParamsEvidence"] + """ + Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review. The combined character count of all fields is limited to 150,000. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + submit: NotRequired[bool] + """ + Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default). + """ + + +class DisputeUpdateParamsEvidence(TypedDict): + access_activity_log: NotRequired[str] + """ + Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity. Has a maximum character count of 20,000. + """ + billing_address: NotRequired[str] + """ + The billing address provided by the customer. + """ + cancellation_policy: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer. + """ + cancellation_policy_disclosure: NotRequired[str] + """ + An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000. + """ + cancellation_rebuttal: NotRequired[str] + """ + A justification for why the customer's subscription was not canceled. Has a maximum character count of 20,000. + """ + customer_communication: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service. + """ + customer_email_address: NotRequired[str] + """ + The email address of the customer. + """ + customer_name: NotRequired[str] + """ + The name of the customer. + """ + customer_purchase_ip: NotRequired[str] + """ + The IP address that the customer used when making the purchase. + """ + customer_signature: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature. + """ + duplicate_charge_documentation: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate. + """ + duplicate_charge_explanation: NotRequired[str] + """ + An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate. Has a maximum character count of 20,000. + """ + duplicate_charge_id: NotRequired[str] + """ + The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge. + """ + enhanced_evidence: NotRequired[ + "Literal['']|DisputeUpdateParamsEvidenceEnhancedEvidence" + ] + """ + Additional evidence for qualifying evidence programs. + """ + product_description: NotRequired[str] + """ + A description of the product or service that was sold. Has a maximum character count of 20,000. + """ + receipt: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge. + """ + refund_policy: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer. + """ + refund_policy_disclosure: NotRequired[str] + """ + Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000. + """ + refund_refusal_explanation: NotRequired[str] + """ + A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000. + """ + service_date: NotRequired[str] + """ + The date on which the customer received or began receiving the purchased service, in a clear human-readable format. + """ + service_documentation: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement. + """ + shipping_address: NotRequired[str] + """ + The address to which a physical product was shipped. You should try to include as complete address information as possible. + """ + shipping_carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas. + """ + shipping_date: NotRequired[str] + """ + The date on which a physical product began its route to the shipping address, in a clear human-readable format. + """ + shipping_documentation: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible. + """ + shipping_tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + uncategorized_file: NotRequired[str] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements. + """ + uncategorized_text: NotRequired[str] + """ + Any additional evidence or statements. Has a maximum character count of 20,000. + """ + + +class DisputeUpdateParamsEvidenceEnhancedEvidence(TypedDict): + visa_compelling_evidence_3: NotRequired[ + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3" + ] + """ + Evidence provided for Visa Compelling Evidence 3.0 evidence submission. + """ + visa_compliance: NotRequired[ + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompliance" + ] + """ + Evidence provided for Visa compliance evidence submission. + """ + + +class DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3( + TypedDict, +): + disputed_transaction: NotRequired[ + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction" + ] + """ + Disputed transaction details for Visa Compelling Evidence 3.0 evidence submission. + """ + prior_undisputed_transactions: NotRequired[ + List[ + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction" + ] + ] + """ + List of exactly two prior undisputed transaction objects for Visa Compelling Evidence 3.0 evidence submission. + """ + + +class DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransaction( + TypedDict, +): + customer_account_id: NotRequired["Literal['']|str"] + """ + User Account ID used to log into business platform. Must be recognizable by the user. + """ + customer_device_fingerprint: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters. + """ + customer_device_id: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters. + """ + customer_email_address: NotRequired["Literal['']|str"] + """ + The email address of the customer. + """ + customer_purchase_ip: NotRequired["Literal['']|str"] + """ + The IP address that the customer used when making the purchase. + """ + merchandise_or_services: NotRequired[Literal["merchandise", "services"]] + """ + Categorization of disputed payment. + """ + product_description: NotRequired["Literal['']|str"] + """ + A description of the product or service that was sold. + """ + shipping_address: NotRequired[ + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress" + ] + """ + The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission. + """ + + +class DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3DisputedTransactionShippingAddress( + TypedDict, +): + city: NotRequired["Literal['']|str"] + """ + City, district, suburb, town, or village. + """ + country: NotRequired["Literal['']|str"] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired["Literal['']|str"] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired["Literal['']|str"] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired["Literal['']|str"] + """ + ZIP or postal code. + """ + state: NotRequired["Literal['']|str"] + """ + State, county, province, or region. + """ + + +class DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransaction( + TypedDict, +): + charge: str + """ + Stripe charge ID for the Visa Compelling Evidence 3.0 eligible prior charge. + """ + customer_account_id: NotRequired["Literal['']|str"] + """ + User Account ID used to log into business platform. Must be recognizable by the user. + """ + customer_device_fingerprint: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device derived from a combination of at least two hardware and software attributes. Must be at least 20 characters. + """ + customer_device_id: NotRequired["Literal['']|str"] + """ + Unique identifier of the cardholder's device such as a device serial number (e.g., International Mobile Equipment Identity [IMEI]). Must be at least 15 characters. + """ + customer_email_address: NotRequired["Literal['']|str"] + """ + The email address of the customer. + """ + customer_purchase_ip: NotRequired["Literal['']|str"] + """ + The IP address that the customer used when making the purchase. + """ + product_description: NotRequired["Literal['']|str"] + """ + A description of the product or service that was sold. + """ + shipping_address: NotRequired[ + "DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress" + ] + """ + The address to which a physical product was shipped. All fields are required for Visa Compelling Evidence 3.0 evidence submission. + """ + + +class DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompellingEvidence3PriorUndisputedTransactionShippingAddress( + TypedDict, +): + city: NotRequired["Literal['']|str"] + """ + City, district, suburb, town, or village. + """ + country: NotRequired["Literal['']|str"] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired["Literal['']|str"] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired["Literal['']|str"] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired["Literal['']|str"] + """ + ZIP or postal code. + """ + state: NotRequired["Literal['']|str"] + """ + State, county, province, or region. + """ + + +class DisputeUpdateParamsEvidenceEnhancedEvidenceVisaCompliance(TypedDict): + fee_acknowledged: NotRequired[bool] + """ + A field acknowledging the fee incurred when countering a Visa compliance dispute. If this field is set to true, evidence can be submitted for the compliance dispute. Stripe collects a 500 USD (or local equivalent) amount to cover the network costs associated with resolving compliance disputes. Stripe refunds the 500 USD network fee if you win the dispute. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_ephemeral_key_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_ephemeral_key_create_params.py new file mode 100644 index 00000000..6272d618 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_ephemeral_key_create_params.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class EphemeralKeyCreateParams(TypedDict): + customer: NotRequired[str] + """ + The ID of the Customer you'd like to modify using the resulting ephemeral key. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + issuing_card: NotRequired[str] + """ + The ID of the Issuing Card you'd like to access using the resulting ephemeral key. + """ + nonce: NotRequired[str] + """ + A single-use token, created by Stripe.js, used for creating ephemeral keys for Issuing Cards without exchanging sensitive information. + """ + verification_session: NotRequired[str] + """ + The ID of the Identity VerificationSession you'd like to access using the resulting ephemeral key + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_ephemeral_key_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_ephemeral_key_delete_params.py new file mode 100644 index 00000000..d2381956 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_ephemeral_key_delete_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class EphemeralKeyDeleteParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_event_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_event_list_params.py new file mode 100644 index 00000000..5d77d5de --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_event_list_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class EventListParams(RequestOptions): + created: NotRequired["EventListParamsCreated|int"] + """ + Only return events that were created during the given date interval. + """ + delivery_success: NotRequired[bool] + """ + Filter events by whether all webhooks were successfully delivered. If false, events which are still pending or have failed all delivery attempts to a webhook endpoint will be returned. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[str] + """ + A string containing a specific event name, or group of events using * as a wildcard. The list will be filtered to include only events with a matching event property. + """ + types: NotRequired[List[str]] + """ + An array of up to 20 strings containing specific event names. The list will be filtered to include only events with a matching event property. You may pass either `type` or `types`, but not both. + """ + + +class EventListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_event_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_event_retrieve_params.py new file mode 100644 index 00000000..230d7aaa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_event_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class EventRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_exchange_rate_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_exchange_rate_list_params.py new file mode 100644 index 00000000..831dc8da --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_exchange_rate_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ExchangeRateListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with the exchange rate for currency X your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and total number of supported payout currencies, and the default is the max. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with the exchange rate for currency X, your subsequent call can include `starting_after=X` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_exchange_rate_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_exchange_rate_retrieve_params.py new file mode 100644 index 00000000..01b55a21 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_exchange_rate_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ExchangeRateRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_create_params.py new file mode 100644 index 00000000..00b5f427 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_create_params.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Any, Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FileCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + file: "Any" + """ + A file to upload. Make sure that the specifications follow RFC 2388, which defines file transfers for the `multipart/form-data` protocol. + """ + file_link_data: NotRequired["FileCreateParamsFileLinkData"] + """ + Optional parameters that automatically create a [file link](https://stripe.com/docs/api#file_links) for the newly created file. + """ + purpose: Literal[ + "account_requirement", + "additional_verification", + "business_icon", + "business_logo", + "customer_signature", + "dispute_evidence", + "identity_document", + "issuing_regulatory_reporting", + "pci_document", + "platform_terms_of_service", + "tax_document_user_upload", + "terminal_android_apk", + "terminal_reader_splashscreen", + ] + """ + The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file. + """ + + +class FileCreateParamsFileLinkData(TypedDict): + create: bool + """ + Set this to `true` to create a file link for the newly created file. Creating a link is only possible when the file's `purpose` is one of the following: `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `issuing_regulatory_reporting`, `pci_document`, `tax_document_user_upload`, `terminal_android_apk`, or `terminal_reader_splashscreen`. + """ + expires_at: NotRequired[int] + """ + The link isn't available after this future timestamp. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_create_params.py new file mode 100644 index 00000000..08c6e448 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_create_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class FileLinkCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + The link isn't usable after this future timestamp. + """ + file: str + """ + The ID of the file. The file's `purpose` must be one of the following: `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `finance_report_run`, `financial_account_statement`, `identity_document_downloadable`, `issuing_regulatory_reporting`, `pci_document`, `selfie`, `sigma_scheduled_query`, `tax_document_user_upload`, `terminal_android_apk`, or `terminal_reader_splashscreen`. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_list_params.py new file mode 100644 index 00000000..4f1e8354 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class FileLinkListParams(RequestOptions): + created: NotRequired["FileLinkListParamsCreated|int"] + """ + Only return links that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expired: NotRequired[bool] + """ + Filter links by their expiration status. By default, Stripe returns all links. + """ + file: NotRequired[str] + """ + Only return links for the given file. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class FileLinkListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_modify_params.py new file mode 100644 index 00000000..2dda56a1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_modify_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class FileLinkModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired["Literal['']|Literal['now']|int"] + """ + A future timestamp after which the link will no longer be usable, or `now` to expire the link immediately. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_retrieve_params.py new file mode 100644 index 00000000..5dc4880e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class FileLinkRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_update_params.py new file mode 100644 index 00000000..0c5ee8a3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_link_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FileLinkUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired["Literal['']|Literal['now']|int"] + """ + A future timestamp after which the link will no longer be usable, or `now` to expire the link immediately. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_list_params.py new file mode 100644 index 00000000..4dcb719d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_list_params.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FileListParams(RequestOptions): + created: NotRequired["FileListParamsCreated|int"] + """ + Only return files that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + purpose: NotRequired[ + Literal[ + "account_requirement", + "additional_verification", + "business_icon", + "business_logo", + "customer_signature", + "dispute_evidence", + "document_provider_identity_document", + "finance_report_run", + "financial_account_statement", + "identity_document", + "identity_document_downloadable", + "issuing_regulatory_reporting", + "pci_document", + "platform_terms_of_service", + "selfie", + "sigma_scheduled_query", + "tax_document_user_upload", + "terminal_android_apk", + "terminal_reader_splashscreen", + ] + ] + """ + Filter queries by the file purpose. If you don't provide a purpose, the queries return unfiltered files. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class FileListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_retrieve_params.py new file mode 100644 index 00000000..a973a352 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_file_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class FileRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_add_lines_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_add_lines_params.py new file mode 100644 index 00000000..3104b23f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_add_lines_params.py @@ -0,0 +1,259 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceAddLinesParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + lines: List["InvoiceAddLinesParamsLine"] + """ + The line items to add. + """ + + +class InvoiceAddLinesParamsLine(TypedDict): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking. + """ + discountable: NotRequired[bool] + """ + Controls whether discounts apply to this line item. Defaults to false for prorations or negative line items, and true for all other line items. Cannot be set to true for prorations. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceAddLinesParamsLineDiscount]" + ] + """ + The coupons, promotion codes & existing discounts which apply to the line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts. + """ + invoice_item: NotRequired[str] + """ + ID of an unassigned invoice item to assign to this invoice. If not provided, a new item will be created. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["InvoiceAddLinesParamsLinePeriod"] + """ + The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details. + """ + price_data: NotRequired["InvoiceAddLinesParamsLinePriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + pricing: NotRequired["InvoiceAddLinesParamsLinePricing"] + """ + The pricing information for the invoice item. + """ + quantity: NotRequired[int] + """ + Non-negative integer. The quantity of units for the line item. + """ + tax_amounts: NotRequired[ + "Literal['']|List[InvoiceAddLinesParamsLineTaxAmount]" + ] + """ + A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes on your own or use a third-party to calculate them. You cannot set tax amounts if any line item has [tax_rates](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-tax_rates) or if the invoice has [default_tax_rates](https://stripe.com/docs/api/invoices/object#invoice_object-default_tax_rates) or uses [automatic tax](https://stripe.com/docs/tax/invoicing). Pass an empty string to remove previously defined tax amounts. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the line item. When set, the `default_tax_rates` on the invoice do not apply to this line item. Pass an empty string to remove previously-defined tax rates. + """ + + +class InvoiceAddLinesParamsLineDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceAddLinesParamsLinePeriod(TypedDict): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + +class InvoiceAddLinesParamsLinePriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: NotRequired[str] + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + """ + product_data: NotRequired["InvoiceAddLinesParamsLinePriceDataProductData"] + """ + Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceAddLinesParamsLinePriceDataProductData(TypedDict): + description: NotRequired[str] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + images: NotRequired[List[str]] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + + +class InvoiceAddLinesParamsLinePricing(TypedDict): + price: NotRequired[str] + """ + The ID of the price object. + """ + + +class InvoiceAddLinesParamsLineTaxAmount(TypedDict): + amount: int + """ + The amount, in cents (or local equivalent), of the tax. + """ + tax_rate_data: "InvoiceAddLinesParamsLineTaxAmountTaxRateData" + """ + Data to find or create a TaxRate object. + + Stripe automatically creates or reuses a TaxRate object for each tax amount. If the `tax_rate_data` exactly matches a previous value, Stripe will reuse the TaxRate object. TaxRate objects created automatically by Stripe are immediately archived, do not appear in the line item's `tax_rates`, and cannot be directly added to invoices, payments, or line items. + """ + taxability_reason: NotRequired[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + +class InvoiceAddLinesParamsLineTaxAmountTaxRateData(TypedDict): + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + """ + display_name: str + """ + The display name of the tax rate, which will be shown to users. + """ + inclusive: bool + """ + This specifies if the tax rate is inclusive or exclusive. + """ + jurisdiction: NotRequired[str] + """ + The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer's invoice. + """ + jurisdiction_level: NotRequired[ + Literal["city", "country", "county", "district", "multiple", "state"] + ] + """ + The level of the jurisdiction that imposes this tax rate. + """ + percentage: float + """ + The statutory tax rate percent. This field accepts decimal values between 0 and 100 inclusive with at most 4 decimal places. To accommodate fixed-amount taxes, set the percentage to zero. Stripe will not display zero percentages on the invoice unless the `amount` of the tax is also zero. + """ + state: NotRequired[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States. + """ + tax_type: NotRequired[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The high-level tax type, such as `vat` or `sales_tax`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_attach_payment_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_attach_payment_params.py new file mode 100644 index 00000000..36d9b48c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_attach_payment_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceAttachPaymentParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payment_intent: NotRequired[str] + """ + The ID of the PaymentIntent to attach to the invoice. + """ + payment_record: NotRequired[str] + """ + The ID of the PaymentRecord to attach to the invoice. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_create_params.py new file mode 100644 index 00000000..3e0e0099 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_create_params.py @@ -0,0 +1,667 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceCreateParams(RequestOptions): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the invoice. Only editable when the invoice is a draft. + """ + application_fee_amount: NotRequired[int] + """ + A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees). + """ + auto_advance: NotRequired[bool] + """ + Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action. Defaults to false. + """ + automatic_tax: NotRequired["InvoiceCreateParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this invoice. + """ + automatically_finalizes_at: NotRequired[int] + """ + The time when this invoice should be scheduled to finalize (up to 5 years in the future). The invoice is finalized at this time if it's still in draft state. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions. Defaults to `charge_automatically`. + """ + currency: NotRequired[str] + """ + The currency to create this invoice in. Defaults to that of `customer` if not specified. + """ + custom_fields: NotRequired[ + "Literal['']|List[InvoiceCreateParamsCustomField]" + ] + """ + A list of up to 4 custom fields to be displayed on the invoice. + """ + customer: NotRequired[str] + """ + The ID of the customer who will be billed. + """ + days_until_due: NotRequired[int] + """ + The number of days from when the invoice is created until it is due. Valid only for invoices where `collection_method=send_invoice`. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings. + """ + default_source: NotRequired[str] + """ + ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source. + """ + default_tax_rates: NotRequired[List[str]] + """ + The tax rates that will apply to any line item that does not have `tax_rates` set. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard. + """ + discounts: NotRequired["Literal['']|List[InvoiceCreateParamsDiscount]"] + """ + The coupons and promotion codes to redeem into discounts for the invoice. If not specified, inherits the discount from the invoice's customer. Pass an empty string to avoid inheriting any discounts. + """ + due_date: NotRequired[int] + """ + The date on which payment for this invoice is due. Valid only for invoices where `collection_method=send_invoice`. + """ + effective_at: NotRequired[int] + """ + The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + footer: NotRequired[str] + """ + Footer to be displayed on the invoice. + """ + from_invoice: NotRequired["InvoiceCreateParamsFromInvoice"] + """ + Revise an existing invoice. The new invoice will be created in `status=draft`. See the [revision documentation](https://stripe.com/docs/invoicing/invoice-revisions) for more details. + """ + issuer: NotRequired["InvoiceCreateParamsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + number: NotRequired[str] + """ + Set the number for this invoice. If no number is present then a number will be assigned automatically when the invoice is finalized. In many markets, regulations require invoices to be unique, sequential and / or gapless. You are responsible for ensuring this is true across all your different invoicing systems in the event that you edit the invoice number using our API. If you use only Stripe for your invoices and do not change invoice numbers, Stripe handles this aspect of compliance for you automatically. + """ + on_behalf_of: NotRequired[str] + """ + The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details. + """ + payment_settings: NotRequired["InvoiceCreateParamsPaymentSettings"] + """ + Configuration settings for the PaymentIntent that is generated when the invoice is finalized. + """ + pending_invoice_items_behavior: NotRequired[Literal["exclude", "include"]] + """ + How to handle pending invoice items on invoice creation. Defaults to `exclude` if the parameter is omitted. + """ + rendering: NotRequired["InvoiceCreateParamsRendering"] + """ + The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page. + """ + shipping_cost: NotRequired["InvoiceCreateParamsShippingCost"] + """ + Settings for the cost of shipping for this invoice. + """ + shipping_details: NotRequired["InvoiceCreateParamsShippingDetails"] + """ + Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer. + """ + statement_descriptor: NotRequired[str] + """ + Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor`. + """ + subscription: NotRequired[str] + """ + The ID of the subscription to invoice, if any. If set, the created invoice will only include pending invoice items for that subscription. The subscription's billing cycle and regular subscription events won't be affected. + """ + transfer_data: NotRequired["InvoiceCreateParamsTransferData"] + """ + If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge. + """ + + +class InvoiceCreateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Whether Stripe automatically computes tax on this invoice. Note that incompatible invoice items (invoice items with manually specified [tax rates](https://stripe.com/docs/api/tax_rates), negative amounts, or `tax_behavior=unspecified`) cannot be added to automatic tax invoices. + """ + liability: NotRequired["InvoiceCreateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class InvoiceCreateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceCreateParamsCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class InvoiceCreateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceCreateParamsFromInvoice(TypedDict): + action: Literal["revision"] + """ + The relation between the new invoice and the original invoice. Currently, only 'revision' is permitted + """ + invoice: str + """ + The `id` of the invoice that will be cloned. + """ + + +class InvoiceCreateParamsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceCreateParamsPaymentSettings(TypedDict): + default_mandate: NotRequired["Literal['']|str"] + """ + ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the invoice's default_payment_method or default_source, if set. + """ + payment_method_options: NotRequired[ + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration to provide to the invoice's PaymentIntent. + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['ach_credit_transfer', 'ach_debit', 'acss_debit', 'affirm', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'boleto', 'card', 'cashapp', 'crypto', 'custom', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'jp_credit_transfer', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'link', 'multibanco', 'naver_pay', 'nz_bank_account', 'p24', 'payco', 'paynow', 'paypal', 'promptpay', 'revolut_pay', 'sepa_credit_transfer', 'sepa_debit', 'sofort', 'swish', 'us_bank_account', 'wechat_pay']]" + ] + """ + The list of payment method types (e.g. card) to provide to the invoice's PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit" + ] + """ + If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent. + """ + bancontact: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsBancontact" + ] + """ + If paying by `bancontact`, this sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent. + """ + card: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCard" + ] + """ + If paying by `card`, this sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent. + """ + customer_balance: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance" + ] + """ + If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice's PaymentIntent. + """ + konbini: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsKonbini" + ] + """ + If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice's PaymentIntent. + """ + sepa_debit: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit" + ] + """ + If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice's PaymentIntent. + """ + us_bank_account: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount" + ] + """ + If paying by `us_bank_account`, this sub-hash contains details about the ACH direct debit payment method options to pass to the invoice's PaymentIntent. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit( + TypedDict, +): + mandate_options: NotRequired[ + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsBancontact( + TypedDict, +): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCard(TypedDict): + installments: NotRequired[ + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments attempted on this invoice. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallments( + TypedDict, +): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this invoice. + Setting to false will prevent any selected plan from applying to a payment. + """ + plan: NotRequired[ + "Literal['']|InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan" + ] + """ + The selected installment plan to use for this invoice. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance( + TypedDict, +): + bank_transfer: NotRequired[ + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[str] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + type: NotRequired[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsKonbini(TypedDict): + pass + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit( + TypedDict, +): + pass + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount( + TypedDict, +): + financial_connections: NotRequired[ + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + + +class InvoiceCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class InvoiceCreateParamsRendering(TypedDict): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + pdf: NotRequired["InvoiceCreateParamsRenderingPdf"] + """ + Invoice pdf rendering options + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for this invoice. + """ + template_version: NotRequired["Literal['']|int"] + """ + The specific version of invoice rendering template to use for this invoice. + """ + + +class InvoiceCreateParamsRenderingPdf(TypedDict): + page_size: NotRequired[Literal["a4", "auto", "letter"]] + """ + Page size for invoice PDF. Can be set to `a4`, `letter`, or `auto`. + If set to `auto`, invoice PDF page size defaults to `a4` for customers with + Japanese locale and `letter` for customers with other locales. + """ + + +class InvoiceCreateParamsShippingCost(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the shipping rate to use for this order. + """ + shipping_rate_data: NotRequired[ + "InvoiceCreateParamsShippingCostShippingRateData" + ] + """ + Parameters to create a new ad-hoc shipping rate for this order. + """ + + +class InvoiceCreateParamsShippingCostShippingRateData(TypedDict): + delivery_estimate: NotRequired[ + "InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimate" + ] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: str + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + fixed_amount: NotRequired[ + "InvoiceCreateParamsShippingCostShippingRateDataFixedAmount" + ] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: NotRequired[Literal["fixed_amount"]] + """ + The type of calculation to use on the shipping rate. + """ + + +class InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimate( + TypedDict, +): + maximum: NotRequired[ + "InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMaximum" + ] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: NotRequired[ + "InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMinimum" + ] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + + +class InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMaximum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class InvoiceCreateParamsShippingCostShippingRateDataDeliveryEstimateMinimum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class InvoiceCreateParamsShippingCostShippingRateDataFixedAmount(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[ + str, + "InvoiceCreateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions", + ] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class InvoiceCreateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions( + TypedDict, +): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + + +class InvoiceCreateParamsShippingDetails(TypedDict): + address: "InvoiceCreateParamsShippingDetailsAddress" + """ + Shipping address + """ + name: str + """ + Recipient name. + """ + phone: NotRequired["Literal['']|str"] + """ + Recipient phone (including extension) + """ + + +class InvoiceCreateParamsShippingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class InvoiceCreateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_create_preview_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_create_preview_params.py new file mode 100644 index 00000000..c6a80345 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_create_preview_params.py @@ -0,0 +1,1148 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceCreatePreviewParams(RequestOptions): + automatic_tax: NotRequired["InvoiceCreatePreviewParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this invoice preview. + """ + currency: NotRequired[str] + """ + The currency to preview this invoice in. Defaults to that of `customer` if not specified. + """ + customer: NotRequired[str] + """ + The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set. + """ + customer_details: NotRequired["InvoiceCreatePreviewParamsCustomerDetails"] + """ + Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceCreatePreviewParamsDiscount]" + ] + """ + The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_items: NotRequired[List["InvoiceCreatePreviewParamsInvoiceItem"]] + """ + List of invoice items to add or update in the upcoming invoice preview (up to 250). + """ + issuer: NotRequired["InvoiceCreatePreviewParamsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details. + """ + preview_mode: NotRequired[Literal["next", "recurring"]] + """ + Customizes the types of values to include when calculating the invoice. Defaults to `next` if unspecified. + """ + schedule: NotRequired[str] + """ + The identifier of the schedule whose upcoming invoice you'd like to retrieve. Cannot be used with subscription or subscription fields. + """ + schedule_details: NotRequired["InvoiceCreatePreviewParamsScheduleDetails"] + """ + The schedule creation or modification params to apply as a preview. Cannot be used with `subscription` or `subscription_` prefixed fields. + """ + subscription: NotRequired[str] + """ + The identifier of the subscription for which you'd like to retrieve the upcoming invoice. If not provided, but a `subscription_details.items` is provided, you will preview creating a subscription with those items. If neither `subscription` nor `subscription_details.items` is provided, you will retrieve the next upcoming invoice from among the customer's subscriptions. + """ + subscription_details: NotRequired[ + "InvoiceCreatePreviewParamsSubscriptionDetails" + ] + """ + The subscription creation or modification params to apply as a preview. Cannot be used with `schedule` or `schedule_details` fields. + """ + + +class InvoiceCreatePreviewParamsAutomaticTax(TypedDict): + enabled: bool + """ + Whether Stripe automatically computes tax on this invoice. Note that incompatible invoice items (invoice items with manually specified [tax rates](https://stripe.com/docs/api/tax_rates), negative amounts, or `tax_behavior=unspecified`) cannot be added to automatic tax invoices. + """ + liability: NotRequired["InvoiceCreatePreviewParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class InvoiceCreatePreviewParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceCreatePreviewParamsCustomerDetails(TypedDict): + address: NotRequired[ + "Literal['']|InvoiceCreatePreviewParamsCustomerDetailsAddress" + ] + """ + The customer's address. + """ + shipping: NotRequired[ + "Literal['']|InvoiceCreatePreviewParamsCustomerDetailsShipping" + ] + """ + The customer's shipping information. Appears on invoices emailed to this customer. + """ + tax: NotRequired["InvoiceCreatePreviewParamsCustomerDetailsTax"] + """ + Tax details about the customer. + """ + tax_exempt: NotRequired["Literal['']|Literal['exempt', 'none', 'reverse']"] + """ + The customer's tax exemption. One of `none`, `exempt`, or `reverse`. + """ + tax_ids: NotRequired[ + List["InvoiceCreatePreviewParamsCustomerDetailsTaxId"] + ] + """ + The customer's tax IDs. + """ + + +class InvoiceCreatePreviewParamsCustomerDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class InvoiceCreatePreviewParamsCustomerDetailsShipping(TypedDict): + address: "InvoiceCreatePreviewParamsCustomerDetailsShippingAddress" + """ + Customer shipping address. + """ + name: str + """ + Customer name. + """ + phone: NotRequired[str] + """ + Customer phone (including extension). + """ + + +class InvoiceCreatePreviewParamsCustomerDetailsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + A freeform text field for the country. However, in order to activate some tax features, the format should be a two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class InvoiceCreatePreviewParamsCustomerDetailsTax(TypedDict): + ip_address: NotRequired["Literal['']|str"] + """ + A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes. + """ + + +class InvoiceCreatePreviewParamsCustomerDetailsTaxId(TypedDict): + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin` + """ + value: str + """ + Value of the tax ID. + """ + + +class InvoiceCreatePreviewParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceCreatePreviewParamsInvoiceItem(TypedDict): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) of previewed invoice item. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Only applicable to new invoice items. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking. + """ + discountable: NotRequired[bool] + """ + Explicitly controls whether discounts apply to this invoice item. Defaults to true, except for negative invoice items. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceCreatePreviewParamsInvoiceItemDiscount]" + ] + """ + The coupons to redeem into discounts for the invoice item in the preview. + """ + invoiceitem: NotRequired[str] + """ + The ID of the invoice item to update in preview. If not specified, a new invoice item will be added to the preview of the upcoming invoice. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["InvoiceCreatePreviewParamsInvoiceItemPeriod"] + """ + The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["InvoiceCreatePreviewParamsInvoiceItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Non-negative integer. The quantity of units for the invoice item. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tax_code: NotRequired["Literal['']|str"] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that apply to the item. When set, any `default_tax_rates` do not apply to this item. + """ + unit_amount: NotRequired[int] + """ + The integer unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This unit_amount will be multiplied by the quantity to get the full amount. If you want to apply a credit to the customer's account, pass a negative unit_amount. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceCreatePreviewParamsInvoiceItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceCreatePreviewParamsInvoiceItemPeriod(TypedDict): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + +class InvoiceCreatePreviewParamsInvoiceItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceCreatePreviewParamsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceCreatePreviewParamsScheduleDetails(TypedDict): + billing_mode: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsBillingMode" + ] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + end_behavior: NotRequired[Literal["cancel", "release"]] + """ + Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription. + """ + phases: NotRequired[List["InvoiceCreatePreviewParamsScheduleDetailsPhase"]] + """ + List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + In cases where the `schedule_details` params update the currently active phase, specifies if and how to prorate at the time of the request. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsBillingMode(TypedDict): + flexible: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsBillingModeFlexible" + ] + """ + Configure behavior for flexible billing mode. + """ + type: Literal["classic", "flexible"] + """ + Controls the calculation and orchestration of prorations and invoices for subscriptions. If no value is passed, the default is `flexible`. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsBillingModeFlexible(TypedDict): + proration_discounts: NotRequired[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhase(TypedDict): + add_invoice_items: NotRequired[ + List["InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItem"] + ] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items. + """ + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTax" + ] + """ + Automatic tax settings for this phase. + """ + billing_cycle_anchor: NotRequired[Literal["automatic", "phase_start"]] + """ + Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|InvoiceCreatePreviewParamsScheduleDetailsPhaseBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase. + """ + description: NotRequired["Literal['']|str"] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceCreatePreviewParamsScheduleDetailsPhaseDiscount]" + ] + """ + The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts. + """ + duration: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseDuration" + ] + """ + The number of intervals the phase should last. If set, `end_date` must not be set. + """ + end_date: NotRequired["int|Literal['now']"] + """ + The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set. + """ + invoice_settings: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + items: List["InvoiceCreatePreviewParamsScheduleDetailsPhaseItem"] + """ + List of configuration items, each with an attached price, to apply during this phase of the subscription schedule. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The account on behalf of which to charge, for each of the associated subscription's invoices. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Controls whether the subscription schedule should create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase if there is a difference in billing configuration. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration (item price, quantity, etc.) of the current phase. + """ + start_date: NotRequired["int|Literal['now']"] + """ + The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase. + """ + transfer_data: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseTransferData" + ] + """ + The data with which to automatically create a Transfer for each of the associated subscription's invoices. + """ + trial: NotRequired[bool] + """ + If set to true the entire phase is counted as a trial and the customer will not be charged for any fees. + """ + trial_end: NotRequired["int|Literal['now']"] + """ + Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial` + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItem(TypedDict): + discounts: NotRequired[ + List[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemDiscount" + ] + ] + """ + The coupons to redeem into discounts for the item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriod" + ] + """ + The period associated with this invoice item. If not set, `period.start.type` defaults to `max_item_period_start` and `period.end.type` defaults to `min_item_period_end`. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. Defaults to 1. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemDiscount( + TypedDict, +): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriod( + TypedDict, +): + end: ( + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodEnd" + ) + """ + End of the invoice item period. + """ + start: "InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodStart" + """ + Start of the invoice item period. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodEnd( + TypedDict, +): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal["min_item_period_end", "phase_end", "timestamp"] + """ + Select how to calculate the end of the invoice item period. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPeriodStart( + TypedDict, +): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal["max_item_period_start", "phase_start", "timestamp"] + """ + Select how to calculate the start of the invoice item period. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAddInvoiceItemPriceData( + TypedDict, +): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTaxLiability" + ] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseAutomaticTaxLiability( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseBillingThresholds( + TypedDict, +): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseDuration(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies phase duration. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The multiplier applied to the interval. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettings(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule. + """ + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`. + """ + issuer: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseInvoiceSettingsIssuer( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|InvoiceCreatePreviewParamsScheduleDetailsPhaseItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceCreatePreviewParamsScheduleDetailsPhaseItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`. + """ + plan: NotRequired[str] + """ + The plan ID to subscribe to. You may specify the same ID in `plan` and `price`. + """ + price: NotRequired[str] + """ + The ID of the price object. + """ + price_data: NotRequired[ + "InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + quantity: NotRequired[int] + """ + Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseItemBillingThresholds( + TypedDict, +): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: ( + "InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceDataRecurring" + ) + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseItemPriceDataRecurring( + TypedDict, +): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class InvoiceCreatePreviewParamsScheduleDetailsPhaseTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetails(TypedDict): + billing_cycle_anchor: NotRequired["Literal['now', 'unchanged']|int"] + """ + For new subscriptions, a future timestamp to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to `now` or `unchanged`. + """ + billing_mode: NotRequired[ + "InvoiceCreatePreviewParamsSubscriptionDetailsBillingMode" + ] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + cancel_at: NotRequired[ + "Literal['']|int|Literal['max_period_end', 'min_period_end']" + ] + """ + A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. + """ + cancel_at_period_end: NotRequired[bool] + """ + Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. + """ + cancel_now: NotRequired[bool] + """ + This simulates the subscription being canceled or expired immediately. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + If provided, the invoice returned will preview updating or creating a subscription with these default tax rates. The default tax rates will apply to any line item that does not have `tax_rates` set. + """ + items: NotRequired[ + List["InvoiceCreatePreviewParamsSubscriptionDetailsItem"] + ] + """ + A list of up to 20 subscription items, each with an attached price. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If previewing an update to a subscription, and doing proration, `subscription_details.proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period and within the current phase of the schedule backing this subscription, if the schedule exists. If set, `subscription`, and one of `subscription_details.items`, or `subscription_details.trial_end` are required. Also, `subscription_details.proration_behavior` cannot be set to 'none'. + """ + resume_at: NotRequired[Literal["now"]] + """ + For paused subscriptions, setting `subscription_details.resume_at` to `now` will preview the invoice that will be generated if the subscription is resumed. + """ + start_date: NotRequired[int] + """ + Date a subscription is intended to start (can be future or past). + """ + trial_end: NotRequired["Literal['now']|int"] + """ + If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of `subscription_details.items` or `subscription` is required. + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetailsBillingMode(TypedDict): + flexible: NotRequired[ + "InvoiceCreatePreviewParamsSubscriptionDetailsBillingModeFlexible" + ] + """ + Configure behavior for flexible billing mode. + """ + type: Literal["classic", "flexible"] + """ + Controls the calculation and orchestration of prorations and invoices for subscriptions. If no value is passed, the default is `flexible`. + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetailsBillingModeFlexible( + TypedDict, +): + proration_discounts: NotRequired[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetailsItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|InvoiceCreatePreviewParamsSubscriptionDetailsItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + clear_usage: NotRequired[bool] + """ + Delete all usage for a given subscription item. You must pass this when deleting a usage records subscription item. `clear_usage` has no effect if the plan has a billing meter attached. + """ + deleted: NotRequired[bool] + """ + A flag that, if set to `true`, will delete the specified item. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceCreatePreviewParamsSubscriptionDetailsItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + id: NotRequired[str] + """ + Subscription item to update. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + plan: NotRequired[str] + """ + Plan ID for this item, as a string. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. When changing a subscription item's price, `quantity` is set to 1 unless a `quantity` parameter is provided. + """ + price_data: NotRequired[ + "InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetailsItemBillingThresholds( + TypedDict, +): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetailsItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: ( + "InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceDataRecurring" + ) + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceCreatePreviewParamsSubscriptionDetailsItemPriceDataRecurring( + TypedDict, +): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_delete_params.py new file mode 100644 index 00000000..b619378c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class InvoiceDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_finalize_invoice_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_finalize_invoice_params.py new file mode 100644 index 00000000..14613f6e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_finalize_invoice_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceFinalizeInvoiceParams(RequestOptions): + auto_advance: NotRequired[bool] + """ + Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_create_params.py new file mode 100644 index 00000000..84e9f4cb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_create_params.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceItemCreateParams(RequestOptions): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. Passing in a negative `amount` will reduce the `amount_due` on the invoice. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: str + """ + The ID of the customer who will be billed when this invoice item is billed. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking. + """ + discountable: NotRequired[bool] + """ + Controls whether discounts apply to this invoice item. Defaults to false for prorations or negative invoice items, and true for all other invoice items. + """ + discounts: NotRequired["Literal['']|List[InvoiceItemCreateParamsDiscount]"] + """ + The coupons and promotion codes to redeem into discounts for the invoice item or invoice line item. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: NotRequired[str] + """ + The ID of an existing invoice to add this invoice item to. For subscription invoices, when left blank, the invoice item will be added to the next upcoming scheduled invoice. For standalone invoices, the invoice item won't be automatically added unless you pass `pending_invoice_item_behavior: 'include'` when creating the invoice. This is useful when adding invoice items in response to an invoice.created webhook. You can only add invoice items to draft invoices and there is a maximum of 250 items per invoice. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["InvoiceItemCreateParamsPeriod"] + """ + The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details. + """ + price_data: NotRequired["InvoiceItemCreateParamsPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + pricing: NotRequired["InvoiceItemCreateParamsPricing"] + """ + The pricing information for the invoice item. + """ + quantity: NotRequired[int] + """ + Non-negative integer. The quantity of units for the invoice item. + """ + subscription: NotRequired[str] + """ + The ID of a subscription to add this invoice item to. When left blank, the invoice item is added to the next upcoming scheduled invoice. When set, scheduled invoices for subscriptions other than the specified subscription will ignore the invoice item. Use this when you want to express that an invoice item has been accrued within the context of a particular subscription. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tax_code: NotRequired["Literal['']|str"] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + tax_rates: NotRequired[List[str]] + """ + The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item. + """ + unit_amount_decimal: NotRequired[str] + """ + The decimal unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This `unit_amount_decimal` will be multiplied by the quantity to get the full amount. Passing in a negative `unit_amount_decimal` will reduce the `amount_due` on the invoice. Accepts at most 12 decimal places. + """ + + +class InvoiceItemCreateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceItemCreateParamsPeriod(TypedDict): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + +class InvoiceItemCreateParamsPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceItemCreateParamsPricing(TypedDict): + price: NotRequired[str] + """ + The ID of the price object. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_delete_params.py new file mode 100644 index 00000000..9a5e9f0c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class InvoiceItemDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_list_params.py new file mode 100644 index 00000000..d5bd75a3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_list_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class InvoiceItemListParams(RequestOptions): + created: NotRequired["InvoiceItemListParamsCreated|int"] + """ + Only return invoice items that were created during the given date interval. + """ + customer: NotRequired[str] + """ + The identifier of the customer whose invoice items to return. If none is provided, all invoice items will be returned. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: NotRequired[str] + """ + Only return invoice items belonging to this invoice. If none is provided, all invoice items will be returned. If specifying an invoice, no customer identifier is needed. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + pending: NotRequired[bool] + """ + Set to `true` to only show pending invoice items, which are not yet attached to any invoices. Set to `false` to only show invoice items already attached to invoices. If unspecified, no filter is applied. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class InvoiceItemListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_modify_params.py new file mode 100644 index 00000000..eadfca4c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_modify_params.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceItemModifyParams(RequestOptions): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking. + """ + discountable: NotRequired[bool] + """ + Controls whether discounts apply to this invoice item. Defaults to false for prorations or negative invoice items, and true for all other invoice items. Cannot be set to true for prorations. + """ + discounts: NotRequired["Literal['']|List[InvoiceItemModifyParamsDiscount]"] + """ + The coupons, promotion codes & existing discounts which apply to the invoice item or invoice line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["InvoiceItemModifyParamsPeriod"] + """ + The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details. + """ + price_data: NotRequired["InvoiceItemModifyParamsPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + pricing: NotRequired["InvoiceItemModifyParamsPricing"] + """ + The pricing information for the invoice item. + """ + quantity: NotRequired[int] + """ + Non-negative integer. The quantity of units for the invoice item. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tax_code: NotRequired["Literal['']|str"] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item. Pass an empty string to remove previously-defined tax rates. + """ + unit_amount_decimal: NotRequired[str] + """ + The decimal unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This `unit_amount_decimal` will be multiplied by the quantity to get the full amount. Passing in a negative `unit_amount_decimal` will reduce the `amount_due` on the invoice. Accepts at most 12 decimal places. + """ + + +class InvoiceItemModifyParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceItemModifyParamsPeriod(TypedDict): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + +class InvoiceItemModifyParamsPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceItemModifyParamsPricing(TypedDict): + price: NotRequired[str] + """ + The ID of the price object. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_retrieve_params.py new file mode 100644 index 00000000..122342c6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceItemRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_update_params.py new file mode 100644 index 00000000..5bb3e0fd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_item_update_params.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceItemUpdateParams(TypedDict): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking. + """ + discountable: NotRequired[bool] + """ + Controls whether discounts apply to this invoice item. Defaults to false for prorations or negative invoice items, and true for all other invoice items. Cannot be set to true for prorations. + """ + discounts: NotRequired["Literal['']|List[InvoiceItemUpdateParamsDiscount]"] + """ + The coupons, promotion codes & existing discounts which apply to the invoice item or invoice line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["InvoiceItemUpdateParamsPeriod"] + """ + The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details. + """ + price_data: NotRequired["InvoiceItemUpdateParamsPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + pricing: NotRequired["InvoiceItemUpdateParamsPricing"] + """ + The pricing information for the invoice item. + """ + quantity: NotRequired[int] + """ + Non-negative integer. The quantity of units for the invoice item. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tax_code: NotRequired["Literal['']|str"] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item. Pass an empty string to remove previously-defined tax rates. + """ + unit_amount_decimal: NotRequired[str] + """ + The decimal unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This `unit_amount_decimal` will be multiplied by the quantity to get the full amount. Passing in a negative `unit_amount_decimal` will reduce the `amount_due` on the invoice. Accepts at most 12 decimal places. + """ + + +class InvoiceItemUpdateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceItemUpdateParamsPeriod(TypedDict): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + +class InvoiceItemUpdateParamsPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceItemUpdateParamsPricing(TypedDict): + price: NotRequired[str] + """ + The ID of the price object. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_line_item_list_params.py new file mode 100644 index 00000000..c7800702 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class InvoiceLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_line_item_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_line_item_update_params.py new file mode 100644 index 00000000..49335ed8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_line_item_update_params.py @@ -0,0 +1,245 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceLineItemUpdateParams(TypedDict): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking. + """ + discountable: NotRequired[bool] + """ + Controls whether discounts apply to this line item. Defaults to false for prorations or negative line items, and true for all other line items. Cannot be set to true for prorations. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceLineItemUpdateParamsDiscount]" + ] + """ + The coupons, promotion codes & existing discounts which apply to the line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data. + """ + period: NotRequired["InvoiceLineItemUpdateParamsPeriod"] + """ + The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details. + """ + price_data: NotRequired["InvoiceLineItemUpdateParamsPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + pricing: NotRequired["InvoiceLineItemUpdateParamsPricing"] + """ + The pricing information for the invoice item. + """ + quantity: NotRequired[int] + """ + Non-negative integer. The quantity of units for the line item. + """ + tax_amounts: NotRequired[ + "Literal['']|List[InvoiceLineItemUpdateParamsTaxAmount]" + ] + """ + A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes on your own or use a third-party to calculate them. You cannot set tax amounts if any line item has [tax_rates](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-tax_rates) or if the invoice has [default_tax_rates](https://stripe.com/docs/api/invoices/object#invoice_object-default_tax_rates) or uses [automatic tax](https://stripe.com/docs/tax/invoicing). Pass an empty string to remove previously defined tax amounts. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the line item. When set, the `default_tax_rates` on the invoice do not apply to this line item. Pass an empty string to remove previously-defined tax rates. + """ + + +class InvoiceLineItemUpdateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceLineItemUpdateParamsPeriod(TypedDict): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + +class InvoiceLineItemUpdateParamsPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: NotRequired[str] + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + """ + product_data: NotRequired[ + "InvoiceLineItemUpdateParamsPriceDataProductData" + ] + """ + Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceLineItemUpdateParamsPriceDataProductData(TypedDict): + description: NotRequired[str] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + images: NotRequired[List[str]] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + + +class InvoiceLineItemUpdateParamsPricing(TypedDict): + price: NotRequired[str] + """ + The ID of the price object. + """ + + +class InvoiceLineItemUpdateParamsTaxAmount(TypedDict): + amount: int + """ + The amount, in cents (or local equivalent), of the tax. + """ + tax_rate_data: "InvoiceLineItemUpdateParamsTaxAmountTaxRateData" + """ + Data to find or create a TaxRate object. + + Stripe automatically creates or reuses a TaxRate object for each tax amount. If the `tax_rate_data` exactly matches a previous value, Stripe will reuse the TaxRate object. TaxRate objects created automatically by Stripe are immediately archived, do not appear in the line item's `tax_rates`, and cannot be directly added to invoices, payments, or line items. + """ + taxability_reason: NotRequired[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + +class InvoiceLineItemUpdateParamsTaxAmountTaxRateData(TypedDict): + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + """ + display_name: str + """ + The display name of the tax rate, which will be shown to users. + """ + inclusive: bool + """ + This specifies if the tax rate is inclusive or exclusive. + """ + jurisdiction: NotRequired[str] + """ + The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer's invoice. + """ + jurisdiction_level: NotRequired[ + Literal["city", "country", "county", "district", "multiple", "state"] + ] + """ + The level of the jurisdiction that imposes this tax rate. + """ + percentage: float + """ + The statutory tax rate percent. This field accepts decimal values between 0 and 100 inclusive with at most 4 decimal places. To accommodate fixed-amount taxes, set the percentage to zero. Stripe will not display zero percentages on the invoice unless the `amount` of the tax is also zero. + """ + state: NotRequired[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States. + """ + tax_type: NotRequired[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The high-level tax type, such as `vat` or `sales_tax`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_list_lines_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_list_lines_params.py new file mode 100644 index 00000000..2139c9a7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_list_lines_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceListLinesParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_list_params.py new file mode 100644 index 00000000..e3d159c0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_list_params.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceListParams(RequestOptions): + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + The collection method of the invoice to retrieve. Either `charge_automatically` or `send_invoice`. + """ + created: NotRequired["InvoiceListParamsCreated|int"] + """ + Only return invoices that were created during the given date interval. + """ + customer: NotRequired[str] + """ + Only return invoices for the customer specified by this customer ID. + """ + due_date: NotRequired["InvoiceListParamsDueDate|int"] + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[ + Literal["draft", "open", "paid", "uncollectible", "void"] + ] + """ + The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. [Learn more](https://stripe.com/docs/billing/invoices/workflow#workflow-overview) + """ + subscription: NotRequired[str] + """ + Only return invoices for the subscription specified by this subscription ID. + """ + + +class InvoiceListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class InvoiceListParamsDueDate(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_mark_uncollectible_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_mark_uncollectible_params.py new file mode 100644 index 00000000..c9aa5744 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_mark_uncollectible_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceMarkUncollectibleParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_modify_params.py new file mode 100644 index 00000000..ed27c0ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_modify_params.py @@ -0,0 +1,638 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceModifyParams(RequestOptions): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the invoice. Only editable when the invoice is a draft. + """ + application_fee_amount: NotRequired[int] + """ + A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees). + """ + auto_advance: NotRequired[bool] + """ + Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. + """ + automatic_tax: NotRequired["InvoiceModifyParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this invoice. + """ + automatically_finalizes_at: NotRequired[int] + """ + The time when this invoice should be scheduled to finalize (up to 5 years in the future). The invoice is finalized at this time if it's still in draft state. To turn off automatic finalization, set `auto_advance` to false. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically` or `send_invoice`. This field can be updated only on `draft` invoices. + """ + custom_fields: NotRequired[ + "Literal['']|List[InvoiceModifyParamsCustomField]" + ] + """ + A list of up to 4 custom fields to be displayed on the invoice. If a value for `custom_fields` is specified, the list specified will replace the existing custom field list on this invoice. Pass an empty string to remove previously-defined fields. + """ + days_until_due: NotRequired[int] + """ + The number of days from which the invoice is created until it is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings. + """ + default_source: NotRequired["Literal['']|str"] + """ + ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any line item that does not have `tax_rates` set. Pass an empty string to remove previously-defined tax rates. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard. + """ + discounts: NotRequired["Literal['']|List[InvoiceModifyParamsDiscount]"] + """ + The discounts that will apply to the invoice. Pass an empty string to remove previously-defined discounts. + """ + due_date: NotRequired[int] + """ + The date on which payment for this invoice is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices. + """ + effective_at: NotRequired["Literal['']|int"] + """ + The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + footer: NotRequired[str] + """ + Footer to be displayed on the invoice. + """ + issuer: NotRequired["InvoiceModifyParamsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + number: NotRequired["Literal['']|str"] + """ + Set the number for this invoice. If no number is present then a number will be assigned automatically when the invoice is finalized. In many markets, regulations require invoices to be unique, sequential and / or gapless. You are responsible for ensuring this is true across all your different invoicing systems in the event that you edit the invoice number using our API. If you use only Stripe for your invoices and do not change invoice numbers, Stripe handles this aspect of compliance for you automatically. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details. + """ + payment_settings: NotRequired["InvoiceModifyParamsPaymentSettings"] + """ + Configuration settings for the PaymentIntent that is generated when the invoice is finalized. + """ + rendering: NotRequired["InvoiceModifyParamsRendering"] + """ + The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page. + """ + shipping_cost: NotRequired["Literal['']|InvoiceModifyParamsShippingCost"] + """ + Settings for the cost of shipping for this invoice. + """ + shipping_details: NotRequired[ + "Literal['']|InvoiceModifyParamsShippingDetails" + ] + """ + Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer. + """ + statement_descriptor: NotRequired[str] + """ + Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor`. + """ + transfer_data: NotRequired["Literal['']|InvoiceModifyParamsTransferData"] + """ + If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge. This will be unset if you POST an empty value. + """ + + +class InvoiceModifyParamsAutomaticTax(TypedDict): + enabled: bool + """ + Whether Stripe automatically computes tax on this invoice. Note that incompatible invoice items (invoice items with manually specified [tax rates](https://stripe.com/docs/api/tax_rates), negative amounts, or `tax_behavior=unspecified`) cannot be added to automatic tax invoices. + """ + liability: NotRequired["InvoiceModifyParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class InvoiceModifyParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceModifyParamsCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class InvoiceModifyParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceModifyParamsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceModifyParamsPaymentSettings(TypedDict): + default_mandate: NotRequired["Literal['']|str"] + """ + ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the invoice's default_payment_method or default_source, if set. + """ + payment_method_options: NotRequired[ + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration to provide to the invoice's PaymentIntent. + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['ach_credit_transfer', 'ach_debit', 'acss_debit', 'affirm', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'boleto', 'card', 'cashapp', 'crypto', 'custom', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'jp_credit_transfer', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'link', 'multibanco', 'naver_pay', 'nz_bank_account', 'p24', 'payco', 'paynow', 'paypal', 'promptpay', 'revolut_pay', 'sepa_credit_transfer', 'sepa_debit', 'sofort', 'swish', 'us_bank_account', 'wechat_pay']]" + ] + """ + The list of payment method types (e.g. card) to provide to the invoice's PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit" + ] + """ + If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent. + """ + bancontact: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsBancontact" + ] + """ + If paying by `bancontact`, this sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent. + """ + card: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCard" + ] + """ + If paying by `card`, this sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent. + """ + customer_balance: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance" + ] + """ + If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice's PaymentIntent. + """ + konbini: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsKonbini" + ] + """ + If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice's PaymentIntent. + """ + sepa_debit: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit" + ] + """ + If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice's PaymentIntent. + """ + us_bank_account: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount" + ] + """ + If paying by `us_bank_account`, this sub-hash contains details about the ACH direct debit payment method options to pass to the invoice's PaymentIntent. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit( + TypedDict, +): + mandate_options: NotRequired[ + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsBancontact( + TypedDict, +): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCard(TypedDict): + installments: NotRequired[ + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments attempted on this invoice. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallments( + TypedDict, +): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this invoice. + Setting to false will prevent any selected plan from applying to a payment. + """ + plan: NotRequired[ + "Literal['']|InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan" + ] + """ + The selected installment plan to use for this invoice. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance( + TypedDict, +): + bank_transfer: NotRequired[ + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[str] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + type: NotRequired[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsKonbini(TypedDict): + pass + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit( + TypedDict, +): + pass + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount( + TypedDict, +): + financial_connections: NotRequired[ + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + + +class InvoiceModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class InvoiceModifyParamsRendering(TypedDict): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + pdf: NotRequired["InvoiceModifyParamsRenderingPdf"] + """ + Invoice pdf rendering options + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for this invoice. + """ + template_version: NotRequired["Literal['']|int"] + """ + The specific version of invoice rendering template to use for this invoice. + """ + + +class InvoiceModifyParamsRenderingPdf(TypedDict): + page_size: NotRequired[Literal["a4", "auto", "letter"]] + """ + Page size for invoice PDF. Can be set to `a4`, `letter`, or `auto`. + If set to `auto`, invoice PDF page size defaults to `a4` for customers with + Japanese locale and `letter` for customers with other locales. + """ + + +class InvoiceModifyParamsShippingCost(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the shipping rate to use for this order. + """ + shipping_rate_data: NotRequired[ + "InvoiceModifyParamsShippingCostShippingRateData" + ] + """ + Parameters to create a new ad-hoc shipping rate for this order. + """ + + +class InvoiceModifyParamsShippingCostShippingRateData(TypedDict): + delivery_estimate: NotRequired[ + "InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimate" + ] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: str + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + fixed_amount: NotRequired[ + "InvoiceModifyParamsShippingCostShippingRateDataFixedAmount" + ] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: NotRequired[Literal["fixed_amount"]] + """ + The type of calculation to use on the shipping rate. + """ + + +class InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimate( + TypedDict, +): + maximum: NotRequired[ + "InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMaximum" + ] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: NotRequired[ + "InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMinimum" + ] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + + +class InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMaximum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class InvoiceModifyParamsShippingCostShippingRateDataDeliveryEstimateMinimum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class InvoiceModifyParamsShippingCostShippingRateDataFixedAmount(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[ + str, + "InvoiceModifyParamsShippingCostShippingRateDataFixedAmountCurrencyOptions", + ] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class InvoiceModifyParamsShippingCostShippingRateDataFixedAmountCurrencyOptions( + TypedDict, +): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + + +class InvoiceModifyParamsShippingDetails(TypedDict): + address: "InvoiceModifyParamsShippingDetailsAddress" + """ + Shipping address + """ + name: str + """ + Recipient name. + """ + phone: NotRequired["Literal['']|str"] + """ + Recipient phone (including extension) + """ + + +class InvoiceModifyParamsShippingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class InvoiceModifyParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_pay_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_pay_params.py new file mode 100644 index 00000000..2e7735a3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_pay_params.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class InvoicePayParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + forgive: NotRequired[bool] + """ + In cases where the source used to pay the invoice has insufficient funds, passing `forgive=true` controls whether a charge should be attempted for the full amount available on the source, up to the amount to fully pay the invoice. This effectively forgives the difference between the amount available on the source and the amount due. + + Passing `forgive=false` will fail the charge if the source hasn't been pre-funded with the right amount. An example for this case is with ACH Credit Transfers and wires: if the amount wired is less than the amount due by a small amount, you might want to forgive the difference. Defaults to `false`. + """ + mandate: NotRequired["Literal['']|str"] + """ + ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the payment_method param or the invoice's default_payment_method or default_source, if set. + """ + off_session: NotRequired[bool] + """ + Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `true` (off-session). + """ + paid_out_of_band: NotRequired[bool] + """ + Boolean representing whether an invoice is paid outside of Stripe. This will result in no charge being made. Defaults to `false`. + """ + payment_method: NotRequired[str] + """ + A PaymentMethod to be charged. The PaymentMethod must be the ID of a PaymentMethod belonging to the customer associated with the invoice being paid. + """ + source: NotRequired[str] + """ + A payment source to be charged. The source must be the ID of a source belonging to the customer associated with the invoice being paid. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_payment_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_payment_list_params.py new file mode 100644 index 00000000..cf532703 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_payment_list_params.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoicePaymentListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice: NotRequired[str] + """ + The identifier of the invoice whose payments to return. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment: NotRequired["InvoicePaymentListParamsPayment"] + """ + The payment details of the invoice payments to return. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["canceled", "open", "paid"]] + """ + The status of the invoice payments to return. + """ + + +class InvoicePaymentListParamsPayment(TypedDict): + payment_intent: NotRequired[str] + """ + Only return invoice payments associated by this payment intent ID. + """ + payment_record: NotRequired[str] + """ + Only return invoice payments associated by this payment record ID. + """ + type: Literal["payment_intent", "payment_record"] + """ + Only return invoice payments associated by this payment type. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_payment_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_payment_retrieve_params.py new file mode 100644 index 00000000..c0096c5a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_payment_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoicePaymentRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_remove_lines_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_remove_lines_params.py new file mode 100644 index 00000000..b6796164 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_remove_lines_params.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceRemoveLinesParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + lines: List["InvoiceRemoveLinesParamsLine"] + """ + The line items to remove. + """ + + +class InvoiceRemoveLinesParamsLine(TypedDict): + behavior: Literal["delete", "unassign"] + """ + Either `delete` or `unassign`. Deleted line items are permanently deleted. Unassigned line items can be reassigned to an invoice. + """ + id: str + """ + ID of an existing line item to remove from this invoice. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_archive_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_archive_params.py new file mode 100644 index 00000000..cdcf6bd9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_archive_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceRenderingTemplateArchiveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_list_params.py new file mode 100644 index 00000000..b50b24c5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_list_params.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class InvoiceRenderingTemplateListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "archived"]] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_retrieve_params.py new file mode 100644 index 00000000..20692e76 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_retrieve_params.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceRenderingTemplateRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + version: NotRequired[int] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_unarchive_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_unarchive_params.py new file mode 100644 index 00000000..3408ed10 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_rendering_template_unarchive_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceRenderingTemplateUnarchiveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_retrieve_params.py new file mode 100644 index 00000000..fe75326c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_search_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_search_params.py new file mode 100644 index 00000000..1ee516f8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_search_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceSearchParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + page: NotRequired[str] + """ + A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + """ + query: str + """ + The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for invoices](https://stripe.com/docs/search#query-fields-for-invoices). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_send_invoice_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_send_invoice_params.py new file mode 100644 index 00000000..e830d69c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_send_invoice_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceSendInvoiceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_update_lines_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_update_lines_params.py new file mode 100644 index 00000000..7e8fa6f1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_update_lines_params.py @@ -0,0 +1,261 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceUpdateLinesParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data. + """ + lines: List["InvoiceUpdateLinesParamsLine"] + """ + The line items to update. + """ + + +class InvoiceUpdateLinesParamsLine(TypedDict): + amount: NotRequired[int] + """ + The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking. + """ + discountable: NotRequired[bool] + """ + Controls whether discounts apply to this line item. Defaults to false for prorations or negative line items, and true for all other line items. Cannot be set to true for prorations. + """ + discounts: NotRequired[ + "Literal['']|List[InvoiceUpdateLinesParamsLineDiscount]" + ] + """ + The coupons, promotion codes & existing discounts which apply to the line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts. + """ + id: str + """ + ID of an existing line item on the invoice. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data. + """ + period: NotRequired["InvoiceUpdateLinesParamsLinePeriod"] + """ + The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details. + """ + price_data: NotRequired["InvoiceUpdateLinesParamsLinePriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + pricing: NotRequired["InvoiceUpdateLinesParamsLinePricing"] + """ + The pricing information for the invoice item. + """ + quantity: NotRequired[int] + """ + Non-negative integer. The quantity of units for the line item. + """ + tax_amounts: NotRequired[ + "Literal['']|List[InvoiceUpdateLinesParamsLineTaxAmount]" + ] + """ + A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes on your own or use a third-party to calculate them. You cannot set tax amounts if any line item has [tax_rates](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-tax_rates) or if the invoice has [default_tax_rates](https://stripe.com/docs/api/invoices/object#invoice_object-default_tax_rates) or uses [automatic tax](https://stripe.com/docs/tax/invoicing). Pass an empty string to remove previously defined tax amounts. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the line item. When set, the `default_tax_rates` on the invoice do not apply to this line item. Pass an empty string to remove previously-defined tax rates. + """ + + +class InvoiceUpdateLinesParamsLineDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceUpdateLinesParamsLinePeriod(TypedDict): + end: int + """ + The end of the period, which must be greater than or equal to the start. This value is inclusive. + """ + start: int + """ + The start of the period. This value is inclusive. + """ + + +class InvoiceUpdateLinesParamsLinePriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: NotRequired[str] + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + """ + product_data: NotRequired[ + "InvoiceUpdateLinesParamsLinePriceDataProductData" + ] + """ + Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class InvoiceUpdateLinesParamsLinePriceDataProductData(TypedDict): + description: NotRequired[str] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + images: NotRequired[List[str]] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + + +class InvoiceUpdateLinesParamsLinePricing(TypedDict): + price: NotRequired[str] + """ + The ID of the price object. + """ + + +class InvoiceUpdateLinesParamsLineTaxAmount(TypedDict): + amount: int + """ + The amount, in cents (or local equivalent), of the tax. + """ + tax_rate_data: "InvoiceUpdateLinesParamsLineTaxAmountTaxRateData" + """ + Data to find or create a TaxRate object. + + Stripe automatically creates or reuses a TaxRate object for each tax amount. If the `tax_rate_data` exactly matches a previous value, Stripe will reuse the TaxRate object. TaxRate objects created automatically by Stripe are immediately archived, do not appear in the line item's `tax_rates`, and cannot be directly added to invoices, payments, or line items. + """ + taxability_reason: NotRequired[ + Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in cents (or local equivalent). + """ + + +class InvoiceUpdateLinesParamsLineTaxAmountTaxRateData(TypedDict): + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + """ + display_name: str + """ + The display name of the tax rate, which will be shown to users. + """ + inclusive: bool + """ + This specifies if the tax rate is inclusive or exclusive. + """ + jurisdiction: NotRequired[str] + """ + The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer's invoice. + """ + jurisdiction_level: NotRequired[ + Literal["city", "country", "county", "district", "multiple", "state"] + ] + """ + The level of the jurisdiction that imposes this tax rate. + """ + percentage: float + """ + The statutory tax rate percent. This field accepts decimal values between 0 and 100 inclusive with at most 4 decimal places. To accommodate fixed-amount taxes, set the percentage to zero. Stripe will not display zero percentages on the invoice unless the `amount` of the tax is also zero. + """ + state: NotRequired[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States. + """ + tax_type: NotRequired[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The high-level tax type, such as `vat` or `sales_tax`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_update_params.py new file mode 100644 index 00000000..0680005b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_update_params.py @@ -0,0 +1,637 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InvoiceUpdateParams(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the invoice. Only editable when the invoice is a draft. + """ + application_fee_amount: NotRequired[int] + """ + A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees). + """ + auto_advance: NotRequired[bool] + """ + Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. + """ + automatic_tax: NotRequired["InvoiceUpdateParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this invoice. + """ + automatically_finalizes_at: NotRequired[int] + """ + The time when this invoice should be scheduled to finalize (up to 5 years in the future). The invoice is finalized at this time if it's still in draft state. To turn off automatic finalization, set `auto_advance` to false. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically` or `send_invoice`. This field can be updated only on `draft` invoices. + """ + custom_fields: NotRequired[ + "Literal['']|List[InvoiceUpdateParamsCustomField]" + ] + """ + A list of up to 4 custom fields to be displayed on the invoice. If a value for `custom_fields` is specified, the list specified will replace the existing custom field list on this invoice. Pass an empty string to remove previously-defined fields. + """ + days_until_due: NotRequired[int] + """ + The number of days from which the invoice is created until it is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings. + """ + default_source: NotRequired["Literal['']|str"] + """ + ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any line item that does not have `tax_rates` set. Pass an empty string to remove previously-defined tax rates. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard. + """ + discounts: NotRequired["Literal['']|List[InvoiceUpdateParamsDiscount]"] + """ + The discounts that will apply to the invoice. Pass an empty string to remove previously-defined discounts. + """ + due_date: NotRequired[int] + """ + The date on which payment for this invoice is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices. + """ + effective_at: NotRequired["Literal['']|int"] + """ + The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + footer: NotRequired[str] + """ + Footer to be displayed on the invoice. + """ + issuer: NotRequired["InvoiceUpdateParamsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + number: NotRequired["Literal['']|str"] + """ + Set the number for this invoice. If no number is present then a number will be assigned automatically when the invoice is finalized. In many markets, regulations require invoices to be unique, sequential and / or gapless. You are responsible for ensuring this is true across all your different invoicing systems in the event that you edit the invoice number using our API. If you use only Stripe for your invoices and do not change invoice numbers, Stripe handles this aspect of compliance for you automatically. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details. + """ + payment_settings: NotRequired["InvoiceUpdateParamsPaymentSettings"] + """ + Configuration settings for the PaymentIntent that is generated when the invoice is finalized. + """ + rendering: NotRequired["InvoiceUpdateParamsRendering"] + """ + The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page. + """ + shipping_cost: NotRequired["Literal['']|InvoiceUpdateParamsShippingCost"] + """ + Settings for the cost of shipping for this invoice. + """ + shipping_details: NotRequired[ + "Literal['']|InvoiceUpdateParamsShippingDetails" + ] + """ + Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer. + """ + statement_descriptor: NotRequired[str] + """ + Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor`. + """ + transfer_data: NotRequired["Literal['']|InvoiceUpdateParamsTransferData"] + """ + If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge. This will be unset if you POST an empty value. + """ + + +class InvoiceUpdateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Whether Stripe automatically computes tax on this invoice. Note that incompatible invoice items (invoice items with manually specified [tax rates](https://stripe.com/docs/api/tax_rates), negative amounts, or `tax_behavior=unspecified`) cannot be added to automatic tax invoices. + """ + liability: NotRequired["InvoiceUpdateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class InvoiceUpdateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceUpdateParamsCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class InvoiceUpdateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class InvoiceUpdateParamsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class InvoiceUpdateParamsPaymentSettings(TypedDict): + default_mandate: NotRequired["Literal['']|str"] + """ + ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the invoice's default_payment_method or default_source, if set. + """ + payment_method_options: NotRequired[ + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration to provide to the invoice's PaymentIntent. + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['ach_credit_transfer', 'ach_debit', 'acss_debit', 'affirm', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'boleto', 'card', 'cashapp', 'crypto', 'custom', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'jp_credit_transfer', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'link', 'multibanco', 'naver_pay', 'nz_bank_account', 'p24', 'payco', 'paynow', 'paypal', 'promptpay', 'revolut_pay', 'sepa_credit_transfer', 'sepa_debit', 'sofort', 'swish', 'us_bank_account', 'wechat_pay']]" + ] + """ + The list of payment method types (e.g. card) to provide to the invoice's PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit" + ] + """ + If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent. + """ + bancontact: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact" + ] + """ + If paying by `bancontact`, this sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent. + """ + card: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCard" + ] + """ + If paying by `card`, this sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent. + """ + customer_balance: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance" + ] + """ + If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice's PaymentIntent. + """ + konbini: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini" + ] + """ + If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice's PaymentIntent. + """ + sepa_debit: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit" + ] + """ + If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice's PaymentIntent. + """ + us_bank_account: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount" + ] + """ + If paying by `us_bank_account`, this sub-hash contains details about the ACH direct debit payment method options to pass to the invoice's PaymentIntent. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit( + TypedDict, +): + mandate_options: NotRequired[ + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact( + TypedDict, +): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCard(TypedDict): + installments: NotRequired[ + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments attempted on this invoice. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallments( + TypedDict, +): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this invoice. + Setting to false will prevent any selected plan from applying to a payment. + """ + plan: NotRequired[ + "Literal['']|InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan" + ] + """ + The selected installment plan to use for this invoice. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance( + TypedDict, +): + bank_transfer: NotRequired[ + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[str] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + type: NotRequired[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini(TypedDict): + pass + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit( + TypedDict, +): + pass + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount( + TypedDict, +): + financial_connections: NotRequired[ + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + + +class InvoiceUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class InvoiceUpdateParamsRendering(TypedDict): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + pdf: NotRequired["InvoiceUpdateParamsRenderingPdf"] + """ + Invoice pdf rendering options + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for this invoice. + """ + template_version: NotRequired["Literal['']|int"] + """ + The specific version of invoice rendering template to use for this invoice. + """ + + +class InvoiceUpdateParamsRenderingPdf(TypedDict): + page_size: NotRequired[Literal["a4", "auto", "letter"]] + """ + Page size for invoice PDF. Can be set to `a4`, `letter`, or `auto`. + If set to `auto`, invoice PDF page size defaults to `a4` for customers with + Japanese locale and `letter` for customers with other locales. + """ + + +class InvoiceUpdateParamsShippingCost(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the shipping rate to use for this order. + """ + shipping_rate_data: NotRequired[ + "InvoiceUpdateParamsShippingCostShippingRateData" + ] + """ + Parameters to create a new ad-hoc shipping rate for this order. + """ + + +class InvoiceUpdateParamsShippingCostShippingRateData(TypedDict): + delivery_estimate: NotRequired[ + "InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimate" + ] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: str + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + fixed_amount: NotRequired[ + "InvoiceUpdateParamsShippingCostShippingRateDataFixedAmount" + ] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: NotRequired[Literal["fixed_amount"]] + """ + The type of calculation to use on the shipping rate. + """ + + +class InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimate( + TypedDict, +): + maximum: NotRequired[ + "InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMaximum" + ] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: NotRequired[ + "InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMinimum" + ] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + + +class InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMaximum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class InvoiceUpdateParamsShippingCostShippingRateDataDeliveryEstimateMinimum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class InvoiceUpdateParamsShippingCostShippingRateDataFixedAmount(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[ + str, + "InvoiceUpdateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions", + ] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class InvoiceUpdateParamsShippingCostShippingRateDataFixedAmountCurrencyOptions( + TypedDict, +): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + + +class InvoiceUpdateParamsShippingDetails(TypedDict): + address: "InvoiceUpdateParamsShippingDetailsAddress" + """ + Shipping address + """ + name: str + """ + Recipient name. + """ + phone: NotRequired["Literal['']|str"] + """ + Recipient phone (including extension) + """ + + +class InvoiceUpdateParamsShippingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class InvoiceUpdateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_void_invoice_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_void_invoice_params.py new file mode 100644 index 00000000..d909a51e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_invoice_void_invoice_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InvoiceVoidInvoiceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_mandate_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_mandate_retrieve_params.py new file mode 100644 index 00000000..5fafa663 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_mandate_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class MandateRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_attempt_record_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_attempt_record_list_params.py new file mode 100644 index 00000000..b6c45351 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_attempt_record_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentAttemptRecordListParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment_record: str + """ + The ID of the Payment Record. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_attempt_record_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_attempt_record_retrieve_params.py new file mode 100644 index 00000000..ac188517 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_attempt_record_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentAttemptRecordRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_amount_details_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_amount_details_line_item_list_params.py new file mode 100644 index 00000000..08f66fc0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_amount_details_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PaymentIntentAmountDetailsLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_apply_customer_balance_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_apply_customer_balance_params.py new file mode 100644 index 00000000..f3f3b05c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_apply_customer_balance_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentIntentApplyCustomerBalanceParams(RequestOptions): + amount: NotRequired[int] + """ + Amount that you intend to apply to this PaymentIntent from the customer's cash balance. If the PaymentIntent was created by an Invoice, the full amount of the PaymentIntent is applied regardless of this parameter. + + A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (for example, 100 cents to charge 1 USD or 100 to charge 100 JPY, a zero-decimal currency). The maximum amount is the amount of the PaymentIntent. + + When you omit the amount, it defaults to the remaining amount requested on the PaymentIntent. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_cancel_params.py new file mode 100644 index 00000000..427711c1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_cancel_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class PaymentIntentCancelParams(RequestOptions): + cancellation_reason: NotRequired[ + Literal[ + "abandoned", "duplicate", "fraudulent", "requested_by_customer" + ] + ] + """ + Reason for canceling this PaymentIntent. Possible values are: `duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned` + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_capture_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_capture_params.py new file mode 100644 index 00000000..df36d72b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_capture_params.py @@ -0,0 +1,263 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentIntentCaptureParams(RequestOptions): + amount_details: NotRequired["PaymentIntentCaptureParamsAmountDetails"] + """ + Provides industry-specific information about the amount. + """ + amount_to_capture: NotRequired[int] + """ + The amount to capture from the PaymentIntent, which must be less than or equal to the original amount. Defaults to the full `amount_capturable` if it's not provided. + """ + application_fee_amount: NotRequired[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + final_capture: NotRequired[bool] + """ + Defaults to `true`. When capturing a PaymentIntent, setting `final_capture` to `false` notifies Stripe to not release the remaining uncaptured funds to make sure that they're captured in future requests. You can only use this setting when [multicapture](https://stripe.com/docs/payments/multicapture) is available for PaymentIntents. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_details: NotRequired[ + "Literal['']|PaymentIntentCaptureParamsPaymentDetails" + ] + """ + Provides industry-specific information about the charge. + """ + statement_descriptor: NotRequired[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_data: NotRequired["PaymentIntentCaptureParamsTransferData"] + """ + The parameters that you can use to automatically create a transfer after the payment + is captured. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + + +class PaymentIntentCaptureParamsAmountDetails(TypedDict): + discount_amount: NotRequired["Literal['']|int"] + """ + The total discount applied on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[line_items][#][discount_amount]` field. + """ + line_items: NotRequired[ + "Literal['']|List[PaymentIntentCaptureParamsAmountDetailsLineItem]" + ] + """ + A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items. + """ + shipping: NotRequired[ + "Literal['']|PaymentIntentCaptureParamsAmountDetailsShipping" + ] + """ + Contains information about the shipping portion of the amount. + """ + tax: NotRequired["Literal['']|PaymentIntentCaptureParamsAmountDetailsTax"] + """ + Contains information about the tax portion of the amount. + """ + + +class PaymentIntentCaptureParamsAmountDetailsLineItem(TypedDict): + discount_amount: NotRequired[int] + """ + The discount applied on this line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[discount_amount]` field. + """ + payment_method_options: NotRequired[ + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptions" + ] + """ + Payment method-specific information for line items. + """ + product_code: NotRequired[str] + """ + The product code of the line item, such as an SKU. Required for L3 rates. At most 12 characters long. + """ + product_name: str + """ + The product name of the line item. Required for L3 rates. At most 1024 characters long. + + For Cards, this field is truncated to 26 alphanumeric characters before being sent to the card networks. For Paypal, this field is truncated to 127 characters. + """ + quantity: int + """ + The quantity of items. Required for L3 rates. An integer greater than 0. + """ + tax: NotRequired["PaymentIntentCaptureParamsAmountDetailsLineItemTax"] + """ + Contains information about the tax on the item. + """ + unit_cost: int + """ + The unit cost of the line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + """ + unit_of_measure: NotRequired[str] + """ + A unit of measure for the line item, such as gallons, feet, meters, etc. + """ + + +class PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptions( + TypedDict, +): + card: NotRequired[ + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCard" + ] + """ + This sub-hash contains line item details that are specific to `card` payment method." + """ + card_present: NotRequired[ + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent" + ] + """ + This sub-hash contains line item details that are specific to `card_present` payment method." + """ + klarna: NotRequired[ + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsKlarna" + ] + """ + This sub-hash contains line item details that are specific to `klarna` payment method." + """ + paypal: NotRequired[ + "PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsPaypal" + ] + """ + This sub-hash contains line item details that are specific to `paypal` payment method." + """ + + +class PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCard( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsKlarna( + TypedDict, +): + image_url: NotRequired[str] + """ + URL to an image for the product. Max length, 4096 characters. + """ + product_url: NotRequired[str] + """ + URL to the product page. Max length, 4096 characters. + """ + reference: NotRequired[str] + """ + Unique reference for this line item to correlate it with your system's internal records. The field is displayed in the Klarna Consumer App if passed. + """ + subscription_reference: NotRequired[str] + """ + Reference for the subscription this line item is for. + """ + + +class PaymentIntentCaptureParamsAmountDetailsLineItemPaymentMethodOptionsPaypal( + TypedDict, +): + category: NotRequired[ + Literal["digital_goods", "donation", "physical_goods"] + ] + """ + Type of the line item. + """ + description: NotRequired[str] + """ + Description of the line item. + """ + sold_by: NotRequired[str] + """ + The Stripe account ID of the connected account that sells the item. + """ + + +class PaymentIntentCaptureParamsAmountDetailsLineItemTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on a single line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[tax][total_tax_amount]` field. + """ + + +class PaymentIntentCaptureParamsAmountDetailsShipping(TypedDict): + amount: NotRequired["Literal['']|int"] + """ + If a physical good is being shipped, the cost of shipping represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than or equal to 0. + """ + from_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped from. At most 10 alphanumeric characters long, hyphens are allowed. + """ + to_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped to. At most 10 alphanumeric characters long, hyphens are allowed. + """ + + +class PaymentIntentCaptureParamsAmountDetailsTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + +class PaymentIntentCaptureParamsPaymentDetails(TypedDict): + customer_reference: NotRequired["Literal['']|str"] + """ + A unique value to identify the customer. This field is available only for card payments. + + This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. + """ + order_reference: NotRequired["Literal['']|str"] + """ + A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates. + + Required when the Payment Method Types array contains `card`, including when [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-automatic_payment_methods-enabled) is set to `true`. + + For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app. + """ + + +class PaymentIntentCaptureParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when a charge succeeds. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_confirm_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_confirm_params.py new file mode 100644 index 00000000..b172c01e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_confirm_params.py @@ -0,0 +1,3113 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentIntentConfirmParams(RequestOptions): + amount_details: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsAmountDetails" + ] + """ + Provides industry-specific information about the amount. + """ + capture_method: NotRequired[ + Literal["automatic", "automatic_async", "manual"] + ] + """ + Controls when the funds will be captured from the customer's account. + """ + confirmation_token: NotRequired[str] + """ + ID of the ConfirmationToken used to confirm this PaymentIntent. + + If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence. + """ + error_on_requires_action: NotRequired[bool] + """ + Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. This parameter is intended for simpler integrations that do not handle customer actions, like [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication). + """ + excluded_payment_method_types: NotRequired[ + "Literal['']|List[Literal['acss_debit', 'affirm', 'afterpay_clearpay', 'alipay', 'alma', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'billie', 'blik', 'boleto', 'card', 'cashapp', 'crypto', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'mb_way', 'mobilepay', 'multibanco', 'naver_pay', 'nz_bank_account', 'oxxo', 'p24', 'pay_by_bank', 'payco', 'paynow', 'paypal', 'pix', 'promptpay', 'revolut_pay', 'samsung_pay', 'satispay', 'sepa_debit', 'sofort', 'swish', 'twint', 'us_bank_account', 'wechat_pay', 'zip']]" + ] + """ + The list of payment method types to exclude from use with this payment. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + mandate: NotRequired[str] + """ + ID of the mandate that's used for this payment. + """ + mandate_data: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsMandateData" + ] + off_session: NotRequired["bool|Literal['one_off', 'recurring']"] + """ + Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards). + """ + payment_details: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentDetails" + ] + """ + Provides industry-specific information about the charge. + """ + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent. + If the payment method is attached to a Customer, it must match the [customer](https://stripe.com/docs/api#create_payment_intent-customer) that is set on this PaymentIntent. + """ + payment_method_data: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodData" + ] + """ + If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear + in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) + property on the PaymentIntent. + """ + payment_method_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptions" + ] + """ + Payment method-specific configuration for this PaymentIntent. + """ + payment_method_types: NotRequired[List[str]] + """ + The list of payment method types (for example, a card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + radar_options: NotRequired["PaymentIntentConfirmParamsRadarOptions"] + """ + Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session). + """ + receipt_email: NotRequired["Literal['']|str"] + """ + Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails). + """ + return_url: NotRequired[str] + """ + The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. + If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. + This parameter is only used for cards and other redirect-based payment methods. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + shipping: NotRequired["Literal['']|PaymentIntentConfirmParamsShipping"] + """ + Shipping information for this PaymentIntent. + """ + use_stripe_sdk: NotRequired[bool] + """ + Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. + """ + + +class PaymentIntentConfirmParamsAmountDetails(TypedDict): + discount_amount: NotRequired["Literal['']|int"] + """ + The total discount applied on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[line_items][#][discount_amount]` field. + """ + line_items: NotRequired[ + "Literal['']|List[PaymentIntentConfirmParamsAmountDetailsLineItem]" + ] + """ + A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items. + """ + shipping: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsAmountDetailsShipping" + ] + """ + Contains information about the shipping portion of the amount. + """ + tax: NotRequired["Literal['']|PaymentIntentConfirmParamsAmountDetailsTax"] + """ + Contains information about the tax portion of the amount. + """ + + +class PaymentIntentConfirmParamsAmountDetailsLineItem(TypedDict): + discount_amount: NotRequired[int] + """ + The discount applied on this line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[discount_amount]` field. + """ + payment_method_options: NotRequired[ + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptions" + ] + """ + Payment method-specific information for line items. + """ + product_code: NotRequired[str] + """ + The product code of the line item, such as an SKU. Required for L3 rates. At most 12 characters long. + """ + product_name: str + """ + The product name of the line item. Required for L3 rates. At most 1024 characters long. + + For Cards, this field is truncated to 26 alphanumeric characters before being sent to the card networks. For Paypal, this field is truncated to 127 characters. + """ + quantity: int + """ + The quantity of items. Required for L3 rates. An integer greater than 0. + """ + tax: NotRequired["PaymentIntentConfirmParamsAmountDetailsLineItemTax"] + """ + Contains information about the tax on the item. + """ + unit_cost: int + """ + The unit cost of the line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + """ + unit_of_measure: NotRequired[str] + """ + A unit of measure for the line item, such as gallons, feet, meters, etc. + """ + + +class PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptions( + TypedDict, +): + card: NotRequired[ + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCard" + ] + """ + This sub-hash contains line item details that are specific to `card` payment method." + """ + card_present: NotRequired[ + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent" + ] + """ + This sub-hash contains line item details that are specific to `card_present` payment method." + """ + klarna: NotRequired[ + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsKlarna" + ] + """ + This sub-hash contains line item details that are specific to `klarna` payment method." + """ + paypal: NotRequired[ + "PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsPaypal" + ] + """ + This sub-hash contains line item details that are specific to `paypal` payment method." + """ + + +class PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCard( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsKlarna( + TypedDict, +): + image_url: NotRequired[str] + """ + URL to an image for the product. Max length, 4096 characters. + """ + product_url: NotRequired[str] + """ + URL to the product page. Max length, 4096 characters. + """ + reference: NotRequired[str] + """ + Unique reference for this line item to correlate it with your system's internal records. The field is displayed in the Klarna Consumer App if passed. + """ + subscription_reference: NotRequired[str] + """ + Reference for the subscription this line item is for. + """ + + +class PaymentIntentConfirmParamsAmountDetailsLineItemPaymentMethodOptionsPaypal( + TypedDict, +): + category: NotRequired[ + Literal["digital_goods", "donation", "physical_goods"] + ] + """ + Type of the line item. + """ + description: NotRequired[str] + """ + Description of the line item. + """ + sold_by: NotRequired[str] + """ + The Stripe account ID of the connected account that sells the item. + """ + + +class PaymentIntentConfirmParamsAmountDetailsLineItemTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on a single line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[tax][total_tax_amount]` field. + """ + + +class PaymentIntentConfirmParamsAmountDetailsShipping(TypedDict): + amount: NotRequired["Literal['']|int"] + """ + If a physical good is being shipped, the cost of shipping represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than or equal to 0. + """ + from_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped from. At most 10 alphanumeric characters long, hyphens are allowed. + """ + to_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped to. At most 10 alphanumeric characters long, hyphens are allowed. + """ + + +class PaymentIntentConfirmParamsAmountDetailsTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + +class PaymentIntentConfirmParamsMandateData(TypedDict): + customer_acceptance: NotRequired[ + "PaymentIntentConfirmParamsMandateDataCustomerAcceptance" + ] + """ + This hash contains details about the customer acceptance of the Mandate. + """ + + +class PaymentIntentConfirmParamsMandateDataCustomerAcceptance(TypedDict): + accepted_at: NotRequired[int] + """ + The time at which the customer accepted the Mandate. + """ + offline: NotRequired[ + "PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOffline" + ] + """ + If this is a Mandate accepted offline, this hash contains details about the offline acceptance. + """ + online: NotRequired[ + "PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOnline" + ] + """ + If this is a Mandate accepted online, this hash contains details about the online acceptance. + """ + type: Literal["offline", "online"] + """ + The type of customer acceptance information included with the Mandate. One of `online` or `offline`. + """ + + +class PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOffline( + TypedDict +): + pass + + +class PaymentIntentConfirmParamsMandateDataCustomerAcceptanceOnline(TypedDict): + ip_address: NotRequired[str] + """ + The IP address from which the Mandate was accepted by the customer. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the Mandate was accepted by the customer. + """ + + +class PaymentIntentConfirmParamsPaymentDetails(TypedDict): + customer_reference: NotRequired["Literal['']|str"] + """ + A unique value to identify the customer. This field is available only for card payments. + + This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. + """ + order_reference: NotRequired["Literal['']|str"] + """ + A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates. + + Required when the Payment Method Types array contains `card`, including when [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-automatic_payment_methods-enabled) is set to `true`. + + For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app. + """ + + +class PaymentIntentConfirmParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataMobilepay" + ] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataSatispay" + ] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataAlma(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataBillie(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataBlik(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["PaymentIntentConfirmParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataLink(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataPayco(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataPix(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataSwish(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataTwint(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class PaymentIntentConfirmParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodDataZip(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. + """ + affirm: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsAffirm" + ] + """ + If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. + """ + afterpay_clearpay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsAfterpayClearpay" + ] + """ + If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options. + """ + alipay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsAlipay" + ] + """ + If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. + """ + alma: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsAlma" + ] + """ + If this is a `alma` PaymentMethod, this sub-hash contains details about the Alma payment method options. + """ + amazon_pay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options. + """ + au_becs_debit: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsAuBecsDebit" + ] + """ + If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options. + """ + bacs_debit: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options. + """ + bancontact: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. + """ + billie: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsBillie" + ] + """ + If this is a `billie` PaymentMethod, this sub-hash contains details about the Billie payment method options. + """ + blik: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsBlik" + ] + """ + If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. + """ + boleto: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsBoleto" + ] + """ + If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. + """ + card: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsCard" + ] + """ + Configuration for any card payments attempted on this PaymentIntent. + """ + card_present: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + cashapp: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsCashapp" + ] + """ + If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. + """ + crypto: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsCrypto" + ] + """ + If this is a `crypto` PaymentMethod, this sub-hash contains details about the Crypto payment method options. + """ + customer_balance: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalance" + ] + """ + If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options. + """ + eps: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsEps" + ] + """ + If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. + """ + fpx: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsFpx" + ] + """ + If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. + """ + giropay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsGiropay" + ] + """ + If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options. + """ + grabpay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsGrabpay" + ] + """ + If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options. + """ + ideal: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsIdeal" + ] + """ + If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options. + """ + interac_present: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsInteracPresent" + ] + """ + If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + kakao_pay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this sub-hash contains details about the Kakao Pay payment method options. + """ + klarna: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsKlarna" + ] + """ + If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. + """ + konbini: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsKonbini" + ] + """ + If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. + """ + kr_card: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsKrCard" + ] + """ + If this is a `kr_card` PaymentMethod, this sub-hash contains details about the KR Card payment method options. + """ + link: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsLink" + ] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + mb_way: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsMbWay" + ] + """ + If this is a `mb_way` PaymentMethod, this sub-hash contains details about the MB WAY payment method options. + """ + mobilepay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsMobilepay" + ] + """ + If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. + """ + multibanco: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options. + """ + naver_pay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this sub-hash contains details about the Naver Pay payment method options. + """ + nz_bank_account: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsNzBankAccount" + ] + """ + If this is a `nz_bank_account` PaymentMethod, this sub-hash contains details about the NZ BECS Direct Debit payment method options. + """ + oxxo: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsOxxo" + ] + """ + If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. + """ + p24: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsP24" + ] + """ + If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. + """ + pay_by_bank: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this sub-hash contains details about the PayByBank payment method options. + """ + payco: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsPayco" + ] + """ + If this is a `payco` PaymentMethod, this sub-hash contains details about the PAYCO payment method options. + """ + paynow: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsPaynow" + ] + """ + If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. + """ + paypal: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsPaypal" + ] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + pix: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsPix" + ] + """ + If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options. + """ + promptpay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. + """ + revolut_pay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. + """ + samsung_pay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this sub-hash contains details about the Samsung Pay payment method options. + """ + satispay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsSatispay" + ] + """ + If this is a `satispay` PaymentMethod, this sub-hash contains details about the Satispay payment method options. + """ + sepa_debit: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + sofort: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsSofort" + ] + """ + If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options. + """ + swish: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsSwish" + ] + """ + If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. + """ + twint: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsTwint" + ] + """ + If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options. + """ + us_bank_account: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. + """ + wechat_pay: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsWechatPay" + ] + """ + If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. + """ + zip: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsZip" + ] + """ + If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAffirm(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + preferred_locale: NotRequired[str] + """ + Preferred language of the Affirm authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAfterpayClearpay( + TypedDict +): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + reference: NotRequired[str] + """ + An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. + This field differs from the statement descriptor and item name. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAlipay(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAlma(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAmazonPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsAuBecsDebit(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsBancontact(TypedDict): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsBillie(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsBlik(TypedDict): + code: NotRequired[str] + """ + The 6-digit BLIK code that a customer has generated using their banking application. Can only be set on confirmation. + """ + setup_future_usage: NotRequired["Literal['']|Literal['none']"] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsBoleto(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto invoice will expire on Wednesday at 23:59 America/Sao_Paulo time. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + cvc_token: NotRequired[str] + """ + A single-use `cvc_update` Token that represents a card CVC value. When provided, the CVC value will be verified during the card payment attempt. This parameter can only be provided during confirmation. + """ + installments: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments attempted on this PaymentIntent. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + mandate_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter indicates that a transaction will be marked + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this PaymentIntent on. Depends on the available networks of the card attached to the PaymentIntent. Can be only set confirm-time. + """ + request_extended_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. + """ + request_incremental_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. + """ + request_multicapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. + """ + request_overcapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + require_cvc_recollection: NotRequired[bool] + """ + When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter). + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + statement_descriptor_suffix_kana: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters. + """ + statement_descriptor_suffix_kanji: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters. + """ + three_d_secure: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this payment. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallments( + TypedDict +): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this PaymentIntent. + This will cause the response to contain a list of available installment plans. + Setting to false will prevent any selected plan from applying to a charge. + """ + plan: NotRequired[ + "Literal['']|PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallmentsPlan" + ] + """ + The selected installment plan to use for this payment attempt. + This parameter can only be provided during confirmation. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardMandateOptions( + TypedDict, +): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure( + TypedDict +): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: str + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + exemption_indicator: NotRequired[Literal["low_risk", "none"]] + """ + The exemption requested via 3DS and accepted by the issuer at authentication time. + """ + network_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: str + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: Literal["1.0.2", "2.1.0", "2.2.0"] + """ + The version of 3D Secure that was performed. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardPresent(TypedDict): + capture_method: NotRequired[Literal["manual", "manual_preferred"]] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + request_extended_authorization: NotRequired[bool] + """ + Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) + """ + request_incremental_authorization_support: NotRequired[bool] + """ + Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support. + """ + routing: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCardPresentRouting" + ] + """ + Network routing priority on co-branded EMV cards supporting domestic debit and international card schemes. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCardPresentRouting( + TypedDict, +): + requested_priority: NotRequired[Literal["domestic", "international"]] + """ + Routing requested priority + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCashapp(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCrypto(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalance(TypedDict): + bank_transfer: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for the eu_bank_transfer funding type. + """ + requested_address_types: NotRequired[ + List[ + Literal[ + "aba", "iban", "sepa", "sort_code", "spei", "swift", "zengin" + ] + ] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The list of bank transfer types that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsEps(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsFpx(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsGiropay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsGrabpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsIdeal(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsInteracPresent(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodOptionsKakaoPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsKlarna(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + on_demand: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up or charging an on-demand payment. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + subscriptions: NotRequired[ + "Literal['']|List[PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription( + TypedDict, +): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + ] + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsKonbini(TypedDict): + confirmation_number: NotRequired["Literal['']|str"] + """ + An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. Must not consist of only zeroes and could be rejected in case of insufficient uniqueness. We recommend to use the customer's phone number. + """ + expires_after_days: NotRequired["Literal['']|int"] + """ + The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. Defaults to 3 days. + """ + expires_at: NotRequired["Literal['']|int"] + """ + The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set. + """ + product_description: NotRequired["Literal['']|str"] + """ + A product descriptor of up to 22 characters, which will appear to customers at the convenience store. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsKrCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsLink(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsMbWay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsMobilepay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsMultibanco(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsNaverPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsNzBankAccount(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsOxxo(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before an OXXO voucher expires. For example, if you create an OXXO voucher on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsP24(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + tos_shown_and_accepted: NotRequired[bool] + """ + Confirm that the payer has accepted the P24 terms and conditions. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsPayByBank(TypedDict): + pass + + +class PaymentIntentConfirmParamsPaymentMethodOptionsPayco(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsPaynow(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsPaypal(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-DE", + "de-LU", + "el-GR", + "en-GB", + "en-US", + "es-ES", + "fi-FI", + "fr-BE", + "fr-FR", + "fr-LU", + "hu-HU", + "it-IT", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "sk-SK", + "sv-SE", + ] + ] + """ + [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to. + """ + reference: NotRequired[str] + """ + A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID. + """ + risk_correlation_id: NotRequired[str] + """ + The risk correlation ID for an on-session payment using a saved PayPal payment method. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsPix(TypedDict): + amount_includes_iof: NotRequired[Literal["always", "never"]] + """ + Determines if the amount includes the IOF tax. Defaults to `never`. + """ + expires_after_seconds: NotRequired[int] + """ + The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds. + """ + expires_at: NotRequired[int] + """ + The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future). Defaults to 1 day in the future. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsPromptpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsRevolutPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsSamsungPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsSatispay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsSofort(TypedDict): + preferred_language: NotRequired[ + "Literal['']|Literal['de', 'en', 'es', 'fr', 'it', 'nl', 'pl']" + ] + """ + Language shown to the payer on redirect. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsSwish(TypedDict): + reference: NotRequired["Literal['']|str"] + """ + A reference for this payment to be displayed in the Swish app. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsTwint(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + preferred_settlement_speed: NotRequired[ + "Literal['']|Literal['fastest', 'standard']" + ] + """ + Preferred transaction settlement speed + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsWechatPay(TypedDict): + app_id: NotRequired[str] + """ + The app ID registered with WeChat Pay. Only required when client is ios or android. + """ + client: NotRequired[Literal["android", "ios", "web"]] + """ + The client type that the end customer will pay from + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsPaymentMethodOptionsZip(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentConfirmParamsRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class PaymentIntentConfirmParamsShipping(TypedDict): + address: "PaymentIntentConfirmParamsShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class PaymentIntentConfirmParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_create_params.py new file mode 100644 index 00000000..c54c2a39 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_create_params.py @@ -0,0 +1,3252 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentIntentCreateParams(RequestOptions): + amount: int + """ + Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + amount_details: NotRequired["PaymentIntentCreateParamsAmountDetails"] + """ + Provides industry-specific information about the amount. + """ + application_fee_amount: NotRequired[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + automatic_payment_methods: NotRequired[ + "PaymentIntentCreateParamsAutomaticPaymentMethods" + ] + """ + When you enable this parameter, this PaymentIntent accepts payment methods that you enable in the Dashboard and that are compatible with this PaymentIntent's other parameters. + """ + capture_method: NotRequired[ + Literal["automatic", "automatic_async", "manual"] + ] + """ + Controls when the funds will be captured from the customer's account. + """ + confirm: NotRequired[bool] + """ + Set to `true` to attempt to [confirm this PaymentIntent](https://stripe.com/docs/api/payment_intents/confirm) immediately. This parameter defaults to `false`. When creating and confirming a PaymentIntent at the same time, you can also provide the parameters available in the [Confirm API](https://stripe.com/docs/api/payment_intents/confirm). + """ + confirmation_method: NotRequired[Literal["automatic", "manual"]] + """ + Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment. + """ + confirmation_token: NotRequired[str] + """ + ID of the ConfirmationToken used to confirm this PaymentIntent. + + If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: NotRequired[str] + """ + ID of the Customer this PaymentIntent belongs to, if one exists. + + Payment methods attached to other Customers cannot be used with this PaymentIntent. + + If [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + error_on_requires_action: NotRequired[bool] + """ + Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. Use this parameter for simpler integrations that don't handle customer actions, such as [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). + """ + excluded_payment_method_types: NotRequired[ + List[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + The list of payment method types to exclude from use with this payment. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + mandate: NotRequired[str] + """ + ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). + """ + mandate_data: NotRequired[ + "Literal['']|PaymentIntentCreateParamsMandateData" + ] + """ + This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + off_session: NotRequired["bool|Literal['one_off', 'recurring']"] + """ + Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). + """ + on_behalf_of: NotRequired[str] + """ + The Stripe account ID that these funds are intended for. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + payment_details: NotRequired["PaymentIntentCreateParamsPaymentDetails"] + """ + Provides industry-specific information about the charge. + """ + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods#compatibility) object) to attach to this PaymentIntent. + + If you don't provide the `payment_method` parameter or the `source` parameter with `confirm=true`, `source` automatically populates with `customer.default_source` to improve migration for users of the Charges API. We recommend that you explicitly provide the `payment_method` moving forward. + If the payment method is attached to a Customer, you must also provide the ID of that Customer as the [customer](https://stripe.com/docs/api#create_payment_intent-customer) parameter of this PaymentIntent. + end + """ + payment_method_configuration: NotRequired[str] + """ + The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this PaymentIntent. + """ + payment_method_data: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodData" + ] + """ + If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear + in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) + property on the PaymentIntent. + """ + payment_method_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptions" + ] + """ + Payment method-specific configuration for this PaymentIntent. + """ + payment_method_types: NotRequired[List[str]] + """ + The list of payment method types (for example, a card) that this PaymentIntent can use. If you don't provide this, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + radar_options: NotRequired["PaymentIntentCreateParamsRadarOptions"] + """ + Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session). + """ + receipt_email: NotRequired[str] + """ + Email address to send the receipt to. If you specify `receipt_email` for a payment in live mode, you send a receipt regardless of your [email settings](https://dashboard.stripe.com/account/emails). + """ + return_url: NotRequired[str] + """ + The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm). + """ + setup_future_usage: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + shipping: NotRequired["PaymentIntentCreateParamsShipping"] + """ + Shipping information for this PaymentIntent. + """ + statement_descriptor: NotRequired[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_data: NotRequired["PaymentIntentCreateParamsTransferData"] + """ + The parameters that you can use to automatically create a Transfer. + Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + transfer_group: NotRequired[str] + """ + A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers). + """ + use_stripe_sdk: NotRequired[bool] + """ + Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. + """ + + +class PaymentIntentCreateParamsAmountDetails(TypedDict): + discount_amount: NotRequired["Literal['']|int"] + """ + The total discount applied on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[line_items][#][discount_amount]` field. + """ + line_items: NotRequired[ + "Literal['']|List[PaymentIntentCreateParamsAmountDetailsLineItem]" + ] + """ + A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items. + """ + shipping: NotRequired[ + "Literal['']|PaymentIntentCreateParamsAmountDetailsShipping" + ] + """ + Contains information about the shipping portion of the amount. + """ + tax: NotRequired["Literal['']|PaymentIntentCreateParamsAmountDetailsTax"] + """ + Contains information about the tax portion of the amount. + """ + + +class PaymentIntentCreateParamsAmountDetailsLineItem(TypedDict): + discount_amount: NotRequired[int] + """ + The discount applied on this line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[discount_amount]` field. + """ + payment_method_options: NotRequired[ + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptions" + ] + """ + Payment method-specific information for line items. + """ + product_code: NotRequired[str] + """ + The product code of the line item, such as an SKU. Required for L3 rates. At most 12 characters long. + """ + product_name: str + """ + The product name of the line item. Required for L3 rates. At most 1024 characters long. + + For Cards, this field is truncated to 26 alphanumeric characters before being sent to the card networks. For Paypal, this field is truncated to 127 characters. + """ + quantity: int + """ + The quantity of items. Required for L3 rates. An integer greater than 0. + """ + tax: NotRequired["PaymentIntentCreateParamsAmountDetailsLineItemTax"] + """ + Contains information about the tax on the item. + """ + unit_cost: int + """ + The unit cost of the line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + """ + unit_of_measure: NotRequired[str] + """ + A unit of measure for the line item, such as gallons, feet, meters, etc. + """ + + +class PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptions( + TypedDict, +): + card: NotRequired[ + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCard" + ] + """ + This sub-hash contains line item details that are specific to `card` payment method." + """ + card_present: NotRequired[ + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent" + ] + """ + This sub-hash contains line item details that are specific to `card_present` payment method." + """ + klarna: NotRequired[ + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna" + ] + """ + This sub-hash contains line item details that are specific to `klarna` payment method." + """ + paypal: NotRequired[ + "PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal" + ] + """ + This sub-hash contains line item details that are specific to `paypal` payment method." + """ + + +class PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCard( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna( + TypedDict, +): + image_url: NotRequired[str] + """ + URL to an image for the product. Max length, 4096 characters. + """ + product_url: NotRequired[str] + """ + URL to the product page. Max length, 4096 characters. + """ + reference: NotRequired[str] + """ + Unique reference for this line item to correlate it with your system's internal records. The field is displayed in the Klarna Consumer App if passed. + """ + subscription_reference: NotRequired[str] + """ + Reference for the subscription this line item is for. + """ + + +class PaymentIntentCreateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal( + TypedDict, +): + category: NotRequired[ + Literal["digital_goods", "donation", "physical_goods"] + ] + """ + Type of the line item. + """ + description: NotRequired[str] + """ + Description of the line item. + """ + sold_by: NotRequired[str] + """ + The Stripe account ID of the connected account that sells the item. + """ + + +class PaymentIntentCreateParamsAmountDetailsLineItemTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on a single line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[tax][total_tax_amount]` field. + """ + + +class PaymentIntentCreateParamsAmountDetailsShipping(TypedDict): + amount: NotRequired["Literal['']|int"] + """ + If a physical good is being shipped, the cost of shipping represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than or equal to 0. + """ + from_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped from. At most 10 alphanumeric characters long, hyphens are allowed. + """ + to_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped to. At most 10 alphanumeric characters long, hyphens are allowed. + """ + + +class PaymentIntentCreateParamsAmountDetailsTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + +class PaymentIntentCreateParamsAutomaticPaymentMethods(TypedDict): + allow_redirects: NotRequired[Literal["always", "never"]] + """ + Controls whether this PaymentIntent will accept redirect-based payment methods. + + Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the payment. + """ + enabled: bool + """ + Whether this feature is enabled. + """ + + +class PaymentIntentCreateParamsMandateData(TypedDict): + customer_acceptance: ( + "PaymentIntentCreateParamsMandateDataCustomerAcceptance" + ) + """ + This hash contains details about the customer acceptance of the Mandate. + """ + + +class PaymentIntentCreateParamsMandateDataCustomerAcceptance(TypedDict): + accepted_at: NotRequired[int] + """ + The time at which the customer accepted the Mandate. + """ + offline: NotRequired[ + "PaymentIntentCreateParamsMandateDataCustomerAcceptanceOffline" + ] + """ + If this is a Mandate accepted offline, this hash contains details about the offline acceptance. + """ + online: NotRequired[ + "PaymentIntentCreateParamsMandateDataCustomerAcceptanceOnline" + ] + """ + If this is a Mandate accepted online, this hash contains details about the online acceptance. + """ + type: Literal["offline", "online"] + """ + The type of customer acceptance information included with the Mandate. One of `online` or `offline`. + """ + + +class PaymentIntentCreateParamsMandateDataCustomerAcceptanceOffline(TypedDict): + pass + + +class PaymentIntentCreateParamsMandateDataCustomerAcceptanceOnline(TypedDict): + ip_address: str + """ + The IP address from which the Mandate was accepted by the customer. + """ + user_agent: str + """ + The user agent of the browser from which the Mandate was accepted by the customer. + """ + + +class PaymentIntentCreateParamsPaymentDetails(TypedDict): + customer_reference: NotRequired["Literal['']|str"] + """ + A unique value to identify the customer. This field is available only for card payments. + + This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. + """ + order_reference: NotRequired["Literal['']|str"] + """ + A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates. + + Required when the Payment Method Types array contains `card`, including when [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-automatic_payment_methods-enabled) is set to `true`. + + For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app. + """ + + +class PaymentIntentCreateParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["PaymentIntentCreateParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["PaymentIntentCreateParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["PaymentIntentCreateParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["PaymentIntentCreateParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["PaymentIntentCreateParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["PaymentIntentCreateParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["PaymentIntentCreateParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["PaymentIntentCreateParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["PaymentIntentCreateParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["PaymentIntentCreateParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["PaymentIntentCreateParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["PaymentIntentCreateParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["PaymentIntentCreateParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["PaymentIntentCreateParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["PaymentIntentCreateParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["PaymentIntentCreateParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["PaymentIntentCreateParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["PaymentIntentCreateParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataMobilepay" + ] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["PaymentIntentCreateParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["PaymentIntentCreateParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["PaymentIntentCreateParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["PaymentIntentCreateParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["PaymentIntentCreateParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["PaymentIntentCreateParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["PaymentIntentCreateParamsPaymentMethodDataSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["PaymentIntentCreateParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["PaymentIntentCreateParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["PaymentIntentCreateParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["PaymentIntentCreateParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataAlma(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class PaymentIntentCreateParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataBillie(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataBlik(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class PaymentIntentCreateParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["PaymentIntentCreateParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class PaymentIntentCreateParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataLink(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataPayco(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataPix(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataSwish(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataTwint(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class PaymentIntentCreateParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodDataZip(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. + """ + affirm: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsAffirm" + ] + """ + If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. + """ + afterpay_clearpay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsAfterpayClearpay" + ] + """ + If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options. + """ + alipay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsAlipay" + ] + """ + If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. + """ + alma: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsAlma" + ] + """ + If this is a `alma` PaymentMethod, this sub-hash contains details about the Alma payment method options. + """ + amazon_pay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options. + """ + au_becs_debit: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsAuBecsDebit" + ] + """ + If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options. + """ + bacs_debit: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options. + """ + bancontact: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. + """ + billie: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsBillie" + ] + """ + If this is a `billie` PaymentMethod, this sub-hash contains details about the Billie payment method options. + """ + blik: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsBlik" + ] + """ + If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. + """ + boleto: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsBoleto" + ] + """ + If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. + """ + card: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsCard" + ] + """ + Configuration for any card payments attempted on this PaymentIntent. + """ + card_present: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + cashapp: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsCashapp" + ] + """ + If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. + """ + crypto: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsCrypto" + ] + """ + If this is a `crypto` PaymentMethod, this sub-hash contains details about the Crypto payment method options. + """ + customer_balance: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalance" + ] + """ + If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options. + """ + eps: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsEps" + ] + """ + If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. + """ + fpx: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsFpx" + ] + """ + If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. + """ + giropay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsGiropay" + ] + """ + If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options. + """ + grabpay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsGrabpay" + ] + """ + If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options. + """ + ideal: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsIdeal" + ] + """ + If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options. + """ + interac_present: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsInteracPresent" + ] + """ + If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + kakao_pay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this sub-hash contains details about the Kakao Pay payment method options. + """ + klarna: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsKlarna" + ] + """ + If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. + """ + konbini: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsKonbini" + ] + """ + If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. + """ + kr_card: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsKrCard" + ] + """ + If this is a `kr_card` PaymentMethod, this sub-hash contains details about the KR Card payment method options. + """ + link: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsLink" + ] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + mb_way: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsMbWay" + ] + """ + If this is a `mb_way` PaymentMethod, this sub-hash contains details about the MB WAY payment method options. + """ + mobilepay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsMobilepay" + ] + """ + If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. + """ + multibanco: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options. + """ + naver_pay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this sub-hash contains details about the Naver Pay payment method options. + """ + nz_bank_account: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsNzBankAccount" + ] + """ + If this is a `nz_bank_account` PaymentMethod, this sub-hash contains details about the NZ BECS Direct Debit payment method options. + """ + oxxo: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsOxxo" + ] + """ + If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. + """ + p24: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsP24" + ] + """ + If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. + """ + pay_by_bank: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this sub-hash contains details about the PayByBank payment method options. + """ + payco: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsPayco" + ] + """ + If this is a `payco` PaymentMethod, this sub-hash contains details about the PAYCO payment method options. + """ + paynow: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsPaynow" + ] + """ + If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. + """ + paypal: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsPaypal" + ] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + pix: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsPix" + ] + """ + If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options. + """ + promptpay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. + """ + revolut_pay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. + """ + samsung_pay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this sub-hash contains details about the Samsung Pay payment method options. + """ + satispay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsSatispay" + ] + """ + If this is a `satispay` PaymentMethod, this sub-hash contains details about the Satispay payment method options. + """ + sepa_debit: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + sofort: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsSofort" + ] + """ + If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options. + """ + swish: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsSwish" + ] + """ + If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. + """ + twint: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsTwint" + ] + """ + If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options. + """ + us_bank_account: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. + """ + wechat_pay: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsWechatPay" + ] + """ + If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. + """ + zip: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsZip" + ] + """ + If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAcssDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAffirm(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + preferred_locale: NotRequired[str] + """ + Preferred language of the Affirm authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAfterpayClearpay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + reference: NotRequired[str] + """ + An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. + This field differs from the statement descriptor and item name. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAlipay(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAlma(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAmazonPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsAuBecsDebit(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsBancontact(TypedDict): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsBillie(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsBlik(TypedDict): + code: NotRequired[str] + """ + The 6-digit BLIK code that a customer has generated using their banking application. Can only be set on confirmation. + """ + setup_future_usage: NotRequired["Literal['']|Literal['none']"] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsBoleto(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto invoice will expire on Wednesday at 23:59 America/Sao_Paulo time. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + cvc_token: NotRequired[str] + """ + A single-use `cvc_update` Token that represents a card CVC value. When provided, the CVC value will be verified during the card payment attempt. This parameter can only be provided during confirmation. + """ + installments: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments attempted on this PaymentIntent. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + mandate_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter indicates that a transaction will be marked + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this PaymentIntent on. Depends on the available networks of the card attached to the PaymentIntent. Can be only set confirm-time. + """ + request_extended_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. + """ + request_incremental_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. + """ + request_multicapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. + """ + request_overcapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + require_cvc_recollection: NotRequired[bool] + """ + When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter). + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + statement_descriptor_suffix_kana: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters. + """ + statement_descriptor_suffix_kanji: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters. + """ + three_d_secure: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this payment. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardInstallments(TypedDict): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this PaymentIntent. + This will cause the response to contain a list of available installment plans. + Setting to false will prevent any selected plan from applying to a charge. + """ + plan: NotRequired[ + "Literal['']|PaymentIntentCreateParamsPaymentMethodOptionsCardInstallmentsPlan" + ] + """ + The selected installment plan to use for this payment attempt. + This parameter can only be provided during confirmation. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardMandateOptions( + TypedDict, +): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecure(TypedDict): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: str + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + exemption_indicator: NotRequired[Literal["low_risk", "none"]] + """ + The exemption requested via 3DS and accepted by the issuer at authentication time. + """ + network_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: str + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: Literal["1.0.2", "2.1.0", "2.2.0"] + """ + The version of 3D Secure that was performed. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardPresent(TypedDict): + capture_method: NotRequired[Literal["manual", "manual_preferred"]] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + request_extended_authorization: NotRequired[bool] + """ + Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) + """ + request_incremental_authorization_support: NotRequired[bool] + """ + Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support. + """ + routing: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCardPresentRouting" + ] + """ + Network routing priority on co-branded EMV cards supporting domestic debit and international card schemes. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCardPresentRouting( + TypedDict, +): + requested_priority: NotRequired[Literal["domestic", "international"]] + """ + Routing requested priority + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCashapp(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCrypto(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalance(TypedDict): + bank_transfer: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for the eu_bank_transfer funding type. + """ + requested_address_types: NotRequired[ + List[ + Literal[ + "aba", "iban", "sepa", "sort_code", "spei", "swift", "zengin" + ] + ] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The list of bank transfer types that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsEps(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsFpx(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsGiropay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsGrabpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsIdeal(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsInteracPresent(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodOptionsKakaoPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsKlarna(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + on_demand: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up or charging an on-demand payment. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + subscriptions: NotRequired[ + "Literal['']|List[PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscription( + TypedDict, +): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + ] + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsKonbini(TypedDict): + confirmation_number: NotRequired["Literal['']|str"] + """ + An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. Must not consist of only zeroes and could be rejected in case of insufficient uniqueness. We recommend to use the customer's phone number. + """ + expires_after_days: NotRequired["Literal['']|int"] + """ + The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. Defaults to 3 days. + """ + expires_at: NotRequired["Literal['']|int"] + """ + The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set. + """ + product_description: NotRequired["Literal['']|str"] + """ + A product descriptor of up to 22 characters, which will appear to customers at the convenience store. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsKrCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsLink(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsMbWay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsMobilepay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsMultibanco(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsNaverPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsNzBankAccount(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsOxxo(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before an OXXO voucher expires. For example, if you create an OXXO voucher on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsP24(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + tos_shown_and_accepted: NotRequired[bool] + """ + Confirm that the payer has accepted the P24 terms and conditions. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsPayByBank(TypedDict): + pass + + +class PaymentIntentCreateParamsPaymentMethodOptionsPayco(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsPaynow(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsPaypal(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-DE", + "de-LU", + "el-GR", + "en-GB", + "en-US", + "es-ES", + "fi-FI", + "fr-BE", + "fr-FR", + "fr-LU", + "hu-HU", + "it-IT", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "sk-SK", + "sv-SE", + ] + ] + """ + [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to. + """ + reference: NotRequired[str] + """ + A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID. + """ + risk_correlation_id: NotRequired[str] + """ + The risk correlation ID for an on-session payment using a saved PayPal payment method. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsPix(TypedDict): + amount_includes_iof: NotRequired[Literal["always", "never"]] + """ + Determines if the amount includes the IOF tax. Defaults to `never`. + """ + expires_after_seconds: NotRequired[int] + """ + The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds. + """ + expires_at: NotRequired[int] + """ + The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future). Defaults to 1 day in the future. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsPromptpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsRevolutPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsSamsungPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsSatispay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsSofort(TypedDict): + preferred_language: NotRequired[ + "Literal['']|Literal['de', 'en', 'es', 'fr', 'it', 'nl', 'pl']" + ] + """ + Language shown to the payer on redirect. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsSwish(TypedDict): + reference: NotRequired["Literal['']|str"] + """ + A reference for this payment to be displayed in the Swish app. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsTwint(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + preferred_settlement_speed: NotRequired[ + "Literal['']|Literal['fastest', 'standard']" + ] + """ + Preferred transaction settlement speed + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsWechatPay(TypedDict): + app_id: NotRequired[str] + """ + The app ID registered with WeChat Pay. Only required when client is ios or android. + """ + client: NotRequired[Literal["android", "ios", "web"]] + """ + The client type that the end customer will pay from + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsPaymentMethodOptionsZip(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentCreateParamsRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class PaymentIntentCreateParamsShipping(TypedDict): + address: "PaymentIntentCreateParamsShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class PaymentIntentCreateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentIntentCreateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when a charge succeeds. + The amount is capped at the total transaction amount and if no amount is set, + the full amount is transferred. + + If you intend to collect a fee and you need a more robust reporting experience, using + [application_fee_amount](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-application_fee_amount) + might be a better fit for your integration. + """ + destination: str + """ + If specified, successful charges will be attributed to the destination + account for tax reporting, and the funds from charges will be transferred + to the destination account. The ID of the resulting transfer will be + returned on the successful charge's `transfer` field. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_increment_authorization_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_increment_authorization_params.py new file mode 100644 index 00000000..3108707c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_increment_authorization_params.py @@ -0,0 +1,271 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentIntentIncrementAuthorizationParams(RequestOptions): + amount: int + """ + The updated total amount that you intend to collect from the cardholder. This amount must be greater than the currently authorized amount. + """ + amount_details: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsAmountDetails" + ] + """ + Provides industry-specific information about the amount. + """ + application_fee_amount: NotRequired[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_details: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsPaymentDetails" + ] + """ + Provides industry-specific information about the charge. + """ + statement_descriptor: NotRequired[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card or card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + """ + transfer_data: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsTransferData" + ] + """ + The parameters used to automatically create a transfer after the payment is captured. + Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetails(TypedDict): + discount_amount: NotRequired["Literal['']|int"] + """ + The total discount applied on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[line_items][#][discount_amount]` field. + """ + line_items: NotRequired[ + "Literal['']|List[PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItem]" + ] + """ + A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items. + """ + shipping: NotRequired[ + "Literal['']|PaymentIntentIncrementAuthorizationParamsAmountDetailsShipping" + ] + """ + Contains information about the shipping portion of the amount. + """ + tax: NotRequired[ + "Literal['']|PaymentIntentIncrementAuthorizationParamsAmountDetailsTax" + ] + """ + Contains information about the tax portion of the amount. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItem( + TypedDict +): + discount_amount: NotRequired[int] + """ + The discount applied on this line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[discount_amount]` field. + """ + payment_method_options: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptions" + ] + """ + Payment method-specific information for line items. + """ + product_code: NotRequired[str] + """ + The product code of the line item, such as an SKU. Required for L3 rates. At most 12 characters long. + """ + product_name: str + """ + The product name of the line item. Required for L3 rates. At most 1024 characters long. + + For Cards, this field is truncated to 26 alphanumeric characters before being sent to the card networks. For Paypal, this field is truncated to 127 characters. + """ + quantity: int + """ + The quantity of items. Required for L3 rates. An integer greater than 0. + """ + tax: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemTax" + ] + """ + Contains information about the tax on the item. + """ + unit_cost: int + """ + The unit cost of the line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + """ + unit_of_measure: NotRequired[str] + """ + A unit of measure for the line item, such as gallons, feet, meters, etc. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptions( + TypedDict, +): + card: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCard" + ] + """ + This sub-hash contains line item details that are specific to `card` payment method." + """ + card_present: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent" + ] + """ + This sub-hash contains line item details that are specific to `card_present` payment method." + """ + klarna: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsKlarna" + ] + """ + This sub-hash contains line item details that are specific to `klarna` payment method." + """ + paypal: NotRequired[ + "PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsPaypal" + ] + """ + This sub-hash contains line item details that are specific to `paypal` payment method." + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCard( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsKlarna( + TypedDict, +): + image_url: NotRequired[str] + """ + URL to an image for the product. Max length, 4096 characters. + """ + product_url: NotRequired[str] + """ + URL to the product page. Max length, 4096 characters. + """ + reference: NotRequired[str] + """ + Unique reference for this line item to correlate it with your system's internal records. The field is displayed in the Klarna Consumer App if passed. + """ + subscription_reference: NotRequired[str] + """ + Reference for the subscription this line item is for. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemPaymentMethodOptionsPaypal( + TypedDict, +): + category: NotRequired[ + Literal["digital_goods", "donation", "physical_goods"] + ] + """ + Type of the line item. + """ + description: NotRequired[str] + """ + Description of the line item. + """ + sold_by: NotRequired[str] + """ + The Stripe account ID of the connected account that sells the item. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsLineItemTax( + TypedDict, +): + total_tax_amount: int + """ + The total amount of tax on a single line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[tax][total_tax_amount]` field. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsShipping( + TypedDict +): + amount: NotRequired["Literal['']|int"] + """ + If a physical good is being shipped, the cost of shipping represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than or equal to 0. + """ + from_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped from. At most 10 alphanumeric characters long, hyphens are allowed. + """ + to_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped to. At most 10 alphanumeric characters long, hyphens are allowed. + """ + + +class PaymentIntentIncrementAuthorizationParamsAmountDetailsTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + +class PaymentIntentIncrementAuthorizationParamsPaymentDetails(TypedDict): + customer_reference: NotRequired["Literal['']|str"] + """ + A unique value to identify the customer. This field is available only for card payments. + + This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. + """ + order_reference: NotRequired["Literal['']|str"] + """ + A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates. + + Required when the Payment Method Types array contains `card`, including when [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-automatic_payment_methods-enabled) is set to `true`. + + For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app. + """ + + +class PaymentIntentIncrementAuthorizationParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when a charge succeeds. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_list_amount_details_line_items_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_list_amount_details_line_items_params.py new file mode 100644 index 00000000..0dcb34ca --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_list_amount_details_line_items_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentIntentListAmountDetailsLineItemsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_list_params.py new file mode 100644 index 00000000..711a58f4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_list_params.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PaymentIntentListParams(RequestOptions): + created: NotRequired["PaymentIntentListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp or a dictionary with a number of different query options. + """ + customer: NotRequired[str] + """ + Only return PaymentIntents for the customer that this customer ID specifies. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class PaymentIntentListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_modify_params.py new file mode 100644 index 00000000..21b3581b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_modify_params.py @@ -0,0 +1,3070 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentIntentModifyParams(RequestOptions): + amount: NotRequired[int] + """ + Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + amount_details: NotRequired[ + "Literal['']|PaymentIntentModifyParamsAmountDetails" + ] + """ + Provides industry-specific information about the amount. + """ + application_fee_amount: NotRequired["Literal['']|int"] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + capture_method: NotRequired[ + Literal["automatic", "automatic_async", "manual"] + ] + """ + Controls when the funds will be captured from the customer's account. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: NotRequired[str] + """ + ID of the Customer this PaymentIntent belongs to, if one exists. + + Payment methods attached to other Customers cannot be used with this PaymentIntent. + + If [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + excluded_payment_method_types: NotRequired[ + "Literal['']|List[Literal['acss_debit', 'affirm', 'afterpay_clearpay', 'alipay', 'alma', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'billie', 'blik', 'boleto', 'card', 'cashapp', 'crypto', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'mb_way', 'mobilepay', 'multibanco', 'naver_pay', 'nz_bank_account', 'oxxo', 'p24', 'pay_by_bank', 'payco', 'paynow', 'paypal', 'pix', 'promptpay', 'revolut_pay', 'samsung_pay', 'satispay', 'sepa_debit', 'sofort', 'swish', 'twint', 'us_bank_account', 'wechat_pay', 'zip']]" + ] + """ + The list of payment method types to exclude from use with this payment. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_details: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentDetails" + ] + """ + Provides industry-specific information about the charge. + """ + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent. To unset this field to null, pass in an empty string. + """ + payment_method_configuration: NotRequired[str] + """ + The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this PaymentIntent. + """ + payment_method_data: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodData" + ] + """ + If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear + in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) + property on the PaymentIntent. + """ + payment_method_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration for this PaymentIntent. + """ + payment_method_types: NotRequired[List[str]] + """ + The list of payment method types (for example, card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + receipt_email: NotRequired["Literal['']|str"] + """ + Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails). + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + shipping: NotRequired["Literal['']|PaymentIntentModifyParamsShipping"] + """ + Shipping information for this PaymentIntent. + """ + statement_descriptor: NotRequired[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_data: NotRequired["PaymentIntentModifyParamsTransferData"] + """ + Use this parameter to automatically create a Transfer when the payment succeeds. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + transfer_group: NotRequired[str] + """ + A string that identifies the resulting payment as part of a group. You can only provide `transfer_group` if it hasn't been set. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + + +class PaymentIntentModifyParamsAmountDetails(TypedDict): + discount_amount: NotRequired["Literal['']|int"] + """ + The total discount applied on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[line_items][#][discount_amount]` field. + """ + line_items: NotRequired[ + "Literal['']|List[PaymentIntentModifyParamsAmountDetailsLineItem]" + ] + """ + A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items. + """ + shipping: NotRequired[ + "Literal['']|PaymentIntentModifyParamsAmountDetailsShipping" + ] + """ + Contains information about the shipping portion of the amount. + """ + tax: NotRequired["Literal['']|PaymentIntentModifyParamsAmountDetailsTax"] + """ + Contains information about the tax portion of the amount. + """ + + +class PaymentIntentModifyParamsAmountDetailsLineItem(TypedDict): + discount_amount: NotRequired[int] + """ + The discount applied on this line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[discount_amount]` field. + """ + payment_method_options: NotRequired[ + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptions" + ] + """ + Payment method-specific information for line items. + """ + product_code: NotRequired[str] + """ + The product code of the line item, such as an SKU. Required for L3 rates. At most 12 characters long. + """ + product_name: str + """ + The product name of the line item. Required for L3 rates. At most 1024 characters long. + + For Cards, this field is truncated to 26 alphanumeric characters before being sent to the card networks. For Paypal, this field is truncated to 127 characters. + """ + quantity: int + """ + The quantity of items. Required for L3 rates. An integer greater than 0. + """ + tax: NotRequired["PaymentIntentModifyParamsAmountDetailsLineItemTax"] + """ + Contains information about the tax on the item. + """ + unit_cost: int + """ + The unit cost of the line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + """ + unit_of_measure: NotRequired[str] + """ + A unit of measure for the line item, such as gallons, feet, meters, etc. + """ + + +class PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptions( + TypedDict, +): + card: NotRequired[ + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCard" + ] + """ + This sub-hash contains line item details that are specific to `card` payment method." + """ + card_present: NotRequired[ + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent" + ] + """ + This sub-hash contains line item details that are specific to `card_present` payment method." + """ + klarna: NotRequired[ + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsKlarna" + ] + """ + This sub-hash contains line item details that are specific to `klarna` payment method." + """ + paypal: NotRequired[ + "PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsPaypal" + ] + """ + This sub-hash contains line item details that are specific to `paypal` payment method." + """ + + +class PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCard( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsKlarna( + TypedDict, +): + image_url: NotRequired[str] + """ + URL to an image for the product. Max length, 4096 characters. + """ + product_url: NotRequired[str] + """ + URL to the product page. Max length, 4096 characters. + """ + reference: NotRequired[str] + """ + Unique reference for this line item to correlate it with your system's internal records. The field is displayed in the Klarna Consumer App if passed. + """ + subscription_reference: NotRequired[str] + """ + Reference for the subscription this line item is for. + """ + + +class PaymentIntentModifyParamsAmountDetailsLineItemPaymentMethodOptionsPaypal( + TypedDict, +): + category: NotRequired[ + Literal["digital_goods", "donation", "physical_goods"] + ] + """ + Type of the line item. + """ + description: NotRequired[str] + """ + Description of the line item. + """ + sold_by: NotRequired[str] + """ + The Stripe account ID of the connected account that sells the item. + """ + + +class PaymentIntentModifyParamsAmountDetailsLineItemTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on a single line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[tax][total_tax_amount]` field. + """ + + +class PaymentIntentModifyParamsAmountDetailsShipping(TypedDict): + amount: NotRequired["Literal['']|int"] + """ + If a physical good is being shipped, the cost of shipping represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than or equal to 0. + """ + from_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped from. At most 10 alphanumeric characters long, hyphens are allowed. + """ + to_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped to. At most 10 alphanumeric characters long, hyphens are allowed. + """ + + +class PaymentIntentModifyParamsAmountDetailsTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + +class PaymentIntentModifyParamsPaymentDetails(TypedDict): + customer_reference: NotRequired["Literal['']|str"] + """ + A unique value to identify the customer. This field is available only for card payments. + + This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. + """ + order_reference: NotRequired["Literal['']|str"] + """ + A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates. + + Required when the Payment Method Types array contains `card`, including when [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-automatic_payment_methods-enabled) is set to `true`. + + For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app. + """ + + +class PaymentIntentModifyParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["PaymentIntentModifyParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["PaymentIntentModifyParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["PaymentIntentModifyParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["PaymentIntentModifyParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["PaymentIntentModifyParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["PaymentIntentModifyParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["PaymentIntentModifyParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["PaymentIntentModifyParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["PaymentIntentModifyParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["PaymentIntentModifyParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["PaymentIntentModifyParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["PaymentIntentModifyParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["PaymentIntentModifyParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["PaymentIntentModifyParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["PaymentIntentModifyParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["PaymentIntentModifyParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["PaymentIntentModifyParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["PaymentIntentModifyParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataMobilepay" + ] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["PaymentIntentModifyParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["PaymentIntentModifyParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["PaymentIntentModifyParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["PaymentIntentModifyParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["PaymentIntentModifyParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["PaymentIntentModifyParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["PaymentIntentModifyParamsPaymentMethodDataSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["PaymentIntentModifyParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["PaymentIntentModifyParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["PaymentIntentModifyParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["PaymentIntentModifyParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataAlma(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class PaymentIntentModifyParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataBillie(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataBlik(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class PaymentIntentModifyParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["PaymentIntentModifyParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class PaymentIntentModifyParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataLink(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataPayco(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataPix(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataSwish(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataTwint(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class PaymentIntentModifyParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodDataZip(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. + """ + affirm: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsAffirm" + ] + """ + If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. + """ + afterpay_clearpay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsAfterpayClearpay" + ] + """ + If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options. + """ + alipay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsAlipay" + ] + """ + If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. + """ + alma: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsAlma" + ] + """ + If this is a `alma` PaymentMethod, this sub-hash contains details about the Alma payment method options. + """ + amazon_pay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options. + """ + au_becs_debit: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsAuBecsDebit" + ] + """ + If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options. + """ + bacs_debit: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options. + """ + bancontact: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. + """ + billie: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsBillie" + ] + """ + If this is a `billie` PaymentMethod, this sub-hash contains details about the Billie payment method options. + """ + blik: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsBlik" + ] + """ + If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. + """ + boleto: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsBoleto" + ] + """ + If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. + """ + card: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsCard" + ] + """ + Configuration for any card payments attempted on this PaymentIntent. + """ + card_present: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + cashapp: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsCashapp" + ] + """ + If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. + """ + crypto: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsCrypto" + ] + """ + If this is a `crypto` PaymentMethod, this sub-hash contains details about the Crypto payment method options. + """ + customer_balance: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalance" + ] + """ + If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options. + """ + eps: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsEps" + ] + """ + If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. + """ + fpx: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsFpx" + ] + """ + If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. + """ + giropay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsGiropay" + ] + """ + If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options. + """ + grabpay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsGrabpay" + ] + """ + If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options. + """ + ideal: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsIdeal" + ] + """ + If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options. + """ + interac_present: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsInteracPresent" + ] + """ + If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + kakao_pay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this sub-hash contains details about the Kakao Pay payment method options. + """ + klarna: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsKlarna" + ] + """ + If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. + """ + konbini: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsKonbini" + ] + """ + If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. + """ + kr_card: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsKrCard" + ] + """ + If this is a `kr_card` PaymentMethod, this sub-hash contains details about the KR Card payment method options. + """ + link: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsLink" + ] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + mb_way: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsMbWay" + ] + """ + If this is a `mb_way` PaymentMethod, this sub-hash contains details about the MB WAY payment method options. + """ + mobilepay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsMobilepay" + ] + """ + If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. + """ + multibanco: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options. + """ + naver_pay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this sub-hash contains details about the Naver Pay payment method options. + """ + nz_bank_account: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsNzBankAccount" + ] + """ + If this is a `nz_bank_account` PaymentMethod, this sub-hash contains details about the NZ BECS Direct Debit payment method options. + """ + oxxo: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsOxxo" + ] + """ + If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. + """ + p24: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsP24" + ] + """ + If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. + """ + pay_by_bank: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this sub-hash contains details about the PayByBank payment method options. + """ + payco: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsPayco" + ] + """ + If this is a `payco` PaymentMethod, this sub-hash contains details about the PAYCO payment method options. + """ + paynow: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsPaynow" + ] + """ + If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. + """ + paypal: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsPaypal" + ] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + pix: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsPix" + ] + """ + If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options. + """ + promptpay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. + """ + revolut_pay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. + """ + samsung_pay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this sub-hash contains details about the Samsung Pay payment method options. + """ + satispay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsSatispay" + ] + """ + If this is a `satispay` PaymentMethod, this sub-hash contains details about the Satispay payment method options. + """ + sepa_debit: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + sofort: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsSofort" + ] + """ + If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options. + """ + swish: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsSwish" + ] + """ + If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. + """ + twint: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsTwint" + ] + """ + If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options. + """ + us_bank_account: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. + """ + wechat_pay: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsWechatPay" + ] + """ + If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. + """ + zip: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsZip" + ] + """ + If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAcssDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAffirm(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + preferred_locale: NotRequired[str] + """ + Preferred language of the Affirm authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAfterpayClearpay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + reference: NotRequired[str] + """ + An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. + This field differs from the statement descriptor and item name. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAlipay(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAlma(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAmazonPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsAuBecsDebit(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsBancontact(TypedDict): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsBillie(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsBlik(TypedDict): + code: NotRequired[str] + """ + The 6-digit BLIK code that a customer has generated using their banking application. Can only be set on confirmation. + """ + setup_future_usage: NotRequired["Literal['']|Literal['none']"] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsBoleto(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto invoice will expire on Wednesday at 23:59 America/Sao_Paulo time. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + cvc_token: NotRequired[str] + """ + A single-use `cvc_update` Token that represents a card CVC value. When provided, the CVC value will be verified during the card payment attempt. This parameter can only be provided during confirmation. + """ + installments: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments attempted on this PaymentIntent. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + mandate_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter indicates that a transaction will be marked + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this PaymentIntent on. Depends on the available networks of the card attached to the PaymentIntent. Can be only set confirm-time. + """ + request_extended_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. + """ + request_incremental_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. + """ + request_multicapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. + """ + request_overcapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + require_cvc_recollection: NotRequired[bool] + """ + When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter). + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + statement_descriptor_suffix_kana: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters. + """ + statement_descriptor_suffix_kanji: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters. + """ + three_d_secure: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this payment. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardInstallments(TypedDict): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this PaymentIntent. + This will cause the response to contain a list of available installment plans. + Setting to false will prevent any selected plan from applying to a charge. + """ + plan: NotRequired[ + "Literal['']|PaymentIntentModifyParamsPaymentMethodOptionsCardInstallmentsPlan" + ] + """ + The selected installment plan to use for this payment attempt. + This parameter can only be provided during confirmation. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardMandateOptions( + TypedDict, +): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecure(TypedDict): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: str + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + exemption_indicator: NotRequired[Literal["low_risk", "none"]] + """ + The exemption requested via 3DS and accepted by the issuer at authentication time. + """ + network_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: str + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: Literal["1.0.2", "2.1.0", "2.2.0"] + """ + The version of 3D Secure that was performed. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardPresent(TypedDict): + capture_method: NotRequired[Literal["manual", "manual_preferred"]] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + request_extended_authorization: NotRequired[bool] + """ + Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) + """ + request_incremental_authorization_support: NotRequired[bool] + """ + Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support. + """ + routing: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCardPresentRouting" + ] + """ + Network routing priority on co-branded EMV cards supporting domestic debit and international card schemes. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCardPresentRouting( + TypedDict, +): + requested_priority: NotRequired[Literal["domestic", "international"]] + """ + Routing requested priority + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCashapp(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCrypto(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalance(TypedDict): + bank_transfer: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for the eu_bank_transfer funding type. + """ + requested_address_types: NotRequired[ + List[ + Literal[ + "aba", "iban", "sepa", "sort_code", "spei", "swift", "zengin" + ] + ] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The list of bank transfer types that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsEps(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsFpx(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsGiropay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsGrabpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsIdeal(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsInteracPresent(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodOptionsKakaoPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsKlarna(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + on_demand: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up or charging an on-demand payment. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + subscriptions: NotRequired[ + "Literal['']|List[PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscription( + TypedDict, +): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + ] + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsKonbini(TypedDict): + confirmation_number: NotRequired["Literal['']|str"] + """ + An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. Must not consist of only zeroes and could be rejected in case of insufficient uniqueness. We recommend to use the customer's phone number. + """ + expires_after_days: NotRequired["Literal['']|int"] + """ + The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. Defaults to 3 days. + """ + expires_at: NotRequired["Literal['']|int"] + """ + The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set. + """ + product_description: NotRequired["Literal['']|str"] + """ + A product descriptor of up to 22 characters, which will appear to customers at the convenience store. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsKrCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsLink(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsMbWay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsMobilepay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsMultibanco(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsNaverPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsNzBankAccount(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsOxxo(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before an OXXO voucher expires. For example, if you create an OXXO voucher on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsP24(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + tos_shown_and_accepted: NotRequired[bool] + """ + Confirm that the payer has accepted the P24 terms and conditions. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsPayByBank(TypedDict): + pass + + +class PaymentIntentModifyParamsPaymentMethodOptionsPayco(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsPaynow(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsPaypal(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-DE", + "de-LU", + "el-GR", + "en-GB", + "en-US", + "es-ES", + "fi-FI", + "fr-BE", + "fr-FR", + "fr-LU", + "hu-HU", + "it-IT", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "sk-SK", + "sv-SE", + ] + ] + """ + [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to. + """ + reference: NotRequired[str] + """ + A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID. + """ + risk_correlation_id: NotRequired[str] + """ + The risk correlation ID for an on-session payment using a saved PayPal payment method. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsPix(TypedDict): + amount_includes_iof: NotRequired[Literal["always", "never"]] + """ + Determines if the amount includes the IOF tax. Defaults to `never`. + """ + expires_after_seconds: NotRequired[int] + """ + The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds. + """ + expires_at: NotRequired[int] + """ + The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future). Defaults to 1 day in the future. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsPromptpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsRevolutPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsSamsungPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsSatispay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsSofort(TypedDict): + preferred_language: NotRequired[ + "Literal['']|Literal['de', 'en', 'es', 'fr', 'it', 'nl', 'pl']" + ] + """ + Language shown to the payer on redirect. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsSwish(TypedDict): + reference: NotRequired["Literal['']|str"] + """ + A reference for this payment to be displayed in the Swish app. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsTwint(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + preferred_settlement_speed: NotRequired[ + "Literal['']|Literal['fastest', 'standard']" + ] + """ + Preferred transaction settlement speed + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsWechatPay(TypedDict): + app_id: NotRequired[str] + """ + The app ID registered with WeChat Pay. Only required when client is ios or android. + """ + client: NotRequired[Literal["android", "ios", "web"]] + """ + The client type that the end customer will pay from + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsPaymentMethodOptionsZip(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentModifyParamsShipping(TypedDict): + address: "PaymentIntentModifyParamsShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class PaymentIntentModifyParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentIntentModifyParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when a charge succeeds. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_retrieve_params.py new file mode 100644 index 00000000..ab9d23dd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_retrieve_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentIntentRetrieveParams(RequestOptions): + client_secret: NotRequired[str] + """ + The client secret of the PaymentIntent. We require it if you use a publishable key to retrieve the source. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_search_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_search_params.py new file mode 100644 index 00000000..53c3cc37 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_search_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentIntentSearchParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + page: NotRequired[str] + """ + A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + """ + query: str + """ + The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for payment intents](https://stripe.com/docs/search#query-fields-for-payment-intents). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_update_params.py new file mode 100644 index 00000000..fcb15210 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_update_params.py @@ -0,0 +1,3069 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentIntentUpdateParams(TypedDict): + amount: NotRequired[int] + """ + Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + amount_details: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsAmountDetails" + ] + """ + Provides industry-specific information about the amount. + """ + application_fee_amount: NotRequired["Literal['']|int"] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + capture_method: NotRequired[ + Literal["automatic", "automatic_async", "manual"] + ] + """ + Controls when the funds will be captured from the customer's account. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: NotRequired[str] + """ + ID of the Customer this PaymentIntent belongs to, if one exists. + + Payment methods attached to other Customers cannot be used with this PaymentIntent. + + If [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + excluded_payment_method_types: NotRequired[ + "Literal['']|List[Literal['acss_debit', 'affirm', 'afterpay_clearpay', 'alipay', 'alma', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'billie', 'blik', 'boleto', 'card', 'cashapp', 'crypto', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'mb_way', 'mobilepay', 'multibanco', 'naver_pay', 'nz_bank_account', 'oxxo', 'p24', 'pay_by_bank', 'payco', 'paynow', 'paypal', 'pix', 'promptpay', 'revolut_pay', 'samsung_pay', 'satispay', 'sepa_debit', 'sofort', 'swish', 'twint', 'us_bank_account', 'wechat_pay', 'zip']]" + ] + """ + The list of payment method types to exclude from use with this payment. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_details: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentDetails" + ] + """ + Provides industry-specific information about the charge. + """ + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent. To unset this field to null, pass in an empty string. + """ + payment_method_configuration: NotRequired[str] + """ + The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this PaymentIntent. + """ + payment_method_data: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodData" + ] + """ + If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear + in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) + property on the PaymentIntent. + """ + payment_method_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration for this PaymentIntent. + """ + payment_method_types: NotRequired[List[str]] + """ + The list of payment method types (for example, card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + receipt_email: NotRequired["Literal['']|str"] + """ + Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails). + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + shipping: NotRequired["Literal['']|PaymentIntentUpdateParamsShipping"] + """ + Shipping information for this PaymentIntent. + """ + statement_descriptor: NotRequired[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_data: NotRequired["PaymentIntentUpdateParamsTransferData"] + """ + Use this parameter to automatically create a Transfer when the payment succeeds. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + transfer_group: NotRequired[str] + """ + A string that identifies the resulting payment as part of a group. You can only provide `transfer_group` if it hasn't been set. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + + +class PaymentIntentUpdateParamsAmountDetails(TypedDict): + discount_amount: NotRequired["Literal['']|int"] + """ + The total discount applied on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[line_items][#][discount_amount]` field. + """ + line_items: NotRequired[ + "Literal['']|List[PaymentIntentUpdateParamsAmountDetailsLineItem]" + ] + """ + A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items. + """ + shipping: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsAmountDetailsShipping" + ] + """ + Contains information about the shipping portion of the amount. + """ + tax: NotRequired["Literal['']|PaymentIntentUpdateParamsAmountDetailsTax"] + """ + Contains information about the tax portion of the amount. + """ + + +class PaymentIntentUpdateParamsAmountDetailsLineItem(TypedDict): + discount_amount: NotRequired[int] + """ + The discount applied on this line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than 0. + + This field is mutually exclusive with the `amount_details[discount_amount]` field. + """ + payment_method_options: NotRequired[ + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptions" + ] + """ + Payment method-specific information for line items. + """ + product_code: NotRequired[str] + """ + The product code of the line item, such as an SKU. Required for L3 rates. At most 12 characters long. + """ + product_name: str + """ + The product name of the line item. Required for L3 rates. At most 1024 characters long. + + For Cards, this field is truncated to 26 alphanumeric characters before being sent to the card networks. For Paypal, this field is truncated to 127 characters. + """ + quantity: int + """ + The quantity of items. Required for L3 rates. An integer greater than 0. + """ + tax: NotRequired["PaymentIntentUpdateParamsAmountDetailsLineItemTax"] + """ + Contains information about the tax on the item. + """ + unit_cost: int + """ + The unit cost of the line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + """ + unit_of_measure: NotRequired[str] + """ + A unit of measure for the line item, such as gallons, feet, meters, etc. + """ + + +class PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptions( + TypedDict, +): + card: NotRequired[ + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCard" + ] + """ + This sub-hash contains line item details that are specific to `card` payment method." + """ + card_present: NotRequired[ + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent" + ] + """ + This sub-hash contains line item details that are specific to `card_present` payment method." + """ + klarna: NotRequired[ + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna" + ] + """ + This sub-hash contains line item details that are specific to `klarna` payment method." + """ + paypal: NotRequired[ + "PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal" + ] + """ + This sub-hash contains line item details that are specific to `paypal` payment method." + """ + + +class PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCard( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsCardPresent( + TypedDict, +): + commodity_code: NotRequired[str] + """ + Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + """ + + +class PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsKlarna( + TypedDict, +): + image_url: NotRequired[str] + """ + URL to an image for the product. Max length, 4096 characters. + """ + product_url: NotRequired[str] + """ + URL to the product page. Max length, 4096 characters. + """ + reference: NotRequired[str] + """ + Unique reference for this line item to correlate it with your system's internal records. The field is displayed in the Klarna Consumer App if passed. + """ + subscription_reference: NotRequired[str] + """ + Reference for the subscription this line item is for. + """ + + +class PaymentIntentUpdateParamsAmountDetailsLineItemPaymentMethodOptionsPaypal( + TypedDict, +): + category: NotRequired[ + Literal["digital_goods", "donation", "physical_goods"] + ] + """ + Type of the line item. + """ + description: NotRequired[str] + """ + Description of the line item. + """ + sold_by: NotRequired[str] + """ + The Stripe account ID of the connected account that sells the item. + """ + + +class PaymentIntentUpdateParamsAmountDetailsLineItemTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on a single line item represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L3 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[tax][total_tax_amount]` field. + """ + + +class PaymentIntentUpdateParamsAmountDetailsShipping(TypedDict): + amount: NotRequired["Literal['']|int"] + """ + If a physical good is being shipped, the cost of shipping represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). An integer greater than or equal to 0. + """ + from_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped from. At most 10 alphanumeric characters long, hyphens are allowed. + """ + to_postal_code: NotRequired["Literal['']|str"] + """ + If a physical good is being shipped, the postal code of where it is being shipped to. At most 10 alphanumeric characters long, hyphens are allowed. + """ + + +class PaymentIntentUpdateParamsAmountDetailsTax(TypedDict): + total_tax_amount: int + """ + The total amount of tax on the transaction represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Required for L2 rates. An integer greater than or equal to 0. + + This field is mutually exclusive with the `amount_details[line_items][#][tax][total_tax_amount]` field. + """ + + +class PaymentIntentUpdateParamsPaymentDetails(TypedDict): + customer_reference: NotRequired["Literal['']|str"] + """ + A unique value to identify the customer. This field is available only for card payments. + + This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. + """ + order_reference: NotRequired["Literal['']|str"] + """ + A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates. + + Required when the Payment Method Types array contains `card`, including when [automatic_payment_methods.enabled](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-automatic_payment_methods-enabled) is set to `true`. + + For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app. + """ + + +class PaymentIntentUpdateParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataMobilepay" + ] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataAlma(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataBillie(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataBlik(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["PaymentIntentUpdateParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataLink(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataPayco(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataPix(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataSwish(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataTwint(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class PaymentIntentUpdateParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodDataZip(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` PaymentMethod, this sub-hash contains details about the ACSS Debit payment method options. + """ + affirm: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsAffirm" + ] + """ + If this is an `affirm` PaymentMethod, this sub-hash contains details about the Affirm payment method options. + """ + afterpay_clearpay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsAfterpayClearpay" + ] + """ + If this is a `afterpay_clearpay` PaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options. + """ + alipay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsAlipay" + ] + """ + If this is a `alipay` PaymentMethod, this sub-hash contains details about the Alipay payment method options. + """ + alma: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsAlma" + ] + """ + If this is a `alma` PaymentMethod, this sub-hash contains details about the Alma payment method options. + """ + amazon_pay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` PaymentMethod, this sub-hash contains details about the Amazon Pay payment method options. + """ + au_becs_debit: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsAuBecsDebit" + ] + """ + If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options. + """ + bacs_debit: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this sub-hash contains details about the BACS Debit payment method options. + """ + bancontact: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this sub-hash contains details about the Bancontact payment method options. + """ + billie: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsBillie" + ] + """ + If this is a `billie` PaymentMethod, this sub-hash contains details about the Billie payment method options. + """ + blik: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsBlik" + ] + """ + If this is a `blik` PaymentMethod, this sub-hash contains details about the BLIK payment method options. + """ + boleto: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsBoleto" + ] + """ + If this is a `boleto` PaymentMethod, this sub-hash contains details about the Boleto payment method options. + """ + card: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsCard" + ] + """ + Configuration for any card payments attempted on this PaymentIntent. + """ + card_present: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + cashapp: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsCashapp" + ] + """ + If this is a `cashapp` PaymentMethod, this sub-hash contains details about the Cash App Pay payment method options. + """ + crypto: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsCrypto" + ] + """ + If this is a `crypto` PaymentMethod, this sub-hash contains details about the Crypto payment method options. + """ + customer_balance: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalance" + ] + """ + If this is a `customer balance` PaymentMethod, this sub-hash contains details about the customer balance payment method options. + """ + eps: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsEps" + ] + """ + If this is a `eps` PaymentMethod, this sub-hash contains details about the EPS payment method options. + """ + fpx: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsFpx" + ] + """ + If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options. + """ + giropay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsGiropay" + ] + """ + If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options. + """ + grabpay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsGrabpay" + ] + """ + If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options. + """ + ideal: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsIdeal" + ] + """ + If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options. + """ + interac_present: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsInteracPresent" + ] + """ + If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options. + """ + kakao_pay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this sub-hash contains details about the Kakao Pay payment method options. + """ + klarna: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsKlarna" + ] + """ + If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options. + """ + konbini: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsKonbini" + ] + """ + If this is a `konbini` PaymentMethod, this sub-hash contains details about the Konbini payment method options. + """ + kr_card: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsKrCard" + ] + """ + If this is a `kr_card` PaymentMethod, this sub-hash contains details about the KR Card payment method options. + """ + link: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsLink" + ] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + mb_way: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsMbWay" + ] + """ + If this is a `mb_way` PaymentMethod, this sub-hash contains details about the MB WAY payment method options. + """ + mobilepay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsMobilepay" + ] + """ + If this is a `MobilePay` PaymentMethod, this sub-hash contains details about the MobilePay payment method options. + """ + multibanco: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this sub-hash contains details about the Multibanco payment method options. + """ + naver_pay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this sub-hash contains details about the Naver Pay payment method options. + """ + nz_bank_account: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsNzBankAccount" + ] + """ + If this is a `nz_bank_account` PaymentMethod, this sub-hash contains details about the NZ BECS Direct Debit payment method options. + """ + oxxo: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsOxxo" + ] + """ + If this is a `oxxo` PaymentMethod, this sub-hash contains details about the OXXO payment method options. + """ + p24: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsP24" + ] + """ + If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options. + """ + pay_by_bank: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this sub-hash contains details about the PayByBank payment method options. + """ + payco: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsPayco" + ] + """ + If this is a `payco` PaymentMethod, this sub-hash contains details about the PAYCO payment method options. + """ + paynow: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsPaynow" + ] + """ + If this is a `paynow` PaymentMethod, this sub-hash contains details about the PayNow payment method options. + """ + paypal: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsPaypal" + ] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + pix: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsPix" + ] + """ + If this is a `pix` PaymentMethod, this sub-hash contains details about the Pix payment method options. + """ + promptpay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this sub-hash contains details about the PromptPay payment method options. + """ + revolut_pay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this sub-hash contains details about the Revolut Pay payment method options. + """ + samsung_pay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this sub-hash contains details about the Samsung Pay payment method options. + """ + satispay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsSatispay" + ] + """ + If this is a `satispay` PaymentMethod, this sub-hash contains details about the Satispay payment method options. + """ + sepa_debit: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + sofort: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsSofort" + ] + """ + If this is a `sofort` PaymentMethod, this sub-hash contains details about the SOFORT payment method options. + """ + swish: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsSwish" + ] + """ + If this is a `Swish` PaymentMethod, this sub-hash contains details about the Swish payment method options. + """ + twint: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsTwint" + ] + """ + If this is a `twint` PaymentMethod, this sub-hash contains details about the TWINT payment method options. + """ + us_bank_account: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` PaymentMethod, this sub-hash contains details about the US bank account payment method options. + """ + wechat_pay: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsWechatPay" + ] + """ + If this is a `wechat_pay` PaymentMethod, this sub-hash contains details about the WeChat Pay payment method options. + """ + zip: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsZip" + ] + """ + If this is a `zip` PaymentMethod, this sub-hash contains details about the Zip payment method options. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAffirm(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + preferred_locale: NotRequired[str] + """ + Preferred language of the Affirm authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAfterpayClearpay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + reference: NotRequired[str] + """ + An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. + This field differs from the statement descriptor and item name. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAlipay(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAlma(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAmazonPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsAuBecsDebit(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsBancontact(TypedDict): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsBillie(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsBlik(TypedDict): + code: NotRequired[str] + """ + The 6-digit BLIK code that a customer has generated using their banking application. Can only be set on confirmation. + """ + setup_future_usage: NotRequired["Literal['']|Literal['none']"] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsBoleto(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto invoice will expire on Wednesday at 23:59 America/Sao_Paulo time. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + cvc_token: NotRequired[str] + """ + A single-use `cvc_update` Token that represents a card CVC value. When provided, the CVC value will be verified during the card payment attempt. This parameter can only be provided during confirmation. + """ + installments: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments attempted on this PaymentIntent. + + For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments). + """ + mandate_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter indicates that a transaction will be marked + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this PaymentIntent on. Depends on the available networks of the card attached to the PaymentIntent. Can be only set confirm-time. + """ + request_extended_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent. + """ + request_incremental_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent. + """ + request_multicapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent. + """ + request_overcapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + require_cvc_recollection: NotRequired[bool] + """ + When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter). + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + statement_descriptor_suffix_kana: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters. + """ + statement_descriptor_suffix_kanji: NotRequired["Literal['']|str"] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters. + """ + three_d_secure: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this payment. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallments(TypedDict): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this PaymentIntent. + This will cause the response to contain a list of available installment plans. + Setting to false will prevent any selected plan from applying to a charge. + """ + plan: NotRequired[ + "Literal['']|PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallmentsPlan" + ] + """ + The selected installment plan to use for this payment attempt. + This parameter can only be provided during confirmation. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardMandateOptions( + TypedDict, +): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure(TypedDict): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: str + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + exemption_indicator: NotRequired[Literal["low_risk", "none"]] + """ + The exemption requested via 3DS and accepted by the issuer at authentication time. + """ + network_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: str + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: Literal["1.0.2", "2.1.0", "2.2.0"] + """ + The version of 3D Secure that was performed. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardPresent(TypedDict): + capture_method: NotRequired[Literal["manual", "manual_preferred"]] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + request_extended_authorization: NotRequired[bool] + """ + Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) + """ + request_incremental_authorization_support: NotRequired[bool] + """ + Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support. + """ + routing: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCardPresentRouting" + ] + """ + Network routing priority on co-branded EMV cards supporting domestic debit and international card schemes. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCardPresentRouting( + TypedDict, +): + requested_priority: NotRequired[Literal["domestic", "international"]] + """ + Routing requested priority + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCashapp(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCrypto(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalance(TypedDict): + bank_transfer: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for the eu_bank_transfer funding type. + """ + requested_address_types: NotRequired[ + List[ + Literal[ + "aba", "iban", "sepa", "sort_code", "spei", "swift", "zengin" + ] + ] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The list of bank transfer types that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsEps(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsFpx(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsGiropay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsGrabpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsIdeal(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsInteracPresent(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodOptionsKakaoPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsKlarna(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + on_demand: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up or charging an on-demand payment. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + subscriptions: NotRequired[ + "Literal['']|List[PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription( + TypedDict, +): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + ] + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsKonbini(TypedDict): + confirmation_number: NotRequired["Literal['']|str"] + """ + An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. Must not consist of only zeroes and could be rejected in case of insufficient uniqueness. We recommend to use the customer's phone number. + """ + expires_after_days: NotRequired["Literal['']|int"] + """ + The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. Defaults to 3 days. + """ + expires_at: NotRequired["Literal['']|int"] + """ + The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set. + """ + product_description: NotRequired["Literal['']|str"] + """ + A product descriptor of up to 22 characters, which will appear to customers at the convenience store. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsKrCard(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsLink(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsMbWay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsMobilepay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsMultibanco(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsNaverPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsNzBankAccount(TypedDict): + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsOxxo(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before an OXXO voucher expires. For example, if you create an OXXO voucher on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsP24(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + tos_shown_and_accepted: NotRequired[bool] + """ + Confirm that the payer has accepted the P24 terms and conditions. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsPayByBank(TypedDict): + pass + + +class PaymentIntentUpdateParamsPaymentMethodOptionsPayco(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsPaynow(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsPaypal(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-DE", + "de-LU", + "el-GR", + "en-GB", + "en-US", + "es-ES", + "fi-FI", + "fr-BE", + "fr-FR", + "fr-LU", + "hu-HU", + "it-IT", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "sk-SK", + "sv-SE", + ] + ] + """ + [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to. + """ + reference: NotRequired[str] + """ + A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID. + """ + risk_correlation_id: NotRequired[str] + """ + The risk correlation ID for an on-session payment using a saved PayPal payment method. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsPix(TypedDict): + amount_includes_iof: NotRequired[Literal["always", "never"]] + """ + Determines if the amount includes the IOF tax. Defaults to `never`. + """ + expires_after_seconds: NotRequired[int] + """ + The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds. + """ + expires_at: NotRequired[int] + """ + The timestamp at which the Pix expires (between 10 and 1209600 seconds in the future). Defaults to 1 day in the future. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsPromptpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsRevolutPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsSamsungPay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsSatispay(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds are captured from the customer's account. + + If provided, this parameter overrides the behavior of the top-level [capture_method](https://docs.stripe.com/api/payment_intents/update#update_payment_intent-capture_method) for this payment method type when finalizing the payment with this payment method type. + + If `capture_method` is already set on the PaymentIntent, providing an empty value for this parameter unsets the stored value for this payment method type. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsSofort(TypedDict): + preferred_language: NotRequired[ + "Literal['']|Literal['de', 'en', 'es', 'fr', 'it', 'nl', 'pl']" + ] + """ + Language shown to the payer on redirect. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsSwish(TypedDict): + reference: NotRequired["Literal['']|str"] + """ + A reference for this payment to be displayed in the Swish app. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsTwint(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + preferred_settlement_speed: NotRequired[ + "Literal['']|Literal['fastest', 'standard']" + ] + """ + Preferred transaction settlement speed + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session', 'on_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsWechatPay(TypedDict): + app_id: NotRequired[str] + """ + The app ID registered with WeChat Pay. Only required when client is ios or android. + """ + client: NotRequired[Literal["android", "ios", "web"]] + """ + The client type that the end customer will pay from + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsPaymentMethodOptionsZip(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class PaymentIntentUpdateParamsShipping(TypedDict): + address: "PaymentIntentUpdateParamsShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class PaymentIntentUpdateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentIntentUpdateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when a charge succeeds. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_verify_microdeposits_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_verify_microdeposits_params.py new file mode 100644 index 00000000..d00db29b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_intent_verify_microdeposits_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentIntentVerifyMicrodepositsParams(RequestOptions): + amounts: NotRequired[List[int]] + """ + Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account. + """ + descriptor_code: NotRequired[str] + """ + A six-character code starting with SM present in the microdeposit sent to the bank account. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_create_params.py new file mode 100644 index 00000000..c24e472e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_create_params.py @@ -0,0 +1,1092 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentLinkCreateParams(RequestOptions): + after_completion: NotRequired["PaymentLinkCreateParamsAfterCompletion"] + """ + Behavior after the purchase is complete. + """ + allow_promotion_codes: NotRequired[bool] + """ + Enables user redeemable promotion codes. + """ + application_fee_amount: NotRequired[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Can only be applied when there are no line items with recurring prices. + """ + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field. + """ + automatic_tax: NotRequired["PaymentLinkCreateParamsAutomaticTax"] + """ + Configuration for automatic tax collection. + """ + billing_address_collection: NotRequired[Literal["auto", "required"]] + """ + Configuration for collecting the customer's billing address. Defaults to `auto`. + """ + consent_collection: NotRequired["PaymentLinkCreateParamsConsentCollection"] + """ + Configure fields to gather active consent from customers. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) and supported by each line item's price. + """ + custom_fields: NotRequired[List["PaymentLinkCreateParamsCustomField"]] + """ + Collect additional information from your customer using custom fields. Up to 3 fields are supported. + """ + custom_text: NotRequired["PaymentLinkCreateParamsCustomText"] + """ + Display additional text for your customers using custom text. + """ + customer_creation: NotRequired[Literal["always", "if_required"]] + """ + Configures whether [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link create a [Customer](https://stripe.com/docs/api/customers). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + inactive_message: NotRequired[str] + """ + The custom message to be displayed to a customer when a payment link is no longer active. + """ + invoice_creation: NotRequired["PaymentLinkCreateParamsInvoiceCreation"] + """ + Generate a post-purchase Invoice for one-time payments. + """ + line_items: List["PaymentLinkCreateParamsLineItem"] + """ + The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. Metadata associated with this Payment Link will automatically be copied to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link. + """ + name_collection: NotRequired["PaymentLinkCreateParamsNameCollection"] + """ + Controls settings applied for collecting the customer's name. + """ + on_behalf_of: NotRequired[str] + """ + The account on behalf of which to charge. + """ + optional_items: NotRequired[List["PaymentLinkCreateParamsOptionalItem"]] + """ + A list of optional items the customer can add to their order at checkout. Use this parameter to pass one-time or recurring [Prices](https://stripe.com/docs/api/prices). + There is a maximum of 10 optional items allowed on a payment link, and the existing limits on the number of line items allowed on a payment link apply to the combined number of line items and optional items. + There is a maximum of 20 combined line items and optional items. + """ + payment_intent_data: NotRequired[ + "PaymentLinkCreateParamsPaymentIntentData" + ] + """ + A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode. + """ + payment_method_collection: NotRequired[Literal["always", "if_required"]] + """ + Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount. + + Can only be set in `subscription` mode. Defaults to `always`. + + If you'd like information on how to collect a payment method outside of Checkout, read the guide on [configuring subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials). + """ + payment_method_types: NotRequired[ + List[ + Literal[ + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "klarna", + "konbini", + "link", + "mb_way", + "mobilepay", + "multibanco", + "oxxo", + "p24", + "pay_by_bank", + "paynow", + "paypal", + "pix", + "promptpay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + The list of payment method types that customers can use. If no value is passed, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods) (20+ payment methods [supported](https://stripe.com/docs/payments/payment-methods/integration-options#payment-method-product-support)). + """ + phone_number_collection: NotRequired[ + "PaymentLinkCreateParamsPhoneNumberCollection" + ] + """ + Controls phone number collection settings during checkout. + + We recommend that you review your privacy policy and check with your legal contacts. + """ + restrictions: NotRequired["PaymentLinkCreateParamsRestrictions"] + """ + Settings that restrict the usage of a payment link. + """ + shipping_address_collection: NotRequired[ + "PaymentLinkCreateParamsShippingAddressCollection" + ] + """ + Configuration for collecting the customer's shipping address. + """ + shipping_options: NotRequired[ + List["PaymentLinkCreateParamsShippingOption"] + ] + """ + The shipping rate options to apply to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link. + """ + submit_type: NotRequired[ + Literal["auto", "book", "donate", "pay", "subscribe"] + ] + """ + Describes the type of transaction being performed in order to customize relevant text on the page, such as the submit button. Changing this value will also affect the hostname in the [url](https://stripe.com/docs/api/payment_links/payment_links/object#url) property (example: `donate.stripe.com`). + """ + subscription_data: NotRequired["PaymentLinkCreateParamsSubscriptionData"] + """ + When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`. + """ + tax_id_collection: NotRequired["PaymentLinkCreateParamsTaxIdCollection"] + """ + Controls tax ID collection during checkout. + """ + transfer_data: NotRequired["PaymentLinkCreateParamsTransferData"] + """ + The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to. + """ + + +class PaymentLinkCreateParamsAfterCompletion(TypedDict): + hosted_confirmation: NotRequired[ + "PaymentLinkCreateParamsAfterCompletionHostedConfirmation" + ] + """ + Configuration when `type=hosted_confirmation`. + """ + redirect: NotRequired["PaymentLinkCreateParamsAfterCompletionRedirect"] + """ + Configuration when `type=redirect`. + """ + type: Literal["hosted_confirmation", "redirect"] + """ + The specified behavior after the purchase is complete. Either `redirect` or `hosted_confirmation`. + """ + + +class PaymentLinkCreateParamsAfterCompletionHostedConfirmation(TypedDict): + custom_message: NotRequired[str] + """ + A custom message to display to the customer after the purchase is complete. + """ + + +class PaymentLinkCreateParamsAfterCompletionRedirect(TypedDict): + url: str + """ + The URL the customer will be redirected to after the purchase is complete. You can embed `{CHECKOUT_SESSION_ID}` into the URL to have the `id` of the completed [checkout session](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-id) included. + """ + + +class PaymentLinkCreateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Set to `true` to [calculate tax automatically](https://docs.stripe.com/tax) using the customer's location. + + Enabling this parameter causes the payment link to collect any billing address information necessary for tax calculation. + """ + liability: NotRequired["PaymentLinkCreateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class PaymentLinkCreateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkCreateParamsConsentCollection(TypedDict): + payment_method_reuse_agreement: NotRequired[ + "PaymentLinkCreateParamsConsentCollectionPaymentMethodReuseAgreement" + ] + """ + Determines the display of payment method reuse agreement text in the UI. If set to `hidden`, it will hide legal text related to the reuse of a payment method. + """ + promotions: NotRequired[Literal["auto", "none"]] + """ + If set to `auto`, enables the collection of customer consent for promotional communications. The Checkout + Session will determine whether to display an option to opt into promotional communication + from the merchant depending on the customer's locale. Only available to US merchants. + """ + terms_of_service: NotRequired[Literal["none", "required"]] + """ + If set to `required`, it requires customers to check a terms of service checkbox before being able to pay. + There must be a valid terms of service URL set in your [Dashboard settings](https://dashboard.stripe.com/settings/public). + """ + + +class PaymentLinkCreateParamsConsentCollectionPaymentMethodReuseAgreement( + TypedDict, +): + position: Literal["auto", "hidden"] + """ + Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's + defaults will be used. When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI. + """ + + +class PaymentLinkCreateParamsCustomField(TypedDict): + dropdown: NotRequired["PaymentLinkCreateParamsCustomFieldDropdown"] + """ + Configuration for `type=dropdown` fields. + """ + key: str + """ + String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters. + """ + label: "PaymentLinkCreateParamsCustomFieldLabel" + """ + The label for the field, displayed to the customer. + """ + numeric: NotRequired["PaymentLinkCreateParamsCustomFieldNumeric"] + """ + Configuration for `type=numeric` fields. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + text: NotRequired["PaymentLinkCreateParamsCustomFieldText"] + """ + Configuration for `type=text` fields. + """ + type: Literal["dropdown", "numeric", "text"] + """ + The type of the field. + """ + + +class PaymentLinkCreateParamsCustomFieldDropdown(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page.Must match a `value` in the `options` array. + """ + options: List["PaymentLinkCreateParamsCustomFieldDropdownOption"] + """ + The options available for the customer to select. Up to 200 options allowed. + """ + + +class PaymentLinkCreateParamsCustomFieldDropdownOption(TypedDict): + label: str + """ + The label for the option, displayed to the customer. Up to 100 characters. + """ + value: str + """ + The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters. + """ + + +class PaymentLinkCreateParamsCustomFieldLabel(TypedDict): + custom: str + """ + Custom text for the label, displayed to the customer. Up to 50 characters. + """ + type: Literal["custom"] + """ + The type of the label. + """ + + +class PaymentLinkCreateParamsCustomFieldNumeric(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class PaymentLinkCreateParamsCustomFieldText(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class PaymentLinkCreateParamsCustomText(TypedDict): + after_submit: NotRequired[ + "Literal['']|PaymentLinkCreateParamsCustomTextAfterSubmit" + ] + """ + Custom text that should be displayed after the payment confirmation button. + """ + shipping_address: NotRequired[ + "Literal['']|PaymentLinkCreateParamsCustomTextShippingAddress" + ] + """ + Custom text that should be displayed alongside shipping address collection. + """ + submit: NotRequired["Literal['']|PaymentLinkCreateParamsCustomTextSubmit"] + """ + Custom text that should be displayed alongside the payment confirmation button. + """ + terms_of_service_acceptance: NotRequired[ + "Literal['']|PaymentLinkCreateParamsCustomTextTermsOfServiceAcceptance" + ] + """ + Custom text that should be displayed in place of the default terms of service agreement text. + """ + + +class PaymentLinkCreateParamsCustomTextAfterSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkCreateParamsCustomTextShippingAddress(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkCreateParamsCustomTextSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkCreateParamsCustomTextTermsOfServiceAcceptance(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkCreateParamsInvoiceCreation(TypedDict): + enabled: bool + """ + Whether the feature is enabled + """ + invoice_data: NotRequired[ + "PaymentLinkCreateParamsInvoiceCreationInvoiceData" + ] + """ + Invoice PDF configuration. + """ + + +class PaymentLinkCreateParamsInvoiceCreationInvoiceData(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the invoice. + """ + custom_fields: NotRequired[ + "Literal['']|List[PaymentLinkCreateParamsInvoiceCreationInvoiceDataCustomField]" + ] + """ + Default custom fields to be displayed on invoices for this customer. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + footer: NotRequired[str] + """ + Default footer to be displayed on invoices for this customer. + """ + issuer: NotRequired[ + "PaymentLinkCreateParamsInvoiceCreationInvoiceDataIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + rendering_options: NotRequired[ + "Literal['']|PaymentLinkCreateParamsInvoiceCreationInvoiceDataRenderingOptions" + ] + """ + Default options for invoice PDF rendering for this customer. + """ + + +class PaymentLinkCreateParamsInvoiceCreationInvoiceDataCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class PaymentLinkCreateParamsInvoiceCreationInvoiceDataIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkCreateParamsInvoiceCreationInvoiceDataRenderingOptions( + TypedDict, +): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for this invoice. + """ + + +class PaymentLinkCreateParamsLineItem(TypedDict): + adjustable_quantity: NotRequired[ + "PaymentLinkCreateParamsLineItemAdjustableQuantity" + ] + """ + When set, provides configuration for this item's quantity to be adjusted by the customer during checkout. + """ + price: NotRequired[str] + """ + The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["PaymentLinkCreateParamsLineItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: int + """ + The quantity of the line item being purchased. + """ + + +class PaymentLinkCreateParamsLineItemAdjustableQuantity(TypedDict): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative Integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity the customer can purchase. By default this value is 99. You can specify a value up to 999999. + """ + minimum: NotRequired[int] + """ + The minimum quantity the customer can purchase. By default this value is 0. If there is only one item in the cart then that item's quantity cannot go down to 0. + """ + + +class PaymentLinkCreateParamsLineItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: NotRequired[str] + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + """ + product_data: NotRequired[ + "PaymentLinkCreateParamsLineItemPriceDataProductData" + ] + """ + Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + """ + recurring: NotRequired["PaymentLinkCreateParamsLineItemPriceDataRecurring"] + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class PaymentLinkCreateParamsLineItemPriceDataProductData(TypedDict): + description: NotRequired[str] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + images: NotRequired[List[str]] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + + +class PaymentLinkCreateParamsLineItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class PaymentLinkCreateParamsNameCollection(TypedDict): + business: NotRequired["PaymentLinkCreateParamsNameCollectionBusiness"] + """ + Controls settings applied for collecting the customer's business name. + """ + individual: NotRequired["PaymentLinkCreateParamsNameCollectionIndividual"] + """ + Controls settings applied for collecting the customer's individual name. + """ + + +class PaymentLinkCreateParamsNameCollectionBusiness(TypedDict): + enabled: bool + """ + Enable business name collection on the payment link. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide their business name before checking out. Defaults to `false`. + """ + + +class PaymentLinkCreateParamsNameCollectionIndividual(TypedDict): + enabled: bool + """ + Enable individual name collection on the payment link. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide their full name before checking out. Defaults to `false`. + """ + + +class PaymentLinkCreateParamsOptionalItem(TypedDict): + adjustable_quantity: NotRequired[ + "PaymentLinkCreateParamsOptionalItemAdjustableQuantity" + ] + """ + When set, provides configuration for the customer to adjust the quantity of the line item created when a customer chooses to add this optional item to their order. + """ + price: str + """ + The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. + """ + quantity: int + """ + The initial quantity of the line item created when a customer chooses to add this optional item to their order. + """ + + +class PaymentLinkCreateParamsOptionalItemAdjustableQuantity(TypedDict): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity of this item the customer can purchase. By default this value is 99. + """ + minimum: NotRequired[int] + """ + The minimum quantity of this item the customer must purchase, if they choose to purchase it. Because this item is optional, the customer will always be able to remove it from their order, even if the `minimum` configured here is greater than 0. By default this value is 0. + """ + + +class PaymentLinkCreateParamsPaymentIntentData(TypedDict): + capture_method: NotRequired[ + Literal["automatic", "automatic_async", "manual"] + ] + """ + Controls when the funds will be captured from the customer's account. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will declaratively set metadata on [Payment Intents](https://stripe.com/docs/api/payment_intents) generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + setup_future_usage: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates that you intend to [make future payments](https://stripe.com/docs/payments/payment-intents#future-usage) with the payment method collected by this Checkout Session. + + When setting this to `on_session`, Checkout will show a notice to the customer that their payment details will be saved. + + When setting this to `off_session`, Checkout will show a notice to the customer that their payment details will be saved and used for future payments. + + If a Customer has been provided or Checkout creates a new Customer,Checkout will attach the payment method to the Customer. + + If Checkout does not create a Customer, the payment method is not attached to a Customer. To reuse the payment method, you can retrieve it from the Checkout Session's PaymentIntent. + + When processing card payments, Checkout also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as SCA. + """ + statement_descriptor: NotRequired[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_group: NotRequired[str] + """ + A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details. + """ + + +class PaymentLinkCreateParamsPhoneNumberCollection(TypedDict): + enabled: bool + """ + Set to `true` to enable phone number collection. + """ + + +class PaymentLinkCreateParamsRestrictions(TypedDict): + completed_sessions: "PaymentLinkCreateParamsRestrictionsCompletedSessions" + """ + Configuration for the `completed_sessions` restriction type. + """ + + +class PaymentLinkCreateParamsRestrictionsCompletedSessions(TypedDict): + limit: int + """ + The maximum number of checkout sessions that can be completed for the `completed_sessions` restriction to be met. + """ + + +class PaymentLinkCreateParamsShippingAddressCollection(TypedDict): + allowed_countries: List[ + Literal[ + "AC", + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MK", + "ML", + "MM", + "MN", + "MO", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SZ", + "TA", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + "ZZ", + ] + ] + """ + An array of two-letter ISO country codes representing which countries Checkout should provide as options for + shipping locations. + """ + + +class PaymentLinkCreateParamsShippingOption(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the Shipping Rate to use for this shipping option. + """ + + +class PaymentLinkCreateParamsSubscriptionData(TypedDict): + description: NotRequired[str] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + invoice_settings: NotRequired[ + "PaymentLinkCreateParamsSubscriptionDataInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will declaratively set metadata on [Subscriptions](https://stripe.com/docs/api/subscriptions) generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + trial_period_days: NotRequired[int] + """ + Integer representing the number of trial period days before the customer is charged for the first time. Has to be at least 1. + """ + trial_settings: NotRequired[ + "PaymentLinkCreateParamsSubscriptionDataTrialSettings" + ] + """ + Settings related to subscription trials. + """ + + +class PaymentLinkCreateParamsSubscriptionDataInvoiceSettings(TypedDict): + issuer: NotRequired[ + "PaymentLinkCreateParamsSubscriptionDataInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class PaymentLinkCreateParamsSubscriptionDataInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkCreateParamsSubscriptionDataTrialSettings(TypedDict): + end_behavior: ( + "PaymentLinkCreateParamsSubscriptionDataTrialSettingsEndBehavior" + ) + """ + Defines how the subscription should behave when the user's free trial ends. + """ + + +class PaymentLinkCreateParamsSubscriptionDataTrialSettingsEndBehavior( + TypedDict, +): + missing_payment_method: Literal["cancel", "create_invoice", "pause"] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ + + +class PaymentLinkCreateParamsTaxIdCollection(TypedDict): + enabled: bool + """ + Enable tax ID collection during checkout. Defaults to `false`. + """ + required: NotRequired[Literal["if_supported", "never"]] + """ + Describes whether a tax ID is required during checkout. Defaults to `never`. + """ + + +class PaymentLinkCreateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when a charge succeeds. + """ + destination: str + """ + If specified, successful charges will be attributed to the destination + account for tax reporting, and the funds from charges will be transferred + to the destination account. The ID of the resulting transfer will be + returned on the successful charge's `transfer` field. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_line_item_list_params.py new file mode 100644 index 00000000..8f57382c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PaymentLinkLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_list_line_items_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_list_line_items_params.py new file mode 100644 index 00000000..8defb521 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_list_line_items_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentLinkListLineItemsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_list_params.py new file mode 100644 index 00000000..bc7689ec --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentLinkListParams(RequestOptions): + active: NotRequired[bool] + """ + Only return payment links that are active or inactive (e.g., pass `false` to list all inactive payment links). + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_modify_params.py new file mode 100644 index 00000000..260c3a70 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_modify_params.py @@ -0,0 +1,843 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentLinkModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated. + """ + after_completion: NotRequired["PaymentLinkModifyParamsAfterCompletion"] + """ + Behavior after the purchase is complete. + """ + allow_promotion_codes: NotRequired[bool] + """ + Enables user redeemable promotion codes. + """ + automatic_tax: NotRequired["PaymentLinkModifyParamsAutomaticTax"] + """ + Configuration for automatic tax collection. + """ + billing_address_collection: NotRequired[Literal["auto", "required"]] + """ + Configuration for collecting the customer's billing address. Defaults to `auto`. + """ + custom_fields: NotRequired[ + "Literal['']|List[PaymentLinkModifyParamsCustomField]" + ] + """ + Collect additional information from your customer using custom fields. Up to 3 fields are supported. + """ + custom_text: NotRequired["PaymentLinkModifyParamsCustomText"] + """ + Display additional text for your customers using custom text. + """ + customer_creation: NotRequired[Literal["always", "if_required"]] + """ + Configures whether [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link create a [Customer](https://stripe.com/docs/api/customers). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + inactive_message: NotRequired["Literal['']|str"] + """ + The custom message to be displayed to a customer when a payment link is no longer active. + """ + invoice_creation: NotRequired["PaymentLinkModifyParamsInvoiceCreation"] + """ + Generate a post-purchase Invoice for one-time payments. + """ + line_items: NotRequired[List["PaymentLinkModifyParamsLineItem"]] + """ + The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. Metadata associated with this Payment Link will automatically be copied to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link. + """ + name_collection: NotRequired[ + "Literal['']|PaymentLinkModifyParamsNameCollection" + ] + """ + Controls settings applied for collecting the customer's name. + """ + payment_intent_data: NotRequired[ + "PaymentLinkModifyParamsPaymentIntentData" + ] + """ + A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode. + """ + payment_method_collection: NotRequired[Literal["always", "if_required"]] + """ + Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount. + + Can only be set in `subscription` mode. Defaults to `always`. + + If you'd like information on how to collect a payment method outside of Checkout, read the guide on [configuring subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials). + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['affirm', 'afterpay_clearpay', 'alipay', 'alma', 'au_becs_debit', 'bacs_debit', 'bancontact', 'billie', 'blik', 'boleto', 'card', 'cashapp', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'klarna', 'konbini', 'link', 'mb_way', 'mobilepay', 'multibanco', 'oxxo', 'p24', 'pay_by_bank', 'paynow', 'paypal', 'pix', 'promptpay', 'satispay', 'sepa_debit', 'sofort', 'swish', 'twint', 'us_bank_account', 'wechat_pay', 'zip']]" + ] + """ + The list of payment method types that customers can use. Pass an empty string to enable dynamic payment methods that use your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). + """ + phone_number_collection: NotRequired[ + "PaymentLinkModifyParamsPhoneNumberCollection" + ] + """ + Controls phone number collection settings during checkout. + + We recommend that you review your privacy policy and check with your legal contacts. + """ + restrictions: NotRequired[ + "Literal['']|PaymentLinkModifyParamsRestrictions" + ] + """ + Settings that restrict the usage of a payment link. + """ + shipping_address_collection: NotRequired[ + "Literal['']|PaymentLinkModifyParamsShippingAddressCollection" + ] + """ + Configuration for collecting the customer's shipping address. + """ + submit_type: NotRequired[ + Literal["auto", "book", "donate", "pay", "subscribe"] + ] + """ + Describes the type of transaction being performed in order to customize relevant text on the page, such as the submit button. Changing this value will also affect the hostname in the [url](https://stripe.com/docs/api/payment_links/payment_links/object#url) property (example: `donate.stripe.com`). + """ + subscription_data: NotRequired["PaymentLinkModifyParamsSubscriptionData"] + """ + When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`. + """ + tax_id_collection: NotRequired["PaymentLinkModifyParamsTaxIdCollection"] + """ + Controls tax ID collection during checkout. + """ + + +class PaymentLinkModifyParamsAfterCompletion(TypedDict): + hosted_confirmation: NotRequired[ + "PaymentLinkModifyParamsAfterCompletionHostedConfirmation" + ] + """ + Configuration when `type=hosted_confirmation`. + """ + redirect: NotRequired["PaymentLinkModifyParamsAfterCompletionRedirect"] + """ + Configuration when `type=redirect`. + """ + type: Literal["hosted_confirmation", "redirect"] + """ + The specified behavior after the purchase is complete. Either `redirect` or `hosted_confirmation`. + """ + + +class PaymentLinkModifyParamsAfterCompletionHostedConfirmation(TypedDict): + custom_message: NotRequired[str] + """ + A custom message to display to the customer after the purchase is complete. + """ + + +class PaymentLinkModifyParamsAfterCompletionRedirect(TypedDict): + url: str + """ + The URL the customer will be redirected to after the purchase is complete. You can embed `{CHECKOUT_SESSION_ID}` into the URL to have the `id` of the completed [checkout session](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-id) included. + """ + + +class PaymentLinkModifyParamsAutomaticTax(TypedDict): + enabled: bool + """ + Set to `true` to [calculate tax automatically](https://docs.stripe.com/tax) using the customer's location. + + Enabling this parameter causes the payment link to collect any billing address information necessary for tax calculation. + """ + liability: NotRequired["PaymentLinkModifyParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class PaymentLinkModifyParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkModifyParamsCustomField(TypedDict): + dropdown: NotRequired["PaymentLinkModifyParamsCustomFieldDropdown"] + """ + Configuration for `type=dropdown` fields. + """ + key: str + """ + String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters. + """ + label: "PaymentLinkModifyParamsCustomFieldLabel" + """ + The label for the field, displayed to the customer. + """ + numeric: NotRequired["PaymentLinkModifyParamsCustomFieldNumeric"] + """ + Configuration for `type=numeric` fields. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + text: NotRequired["PaymentLinkModifyParamsCustomFieldText"] + """ + Configuration for `type=text` fields. + """ + type: Literal["dropdown", "numeric", "text"] + """ + The type of the field. + """ + + +class PaymentLinkModifyParamsCustomFieldDropdown(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page.Must match a `value` in the `options` array. + """ + options: List["PaymentLinkModifyParamsCustomFieldDropdownOption"] + """ + The options available for the customer to select. Up to 200 options allowed. + """ + + +class PaymentLinkModifyParamsCustomFieldDropdownOption(TypedDict): + label: str + """ + The label for the option, displayed to the customer. Up to 100 characters. + """ + value: str + """ + The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters. + """ + + +class PaymentLinkModifyParamsCustomFieldLabel(TypedDict): + custom: str + """ + Custom text for the label, displayed to the customer. Up to 50 characters. + """ + type: Literal["custom"] + """ + The type of the label. + """ + + +class PaymentLinkModifyParamsCustomFieldNumeric(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class PaymentLinkModifyParamsCustomFieldText(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class PaymentLinkModifyParamsCustomText(TypedDict): + after_submit: NotRequired[ + "Literal['']|PaymentLinkModifyParamsCustomTextAfterSubmit" + ] + """ + Custom text that should be displayed after the payment confirmation button. + """ + shipping_address: NotRequired[ + "Literal['']|PaymentLinkModifyParamsCustomTextShippingAddress" + ] + """ + Custom text that should be displayed alongside shipping address collection. + """ + submit: NotRequired["Literal['']|PaymentLinkModifyParamsCustomTextSubmit"] + """ + Custom text that should be displayed alongside the payment confirmation button. + """ + terms_of_service_acceptance: NotRequired[ + "Literal['']|PaymentLinkModifyParamsCustomTextTermsOfServiceAcceptance" + ] + """ + Custom text that should be displayed in place of the default terms of service agreement text. + """ + + +class PaymentLinkModifyParamsCustomTextAfterSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkModifyParamsCustomTextShippingAddress(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkModifyParamsCustomTextSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkModifyParamsCustomTextTermsOfServiceAcceptance(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkModifyParamsInvoiceCreation(TypedDict): + enabled: bool + """ + Whether the feature is enabled + """ + invoice_data: NotRequired[ + "PaymentLinkModifyParamsInvoiceCreationInvoiceData" + ] + """ + Invoice PDF configuration. + """ + + +class PaymentLinkModifyParamsInvoiceCreationInvoiceData(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the invoice. + """ + custom_fields: NotRequired[ + "Literal['']|List[PaymentLinkModifyParamsInvoiceCreationInvoiceDataCustomField]" + ] + """ + Default custom fields to be displayed on invoices for this customer. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + footer: NotRequired[str] + """ + Default footer to be displayed on invoices for this customer. + """ + issuer: NotRequired[ + "PaymentLinkModifyParamsInvoiceCreationInvoiceDataIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + rendering_options: NotRequired[ + "Literal['']|PaymentLinkModifyParamsInvoiceCreationInvoiceDataRenderingOptions" + ] + """ + Default options for invoice PDF rendering for this customer. + """ + + +class PaymentLinkModifyParamsInvoiceCreationInvoiceDataCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class PaymentLinkModifyParamsInvoiceCreationInvoiceDataIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkModifyParamsInvoiceCreationInvoiceDataRenderingOptions( + TypedDict, +): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for this invoice. + """ + + +class PaymentLinkModifyParamsLineItem(TypedDict): + adjustable_quantity: NotRequired[ + "PaymentLinkModifyParamsLineItemAdjustableQuantity" + ] + """ + When set, provides configuration for this item's quantity to be adjusted by the customer during checkout. + """ + id: str + """ + The ID of an existing line item on the payment link. + """ + quantity: NotRequired[int] + """ + The quantity of the line item being purchased. + """ + + +class PaymentLinkModifyParamsLineItemAdjustableQuantity(TypedDict): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative Integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity the customer can purchase. By default this value is 99. You can specify a value up to 999999. + """ + minimum: NotRequired[int] + """ + The minimum quantity the customer can purchase. By default this value is 0. If there is only one item in the cart then that item's quantity cannot go down to 0. + """ + + +class PaymentLinkModifyParamsNameCollection(TypedDict): + business: NotRequired["PaymentLinkModifyParamsNameCollectionBusiness"] + """ + Controls settings applied for collecting the customer's business name. + """ + individual: NotRequired["PaymentLinkModifyParamsNameCollectionIndividual"] + """ + Controls settings applied for collecting the customer's individual name. + """ + + +class PaymentLinkModifyParamsNameCollectionBusiness(TypedDict): + enabled: bool + """ + Enable business name collection on the payment link. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide their business name before checking out. Defaults to `false`. + """ + + +class PaymentLinkModifyParamsNameCollectionIndividual(TypedDict): + enabled: bool + """ + Enable individual name collection on the payment link. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide their full name before checking out. Defaults to `false`. + """ + + +class PaymentLinkModifyParamsPaymentIntentData(TypedDict): + description: NotRequired["Literal['']|str"] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will declaratively set metadata on [Payment Intents](https://stripe.com/docs/api/payment_intents) generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + statement_descriptor: NotRequired["Literal['']|str"] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired["Literal['']|str"] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_group: NotRequired["Literal['']|str"] + """ + A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details. + """ + + +class PaymentLinkModifyParamsPhoneNumberCollection(TypedDict): + enabled: bool + """ + Set to `true` to enable phone number collection. + """ + + +class PaymentLinkModifyParamsRestrictions(TypedDict): + completed_sessions: "PaymentLinkModifyParamsRestrictionsCompletedSessions" + """ + Configuration for the `completed_sessions` restriction type. + """ + + +class PaymentLinkModifyParamsRestrictionsCompletedSessions(TypedDict): + limit: int + """ + The maximum number of checkout sessions that can be completed for the `completed_sessions` restriction to be met. + """ + + +class PaymentLinkModifyParamsShippingAddressCollection(TypedDict): + allowed_countries: List[ + Literal[ + "AC", + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MK", + "ML", + "MM", + "MN", + "MO", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SZ", + "TA", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + "ZZ", + ] + ] + """ + An array of two-letter ISO country codes representing which countries Checkout should provide as options for + shipping locations. + """ + + +class PaymentLinkModifyParamsSubscriptionData(TypedDict): + invoice_settings: NotRequired[ + "PaymentLinkModifyParamsSubscriptionDataInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will declaratively set metadata on [Subscriptions](https://stripe.com/docs/api/subscriptions) generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + trial_period_days: NotRequired["Literal['']|int"] + """ + Integer representing the number of trial period days before the customer is charged for the first time. Has to be at least 1. + """ + trial_settings: NotRequired[ + "Literal['']|PaymentLinkModifyParamsSubscriptionDataTrialSettings" + ] + """ + Settings related to subscription trials. + """ + + +class PaymentLinkModifyParamsSubscriptionDataInvoiceSettings(TypedDict): + issuer: NotRequired[ + "PaymentLinkModifyParamsSubscriptionDataInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class PaymentLinkModifyParamsSubscriptionDataInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkModifyParamsSubscriptionDataTrialSettings(TypedDict): + end_behavior: ( + "PaymentLinkModifyParamsSubscriptionDataTrialSettingsEndBehavior" + ) + """ + Defines how the subscription should behave when the user's free trial ends. + """ + + +class PaymentLinkModifyParamsSubscriptionDataTrialSettingsEndBehavior( + TypedDict, +): + missing_payment_method: Literal["cancel", "create_invoice", "pause"] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ + + +class PaymentLinkModifyParamsTaxIdCollection(TypedDict): + enabled: bool + """ + Enable tax ID collection during checkout. Defaults to `false`. + """ + required: NotRequired[Literal["if_supported", "never"]] + """ + Describes whether a tax ID is required during checkout. Defaults to `never`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_retrieve_params.py new file mode 100644 index 00000000..c73ebaf7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentLinkRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_update_params.py new file mode 100644 index 00000000..7a0b0d31 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_link_update_params.py @@ -0,0 +1,842 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentLinkUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Whether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated. + """ + after_completion: NotRequired["PaymentLinkUpdateParamsAfterCompletion"] + """ + Behavior after the purchase is complete. + """ + allow_promotion_codes: NotRequired[bool] + """ + Enables user redeemable promotion codes. + """ + automatic_tax: NotRequired["PaymentLinkUpdateParamsAutomaticTax"] + """ + Configuration for automatic tax collection. + """ + billing_address_collection: NotRequired[Literal["auto", "required"]] + """ + Configuration for collecting the customer's billing address. Defaults to `auto`. + """ + custom_fields: NotRequired[ + "Literal['']|List[PaymentLinkUpdateParamsCustomField]" + ] + """ + Collect additional information from your customer using custom fields. Up to 3 fields are supported. + """ + custom_text: NotRequired["PaymentLinkUpdateParamsCustomText"] + """ + Display additional text for your customers using custom text. + """ + customer_creation: NotRequired[Literal["always", "if_required"]] + """ + Configures whether [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link create a [Customer](https://stripe.com/docs/api/customers). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + inactive_message: NotRequired["Literal['']|str"] + """ + The custom message to be displayed to a customer when a payment link is no longer active. + """ + invoice_creation: NotRequired["PaymentLinkUpdateParamsInvoiceCreation"] + """ + Generate a post-purchase Invoice for one-time payments. + """ + line_items: NotRequired[List["PaymentLinkUpdateParamsLineItem"]] + """ + The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. Metadata associated with this Payment Link will automatically be copied to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link. + """ + name_collection: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsNameCollection" + ] + """ + Controls settings applied for collecting the customer's name. + """ + payment_intent_data: NotRequired[ + "PaymentLinkUpdateParamsPaymentIntentData" + ] + """ + A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode. + """ + payment_method_collection: NotRequired[Literal["always", "if_required"]] + """ + Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount. + + Can only be set in `subscription` mode. Defaults to `always`. + + If you'd like information on how to collect a payment method outside of Checkout, read the guide on [configuring subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials). + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['affirm', 'afterpay_clearpay', 'alipay', 'alma', 'au_becs_debit', 'bacs_debit', 'bancontact', 'billie', 'blik', 'boleto', 'card', 'cashapp', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'klarna', 'konbini', 'link', 'mb_way', 'mobilepay', 'multibanco', 'oxxo', 'p24', 'pay_by_bank', 'paynow', 'paypal', 'pix', 'promptpay', 'satispay', 'sepa_debit', 'sofort', 'swish', 'twint', 'us_bank_account', 'wechat_pay', 'zip']]" + ] + """ + The list of payment method types that customers can use. Pass an empty string to enable dynamic payment methods that use your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). + """ + phone_number_collection: NotRequired[ + "PaymentLinkUpdateParamsPhoneNumberCollection" + ] + """ + Controls phone number collection settings during checkout. + + We recommend that you review your privacy policy and check with your legal contacts. + """ + restrictions: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsRestrictions" + ] + """ + Settings that restrict the usage of a payment link. + """ + shipping_address_collection: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsShippingAddressCollection" + ] + """ + Configuration for collecting the customer's shipping address. + """ + submit_type: NotRequired[ + Literal["auto", "book", "donate", "pay", "subscribe"] + ] + """ + Describes the type of transaction being performed in order to customize relevant text on the page, such as the submit button. Changing this value will also affect the hostname in the [url](https://stripe.com/docs/api/payment_links/payment_links/object#url) property (example: `donate.stripe.com`). + """ + subscription_data: NotRequired["PaymentLinkUpdateParamsSubscriptionData"] + """ + When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`. + """ + tax_id_collection: NotRequired["PaymentLinkUpdateParamsTaxIdCollection"] + """ + Controls tax ID collection during checkout. + """ + + +class PaymentLinkUpdateParamsAfterCompletion(TypedDict): + hosted_confirmation: NotRequired[ + "PaymentLinkUpdateParamsAfterCompletionHostedConfirmation" + ] + """ + Configuration when `type=hosted_confirmation`. + """ + redirect: NotRequired["PaymentLinkUpdateParamsAfterCompletionRedirect"] + """ + Configuration when `type=redirect`. + """ + type: Literal["hosted_confirmation", "redirect"] + """ + The specified behavior after the purchase is complete. Either `redirect` or `hosted_confirmation`. + """ + + +class PaymentLinkUpdateParamsAfterCompletionHostedConfirmation(TypedDict): + custom_message: NotRequired[str] + """ + A custom message to display to the customer after the purchase is complete. + """ + + +class PaymentLinkUpdateParamsAfterCompletionRedirect(TypedDict): + url: str + """ + The URL the customer will be redirected to after the purchase is complete. You can embed `{CHECKOUT_SESSION_ID}` into the URL to have the `id` of the completed [checkout session](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-id) included. + """ + + +class PaymentLinkUpdateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Set to `true` to [calculate tax automatically](https://docs.stripe.com/tax) using the customer's location. + + Enabling this parameter causes the payment link to collect any billing address information necessary for tax calculation. + """ + liability: NotRequired["PaymentLinkUpdateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class PaymentLinkUpdateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkUpdateParamsCustomField(TypedDict): + dropdown: NotRequired["PaymentLinkUpdateParamsCustomFieldDropdown"] + """ + Configuration for `type=dropdown` fields. + """ + key: str + """ + String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters. + """ + label: "PaymentLinkUpdateParamsCustomFieldLabel" + """ + The label for the field, displayed to the customer. + """ + numeric: NotRequired["PaymentLinkUpdateParamsCustomFieldNumeric"] + """ + Configuration for `type=numeric` fields. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + text: NotRequired["PaymentLinkUpdateParamsCustomFieldText"] + """ + Configuration for `type=text` fields. + """ + type: Literal["dropdown", "numeric", "text"] + """ + The type of the field. + """ + + +class PaymentLinkUpdateParamsCustomFieldDropdown(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page.Must match a `value` in the `options` array. + """ + options: List["PaymentLinkUpdateParamsCustomFieldDropdownOption"] + """ + The options available for the customer to select. Up to 200 options allowed. + """ + + +class PaymentLinkUpdateParamsCustomFieldDropdownOption(TypedDict): + label: str + """ + The label for the option, displayed to the customer. Up to 100 characters. + """ + value: str + """ + The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters. + """ + + +class PaymentLinkUpdateParamsCustomFieldLabel(TypedDict): + custom: str + """ + Custom text for the label, displayed to the customer. Up to 50 characters. + """ + type: Literal["custom"] + """ + The type of the label. + """ + + +class PaymentLinkUpdateParamsCustomFieldNumeric(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class PaymentLinkUpdateParamsCustomFieldText(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class PaymentLinkUpdateParamsCustomText(TypedDict): + after_submit: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsCustomTextAfterSubmit" + ] + """ + Custom text that should be displayed after the payment confirmation button. + """ + shipping_address: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsCustomTextShippingAddress" + ] + """ + Custom text that should be displayed alongside shipping address collection. + """ + submit: NotRequired["Literal['']|PaymentLinkUpdateParamsCustomTextSubmit"] + """ + Custom text that should be displayed alongside the payment confirmation button. + """ + terms_of_service_acceptance: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsCustomTextTermsOfServiceAcceptance" + ] + """ + Custom text that should be displayed in place of the default terms of service agreement text. + """ + + +class PaymentLinkUpdateParamsCustomTextAfterSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkUpdateParamsCustomTextShippingAddress(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkUpdateParamsCustomTextSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkUpdateParamsCustomTextTermsOfServiceAcceptance(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class PaymentLinkUpdateParamsInvoiceCreation(TypedDict): + enabled: bool + """ + Whether the feature is enabled + """ + invoice_data: NotRequired[ + "PaymentLinkUpdateParamsInvoiceCreationInvoiceData" + ] + """ + Invoice PDF configuration. + """ + + +class PaymentLinkUpdateParamsInvoiceCreationInvoiceData(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the invoice. + """ + custom_fields: NotRequired[ + "Literal['']|List[PaymentLinkUpdateParamsInvoiceCreationInvoiceDataCustomField]" + ] + """ + Default custom fields to be displayed on invoices for this customer. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + footer: NotRequired[str] + """ + Default footer to be displayed on invoices for this customer. + """ + issuer: NotRequired[ + "PaymentLinkUpdateParamsInvoiceCreationInvoiceDataIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + rendering_options: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsInvoiceCreationInvoiceDataRenderingOptions" + ] + """ + Default options for invoice PDF rendering for this customer. + """ + + +class PaymentLinkUpdateParamsInvoiceCreationInvoiceDataCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class PaymentLinkUpdateParamsInvoiceCreationInvoiceDataIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkUpdateParamsInvoiceCreationInvoiceDataRenderingOptions( + TypedDict, +): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for this invoice. + """ + + +class PaymentLinkUpdateParamsLineItem(TypedDict): + adjustable_quantity: NotRequired[ + "PaymentLinkUpdateParamsLineItemAdjustableQuantity" + ] + """ + When set, provides configuration for this item's quantity to be adjusted by the customer during checkout. + """ + id: str + """ + The ID of an existing line item on the payment link. + """ + quantity: NotRequired[int] + """ + The quantity of the line item being purchased. + """ + + +class PaymentLinkUpdateParamsLineItemAdjustableQuantity(TypedDict): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative Integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity the customer can purchase. By default this value is 99. You can specify a value up to 999999. + """ + minimum: NotRequired[int] + """ + The minimum quantity the customer can purchase. By default this value is 0. If there is only one item in the cart then that item's quantity cannot go down to 0. + """ + + +class PaymentLinkUpdateParamsNameCollection(TypedDict): + business: NotRequired["PaymentLinkUpdateParamsNameCollectionBusiness"] + """ + Controls settings applied for collecting the customer's business name. + """ + individual: NotRequired["PaymentLinkUpdateParamsNameCollectionIndividual"] + """ + Controls settings applied for collecting the customer's individual name. + """ + + +class PaymentLinkUpdateParamsNameCollectionBusiness(TypedDict): + enabled: bool + """ + Enable business name collection on the payment link. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide their business name before checking out. Defaults to `false`. + """ + + +class PaymentLinkUpdateParamsNameCollectionIndividual(TypedDict): + enabled: bool + """ + Enable individual name collection on the payment link. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide their full name before checking out. Defaults to `false`. + """ + + +class PaymentLinkUpdateParamsPaymentIntentData(TypedDict): + description: NotRequired["Literal['']|str"] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will declaratively set metadata on [Payment Intents](https://stripe.com/docs/api/payment_intents) generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + statement_descriptor: NotRequired["Literal['']|str"] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired["Literal['']|str"] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_group: NotRequired["Literal['']|str"] + """ + A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details. + """ + + +class PaymentLinkUpdateParamsPhoneNumberCollection(TypedDict): + enabled: bool + """ + Set to `true` to enable phone number collection. + """ + + +class PaymentLinkUpdateParamsRestrictions(TypedDict): + completed_sessions: "PaymentLinkUpdateParamsRestrictionsCompletedSessions" + """ + Configuration for the `completed_sessions` restriction type. + """ + + +class PaymentLinkUpdateParamsRestrictionsCompletedSessions(TypedDict): + limit: int + """ + The maximum number of checkout sessions that can be completed for the `completed_sessions` restriction to be met. + """ + + +class PaymentLinkUpdateParamsShippingAddressCollection(TypedDict): + allowed_countries: List[ + Literal[ + "AC", + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MK", + "ML", + "MM", + "MN", + "MO", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SZ", + "TA", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + "ZZ", + ] + ] + """ + An array of two-letter ISO country codes representing which countries Checkout should provide as options for + shipping locations. + """ + + +class PaymentLinkUpdateParamsSubscriptionData(TypedDict): + invoice_settings: NotRequired[ + "PaymentLinkUpdateParamsSubscriptionDataInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will declaratively set metadata on [Subscriptions](https://stripe.com/docs/api/subscriptions) generated from this payment link. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + trial_period_days: NotRequired["Literal['']|int"] + """ + Integer representing the number of trial period days before the customer is charged for the first time. Has to be at least 1. + """ + trial_settings: NotRequired[ + "Literal['']|PaymentLinkUpdateParamsSubscriptionDataTrialSettings" + ] + """ + Settings related to subscription trials. + """ + + +class PaymentLinkUpdateParamsSubscriptionDataInvoiceSettings(TypedDict): + issuer: NotRequired[ + "PaymentLinkUpdateParamsSubscriptionDataInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class PaymentLinkUpdateParamsSubscriptionDataInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class PaymentLinkUpdateParamsSubscriptionDataTrialSettings(TypedDict): + end_behavior: ( + "PaymentLinkUpdateParamsSubscriptionDataTrialSettingsEndBehavior" + ) + """ + Defines how the subscription should behave when the user's free trial ends. + """ + + +class PaymentLinkUpdateParamsSubscriptionDataTrialSettingsEndBehavior( + TypedDict, +): + missing_payment_method: Literal["cancel", "create_invoice", "pause"] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ + + +class PaymentLinkUpdateParamsTaxIdCollection(TypedDict): + enabled: bool + """ + Enable tax ID collection during checkout. Defaults to `false`. + """ + required: NotRequired[Literal["if_supported", "never"]] + """ + Describes whether a tax ID is required during checkout. Defaults to `never`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_attach_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_attach_params.py new file mode 100644 index 00000000..ea9ae2eb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_attach_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodAttachParams(RequestOptions): + customer: str + """ + The ID of the customer to which to attach the PaymentMethod. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_create_params.py new file mode 100644 index 00000000..af89a356 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_create_params.py @@ -0,0 +1,1198 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentMethodConfigurationCreateParams(RequestOptions): + acss_debit: NotRequired["PaymentMethodConfigurationCreateParamsAcssDebit"] + """ + Canadian pre-authorized debit payments, check this [page](https://stripe.com/docs/payments/acss-debit) for more details like country availability. + """ + affirm: NotRequired["PaymentMethodConfigurationCreateParamsAffirm"] + """ + [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments. Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest. Check this [page](https://stripe.com/docs/payments/affirm) for more details like country availability. + """ + afterpay_clearpay: NotRequired[ + "PaymentMethodConfigurationCreateParamsAfterpayClearpay" + ] + """ + Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://stripe.com/docs/payments/afterpay-clearpay) for more details like country availability. Afterpay is particularly popular among businesses selling fashion, beauty, and sports products. + """ + alipay: NotRequired["PaymentMethodConfigurationCreateParamsAlipay"] + """ + Alipay is a digital wallet in China that has more than a billion active users worldwide. Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app. Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials. Check this [page](https://stripe.com/docs/payments/alipay) for more details. + """ + alma: NotRequired["PaymentMethodConfigurationCreateParamsAlma"] + """ + Alma is a Buy Now, Pay Later payment method that offers customers the ability to pay in 2, 3, or 4 installments. + """ + amazon_pay: NotRequired["PaymentMethodConfigurationCreateParamsAmazonPay"] + """ + Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon. + """ + apple_pay: NotRequired["PaymentMethodConfigurationCreateParamsApplePay"] + """ + Stripe users can accept [Apple Pay](https://stripe.com/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments, and the [pricing](https://stripe.com/pricing) is the same as other card transactions. Check this [page](https://stripe.com/docs/apple-pay) for more details. + """ + apple_pay_later: NotRequired[ + "PaymentMethodConfigurationCreateParamsApplePayLater" + ] + """ + Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks. + """ + au_becs_debit: NotRequired[ + "PaymentMethodConfigurationCreateParamsAuBecsDebit" + ] + """ + Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account. Check this [page](https://stripe.com/docs/payments/au-becs-debit) for more details. + """ + bacs_debit: NotRequired["PaymentMethodConfigurationCreateParamsBacsDebit"] + """ + Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://stripe.com/docs/payments/payment-methods/bacs-debit) for more details. + """ + bancontact: NotRequired["PaymentMethodConfigurationCreateParamsBancontact"] + """ + Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation. [Customers](https://stripe.com/docs/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately. Check this [page](https://stripe.com/docs/payments/bancontact) for more details. + """ + billie: NotRequired["PaymentMethodConfigurationCreateParamsBillie"] + """ + Billie is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method that offers businesses Pay by Invoice where they offer payment terms ranging from 7-120 days. Customers are redirected from your website or app, authorize the payment with Billie, then return to your website or app. You get [immediate notification](https://docs.stripe.com/payments/payment-methods#payment-notification) of whether the payment succeeded or failed. + """ + blik: NotRequired["PaymentMethodConfigurationCreateParamsBlik"] + """ + BLIK is a [single use](https://stripe.com/docs/payments/payment-methods#usage) payment method that requires customers to authenticate their payments. When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form. Check this [page](https://stripe.com/docs/payments/blik) for more details. + """ + boleto: NotRequired["PaymentMethodConfigurationCreateParamsBoleto"] + """ + Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil. Check this [page](https://stripe.com/docs/payments/boleto) for more details. + """ + card: NotRequired["PaymentMethodConfigurationCreateParamsCard"] + """ + Cards are a popular way for consumers and businesses to pay online or in person. Stripe supports global and local card networks. + """ + cartes_bancaires: NotRequired[ + "PaymentMethodConfigurationCreateParamsCartesBancaires" + ] + """ + Cartes Bancaires is France's local card network. More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks. Check this [page](https://stripe.com/docs/payments/cartes-bancaires) for more details. + """ + cashapp: NotRequired["PaymentMethodConfigurationCreateParamsCashapp"] + """ + Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet. Check this [page](https://stripe.com/docs/payments/cash-app-pay) for more details. + """ + crypto: NotRequired["PaymentMethodConfigurationCreateParamsCrypto"] + """ + [Stablecoin payments](https://stripe.com/docs/payments/stablecoin-payments) enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom and Metamask. + """ + customer_balance: NotRequired[ + "PaymentMethodConfigurationCreateParamsCustomerBalance" + ] + """ + Uses a customer's [cash balance](https://stripe.com/docs/payments/customer-balance) for the payment. The cash balance can be funded via a bank transfer. Check this [page](https://stripe.com/docs/payments/bank-transfers) for more details. + """ + eps: NotRequired["PaymentMethodConfigurationCreateParamsEps"] + """ + EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials. EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers. Check this [page](https://stripe.com/docs/payments/eps) for more details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fpx: NotRequired["PaymentMethodConfigurationCreateParamsFpx"] + """ + Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials. Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX. It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM. Check this [page](https://stripe.com/docs/payments/fpx) for more details. + """ + fr_meal_voucher_conecs: NotRequired[ + "PaymentMethodConfigurationCreateParamsFrMealVoucherConecs" + ] + """ + Meal vouchers in France, or “titres-restaurant”, is a local benefits program commonly offered by employers for their employees to purchase prepared food and beverages on working days. Check this [page](https://stripe.com/docs/payments/benefits/fr-meal-vouchers) for more details. + """ + giropay: NotRequired["PaymentMethodConfigurationCreateParamsGiropay"] + """ + giropay is a German payment method based on online banking, introduced in 2006. It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account. Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN. giropay accounts for 10% of online checkouts in Germany. Check this [page](https://stripe.com/docs/payments/giropay) for more details. + """ + google_pay: NotRequired["PaymentMethodConfigurationCreateParamsGooglePay"] + """ + Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device. Use the Google Pay API to request any credit or debit card stored in your customer's Google account. Check this [page](https://stripe.com/docs/google-pay) for more details. + """ + grabpay: NotRequired["PaymentMethodConfigurationCreateParamsGrabpay"] + """ + GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/). GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with. Check this [page](https://stripe.com/docs/payments/grabpay) for more details. + """ + ideal: NotRequired["PaymentMethodConfigurationCreateParamsIdeal"] + """ + iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials. All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%. Check this [page](https://stripe.com/docs/payments/ideal) for more details. + """ + jcb: NotRequired["PaymentMethodConfigurationCreateParamsJcb"] + """ + JCB is a credit card company based in Japan. JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland. Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details. + """ + kakao_pay: NotRequired["PaymentMethodConfigurationCreateParamsKakaoPay"] + """ + Kakao Pay is a popular local wallet available in South Korea. + """ + klarna: NotRequired["PaymentMethodConfigurationCreateParamsKlarna"] + """ + Klarna gives customers a range of [payment options](https://stripe.com/docs/payments/klarna#payment-options) during checkout. Available payment options vary depending on the customer's billing address and the transaction amount. These payment options make it convenient for customers to purchase items in all price ranges. Check this [page](https://stripe.com/docs/payments/klarna) for more details. + """ + konbini: NotRequired["PaymentMethodConfigurationCreateParamsKonbini"] + """ + Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash. Check this [page](https://stripe.com/docs/payments/konbini) for more details. + """ + kr_card: NotRequired["PaymentMethodConfigurationCreateParamsKrCard"] + """ + Korean cards let users pay using locally issued cards from South Korea. + """ + link: NotRequired["PaymentMethodConfigurationCreateParamsLink"] + """ + [Link](https://stripe.com/docs/payments/link) is a payment method network. With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network. + """ + mb_way: NotRequired["PaymentMethodConfigurationCreateParamsMbWay"] + """ + MB WAY is the most popular wallet in Portugal. After entering their phone number in your checkout, customers approve the payment directly in their MB WAY app. Check this [page](https://stripe.com/docs/payments/mb-way) for more details. + """ + mobilepay: NotRequired["PaymentMethodConfigurationCreateParamsMobilepay"] + """ + MobilePay is a [single-use](https://stripe.com/docs/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the MobilePay app. Check this [page](https://stripe.com/docs/payments/mobilepay) for more details. + """ + multibanco: NotRequired["PaymentMethodConfigurationCreateParamsMultibanco"] + """ + Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method. + """ + name: NotRequired[str] + """ + Configuration name. + """ + naver_pay: NotRequired["PaymentMethodConfigurationCreateParamsNaverPay"] + """ + Naver Pay is a popular local wallet available in South Korea. + """ + nz_bank_account: NotRequired[ + "PaymentMethodConfigurationCreateParamsNzBankAccount" + ] + """ + Stripe users in New Zealand can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with a New Zeland bank account. Check this [page](https://stripe.com/docs/payments/nz-bank-account) for more details. + """ + oxxo: NotRequired["PaymentMethodConfigurationCreateParamsOxxo"] + """ + OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico. OXXO allows customers to pay bills and online purchases in-store with cash. Check this [page](https://stripe.com/docs/payments/oxxo) for more details. + """ + p24: NotRequired["PaymentMethodConfigurationCreateParamsP24"] + """ + Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods. Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks. Check this [page](https://stripe.com/docs/payments/p24) for more details. + """ + parent: NotRequired[str] + """ + Configuration's parent configuration. Specify to create a child configuration. + """ + pay_by_bank: NotRequired["PaymentMethodConfigurationCreateParamsPayByBank"] + """ + Pay by bank is a redirect payment method backed by bank transfers. A customer is redirected to their bank to authorize a bank transfer for a given amount. This removes a lot of the error risks inherent in waiting for the customer to initiate a transfer themselves, and is less expensive than card payments. + """ + payco: NotRequired["PaymentMethodConfigurationCreateParamsPayco"] + """ + PAYCO is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea. + """ + paynow: NotRequired["PaymentMethodConfigurationCreateParamsPaynow"] + """ + PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions. Check this [page](https://stripe.com/docs/payments/paynow) for more details. + """ + paypal: NotRequired["PaymentMethodConfigurationCreateParamsPaypal"] + """ + PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account. Check this [page](https://stripe.com/docs/payments/paypal) for more details. + """ + pix: NotRequired["PaymentMethodConfigurationCreateParamsPix"] + """ + Pix is a payment method popular in Brazil. When paying with Pix, customers authenticate and approve payments by scanning a QR code in their preferred banking app. Check this [page](https://docs.stripe.com/payments/pix) for more details. + """ + promptpay: NotRequired["PaymentMethodConfigurationCreateParamsPromptpay"] + """ + PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks. Check this [page](https://stripe.com/docs/payments/promptpay) for more details. + """ + revolut_pay: NotRequired[ + "PaymentMethodConfigurationCreateParamsRevolutPay" + ] + """ + Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method. Revolut Pay uses the customer's stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase. + """ + samsung_pay: NotRequired[ + "PaymentMethodConfigurationCreateParamsSamsungPay" + ] + """ + Samsung Pay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea. + """ + satispay: NotRequired["PaymentMethodConfigurationCreateParamsSatispay"] + """ + Satispay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method where customers are required to [authenticate](https://docs.stripe.com/payments/payment-methods#customer-actions) their payment. Customers pay by being redirected from your website or app, authorizing the payment with Satispay, then returning to your website or app. You get [immediate notification](https://docs.stripe.com/payments/payment-methods#payment-notification) of whether the payment succeeded or failed. + """ + sepa_debit: NotRequired["PaymentMethodConfigurationCreateParamsSepaDebit"] + """ + The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries. SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://stripe.com/docs/payments/sepa-debit) for more details. + """ + sofort: NotRequired["PaymentMethodConfigurationCreateParamsSofort"] + """ + Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers. Check this [page](https://stripe.com/docs/payments/sofort) for more details. + """ + swish: NotRequired["PaymentMethodConfigurationCreateParamsSwish"] + """ + Swish is a [real-time](https://stripe.com/docs/payments/real-time) payment method popular in Sweden. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app. Check this [page](https://stripe.com/docs/payments/swish) for more details. + """ + twint: NotRequired["PaymentMethodConfigurationCreateParamsTwint"] + """ + Twint is a payment method popular in Switzerland. It allows customers to pay using their mobile phone. Check this [page](https://docs.stripe.com/payments/twint) for more details. + """ + us_bank_account: NotRequired[ + "PaymentMethodConfigurationCreateParamsUsBankAccount" + ] + """ + Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha. Check this [page](https://stripe.com/docs/payments/ach-direct-debit) for more details. + """ + wechat_pay: NotRequired["PaymentMethodConfigurationCreateParamsWechatPay"] + """ + WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users. Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites. WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition. Check this [page](https://stripe.com/docs/payments/wechat-pay) for more details. + """ + zip: NotRequired["PaymentMethodConfigurationCreateParamsZip"] + """ + Zip gives your customers a way to split purchases over a series of payments. Check this [page](https://stripe.com/docs/payments/zip) for more details like country availability. + """ + + +class PaymentMethodConfigurationCreateParamsAcssDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsAcssDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsAcssDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsAffirm(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsAffirmDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsAffirmDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsAfterpayClearpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsAfterpayClearpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsAfterpayClearpayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsAlipay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsAlipayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsAlipayDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsAlma(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsAlmaDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsAlmaDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsAmazonPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsAmazonPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsAmazonPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsApplePay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsApplePayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsApplePayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsApplePayLater(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsApplePayLaterDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsApplePayLaterDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsAuBecsDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsAuBecsDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsAuBecsDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsBacsDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsBacsDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsBacsDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsBancontact(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsBancontactDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsBancontactDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsBillie(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsBillieDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsBillieDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsBlik(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsBlikDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsBlikDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsBoleto(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsBoletoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsBoletoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsCard(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsCardDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsCardDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsCartesBancaires(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsCartesBancairesDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsCartesBancairesDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsCashapp(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsCashappDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsCashappDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsCrypto(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsCryptoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsCryptoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsCustomerBalance(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsCustomerBalanceDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsCustomerBalanceDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsEps(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsEpsDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsEpsDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsFpx(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsFpxDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsFpxDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsFrMealVoucherConecs(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsFrMealVoucherConecsDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsFrMealVoucherConecsDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsGiropay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsGiropayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsGiropayDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsGooglePay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsGooglePayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsGooglePayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsGrabpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsGrabpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsGrabpayDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsIdeal(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsIdealDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsIdealDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsJcb(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsJcbDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsJcbDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsKakaoPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsKakaoPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsKakaoPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsKlarna(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsKlarnaDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsKlarnaDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsKonbini(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsKonbiniDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsKonbiniDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsKrCard(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsKrCardDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsKrCardDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsLink(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsLinkDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsLinkDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsMbWay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsMbWayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsMbWayDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsMobilepay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsMobilepayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsMobilepayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsMultibanco(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsMultibancoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsMultibancoDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsNaverPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsNaverPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsNaverPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsNzBankAccount(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsNzBankAccountDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsNzBankAccountDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsOxxo(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsOxxoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsOxxoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsP24(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsP24DisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsP24DisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsPayByBank(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsPayByBankDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsPayByBankDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsPayco(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsPaycoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsPaycoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsPaynow(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsPaynowDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsPaynowDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsPaypal(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsPaypalDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsPaypalDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsPix(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsPixDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsPixDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsPromptpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsPromptpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsPromptpayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsRevolutPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsRevolutPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsRevolutPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsSamsungPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsSamsungPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsSamsungPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsSatispay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsSatispayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsSatispayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsSepaDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsSepaDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsSepaDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsSofort(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsSofortDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsSofortDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsSwish(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsSwishDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsSwishDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsTwint(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsTwintDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsTwintDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsUsBankAccount(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsUsBankAccountDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsUsBankAccountDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsWechatPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsWechatPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsWechatPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationCreateParamsZip(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationCreateParamsZipDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationCreateParamsZipDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_list_params.py new file mode 100644 index 00000000..260d3887 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class PaymentMethodConfigurationListParams(RequestOptions): + application: NotRequired["Literal['']|str"] + """ + The Connect application to filter by. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_modify_params.py new file mode 100644 index 00000000..64ef4051 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_modify_params.py @@ -0,0 +1,1198 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentMethodConfigurationModifyParams(RequestOptions): + acss_debit: NotRequired["PaymentMethodConfigurationModifyParamsAcssDebit"] + """ + Canadian pre-authorized debit payments, check this [page](https://stripe.com/docs/payments/acss-debit) for more details like country availability. + """ + active: NotRequired[bool] + """ + Whether the configuration can be used for new payments. + """ + affirm: NotRequired["PaymentMethodConfigurationModifyParamsAffirm"] + """ + [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments. Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest. Check this [page](https://stripe.com/docs/payments/affirm) for more details like country availability. + """ + afterpay_clearpay: NotRequired[ + "PaymentMethodConfigurationModifyParamsAfterpayClearpay" + ] + """ + Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://stripe.com/docs/payments/afterpay-clearpay) for more details like country availability. Afterpay is particularly popular among businesses selling fashion, beauty, and sports products. + """ + alipay: NotRequired["PaymentMethodConfigurationModifyParamsAlipay"] + """ + Alipay is a digital wallet in China that has more than a billion active users worldwide. Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app. Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials. Check this [page](https://stripe.com/docs/payments/alipay) for more details. + """ + alma: NotRequired["PaymentMethodConfigurationModifyParamsAlma"] + """ + Alma is a Buy Now, Pay Later payment method that offers customers the ability to pay in 2, 3, or 4 installments. + """ + amazon_pay: NotRequired["PaymentMethodConfigurationModifyParamsAmazonPay"] + """ + Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon. + """ + apple_pay: NotRequired["PaymentMethodConfigurationModifyParamsApplePay"] + """ + Stripe users can accept [Apple Pay](https://stripe.com/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments, and the [pricing](https://stripe.com/pricing) is the same as other card transactions. Check this [page](https://stripe.com/docs/apple-pay) for more details. + """ + apple_pay_later: NotRequired[ + "PaymentMethodConfigurationModifyParamsApplePayLater" + ] + """ + Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks. + """ + au_becs_debit: NotRequired[ + "PaymentMethodConfigurationModifyParamsAuBecsDebit" + ] + """ + Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account. Check this [page](https://stripe.com/docs/payments/au-becs-debit) for more details. + """ + bacs_debit: NotRequired["PaymentMethodConfigurationModifyParamsBacsDebit"] + """ + Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://stripe.com/docs/payments/payment-methods/bacs-debit) for more details. + """ + bancontact: NotRequired["PaymentMethodConfigurationModifyParamsBancontact"] + """ + Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation. [Customers](https://stripe.com/docs/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately. Check this [page](https://stripe.com/docs/payments/bancontact) for more details. + """ + billie: NotRequired["PaymentMethodConfigurationModifyParamsBillie"] + """ + Billie is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method that offers businesses Pay by Invoice where they offer payment terms ranging from 7-120 days. Customers are redirected from your website or app, authorize the payment with Billie, then return to your website or app. You get [immediate notification](https://docs.stripe.com/payments/payment-methods#payment-notification) of whether the payment succeeded or failed. + """ + blik: NotRequired["PaymentMethodConfigurationModifyParamsBlik"] + """ + BLIK is a [single use](https://stripe.com/docs/payments/payment-methods#usage) payment method that requires customers to authenticate their payments. When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form. Check this [page](https://stripe.com/docs/payments/blik) for more details. + """ + boleto: NotRequired["PaymentMethodConfigurationModifyParamsBoleto"] + """ + Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil. Check this [page](https://stripe.com/docs/payments/boleto) for more details. + """ + card: NotRequired["PaymentMethodConfigurationModifyParamsCard"] + """ + Cards are a popular way for consumers and businesses to pay online or in person. Stripe supports global and local card networks. + """ + cartes_bancaires: NotRequired[ + "PaymentMethodConfigurationModifyParamsCartesBancaires" + ] + """ + Cartes Bancaires is France's local card network. More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks. Check this [page](https://stripe.com/docs/payments/cartes-bancaires) for more details. + """ + cashapp: NotRequired["PaymentMethodConfigurationModifyParamsCashapp"] + """ + Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet. Check this [page](https://stripe.com/docs/payments/cash-app-pay) for more details. + """ + crypto: NotRequired["PaymentMethodConfigurationModifyParamsCrypto"] + """ + [Stablecoin payments](https://stripe.com/docs/payments/stablecoin-payments) enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom and Metamask. + """ + customer_balance: NotRequired[ + "PaymentMethodConfigurationModifyParamsCustomerBalance" + ] + """ + Uses a customer's [cash balance](https://stripe.com/docs/payments/customer-balance) for the payment. The cash balance can be funded via a bank transfer. Check this [page](https://stripe.com/docs/payments/bank-transfers) for more details. + """ + eps: NotRequired["PaymentMethodConfigurationModifyParamsEps"] + """ + EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials. EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers. Check this [page](https://stripe.com/docs/payments/eps) for more details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fpx: NotRequired["PaymentMethodConfigurationModifyParamsFpx"] + """ + Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials. Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX. It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM. Check this [page](https://stripe.com/docs/payments/fpx) for more details. + """ + fr_meal_voucher_conecs: NotRequired[ + "PaymentMethodConfigurationModifyParamsFrMealVoucherConecs" + ] + """ + Meal vouchers in France, or “titres-restaurant”, is a local benefits program commonly offered by employers for their employees to purchase prepared food and beverages on working days. Check this [page](https://stripe.com/docs/payments/benefits/fr-meal-vouchers) for more details. + """ + giropay: NotRequired["PaymentMethodConfigurationModifyParamsGiropay"] + """ + giropay is a German payment method based on online banking, introduced in 2006. It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account. Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN. giropay accounts for 10% of online checkouts in Germany. Check this [page](https://stripe.com/docs/payments/giropay) for more details. + """ + google_pay: NotRequired["PaymentMethodConfigurationModifyParamsGooglePay"] + """ + Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device. Use the Google Pay API to request any credit or debit card stored in your customer's Google account. Check this [page](https://stripe.com/docs/google-pay) for more details. + """ + grabpay: NotRequired["PaymentMethodConfigurationModifyParamsGrabpay"] + """ + GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/). GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with. Check this [page](https://stripe.com/docs/payments/grabpay) for more details. + """ + ideal: NotRequired["PaymentMethodConfigurationModifyParamsIdeal"] + """ + iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials. All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%. Check this [page](https://stripe.com/docs/payments/ideal) for more details. + """ + jcb: NotRequired["PaymentMethodConfigurationModifyParamsJcb"] + """ + JCB is a credit card company based in Japan. JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland. Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details. + """ + kakao_pay: NotRequired["PaymentMethodConfigurationModifyParamsKakaoPay"] + """ + Kakao Pay is a popular local wallet available in South Korea. + """ + klarna: NotRequired["PaymentMethodConfigurationModifyParamsKlarna"] + """ + Klarna gives customers a range of [payment options](https://stripe.com/docs/payments/klarna#payment-options) during checkout. Available payment options vary depending on the customer's billing address and the transaction amount. These payment options make it convenient for customers to purchase items in all price ranges. Check this [page](https://stripe.com/docs/payments/klarna) for more details. + """ + konbini: NotRequired["PaymentMethodConfigurationModifyParamsKonbini"] + """ + Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash. Check this [page](https://stripe.com/docs/payments/konbini) for more details. + """ + kr_card: NotRequired["PaymentMethodConfigurationModifyParamsKrCard"] + """ + Korean cards let users pay using locally issued cards from South Korea. + """ + link: NotRequired["PaymentMethodConfigurationModifyParamsLink"] + """ + [Link](https://stripe.com/docs/payments/link) is a payment method network. With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network. + """ + mb_way: NotRequired["PaymentMethodConfigurationModifyParamsMbWay"] + """ + MB WAY is the most popular wallet in Portugal. After entering their phone number in your checkout, customers approve the payment directly in their MB WAY app. Check this [page](https://stripe.com/docs/payments/mb-way) for more details. + """ + mobilepay: NotRequired["PaymentMethodConfigurationModifyParamsMobilepay"] + """ + MobilePay is a [single-use](https://stripe.com/docs/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the MobilePay app. Check this [page](https://stripe.com/docs/payments/mobilepay) for more details. + """ + multibanco: NotRequired["PaymentMethodConfigurationModifyParamsMultibanco"] + """ + Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method. + """ + name: NotRequired[str] + """ + Configuration name. + """ + naver_pay: NotRequired["PaymentMethodConfigurationModifyParamsNaverPay"] + """ + Naver Pay is a popular local wallet available in South Korea. + """ + nz_bank_account: NotRequired[ + "PaymentMethodConfigurationModifyParamsNzBankAccount" + ] + """ + Stripe users in New Zealand can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with a New Zeland bank account. Check this [page](https://stripe.com/docs/payments/nz-bank-account) for more details. + """ + oxxo: NotRequired["PaymentMethodConfigurationModifyParamsOxxo"] + """ + OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico. OXXO allows customers to pay bills and online purchases in-store with cash. Check this [page](https://stripe.com/docs/payments/oxxo) for more details. + """ + p24: NotRequired["PaymentMethodConfigurationModifyParamsP24"] + """ + Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods. Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks. Check this [page](https://stripe.com/docs/payments/p24) for more details. + """ + pay_by_bank: NotRequired["PaymentMethodConfigurationModifyParamsPayByBank"] + """ + Pay by bank is a redirect payment method backed by bank transfers. A customer is redirected to their bank to authorize a bank transfer for a given amount. This removes a lot of the error risks inherent in waiting for the customer to initiate a transfer themselves, and is less expensive than card payments. + """ + payco: NotRequired["PaymentMethodConfigurationModifyParamsPayco"] + """ + PAYCO is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea. + """ + paynow: NotRequired["PaymentMethodConfigurationModifyParamsPaynow"] + """ + PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions. Check this [page](https://stripe.com/docs/payments/paynow) for more details. + """ + paypal: NotRequired["PaymentMethodConfigurationModifyParamsPaypal"] + """ + PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account. Check this [page](https://stripe.com/docs/payments/paypal) for more details. + """ + pix: NotRequired["PaymentMethodConfigurationModifyParamsPix"] + """ + Pix is a payment method popular in Brazil. When paying with Pix, customers authenticate and approve payments by scanning a QR code in their preferred banking app. Check this [page](https://docs.stripe.com/payments/pix) for more details. + """ + promptpay: NotRequired["PaymentMethodConfigurationModifyParamsPromptpay"] + """ + PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks. Check this [page](https://stripe.com/docs/payments/promptpay) for more details. + """ + revolut_pay: NotRequired[ + "PaymentMethodConfigurationModifyParamsRevolutPay" + ] + """ + Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method. Revolut Pay uses the customer's stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase. + """ + samsung_pay: NotRequired[ + "PaymentMethodConfigurationModifyParamsSamsungPay" + ] + """ + Samsung Pay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea. + """ + satispay: NotRequired["PaymentMethodConfigurationModifyParamsSatispay"] + """ + Satispay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method where customers are required to [authenticate](https://docs.stripe.com/payments/payment-methods#customer-actions) their payment. Customers pay by being redirected from your website or app, authorizing the payment with Satispay, then returning to your website or app. You get [immediate notification](https://docs.stripe.com/payments/payment-methods#payment-notification) of whether the payment succeeded or failed. + """ + sepa_debit: NotRequired["PaymentMethodConfigurationModifyParamsSepaDebit"] + """ + The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries. SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://stripe.com/docs/payments/sepa-debit) for more details. + """ + sofort: NotRequired["PaymentMethodConfigurationModifyParamsSofort"] + """ + Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers. Check this [page](https://stripe.com/docs/payments/sofort) for more details. + """ + swish: NotRequired["PaymentMethodConfigurationModifyParamsSwish"] + """ + Swish is a [real-time](https://stripe.com/docs/payments/real-time) payment method popular in Sweden. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app. Check this [page](https://stripe.com/docs/payments/swish) for more details. + """ + twint: NotRequired["PaymentMethodConfigurationModifyParamsTwint"] + """ + Twint is a payment method popular in Switzerland. It allows customers to pay using their mobile phone. Check this [page](https://docs.stripe.com/payments/twint) for more details. + """ + us_bank_account: NotRequired[ + "PaymentMethodConfigurationModifyParamsUsBankAccount" + ] + """ + Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha. Check this [page](https://stripe.com/docs/payments/ach-direct-debit) for more details. + """ + wechat_pay: NotRequired["PaymentMethodConfigurationModifyParamsWechatPay"] + """ + WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users. Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites. WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition. Check this [page](https://stripe.com/docs/payments/wechat-pay) for more details. + """ + zip: NotRequired["PaymentMethodConfigurationModifyParamsZip"] + """ + Zip gives your customers a way to split purchases over a series of payments. Check this [page](https://stripe.com/docs/payments/zip) for more details like country availability. + """ + + +class PaymentMethodConfigurationModifyParamsAcssDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsAcssDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsAcssDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsAffirm(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsAffirmDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsAffirmDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsAfterpayClearpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsAfterpayClearpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsAfterpayClearpayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsAlipay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsAlipayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsAlipayDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsAlma(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsAlmaDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsAlmaDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsAmazonPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsAmazonPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsAmazonPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsApplePay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsApplePayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsApplePayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsApplePayLater(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsApplePayLaterDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsApplePayLaterDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsAuBecsDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsAuBecsDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsAuBecsDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsBacsDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsBacsDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsBacsDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsBancontact(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsBancontactDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsBancontactDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsBillie(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsBillieDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsBillieDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsBlik(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsBlikDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsBlikDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsBoleto(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsBoletoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsBoletoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsCard(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsCardDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsCardDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsCartesBancaires(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsCartesBancairesDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsCartesBancairesDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsCashapp(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsCashappDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsCashappDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsCrypto(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsCryptoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsCryptoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsCustomerBalance(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsCustomerBalanceDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsCustomerBalanceDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsEps(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsEpsDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsEpsDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsFpx(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsFpxDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsFpxDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsFrMealVoucherConecs(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsFrMealVoucherConecsDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsFrMealVoucherConecsDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsGiropay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsGiropayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsGiropayDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsGooglePay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsGooglePayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsGooglePayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsGrabpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsGrabpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsGrabpayDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsIdeal(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsIdealDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsIdealDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsJcb(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsJcbDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsJcbDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsKakaoPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsKakaoPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsKakaoPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsKlarna(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsKlarnaDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsKlarnaDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsKonbini(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsKonbiniDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsKonbiniDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsKrCard(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsKrCardDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsKrCardDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsLink(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsLinkDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsLinkDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsMbWay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsMbWayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsMbWayDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsMobilepay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsMobilepayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsMobilepayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsMultibanco(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsMultibancoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsMultibancoDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsNaverPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsNaverPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsNaverPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsNzBankAccount(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsNzBankAccountDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsNzBankAccountDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsOxxo(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsOxxoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsOxxoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsP24(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsP24DisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsP24DisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsPayByBank(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsPayByBankDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsPayByBankDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsPayco(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsPaycoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsPaycoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsPaynow(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsPaynowDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsPaynowDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsPaypal(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsPaypalDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsPaypalDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsPix(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsPixDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsPixDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsPromptpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsPromptpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsPromptpayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsRevolutPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsRevolutPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsRevolutPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsSamsungPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsSamsungPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsSamsungPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsSatispay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsSatispayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsSatispayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsSepaDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsSepaDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsSepaDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsSofort(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsSofortDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsSofortDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsSwish(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsSwishDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsSwishDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsTwint(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsTwintDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsTwintDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsUsBankAccount(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsUsBankAccountDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsUsBankAccountDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsWechatPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsWechatPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsWechatPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationModifyParamsZip(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationModifyParamsZipDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationModifyParamsZipDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_retrieve_params.py new file mode 100644 index 00000000..49c5f025 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodConfigurationRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_update_params.py new file mode 100644 index 00000000..6a4a41c8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_configuration_update_params.py @@ -0,0 +1,1197 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentMethodConfigurationUpdateParams(TypedDict): + acss_debit: NotRequired["PaymentMethodConfigurationUpdateParamsAcssDebit"] + """ + Canadian pre-authorized debit payments, check this [page](https://stripe.com/docs/payments/acss-debit) for more details like country availability. + """ + active: NotRequired[bool] + """ + Whether the configuration can be used for new payments. + """ + affirm: NotRequired["PaymentMethodConfigurationUpdateParamsAffirm"] + """ + [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments. Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest. Check this [page](https://stripe.com/docs/payments/affirm) for more details like country availability. + """ + afterpay_clearpay: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAfterpayClearpay" + ] + """ + Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://stripe.com/docs/payments/afterpay-clearpay) for more details like country availability. Afterpay is particularly popular among businesses selling fashion, beauty, and sports products. + """ + alipay: NotRequired["PaymentMethodConfigurationUpdateParamsAlipay"] + """ + Alipay is a digital wallet in China that has more than a billion active users worldwide. Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app. Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials. Check this [page](https://stripe.com/docs/payments/alipay) for more details. + """ + alma: NotRequired["PaymentMethodConfigurationUpdateParamsAlma"] + """ + Alma is a Buy Now, Pay Later payment method that offers customers the ability to pay in 2, 3, or 4 installments. + """ + amazon_pay: NotRequired["PaymentMethodConfigurationUpdateParamsAmazonPay"] + """ + Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon. + """ + apple_pay: NotRequired["PaymentMethodConfigurationUpdateParamsApplePay"] + """ + Stripe users can accept [Apple Pay](https://stripe.com/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments, and the [pricing](https://stripe.com/pricing) is the same as other card transactions. Check this [page](https://stripe.com/docs/apple-pay) for more details. + """ + apple_pay_later: NotRequired[ + "PaymentMethodConfigurationUpdateParamsApplePayLater" + ] + """ + Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks. + """ + au_becs_debit: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAuBecsDebit" + ] + """ + Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account. Check this [page](https://stripe.com/docs/payments/au-becs-debit) for more details. + """ + bacs_debit: NotRequired["PaymentMethodConfigurationUpdateParamsBacsDebit"] + """ + Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://stripe.com/docs/payments/payment-methods/bacs-debit) for more details. + """ + bancontact: NotRequired["PaymentMethodConfigurationUpdateParamsBancontact"] + """ + Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation. [Customers](https://stripe.com/docs/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately. Check this [page](https://stripe.com/docs/payments/bancontact) for more details. + """ + billie: NotRequired["PaymentMethodConfigurationUpdateParamsBillie"] + """ + Billie is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method that offers businesses Pay by Invoice where they offer payment terms ranging from 7-120 days. Customers are redirected from your website or app, authorize the payment with Billie, then return to your website or app. You get [immediate notification](https://docs.stripe.com/payments/payment-methods#payment-notification) of whether the payment succeeded or failed. + """ + blik: NotRequired["PaymentMethodConfigurationUpdateParamsBlik"] + """ + BLIK is a [single use](https://stripe.com/docs/payments/payment-methods#usage) payment method that requires customers to authenticate their payments. When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form. Check this [page](https://stripe.com/docs/payments/blik) for more details. + """ + boleto: NotRequired["PaymentMethodConfigurationUpdateParamsBoleto"] + """ + Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil. Check this [page](https://stripe.com/docs/payments/boleto) for more details. + """ + card: NotRequired["PaymentMethodConfigurationUpdateParamsCard"] + """ + Cards are a popular way for consumers and businesses to pay online or in person. Stripe supports global and local card networks. + """ + cartes_bancaires: NotRequired[ + "PaymentMethodConfigurationUpdateParamsCartesBancaires" + ] + """ + Cartes Bancaires is France's local card network. More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks. Check this [page](https://stripe.com/docs/payments/cartes-bancaires) for more details. + """ + cashapp: NotRequired["PaymentMethodConfigurationUpdateParamsCashapp"] + """ + Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet. Check this [page](https://stripe.com/docs/payments/cash-app-pay) for more details. + """ + crypto: NotRequired["PaymentMethodConfigurationUpdateParamsCrypto"] + """ + [Stablecoin payments](https://stripe.com/docs/payments/stablecoin-payments) enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom and Metamask. + """ + customer_balance: NotRequired[ + "PaymentMethodConfigurationUpdateParamsCustomerBalance" + ] + """ + Uses a customer's [cash balance](https://stripe.com/docs/payments/customer-balance) for the payment. The cash balance can be funded via a bank transfer. Check this [page](https://stripe.com/docs/payments/bank-transfers) for more details. + """ + eps: NotRequired["PaymentMethodConfigurationUpdateParamsEps"] + """ + EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials. EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers. Check this [page](https://stripe.com/docs/payments/eps) for more details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fpx: NotRequired["PaymentMethodConfigurationUpdateParamsFpx"] + """ + Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials. Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX. It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM. Check this [page](https://stripe.com/docs/payments/fpx) for more details. + """ + fr_meal_voucher_conecs: NotRequired[ + "PaymentMethodConfigurationUpdateParamsFrMealVoucherConecs" + ] + """ + Meal vouchers in France, or “titres-restaurant”, is a local benefits program commonly offered by employers for their employees to purchase prepared food and beverages on working days. Check this [page](https://stripe.com/docs/payments/benefits/fr-meal-vouchers) for more details. + """ + giropay: NotRequired["PaymentMethodConfigurationUpdateParamsGiropay"] + """ + giropay is a German payment method based on online banking, introduced in 2006. It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account. Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN. giropay accounts for 10% of online checkouts in Germany. Check this [page](https://stripe.com/docs/payments/giropay) for more details. + """ + google_pay: NotRequired["PaymentMethodConfigurationUpdateParamsGooglePay"] + """ + Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device. Use the Google Pay API to request any credit or debit card stored in your customer's Google account. Check this [page](https://stripe.com/docs/google-pay) for more details. + """ + grabpay: NotRequired["PaymentMethodConfigurationUpdateParamsGrabpay"] + """ + GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/). GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with. Check this [page](https://stripe.com/docs/payments/grabpay) for more details. + """ + ideal: NotRequired["PaymentMethodConfigurationUpdateParamsIdeal"] + """ + iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials. All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%. Check this [page](https://stripe.com/docs/payments/ideal) for more details. + """ + jcb: NotRequired["PaymentMethodConfigurationUpdateParamsJcb"] + """ + JCB is a credit card company based in Japan. JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland. Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details. + """ + kakao_pay: NotRequired["PaymentMethodConfigurationUpdateParamsKakaoPay"] + """ + Kakao Pay is a popular local wallet available in South Korea. + """ + klarna: NotRequired["PaymentMethodConfigurationUpdateParamsKlarna"] + """ + Klarna gives customers a range of [payment options](https://stripe.com/docs/payments/klarna#payment-options) during checkout. Available payment options vary depending on the customer's billing address and the transaction amount. These payment options make it convenient for customers to purchase items in all price ranges. Check this [page](https://stripe.com/docs/payments/klarna) for more details. + """ + konbini: NotRequired["PaymentMethodConfigurationUpdateParamsKonbini"] + """ + Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash. Check this [page](https://stripe.com/docs/payments/konbini) for more details. + """ + kr_card: NotRequired["PaymentMethodConfigurationUpdateParamsKrCard"] + """ + Korean cards let users pay using locally issued cards from South Korea. + """ + link: NotRequired["PaymentMethodConfigurationUpdateParamsLink"] + """ + [Link](https://stripe.com/docs/payments/link) is a payment method network. With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network. + """ + mb_way: NotRequired["PaymentMethodConfigurationUpdateParamsMbWay"] + """ + MB WAY is the most popular wallet in Portugal. After entering their phone number in your checkout, customers approve the payment directly in their MB WAY app. Check this [page](https://stripe.com/docs/payments/mb-way) for more details. + """ + mobilepay: NotRequired["PaymentMethodConfigurationUpdateParamsMobilepay"] + """ + MobilePay is a [single-use](https://stripe.com/docs/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the MobilePay app. Check this [page](https://stripe.com/docs/payments/mobilepay) for more details. + """ + multibanco: NotRequired["PaymentMethodConfigurationUpdateParamsMultibanco"] + """ + Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method. + """ + name: NotRequired[str] + """ + Configuration name. + """ + naver_pay: NotRequired["PaymentMethodConfigurationUpdateParamsNaverPay"] + """ + Naver Pay is a popular local wallet available in South Korea. + """ + nz_bank_account: NotRequired[ + "PaymentMethodConfigurationUpdateParamsNzBankAccount" + ] + """ + Stripe users in New Zealand can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with a New Zeland bank account. Check this [page](https://stripe.com/docs/payments/nz-bank-account) for more details. + """ + oxxo: NotRequired["PaymentMethodConfigurationUpdateParamsOxxo"] + """ + OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico. OXXO allows customers to pay bills and online purchases in-store with cash. Check this [page](https://stripe.com/docs/payments/oxxo) for more details. + """ + p24: NotRequired["PaymentMethodConfigurationUpdateParamsP24"] + """ + Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods. Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks. Check this [page](https://stripe.com/docs/payments/p24) for more details. + """ + pay_by_bank: NotRequired["PaymentMethodConfigurationUpdateParamsPayByBank"] + """ + Pay by bank is a redirect payment method backed by bank transfers. A customer is redirected to their bank to authorize a bank transfer for a given amount. This removes a lot of the error risks inherent in waiting for the customer to initiate a transfer themselves, and is less expensive than card payments. + """ + payco: NotRequired["PaymentMethodConfigurationUpdateParamsPayco"] + """ + PAYCO is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea. + """ + paynow: NotRequired["PaymentMethodConfigurationUpdateParamsPaynow"] + """ + PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions. Check this [page](https://stripe.com/docs/payments/paynow) for more details. + """ + paypal: NotRequired["PaymentMethodConfigurationUpdateParamsPaypal"] + """ + PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account. Check this [page](https://stripe.com/docs/payments/paypal) for more details. + """ + pix: NotRequired["PaymentMethodConfigurationUpdateParamsPix"] + """ + Pix is a payment method popular in Brazil. When paying with Pix, customers authenticate and approve payments by scanning a QR code in their preferred banking app. Check this [page](https://docs.stripe.com/payments/pix) for more details. + """ + promptpay: NotRequired["PaymentMethodConfigurationUpdateParamsPromptpay"] + """ + PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks. Check this [page](https://stripe.com/docs/payments/promptpay) for more details. + """ + revolut_pay: NotRequired[ + "PaymentMethodConfigurationUpdateParamsRevolutPay" + ] + """ + Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method. Revolut Pay uses the customer's stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase. + """ + samsung_pay: NotRequired[ + "PaymentMethodConfigurationUpdateParamsSamsungPay" + ] + """ + Samsung Pay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage local wallet available in South Korea. + """ + satispay: NotRequired["PaymentMethodConfigurationUpdateParamsSatispay"] + """ + Satispay is a [single-use](https://docs.stripe.com/payments/payment-methods#usage) payment method where customers are required to [authenticate](https://docs.stripe.com/payments/payment-methods#customer-actions) their payment. Customers pay by being redirected from your website or app, authorizing the payment with Satispay, then returning to your website or app. You get [immediate notification](https://docs.stripe.com/payments/payment-methods#payment-notification) of whether the payment succeeded or failed. + """ + sepa_debit: NotRequired["PaymentMethodConfigurationUpdateParamsSepaDebit"] + """ + The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries. SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://stripe.com/docs/payments/sepa-debit) for more details. + """ + sofort: NotRequired["PaymentMethodConfigurationUpdateParamsSofort"] + """ + Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers. Check this [page](https://stripe.com/docs/payments/sofort) for more details. + """ + swish: NotRequired["PaymentMethodConfigurationUpdateParamsSwish"] + """ + Swish is a [real-time](https://stripe.com/docs/payments/real-time) payment method popular in Sweden. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app. Check this [page](https://stripe.com/docs/payments/swish) for more details. + """ + twint: NotRequired["PaymentMethodConfigurationUpdateParamsTwint"] + """ + Twint is a payment method popular in Switzerland. It allows customers to pay using their mobile phone. Check this [page](https://docs.stripe.com/payments/twint) for more details. + """ + us_bank_account: NotRequired[ + "PaymentMethodConfigurationUpdateParamsUsBankAccount" + ] + """ + Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha. Check this [page](https://stripe.com/docs/payments/ach-direct-debit) for more details. + """ + wechat_pay: NotRequired["PaymentMethodConfigurationUpdateParamsWechatPay"] + """ + WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users. Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites. WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition. Check this [page](https://stripe.com/docs/payments/wechat-pay) for more details. + """ + zip: NotRequired["PaymentMethodConfigurationUpdateParamsZip"] + """ + Zip gives your customers a way to split purchases over a series of payments. Check this [page](https://stripe.com/docs/payments/zip) for more details like country availability. + """ + + +class PaymentMethodConfigurationUpdateParamsAcssDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAcssDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsAcssDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsAffirm(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAffirmDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsAffirmDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsAfterpayClearpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAfterpayClearpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsAfterpayClearpayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsAlipay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAlipayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsAlipayDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsAlma(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAlmaDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsAlmaDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsAmazonPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAmazonPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsAmazonPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsApplePay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsApplePayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsApplePayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsApplePayLater(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsApplePayLaterDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsApplePayLaterDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsAuBecsDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsAuBecsDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsAuBecsDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsBacsDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsBacsDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsBacsDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsBancontact(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsBancontactDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsBancontactDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsBillie(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsBillieDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsBillieDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsBlik(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsBlikDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsBlikDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsBoleto(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsBoletoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsBoletoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsCard(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsCardDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsCardDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsCartesBancaires(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsCartesBancairesDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsCartesBancairesDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsCashapp(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsCashappDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsCashappDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsCrypto(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsCryptoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsCryptoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsCustomerBalance(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsCustomerBalanceDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsCustomerBalanceDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsEps(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsEpsDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsEpsDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsFpx(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsFpxDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsFpxDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsFrMealVoucherConecs(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsFrMealVoucherConecsDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsFrMealVoucherConecsDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsGiropay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsGiropayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsGiropayDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsGooglePay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsGooglePayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsGooglePayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsGrabpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsGrabpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsGrabpayDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsIdeal(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsIdealDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsIdealDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsJcb(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsJcbDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsJcbDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsKakaoPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsKakaoPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsKakaoPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsKlarna(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsKlarnaDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsKlarnaDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsKonbini(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsKonbiniDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsKonbiniDisplayPreference( + TypedDict +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsKrCard(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsKrCardDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsKrCardDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsLink(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsLinkDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsLinkDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsMbWay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsMbWayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsMbWayDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsMobilepay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsMobilepayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsMobilepayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsMultibanco(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsMultibancoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsMultibancoDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsNaverPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsNaverPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsNaverPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsNzBankAccount(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsNzBankAccountDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsNzBankAccountDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsOxxo(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsOxxoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsOxxoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsP24(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsP24DisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsP24DisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsPayByBank(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsPayByBankDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsPayByBankDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsPayco(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsPaycoDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsPaycoDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsPaynow(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsPaynowDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsPaynowDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsPaypal(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsPaypalDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsPaypalDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsPix(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsPixDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsPixDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsPromptpay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsPromptpayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsPromptpayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsRevolutPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsRevolutPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsRevolutPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsSamsungPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsSamsungPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsSamsungPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsSatispay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsSatispayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsSatispayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsSepaDebit(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsSepaDebitDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsSepaDebitDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsSofort(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsSofortDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsSofortDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsSwish(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsSwishDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsSwishDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsTwint(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsTwintDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsTwintDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsUsBankAccount(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsUsBankAccountDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsUsBankAccountDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsWechatPay(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsWechatPayDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsWechatPayDisplayPreference( + TypedDict, +): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ + + +class PaymentMethodConfigurationUpdateParamsZip(TypedDict): + display_preference: NotRequired[ + "PaymentMethodConfigurationUpdateParamsZipDisplayPreference" + ] + """ + Whether or not the payment method should be displayed. + """ + + +class PaymentMethodConfigurationUpdateParamsZipDisplayPreference(TypedDict): + preference: NotRequired[Literal["none", "off", "on"]] + """ + The account's preference for whether or not to display this payment method. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_create_params.py new file mode 100644 index 00000000..243c0415 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_create_params.py @@ -0,0 +1,806 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentMethodCreateParams(RequestOptions): + acss_debit: NotRequired["PaymentMethodCreateParamsAcssDebit"] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["PaymentMethodCreateParamsAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired["PaymentMethodCreateParamsAfterpayClearpay"] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["PaymentMethodCreateParamsAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["PaymentMethodCreateParamsAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired["PaymentMethodCreateParamsAmazonPay"] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired["PaymentMethodCreateParamsAuBecsDebit"] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired["PaymentMethodCreateParamsBacsDebit"] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired["PaymentMethodCreateParamsBancontact"] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["PaymentMethodCreateParamsBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired["PaymentMethodCreateParamsBillingDetails"] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["PaymentMethodCreateParamsBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["PaymentMethodCreateParamsBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + card: NotRequired["PaymentMethodCreateParamsCard"] + """ + If this is a `card` PaymentMethod, this hash contains the user's card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format `card: {token: "tok_visa"}`. When providing a card number, you must meet the requirements for [PCI compliance](https://stripe.com/docs/security#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly. + """ + cashapp: NotRequired["PaymentMethodCreateParamsCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["PaymentMethodCreateParamsCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + custom: NotRequired["PaymentMethodCreateParamsCustom"] + """ + If this is a `custom` PaymentMethod, this hash contains details about the Custom payment method. + """ + customer: NotRequired[str] + """ + The `Customer` to whom the original PaymentMethod is attached. + """ + customer_balance: NotRequired["PaymentMethodCreateParamsCustomerBalance"] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["PaymentMethodCreateParamsEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fpx: NotRequired["PaymentMethodCreateParamsFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["PaymentMethodCreateParamsGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["PaymentMethodCreateParamsGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["PaymentMethodCreateParamsIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired["PaymentMethodCreateParamsInteracPresent"] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired["PaymentMethodCreateParamsKakaoPay"] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["PaymentMethodCreateParamsKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["PaymentMethodCreateParamsKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["PaymentMethodCreateParamsKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["PaymentMethodCreateParamsLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["PaymentMethodCreateParamsMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired["PaymentMethodCreateParamsMobilepay"] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired["PaymentMethodCreateParamsMultibanco"] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired["PaymentMethodCreateParamsNaverPay"] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired["PaymentMethodCreateParamsNzBankAccount"] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["PaymentMethodCreateParamsOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["PaymentMethodCreateParamsP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired["PaymentMethodCreateParamsPayByBank"] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["PaymentMethodCreateParamsPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + payment_method: NotRequired[str] + """ + The PaymentMethod to share. + """ + paynow: NotRequired["PaymentMethodCreateParamsPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["PaymentMethodCreateParamsPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["PaymentMethodCreateParamsPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired["PaymentMethodCreateParamsPromptpay"] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired["PaymentMethodCreateParamsRadarOptions"] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired["PaymentMethodCreateParamsRevolutPay"] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired["PaymentMethodCreateParamsSamsungPay"] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["PaymentMethodCreateParamsSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired["PaymentMethodCreateParamsSepaDebit"] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["PaymentMethodCreateParamsSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["PaymentMethodCreateParamsSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["PaymentMethodCreateParamsTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: NotRequired[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired["PaymentMethodCreateParamsUsBankAccount"] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired["PaymentMethodCreateParamsWechatPay"] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["PaymentMethodCreateParamsZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class PaymentMethodCreateParamsAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class PaymentMethodCreateParamsAffirm(TypedDict): + pass + + +class PaymentMethodCreateParamsAfterpayClearpay(TypedDict): + pass + + +class PaymentMethodCreateParamsAlipay(TypedDict): + pass + + +class PaymentMethodCreateParamsAlma(TypedDict): + pass + + +class PaymentMethodCreateParamsAmazonPay(TypedDict): + pass + + +class PaymentMethodCreateParamsAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class PaymentMethodCreateParamsBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class PaymentMethodCreateParamsBancontact(TypedDict): + pass + + +class PaymentMethodCreateParamsBillie(TypedDict): + pass + + +class PaymentMethodCreateParamsBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|PaymentMethodCreateParamsBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class PaymentMethodCreateParamsBillingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentMethodCreateParamsBlik(TypedDict): + pass + + +class PaymentMethodCreateParamsBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class PaymentMethodCreateParamsCard(TypedDict): + cvc: NotRequired[str] + """ + The card's CVC. It is highly recommended to always include this value. + """ + exp_month: NotRequired[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: NotRequired[int] + """ + Four-digit number representing the card's expiration year. + """ + networks: NotRequired["PaymentMethodCreateParamsCardNetworks"] + """ + Contains information about card networks used to process the payment. + """ + number: NotRequired[str] + """ + The card number, as a string without any separators. + """ + token: NotRequired[str] + """ + For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card: {token: "tok_visa"}. + """ + + +class PaymentMethodCreateParamsCardNetworks(TypedDict): + preferred: NotRequired[Literal["cartes_bancaires", "mastercard", "visa"]] + """ + The customer's preferred card network for co-branded cards. Supports `cartes_bancaires`, `mastercard`, or `visa`. Selection of a network that does not apply to the card will be stored as `invalid_preference` on the card. + """ + + +class PaymentMethodCreateParamsCashapp(TypedDict): + pass + + +class PaymentMethodCreateParamsCrypto(TypedDict): + pass + + +class PaymentMethodCreateParamsCustom(TypedDict): + type: str + """ + ID of the Dashboard-only CustomPaymentMethodType. This field is used by Stripe products' internal code to support CPMs. + """ + + +class PaymentMethodCreateParamsCustomerBalance(TypedDict): + pass + + +class PaymentMethodCreateParamsEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class PaymentMethodCreateParamsFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class PaymentMethodCreateParamsGiropay(TypedDict): + pass + + +class PaymentMethodCreateParamsGrabpay(TypedDict): + pass + + +class PaymentMethodCreateParamsIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class PaymentMethodCreateParamsInteracPresent(TypedDict): + pass + + +class PaymentMethodCreateParamsKakaoPay(TypedDict): + pass + + +class PaymentMethodCreateParamsKlarna(TypedDict): + dob: NotRequired["PaymentMethodCreateParamsKlarnaDob"] + """ + Customer's date of birth + """ + + +class PaymentMethodCreateParamsKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class PaymentMethodCreateParamsKonbini(TypedDict): + pass + + +class PaymentMethodCreateParamsKrCard(TypedDict): + pass + + +class PaymentMethodCreateParamsLink(TypedDict): + pass + + +class PaymentMethodCreateParamsMbWay(TypedDict): + pass + + +class PaymentMethodCreateParamsMobilepay(TypedDict): + pass + + +class PaymentMethodCreateParamsMultibanco(TypedDict): + pass + + +class PaymentMethodCreateParamsNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class PaymentMethodCreateParamsNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class PaymentMethodCreateParamsOxxo(TypedDict): + pass + + +class PaymentMethodCreateParamsP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class PaymentMethodCreateParamsPayByBank(TypedDict): + pass + + +class PaymentMethodCreateParamsPayco(TypedDict): + pass + + +class PaymentMethodCreateParamsPaynow(TypedDict): + pass + + +class PaymentMethodCreateParamsPaypal(TypedDict): + pass + + +class PaymentMethodCreateParamsPix(TypedDict): + pass + + +class PaymentMethodCreateParamsPromptpay(TypedDict): + pass + + +class PaymentMethodCreateParamsRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class PaymentMethodCreateParamsRevolutPay(TypedDict): + pass + + +class PaymentMethodCreateParamsSamsungPay(TypedDict): + pass + + +class PaymentMethodCreateParamsSatispay(TypedDict): + pass + + +class PaymentMethodCreateParamsSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class PaymentMethodCreateParamsSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class PaymentMethodCreateParamsSwish(TypedDict): + pass + + +class PaymentMethodCreateParamsTwint(TypedDict): + pass + + +class PaymentMethodCreateParamsUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class PaymentMethodCreateParamsWechatPay(TypedDict): + pass + + +class PaymentMethodCreateParamsZip(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_detach_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_detach_params.py new file mode 100644 index 00000000..5bb35345 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_detach_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodDetachParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_create_params.py new file mode 100644 index 00000000..5d5ac32f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_create_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodDomainCreateParams(RequestOptions): + domain_name: str + """ + The domain name that this payment method domain object represents. + """ + enabled: NotRequired[bool] + """ + Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements or Embedded Checkout. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_list_params.py new file mode 100644 index 00000000..bd52dd55 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_list_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodDomainListParams(RequestOptions): + domain_name: NotRequired[str] + """ + The domain name that this payment method domain object represents. + """ + enabled: NotRequired[bool] + """ + Whether this payment method domain is enabled. If the domain is not enabled, payment methods will not appear in Elements or Embedded Checkout + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_modify_params.py new file mode 100644 index 00000000..a0079efb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_modify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodDomainModifyParams(RequestOptions): + enabled: NotRequired[bool] + """ + Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements or Embedded Checkout. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_retrieve_params.py new file mode 100644 index 00000000..43fca150 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodDomainRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_update_params.py new file mode 100644 index 00000000..1a4135bf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PaymentMethodDomainUpdateParams(TypedDict): + enabled: NotRequired[bool] + """ + Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements or Embedded Checkout. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_validate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_validate_params.py new file mode 100644 index 00000000..ca4d58a7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_domain_validate_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodDomainValidateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_list_params.py new file mode 100644 index 00000000..e5f023c3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_list_params.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class PaymentMethodListParams(RequestOptions): + customer: NotRequired[str] + """ + The ID of the customer whose PaymentMethods will be retrieved. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "custom", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + """ + Filters the list by the object `type` field. Unfiltered, the list returns all payment method types except `custom`. If your integration expects only one type of payment method in the response, specify that type value in the request to reduce your payload. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_modify_params.py new file mode 100644 index 00000000..b1132da3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_modify_params.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentMethodModifyParams(RequestOptions): + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + billing_details: NotRequired["PaymentMethodModifyParamsBillingDetails"] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + card: NotRequired["PaymentMethodModifyParamsCard"] + """ + If this is a `card` PaymentMethod, this hash contains the user's card details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + us_bank_account: NotRequired["PaymentMethodModifyParamsUsBankAccount"] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + + +class PaymentMethodModifyParamsBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|PaymentMethodModifyParamsBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class PaymentMethodModifyParamsBillingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentMethodModifyParamsCard(TypedDict): + exp_month: NotRequired[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: NotRequired[int] + """ + Four-digit number representing the card's expiration year. + """ + networks: NotRequired["PaymentMethodModifyParamsCardNetworks"] + """ + Contains information about card networks used to process the payment. + """ + + +class PaymentMethodModifyParamsCardNetworks(TypedDict): + preferred: NotRequired[ + "Literal['']|Literal['cartes_bancaires', 'mastercard', 'visa']" + ] + """ + The customer's preferred card network for co-branded cards. Supports `cartes_bancaires`, `mastercard`, or `visa`. Selection of a network that does not apply to the card will be stored as `invalid_preference` on the card. + """ + + +class PaymentMethodModifyParamsUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Bank account holder type. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Bank account type. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_retrieve_params.py new file mode 100644 index 00000000..39b976db --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentMethodRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_update_params.py new file mode 100644 index 00000000..1c73b402 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_method_update_params.py @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentMethodUpdateParams(TypedDict): + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + billing_details: NotRequired["PaymentMethodUpdateParamsBillingDetails"] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + card: NotRequired["PaymentMethodUpdateParamsCard"] + """ + If this is a `card` PaymentMethod, this hash contains the user's card details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + us_bank_account: NotRequired["PaymentMethodUpdateParamsUsBankAccount"] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + + +class PaymentMethodUpdateParamsBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|PaymentMethodUpdateParamsBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class PaymentMethodUpdateParamsBillingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentMethodUpdateParamsCard(TypedDict): + exp_month: NotRequired[int] + """ + Two-digit number representing the card's expiration month. + """ + exp_year: NotRequired[int] + """ + Four-digit number representing the card's expiration year. + """ + networks: NotRequired["PaymentMethodUpdateParamsCardNetworks"] + """ + Contains information about card networks used to process the payment. + """ + + +class PaymentMethodUpdateParamsCardNetworks(TypedDict): + preferred: NotRequired[ + "Literal['']|Literal['cartes_bancaires', 'mastercard', 'visa']" + ] + """ + The customer's preferred card network for co-branded cards. Supports `cartes_bancaires`, `mastercard`, or `visa`. Selection of a network that does not apply to the card will be stored as `invalid_preference` on the card. + """ + + +class PaymentMethodUpdateParamsUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Bank account holder type. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Bank account type. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_canceled_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_canceled_params.py new file mode 100644 index 00000000..6e464723 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_canceled_params.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class PaymentRecordReportPaymentAttemptCanceledParams(RequestOptions): + canceled_at: int + """ + When the reported payment was canceled. Measured in seconds since the Unix epoch. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_failed_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_failed_params.py new file mode 100644 index 00000000..2c6b2ee2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_failed_params.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class PaymentRecordReportPaymentAttemptFailedParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + failed_at: int + """ + When the reported payment failed. Measured in seconds since the Unix epoch. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_guaranteed_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_guaranteed_params.py new file mode 100644 index 00000000..d43676a6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_guaranteed_params.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class PaymentRecordReportPaymentAttemptGuaranteedParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + guaranteed_at: int + """ + When the reported payment was guaranteed. Measured in seconds since the Unix epoch. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_informational_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_informational_params.py new file mode 100644 index 00000000..462f2e14 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_informational_params.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentRecordReportPaymentAttemptInformationalParams(RequestOptions): + customer_details: NotRequired[ + "PaymentRecordReportPaymentAttemptInformationalParamsCustomerDetails" + ] + """ + Customer information for this payment. + """ + description: NotRequired["Literal['']|str"] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + shipping_details: NotRequired[ + "Literal['']|PaymentRecordReportPaymentAttemptInformationalParamsShippingDetails" + ] + """ + Shipping information for this payment. + """ + + +class PaymentRecordReportPaymentAttemptInformationalParamsCustomerDetails( + TypedDict, +): + customer: NotRequired[str] + """ + The customer who made the payment. + """ + email: NotRequired[str] + """ + The customer's phone number. + """ + name: NotRequired[str] + """ + The customer's name. + """ + phone: NotRequired[str] + """ + The customer's phone number. + """ + + +class PaymentRecordReportPaymentAttemptInformationalParamsShippingDetails( + TypedDict, +): + address: NotRequired[ + "PaymentRecordReportPaymentAttemptInformationalParamsShippingDetailsAddress" + ] + """ + The physical shipping address. + """ + name: NotRequired[str] + """ + The shipping recipient's name. + """ + phone: NotRequired[str] + """ + The shipping recipient's phone number. + """ + + +class PaymentRecordReportPaymentAttemptInformationalParamsShippingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_params.py new file mode 100644 index 00000000..e4eca9b5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_attempt_params.py @@ -0,0 +1,196 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentRecordReportPaymentAttemptParams(RequestOptions): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + failed: NotRequired["PaymentRecordReportPaymentAttemptParamsFailed"] + """ + Information about the payment attempt failure. + """ + guaranteed: NotRequired[ + "PaymentRecordReportPaymentAttemptParamsGuaranteed" + ] + """ + Information about the payment attempt guarantee. + """ + initiated_at: int + """ + When the reported payment was initiated. Measured in seconds since the Unix epoch. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + outcome: NotRequired[Literal["failed", "guaranteed"]] + """ + The outcome of the reported payment. + """ + payment_method_details: NotRequired[ + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetails" + ] + """ + Information about the Payment Method debited for this payment. + """ + shipping_details: NotRequired[ + "PaymentRecordReportPaymentAttemptParamsShippingDetails" + ] + """ + Shipping information for this payment. + """ + + +class PaymentRecordReportPaymentAttemptParamsFailed(TypedDict): + failed_at: int + """ + When the reported payment failed. Measured in seconds since the Unix epoch. + """ + + +class PaymentRecordReportPaymentAttemptParamsGuaranteed(TypedDict): + guaranteed_at: int + """ + When the reported payment was guaranteed. Measured in seconds since the Unix epoch. + """ + + +class PaymentRecordReportPaymentAttemptParamsPaymentMethodDetails(TypedDict): + billing_details: NotRequired[ + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetails" + ] + """ + The billing details associated with the method of payment. + """ + custom: NotRequired[ + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsCustom" + ] + """ + Information about the custom (user-defined) payment method used to make this payment. + """ + payment_method: NotRequired[str] + """ + ID of the Stripe Payment Method used to make this payment. + """ + type: NotRequired[Literal["custom"]] + """ + The type of the payment method details. An additional hash is included on the payment_method_details with a name matching this value. It contains additional information specific to the type. + """ + + +class PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetails( + TypedDict, +): + address: NotRequired[ + "PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetailsAddress" + ] + """ + The billing address associated with the method of payment. + """ + email: NotRequired[str] + """ + The billing email associated with the method of payment. + """ + name: NotRequired[str] + """ + The billing name associated with the method of payment. + """ + phone: NotRequired[str] + """ + The billing phone number associated with the method of payment. + """ + + +class PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentRecordReportPaymentAttemptParamsPaymentMethodDetailsCustom( + TypedDict, +): + display_name: NotRequired[str] + """ + Display name for the custom (user-defined) payment method type used to make this payment. + """ + type: NotRequired[str] + """ + The custom payment method type associated with this payment. + """ + + +class PaymentRecordReportPaymentAttemptParamsShippingDetails(TypedDict): + address: NotRequired[ + "PaymentRecordReportPaymentAttemptParamsShippingDetailsAddress" + ] + """ + The physical shipping address. + """ + name: NotRequired[str] + """ + The shipping recipient's name. + """ + phone: NotRequired[str] + """ + The shipping recipient's phone number. + """ + + +class PaymentRecordReportPaymentAttemptParamsShippingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_params.py new file mode 100644 index 00000000..bccfe874 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_payment_params.py @@ -0,0 +1,262 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentRecordReportPaymentParams(RequestOptions): + amount_requested: "PaymentRecordReportPaymentParamsAmountRequested" + """ + The amount you initially requested for this payment. + """ + customer_details: NotRequired[ + "PaymentRecordReportPaymentParamsCustomerDetails" + ] + """ + Customer information for this payment. + """ + customer_presence: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates whether the customer was present in your checkout flow during this payment. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + failed: NotRequired["PaymentRecordReportPaymentParamsFailed"] + """ + Information about the payment attempt failure. + """ + guaranteed: NotRequired["PaymentRecordReportPaymentParamsGuaranteed"] + """ + Information about the payment attempt guarantee. + """ + initiated_at: int + """ + When the reported payment was initiated. Measured in seconds since the Unix epoch. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + outcome: NotRequired[Literal["failed", "guaranteed"]] + """ + The outcome of the reported payment. + """ + payment_method_details: ( + "PaymentRecordReportPaymentParamsPaymentMethodDetails" + ) + """ + Information about the Payment Method debited for this payment. + """ + processor_details: NotRequired[ + "PaymentRecordReportPaymentParamsProcessorDetails" + ] + """ + Processor information for this payment. + """ + shipping_details: NotRequired[ + "PaymentRecordReportPaymentParamsShippingDetails" + ] + """ + Shipping information for this payment. + """ + + +class PaymentRecordReportPaymentParamsAmountRequested(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + +class PaymentRecordReportPaymentParamsCustomerDetails(TypedDict): + customer: NotRequired[str] + """ + The customer who made the payment. + """ + email: NotRequired[str] + """ + The customer's phone number. + """ + name: NotRequired[str] + """ + The customer's name. + """ + phone: NotRequired[str] + """ + The customer's phone number. + """ + + +class PaymentRecordReportPaymentParamsFailed(TypedDict): + failed_at: int + """ + When the reported payment failed. Measured in seconds since the Unix epoch. + """ + + +class PaymentRecordReportPaymentParamsGuaranteed(TypedDict): + guaranteed_at: int + """ + When the reported payment was guaranteed. Measured in seconds since the Unix epoch. + """ + + +class PaymentRecordReportPaymentParamsPaymentMethodDetails(TypedDict): + billing_details: NotRequired[ + "PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetails" + ] + """ + The billing details associated with the method of payment. + """ + custom: NotRequired[ + "PaymentRecordReportPaymentParamsPaymentMethodDetailsCustom" + ] + """ + Information about the custom (user-defined) payment method used to make this payment. + """ + payment_method: NotRequired[str] + """ + ID of the Stripe Payment Method used to make this payment. + """ + type: NotRequired[Literal["custom"]] + """ + The type of the payment method details. An additional hash is included on the payment_method_details with a name matching this value. It contains additional information specific to the type. + """ + + +class PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetails( + TypedDict, +): + address: NotRequired[ + "PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetailsAddress" + ] + """ + The billing address associated with the method of payment. + """ + email: NotRequired[str] + """ + The billing email associated with the method of payment. + """ + name: NotRequired[str] + """ + The billing name associated with the method of payment. + """ + phone: NotRequired[str] + """ + The billing phone number associated with the method of payment. + """ + + +class PaymentRecordReportPaymentParamsPaymentMethodDetailsBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class PaymentRecordReportPaymentParamsPaymentMethodDetailsCustom(TypedDict): + display_name: NotRequired[str] + """ + Display name for the custom (user-defined) payment method type used to make this payment. + """ + type: NotRequired[str] + """ + The custom payment method type associated with this payment. + """ + + +class PaymentRecordReportPaymentParamsProcessorDetails(TypedDict): + custom: NotRequired[ + "PaymentRecordReportPaymentParamsProcessorDetailsCustom" + ] + """ + Information about the custom processor used to make this payment. + """ + type: Literal["custom"] + """ + The type of the processor details. An additional hash is included on processor_details with a name matching this value. It contains additional information specific to the processor. + """ + + +class PaymentRecordReportPaymentParamsProcessorDetailsCustom(TypedDict): + payment_reference: str + """ + An opaque string for manual reconciliation of this payment, for example a check number or a payment processor ID. + """ + + +class PaymentRecordReportPaymentParamsShippingDetails(TypedDict): + address: NotRequired[ + "PaymentRecordReportPaymentParamsShippingDetailsAddress" + ] + """ + The physical shipping address. + """ + name: NotRequired[str] + """ + The shipping recipient's name. + """ + phone: NotRequired[str] + """ + The shipping recipient's phone number. + """ + + +class PaymentRecordReportPaymentParamsShippingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_refund_params.py new file mode 100644 index 00000000..f79bf5bb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_report_refund_params.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PaymentRecordReportRefundParams(RequestOptions): + amount: NotRequired["PaymentRecordReportRefundParamsAmount"] + """ + A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) representing how much of this payment to refund. Can refund only up to the remaining, unrefunded amount of the payment. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + initiated_at: NotRequired[int] + """ + When the reported refund was initiated. Measured in seconds since the Unix epoch. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + outcome: Literal["refunded"] + """ + The outcome of the reported refund. + """ + processor_details: "PaymentRecordReportRefundParamsProcessorDetails" + """ + Processor information for this refund. + """ + refunded: "PaymentRecordReportRefundParamsRefunded" + """ + Information about the payment attempt refund. + """ + + +class PaymentRecordReportRefundParamsAmount(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + value: int + """ + A positive integer representing the amount in the currency's [minor unit](https://stripe.com/docs/currencies#zero-decimal). For example, `100` can represent 1 USD or 100 JPY. + """ + + +class PaymentRecordReportRefundParamsProcessorDetails(TypedDict): + custom: NotRequired[ + "PaymentRecordReportRefundParamsProcessorDetailsCustom" + ] + """ + Information about the custom processor used to make this refund. + """ + type: Literal["custom"] + """ + The type of the processor details. An additional hash is included on processor_details with a name matching this value. It contains additional information specific to the processor. + """ + + +class PaymentRecordReportRefundParamsProcessorDetailsCustom(TypedDict): + refund_reference: str + """ + A reference to the external refund. This field must be unique across all refunds. + """ + + +class PaymentRecordReportRefundParamsRefunded(TypedDict): + refunded_at: int + """ + When the reported refund completed. Measured in seconds since the Unix epoch. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_retrieve_params.py new file mode 100644 index 00000000..98d352b0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payment_record_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PaymentRecordRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_cancel_params.py new file mode 100644 index 00000000..937a5b09 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PayoutCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_create_params.py new file mode 100644 index 00000000..9df088fd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_create_params.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class PayoutCreateParams(RequestOptions): + amount: int + """ + A positive integer in cents representing how much to payout. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination: NotRequired[str] + """ + The ID of a bank account or a card to send the payout to. If you don't provide a destination, we use the default external account for the specified currency. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + method: NotRequired[Literal["instant", "standard"]] + """ + The method used to send this payout, which is `standard` or `instant`. We support `instant` for payouts to debit cards and bank accounts in certain countries. Learn more about [bank support for Instant Payouts](https://stripe.com/docs/payouts/instant-payouts-banks). + """ + payout_method: NotRequired[str] + """ + The ID of a v2 FinancialAccount to send funds to. + """ + source_type: NotRequired[Literal["bank_account", "card", "fpx"]] + """ + The balance type of your Stripe balance to draw this payout from. Balances for different payment sources are kept separately. You can find the amounts with the Balances API. One of `bank_account`, `card`, or `fpx`. + """ + statement_descriptor: NotRequired[str] + """ + A string that displays on the recipient's bank or card statement (up to 22 characters). A `statement_descriptor` that's longer than 22 characters return an error. Most banks truncate this information and display it inconsistently. Some banks might not display it at all. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_list_params.py new file mode 100644 index 00000000..e6028390 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_list_params.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PayoutListParams(RequestOptions): + arrival_date: NotRequired["PayoutListParamsArrivalDate|int"] + """ + Only return payouts that are expected to arrive during the given date interval. + """ + created: NotRequired["PayoutListParamsCreated|int"] + """ + Only return payouts that were created during the given date interval. + """ + destination: NotRequired[str] + """ + The ID of an external account - only return payouts sent to this external account. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[str] + """ + Only return payouts that have the given status: `pending`, `paid`, `failed`, or `canceled`. + """ + + +class PayoutListParamsArrivalDate(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class PayoutListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_modify_params.py new file mode 100644 index 00000000..732d10bd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_modify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class PayoutModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_retrieve_params.py new file mode 100644 index 00000000..1f76e574 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PayoutRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_reverse_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_reverse_params.py new file mode 100644 index 00000000..2e95e113 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_reverse_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class PayoutReverseParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_update_params.py new file mode 100644 index 00000000..04a99d7d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_payout_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PayoutUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_create_params.py new file mode 100644 index 00000000..43c20a24 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_create_params.py @@ -0,0 +1,144 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class PlanCreateParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the plan is currently available for new subscriptions. Defaults to `true`. + """ + amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free plan) representing how much to charge on a recurring basis. + """ + amount_decimal: NotRequired[str] + """ + Same as `amount`, but accepts a decimal value with at most 12 decimal places. Only one of `amount` and `amount_decimal` can be set. + """ + billing_scheme: NotRequired[Literal["per_unit", "tiered"]] + """ + Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + id: NotRequired[str] + """ + An identifier randomly generated by Stripe. Used to identify this plan when subscribing a customer. You can optionally override this ID, but the ID must be unique across all plans in your Stripe account. You can, however, use the same plan ID in both live and test modes. + """ + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + meter: NotRequired[str] + """ + The meter tracking the usage of a metered price + """ + nickname: NotRequired[str] + """ + A brief description of the plan, hidden from customers. + """ + product: NotRequired["PlanCreateParamsProduct|str"] + tiers: NotRequired[List["PlanCreateParamsTier"]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + tiers_mode: NotRequired[Literal["graduated", "volume"]] + """ + Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price, in `graduated` tiering pricing can successively change as the quantity grows. + """ + transform_usage: NotRequired["PlanCreateParamsTransformUsage"] + """ + Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with `tiers`. + """ + trial_period_days: NotRequired[int] + """ + Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan). + """ + usage_type: NotRequired[Literal["licensed", "metered"]] + """ + Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`. + """ + + +class PlanCreateParamsProduct(TypedDict): + active: NotRequired[bool] + """ + Whether the product is currently available for purchase. Defaults to `true`. + """ + id: NotRequired[str] + """ + The identifier for the product. Must be unique. If not provided, an identifier will be randomly generated. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + statement_descriptor: NotRequired[str] + """ + An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. + + This may be up to 22 characters. The statement description may not include `<`, `>`, `\\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + + +class PlanCreateParamsTier(TypedDict): + flat_amount: NotRequired[int] + """ + The flat billing amount for an entire tier, regardless of the number of units in the tier. + """ + flat_amount_decimal: NotRequired[str] + """ + Same as `flat_amount`, but accepts a decimal value representing an integer in the minor units of the currency. Only one of `flat_amount` and `flat_amount_decimal` can be set. + """ + unit_amount: NotRequired[int] + """ + The per unit billing amount for each individual unit for which this tier applies. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + up_to: Union[Literal["inf"], int] + """ + Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use `inf` to define a fallback tier. + """ + + +class PlanCreateParamsTransformUsage(TypedDict): + divide_by: int + """ + Divide usage by this number. + """ + round: Literal["down", "up"] + """ + After division, either round the result `up` or `down`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_delete_params.py new file mode 100644 index 00000000..7980a799 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class PlanDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_list_params.py new file mode 100644 index 00000000..e33e7ce1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PlanListParams(RequestOptions): + active: NotRequired[bool] + """ + Only return plans that are active or inactive (e.g., pass `false` to list all inactive plans). + """ + created: NotRequired["PlanListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + product: NotRequired[str] + """ + Only return plans for the given product. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class PlanListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_modify_params.py new file mode 100644 index 00000000..c9efc214 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_modify_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class PlanModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the plan is currently available for new subscriptions. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired[str] + """ + A brief description of the plan, hidden from customers. + """ + product: NotRequired[str] + """ + The product the plan belongs to. This cannot be changed once it has been used in a subscription or subscription schedule. + """ + trial_period_days: NotRequired[int] + """ + Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_retrieve_params.py new file mode 100644 index 00000000..f1d5ea9e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PlanRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_update_params.py new file mode 100644 index 00000000..7c2ef5cf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_plan_update_params.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PlanUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Whether the plan is currently available for new subscriptions. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired[str] + """ + A brief description of the plan, hidden from customers. + """ + product: NotRequired[str] + """ + The product the plan belongs to. This cannot be changed once it has been used in a subscription or subscription schedule. + """ + trial_period_days: NotRequired[int] + """ + Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_create_params.py new file mode 100644 index 00000000..decaa2d7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_create_params.py @@ -0,0 +1,262 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class PriceCreateParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the price can be used for new purchases. Defaults to `true`. + """ + billing_scheme: NotRequired[Literal["per_unit", "tiered"]] + """ + Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `unit_amount` or `unit_amount_decimal`) will be charged per unit in `quantity` (for prices with `usage_type=licensed`), or per unit of total usage (for prices with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[str, "PriceCreateParamsCurrencyOptions"] + ] + """ + Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + custom_unit_amount: NotRequired["PriceCreateParamsCustomUnitAmount"] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + lookup_key: NotRequired[str] + """ + A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired[str] + """ + A brief description of the price, hidden from customers. + """ + product: NotRequired[str] + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + product_data: NotRequired["PriceCreateParamsProductData"] + """ + These fields can be used to create a new product that this price will belong to. + """ + recurring: NotRequired["PriceCreateParamsRecurring"] + """ + The recurring components of a price such as `interval` and `usage_type`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tiers: NotRequired[List["PriceCreateParamsTier"]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + tiers_mode: NotRequired[Literal["graduated", "volume"]] + """ + Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price, in `graduated` tiering pricing can successively change as the quantity grows. + """ + transfer_lookup_key: NotRequired[bool] + """ + If set to true, will atomically remove the lookup key from the existing price, and assign it to this price. + """ + transform_quantity: NotRequired["PriceCreateParamsTransformQuantity"] + """ + Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with `tiers`. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. One of `unit_amount`, `unit_amount_decimal`, or `custom_unit_amount` is required, unless `billing_scheme=tiered`. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class PriceCreateParamsCurrencyOptions(TypedDict): + custom_unit_amount: NotRequired[ + "PriceCreateParamsCurrencyOptionsCustomUnitAmount" + ] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tiers: NotRequired[List["PriceCreateParamsCurrencyOptionsTier"]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class PriceCreateParamsCurrencyOptionsCustomUnitAmount(TypedDict): + enabled: bool + """ + Pass in `true` to enable `custom_unit_amount`, otherwise omit `custom_unit_amount`. + """ + maximum: NotRequired[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: NotRequired[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: NotRequired[int] + """ + The starting unit amount which can be updated by the customer. + """ + + +class PriceCreateParamsCurrencyOptionsTier(TypedDict): + flat_amount: NotRequired[int] + """ + The flat billing amount for an entire tier, regardless of the number of units in the tier. + """ + flat_amount_decimal: NotRequired[str] + """ + Same as `flat_amount`, but accepts a decimal value representing an integer in the minor units of the currency. Only one of `flat_amount` and `flat_amount_decimal` can be set. + """ + unit_amount: NotRequired[int] + """ + The per unit billing amount for each individual unit for which this tier applies. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + up_to: Union[Literal["inf"], int] + """ + Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use `inf` to define a fallback tier. + """ + + +class PriceCreateParamsCustomUnitAmount(TypedDict): + enabled: bool + """ + Pass in `true` to enable `custom_unit_amount`, otherwise omit `custom_unit_amount`. + """ + maximum: NotRequired[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: NotRequired[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: NotRequired[int] + """ + The starting unit amount which can be updated by the customer. + """ + + +class PriceCreateParamsProductData(TypedDict): + active: NotRequired[bool] + """ + Whether the product is currently available for purchase. Defaults to `true`. + """ + id: NotRequired[str] + """ + The identifier for the product. Must be unique. If not provided, an identifier will be randomly generated. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + statement_descriptor: NotRequired[str] + """ + An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. + + This may be up to 22 characters. The statement description may not include `<`, `>`, `\\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + + +class PriceCreateParamsRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + meter: NotRequired[str] + """ + The meter tracking the usage of a metered price + """ + trial_period_days: NotRequired[int] + """ + Default number of trial days when subscribing a customer to this price using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan). + """ + usage_type: NotRequired[Literal["licensed", "metered"]] + """ + Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`. + """ + + +class PriceCreateParamsTier(TypedDict): + flat_amount: NotRequired[int] + """ + The flat billing amount for an entire tier, regardless of the number of units in the tier. + """ + flat_amount_decimal: NotRequired[str] + """ + Same as `flat_amount`, but accepts a decimal value representing an integer in the minor units of the currency. Only one of `flat_amount` and `flat_amount_decimal` can be set. + """ + unit_amount: NotRequired[int] + """ + The per unit billing amount for each individual unit for which this tier applies. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + up_to: Union[Literal["inf"], int] + """ + Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use `inf` to define a fallback tier. + """ + + +class PriceCreateParamsTransformQuantity(TypedDict): + divide_by: int + """ + Divide usage by this number. + """ + round: Literal["down", "up"] + """ + After division, either round the result `up` or `down`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_list_params.py new file mode 100644 index 00000000..e1df106d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_list_params.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PriceListParams(RequestOptions): + active: NotRequired[bool] + """ + Only return prices that are active or inactive (e.g., pass `false` to list all inactive prices). + """ + created: NotRequired["PriceListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options. + """ + currency: NotRequired[str] + """ + Only return prices for the given currency. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + lookup_keys: NotRequired[List[str]] + """ + Only return the price with these lookup_keys, if any exist. You can specify up to 10 lookup_keys. + """ + product: NotRequired[str] + """ + Only return prices for the given product. + """ + recurring: NotRequired["PriceListParamsRecurring"] + """ + Only return prices with these recurring fields. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[Literal["one_time", "recurring"]] + """ + Only return prices of type `recurring` or `one_time`. + """ + + +class PriceListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class PriceListParamsRecurring(TypedDict): + interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Filter by billing frequency. Either `day`, `week`, `month` or `year`. + """ + meter: NotRequired[str] + """ + Filter by the price's meter. + """ + usage_type: NotRequired[Literal["licensed", "metered"]] + """ + Filter by the usage type for this price. Can be either `metered` or `licensed`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_modify_params.py new file mode 100644 index 00000000..1f8983ae --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_modify_params.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class PriceModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the price can be used for new purchases. Defaults to `true`. + """ + currency_options: NotRequired[ + "Literal['']|Dict[str, PriceModifyParamsCurrencyOptions]" + ] + """ + Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + lookup_key: NotRequired[str] + """ + A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired[str] + """ + A brief description of the price, hidden from customers. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + transfer_lookup_key: NotRequired[bool] + """ + If set to true, will atomically remove the lookup key from the existing price, and assign it to this price. + """ + + +class PriceModifyParamsCurrencyOptions(TypedDict): + custom_unit_amount: NotRequired[ + "PriceModifyParamsCurrencyOptionsCustomUnitAmount" + ] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tiers: NotRequired[List["PriceModifyParamsCurrencyOptionsTier"]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class PriceModifyParamsCurrencyOptionsCustomUnitAmount(TypedDict): + enabled: bool + """ + Pass in `true` to enable `custom_unit_amount`, otherwise omit `custom_unit_amount`. + """ + maximum: NotRequired[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: NotRequired[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: NotRequired[int] + """ + The starting unit amount which can be updated by the customer. + """ + + +class PriceModifyParamsCurrencyOptionsTier(TypedDict): + flat_amount: NotRequired[int] + """ + The flat billing amount for an entire tier, regardless of the number of units in the tier. + """ + flat_amount_decimal: NotRequired[str] + """ + Same as `flat_amount`, but accepts a decimal value representing an integer in the minor units of the currency. Only one of `flat_amount` and `flat_amount_decimal` can be set. + """ + unit_amount: NotRequired[int] + """ + The per unit billing amount for each individual unit for which this tier applies. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + up_to: Union[Literal["inf"], int] + """ + Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use `inf` to define a fallback tier. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_retrieve_params.py new file mode 100644 index 00000000..e8138021 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PriceRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_search_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_search_params.py new file mode 100644 index 00000000..f10b84c3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_search_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PriceSearchParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + page: NotRequired[str] + """ + A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + """ + query: str + """ + The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for prices](https://stripe.com/docs/search#query-fields-for-prices). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_update_params.py new file mode 100644 index 00000000..35b48361 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_price_update_params.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class PriceUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Whether the price can be used for new purchases. Defaults to `true`. + """ + currency_options: NotRequired[ + "Literal['']|Dict[str, PriceUpdateParamsCurrencyOptions]" + ] + """ + Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + lookup_key: NotRequired[str] + """ + A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired[str] + """ + A brief description of the price, hidden from customers. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + transfer_lookup_key: NotRequired[bool] + """ + If set to true, will atomically remove the lookup key from the existing price, and assign it to this price. + """ + + +class PriceUpdateParamsCurrencyOptions(TypedDict): + custom_unit_amount: NotRequired[ + "PriceUpdateParamsCurrencyOptionsCustomUnitAmount" + ] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tiers: NotRequired[List["PriceUpdateParamsCurrencyOptionsTier"]] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class PriceUpdateParamsCurrencyOptionsCustomUnitAmount(TypedDict): + enabled: bool + """ + Pass in `true` to enable `custom_unit_amount`, otherwise omit `custom_unit_amount`. + """ + maximum: NotRequired[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: NotRequired[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: NotRequired[int] + """ + The starting unit amount which can be updated by the customer. + """ + + +class PriceUpdateParamsCurrencyOptionsTier(TypedDict): + flat_amount: NotRequired[int] + """ + The flat billing amount for an entire tier, regardless of the number of units in the tier. + """ + flat_amount_decimal: NotRequired[str] + """ + Same as `flat_amount`, but accepts a decimal value representing an integer in the minor units of the currency. Only one of `flat_amount` and `flat_amount_decimal` can be set. + """ + unit_amount: NotRequired[int] + """ + The per unit billing amount for each individual unit for which this tier applies. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + up_to: Union[Literal["inf"], int] + """ + Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use `inf` to define a fallback tier. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_create_feature_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_create_feature_params.py new file mode 100644 index 00000000..4ec04f54 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_create_feature_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ProductCreateFeatureParams(RequestOptions): + entitlement_feature: str + """ + The ID of the [Feature](https://stripe.com/docs/api/entitlements/feature) object attached to this product. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_create_params.py new file mode 100644 index 00000000..761f0fd6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_create_params.py @@ -0,0 +1,243 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class ProductCreateParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the product is currently available for purchase. Defaults to `true`. + """ + default_price_data: NotRequired["ProductCreateParamsDefaultPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object. This Price will be set as the default price for this product. + """ + description: NotRequired[str] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + id: NotRequired[str] + """ + An identifier will be randomly generated by Stripe. You can optionally override this ID, but the ID must be unique across all products in your Stripe account. + """ + images: NotRequired[List[str]] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + marketing_features: NotRequired[ + List["ProductCreateParamsMarketingFeature"] + ] + """ + A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table). + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + package_dimensions: NotRequired["ProductCreateParamsPackageDimensions"] + """ + The dimensions of this product for shipping purposes. + """ + shippable: NotRequired[bool] + """ + Whether this product is shipped (i.e., physical goods). + """ + statement_descriptor: NotRequired[str] + """ + An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. + + This may be up to 22 characters. The statement description may not include `<`, `>`, `\\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. + It must contain at least one letter. Only used for subscription payments. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + type: NotRequired[Literal["good", "service"]] + """ + The type of the product. Defaults to `service` if not explicitly specified, enabling use of this product with Subscriptions and Plans. Set this parameter to `good` to use this product with Orders and SKUs. On API versions before `2018-02-05`, this field defaults to `good` for compatibility reasons. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + url: NotRequired[str] + """ + A URL of a publicly-accessible webpage for this product. + """ + + +class ProductCreateParamsDefaultPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[str, "ProductCreateParamsDefaultPriceDataCurrencyOptions"] + ] + """ + Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + custom_unit_amount: NotRequired[ + "ProductCreateParamsDefaultPriceDataCustomUnitAmount" + ] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + recurring: NotRequired["ProductCreateParamsDefaultPriceDataRecurring"] + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. One of `unit_amount`, `unit_amount_decimal`, or `custom_unit_amount` is required. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class ProductCreateParamsDefaultPriceDataCurrencyOptions(TypedDict): + custom_unit_amount: NotRequired[ + "ProductCreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmount" + ] + """ + When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + tiers: NotRequired[ + List["ProductCreateParamsDefaultPriceDataCurrencyOptionsTier"] + ] + """ + Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class ProductCreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmount( + TypedDict, +): + enabled: bool + """ + Pass in `true` to enable `custom_unit_amount`, otherwise omit `custom_unit_amount`. + """ + maximum: NotRequired[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: NotRequired[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: NotRequired[int] + """ + The starting unit amount which can be updated by the customer. + """ + + +class ProductCreateParamsDefaultPriceDataCurrencyOptionsTier(TypedDict): + flat_amount: NotRequired[int] + """ + The flat billing amount for an entire tier, regardless of the number of units in the tier. + """ + flat_amount_decimal: NotRequired[str] + """ + Same as `flat_amount`, but accepts a decimal value representing an integer in the minor units of the currency. Only one of `flat_amount` and `flat_amount_decimal` can be set. + """ + unit_amount: NotRequired[int] + """ + The per unit billing amount for each individual unit for which this tier applies. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + up_to: Union[Literal["inf"], int] + """ + Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use `inf` to define a fallback tier. + """ + + +class ProductCreateParamsDefaultPriceDataCustomUnitAmount(TypedDict): + enabled: bool + """ + Pass in `true` to enable `custom_unit_amount`, otherwise omit `custom_unit_amount`. + """ + maximum: NotRequired[int] + """ + The maximum unit amount the customer can specify for this item. + """ + minimum: NotRequired[int] + """ + The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount. + """ + preset: NotRequired[int] + """ + The starting unit amount which can be updated by the customer. + """ + + +class ProductCreateParamsDefaultPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class ProductCreateParamsMarketingFeature(TypedDict): + name: str + """ + The marketing feature name. Up to 80 characters long. + """ + + +class ProductCreateParamsPackageDimensions(TypedDict): + height: float + """ + Height, in inches. Maximum precision is 2 decimal places. + """ + length: float + """ + Length, in inches. Maximum precision is 2 decimal places. + """ + weight: float + """ + Weight, in ounces. Maximum precision is 2 decimal places. + """ + width: float + """ + Width, in inches. Maximum precision is 2 decimal places. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_delete_feature_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_delete_feature_params.py new file mode 100644 index 00000000..354bb60a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_delete_feature_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class ProductDeleteFeatureParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_delete_params.py new file mode 100644 index 00000000..b758f6bf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class ProductDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_create_params.py new file mode 100644 index 00000000..b52580ed --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_create_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ProductFeatureCreateParams(TypedDict): + entitlement_feature: str + """ + The ID of the [Feature](https://stripe.com/docs/api/entitlements/feature) object attached to this product. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_delete_params.py new file mode 100644 index 00000000..8cee6f28 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class ProductFeatureDeleteParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_list_params.py new file mode 100644 index 00000000..6e35305b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ProductFeatureListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_retrieve_params.py new file mode 100644 index 00000000..d3419641 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_feature_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ProductFeatureRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_list_features_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_list_features_params.py new file mode 100644 index 00000000..23b45565 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_list_features_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ProductListFeaturesParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_list_params.py new file mode 100644 index 00000000..c52f65b8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_list_params.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ProductListParams(RequestOptions): + active: NotRequired[bool] + """ + Only return products that are active or inactive (e.g., pass `false` to list all inactive products). + """ + created: NotRequired["ProductListParamsCreated|int"] + """ + Only return products that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + ids: NotRequired[List[str]] + """ + Only return products with the given IDs. Cannot be used with [starting_after](https://stripe.com/docs/api#list_products-starting_after) or [ending_before](https://stripe.com/docs/api#list_products-ending_before). + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + shippable: NotRequired[bool] + """ + Only return products that can be shipped (i.e., physical, not digital products). + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[Literal["good", "service"]] + """ + Only return products of this type. + """ + url: NotRequired[str] + """ + Only return products with the given url. + """ + + +class ProductListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_modify_params.py new file mode 100644 index 00000000..1a738195 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_modify_params.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ProductModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the product is available for purchase. + """ + default_price: NotRequired[str] + """ + The ID of the [Price](https://stripe.com/docs/api/prices) object that is the default price for this product. + """ + description: NotRequired["Literal['']|str"] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + images: NotRequired["Literal['']|List[str]"] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + marketing_features: NotRequired[ + "Literal['']|List[ProductModifyParamsMarketingFeature]" + ] + """ + A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table). + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + The product's name, meant to be displayable to the customer. + """ + package_dimensions: NotRequired[ + "Literal['']|ProductModifyParamsPackageDimensions" + ] + """ + The dimensions of this product for shipping purposes. + """ + shippable: NotRequired[bool] + """ + Whether this product is shipped (i.e., physical goods). + """ + statement_descriptor: NotRequired[str] + """ + An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. + + This may be up to 22 characters. The statement description may not include `<`, `>`, `\\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. + It must contain at least one letter. May only be set if `type=service`. Only used for subscription payments. + """ + tax_code: NotRequired["Literal['']|str"] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired["Literal['']|str"] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. May only be set if `type=service`. + """ + url: NotRequired["Literal['']|str"] + """ + A URL of a publicly-accessible webpage for this product. + """ + + +class ProductModifyParamsMarketingFeature(TypedDict): + name: str + """ + The marketing feature name. Up to 80 characters long. + """ + + +class ProductModifyParamsPackageDimensions(TypedDict): + height: float + """ + Height, in inches. Maximum precision is 2 decimal places. + """ + length: float + """ + Length, in inches. Maximum precision is 2 decimal places. + """ + weight: float + """ + Weight, in ounces. Maximum precision is 2 decimal places. + """ + width: float + """ + Width, in inches. Maximum precision is 2 decimal places. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_retrieve_feature_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_retrieve_feature_params.py new file mode 100644 index 00000000..7d3f8f20 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_retrieve_feature_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ProductRetrieveFeatureParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_retrieve_params.py new file mode 100644 index 00000000..c9cc1bd6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ProductRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_search_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_search_params.py new file mode 100644 index 00000000..e9ac3e56 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_search_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ProductSearchParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + page: NotRequired[str] + """ + A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + """ + query: str + """ + The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for products](https://stripe.com/docs/search#query-fields-for-products). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_update_params.py new file mode 100644 index 00000000..685966a0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_product_update_params.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ProductUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Whether the product is available for purchase. + """ + default_price: NotRequired[str] + """ + The ID of the [Price](https://stripe.com/docs/api/prices) object that is the default price for this product. + """ + description: NotRequired["Literal['']|str"] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + images: NotRequired["Literal['']|List[str]"] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + marketing_features: NotRequired[ + "Literal['']|List[ProductUpdateParamsMarketingFeature]" + ] + """ + A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table). + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + The product's name, meant to be displayable to the customer. + """ + package_dimensions: NotRequired[ + "Literal['']|ProductUpdateParamsPackageDimensions" + ] + """ + The dimensions of this product for shipping purposes. + """ + shippable: NotRequired[bool] + """ + Whether this product is shipped (i.e., physical goods). + """ + statement_descriptor: NotRequired[str] + """ + An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. + + This may be up to 22 characters. The statement description may not include `<`, `>`, `\\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. + It must contain at least one letter. May only be set if `type=service`. Only used for subscription payments. + """ + tax_code: NotRequired["Literal['']|str"] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired["Literal['']|str"] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. May only be set if `type=service`. + """ + url: NotRequired["Literal['']|str"] + """ + A URL of a publicly-accessible webpage for this product. + """ + + +class ProductUpdateParamsMarketingFeature(TypedDict): + name: str + """ + The marketing feature name. Up to 80 characters long. + """ + + +class ProductUpdateParamsPackageDimensions(TypedDict): + height: float + """ + Height, in inches. Maximum precision is 2 decimal places. + """ + length: float + """ + Length, in inches. Maximum precision is 2 decimal places. + """ + weight: float + """ + Weight, in ounces. Maximum precision is 2 decimal places. + """ + width: float + """ + Width, in inches. Maximum precision is 2 decimal places. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_create_params.py new file mode 100644 index 00000000..684750d8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_create_params.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PromotionCodeCreateParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the promotion code is currently active. + """ + code: NotRequired[str] + """ + The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for a specific customer. Valid characters are lower case letters (a-z), upper case letters (A-Z), and digits (0-9). + + If left blank, we will generate one automatically. + """ + customer: NotRequired[str] + """ + The customer that this promotion code can be used by. If not set, the promotion code can be used by all customers. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + The timestamp at which this promotion code will expire. If the coupon has specified a `redeems_by`, then this value cannot be after the coupon's `redeems_by`. + """ + max_redemptions: NotRequired[int] + """ + A positive integer specifying the number of times the promotion code can be redeemed. If the coupon has specified a `max_redemptions`, then this value cannot be greater than the coupon's `max_redemptions`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + promotion: "PromotionCodeCreateParamsPromotion" + """ + The promotion referenced by this promotion code. + """ + restrictions: NotRequired["PromotionCodeCreateParamsRestrictions"] + """ + Settings that restrict the redemption of the promotion code. + """ + + +class PromotionCodeCreateParamsPromotion(TypedDict): + coupon: NotRequired[str] + """ + If promotion `type` is `coupon`, the coupon for this promotion code. + """ + type: Literal["coupon"] + """ + Specifies the type of promotion. + """ + + +class PromotionCodeCreateParamsRestrictions(TypedDict): + currency_options: NotRequired[ + Dict[str, "PromotionCodeCreateParamsRestrictionsCurrencyOptions"] + ] + """ + Promotion codes defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + first_time_transaction: NotRequired[bool] + """ + A Boolean indicating if the Promotion Code should only be redeemed for Customers without any successful payments or invoices + """ + minimum_amount: NotRequired[int] + """ + Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work). + """ + minimum_amount_currency: NotRequired[str] + """ + Three-letter [ISO code](https://stripe.com/docs/currencies) for minimum_amount + """ + + +class PromotionCodeCreateParamsRestrictionsCurrencyOptions(TypedDict): + minimum_amount: NotRequired[int] + """ + Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_list_params.py new file mode 100644 index 00000000..693f319a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_list_params.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PromotionCodeListParams(RequestOptions): + active: NotRequired[bool] + """ + Filter promotion codes by whether they are active. + """ + code: NotRequired[str] + """ + Only return promotion codes that have this case-insensitive code. + """ + coupon: NotRequired[str] + """ + Only return promotion codes for this coupon. + """ + created: NotRequired["PromotionCodeListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options. + """ + customer: NotRequired[str] + """ + Only return promotion codes that are restricted to this customer. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class PromotionCodeListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_modify_params.py new file mode 100644 index 00000000..671f7047 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_modify_params.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PromotionCodeModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the promotion code is currently active. A promotion code can only be reactivated when the coupon is still valid and the promotion code is otherwise redeemable. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + restrictions: NotRequired["PromotionCodeModifyParamsRestrictions"] + """ + Settings that restrict the redemption of the promotion code. + """ + + +class PromotionCodeModifyParamsRestrictions(TypedDict): + currency_options: NotRequired[ + Dict[str, "PromotionCodeModifyParamsRestrictionsCurrencyOptions"] + ] + """ + Promotion codes defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class PromotionCodeModifyParamsRestrictionsCurrencyOptions(TypedDict): + minimum_amount: NotRequired[int] + """ + Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_retrieve_params.py new file mode 100644 index 00000000..5129081a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PromotionCodeRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_update_params.py new file mode 100644 index 00000000..9f05b1a7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_promotion_code_update_params.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PromotionCodeUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Whether the promotion code is currently active. A promotion code can only be reactivated when the coupon is still valid and the promotion code is otherwise redeemable. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + restrictions: NotRequired["PromotionCodeUpdateParamsRestrictions"] + """ + Settings that restrict the redemption of the promotion code. + """ + + +class PromotionCodeUpdateParamsRestrictions(TypedDict): + currency_options: NotRequired[ + Dict[str, "PromotionCodeUpdateParamsRestrictionsCurrencyOptions"] + ] + """ + Promotion codes defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class PromotionCodeUpdateParamsRestrictionsCurrencyOptions(TypedDict): + minimum_amount: NotRequired[int] + """ + Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_accept_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_accept_params.py new file mode 100644 index 00000000..5199188c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_accept_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class QuoteAcceptParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_cancel_params.py new file mode 100644 index 00000000..1797e465 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class QuoteCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_computed_upfront_line_items_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_computed_upfront_line_items_list_params.py new file mode 100644 index 00000000..6106ebe9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_computed_upfront_line_items_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class QuoteComputedUpfrontLineItemsListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_create_params.py new file mode 100644 index 00000000..13b910fa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_create_params.py @@ -0,0 +1,298 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class QuoteCreateParams(RequestOptions): + application_fee_amount: NotRequired["Literal['']|int"] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field. + """ + application_fee_percent: NotRequired["Literal['']|float"] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field. + """ + automatic_tax: NotRequired["QuoteCreateParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this quote and resulting invoices and subscriptions. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or at invoice finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`. + """ + customer: NotRequired[str] + """ + The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any line item that does not have `tax_rates` set. + """ + description: NotRequired["Literal['']|str"] + """ + A description that will be displayed on the quote PDF. If no value is passed, the default description configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used. + """ + discounts: NotRequired["Literal['']|List[QuoteCreateParamsDiscount]"] + """ + The discounts applied to the quote. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. If no value is passed, the default expiration date configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used. + """ + footer: NotRequired["Literal['']|str"] + """ + A footer that will be displayed on the quote PDF. If no value is passed, the default footer configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used. + """ + from_quote: NotRequired["QuoteCreateParamsFromQuote"] + """ + Clone an existing quote. The new quote will be created in `status=draft`. When using this parameter, you cannot specify any other parameters except for `expires_at`. + """ + header: NotRequired["Literal['']|str"] + """ + A header that will be displayed on the quote PDF. If no value is passed, the default header configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used. + """ + invoice_settings: NotRequired["QuoteCreateParamsInvoiceSettings"] + """ + All invoices will be billed using the specified settings. + """ + line_items: NotRequired[List["QuoteCreateParamsLineItem"]] + """ + A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge. + """ + subscription_data: NotRequired["QuoteCreateParamsSubscriptionData"] + """ + When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created. + """ + test_clock: NotRequired[str] + """ + ID of the test clock to attach to the quote. + """ + transfer_data: NotRequired["Literal['']|QuoteCreateParamsTransferData"] + """ + The data with which to automatically create a Transfer for each of the invoices. + """ + + +class QuoteCreateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Controls whether Stripe will automatically compute tax on the resulting invoices or subscriptions as well as the quote itself. + """ + liability: NotRequired["QuoteCreateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class QuoteCreateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class QuoteCreateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class QuoteCreateParamsFromQuote(TypedDict): + is_revision: NotRequired[bool] + """ + Whether this quote is a revision of the previous quote. + """ + quote: str + """ + The `id` of the quote that will be cloned. + """ + + +class QuoteCreateParamsInvoiceSettings(TypedDict): + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay the invoice generated by this quote. This value will be `null` for quotes where `collection_method=charge_automatically`. + """ + issuer: NotRequired["QuoteCreateParamsInvoiceSettingsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class QuoteCreateParamsInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class QuoteCreateParamsLineItem(TypedDict): + discounts: NotRequired[ + "Literal['']|List[QuoteCreateParamsLineItemDiscount]" + ] + """ + The discounts applied to this line item. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["QuoteCreateParamsLineItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + The quantity of the line item. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the line item. When set, the `default_tax_rates` on the quote do not apply to this line item. + """ + + +class QuoteCreateParamsLineItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class QuoteCreateParamsLineItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: NotRequired["QuoteCreateParamsLineItemPriceDataRecurring"] + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class QuoteCreateParamsLineItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class QuoteCreateParamsSubscriptionData(TypedDict): + billing_mode: NotRequired["QuoteCreateParamsSubscriptionDataBillingMode"] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + description: NotRequired[str] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + effective_date: NotRequired[ + "Literal['']|Literal['current_period_end']|int" + ] + """ + When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. The `effective_date` is ignored if it is in the past when the quote is accepted. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + trial_period_days: NotRequired["Literal['']|int"] + """ + Integer representing the number of trial period days before the customer is charged for the first time. + """ + + +class QuoteCreateParamsSubscriptionDataBillingMode(TypedDict): + flexible: NotRequired[ + "QuoteCreateParamsSubscriptionDataBillingModeFlexible" + ] + """ + Configure behavior for flexible billing mode. + """ + type: Literal["classic", "flexible"] + """ + Controls the calculation and orchestration of prorations and invoices for subscriptions. If no value is passed, the default is `flexible`. + """ + + +class QuoteCreateParamsSubscriptionDataBillingModeFlexible(TypedDict): + proration_discounts: NotRequired[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + +class QuoteCreateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field. + """ + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. There must be at least 1 line item with a recurring price to use this field. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_finalize_quote_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_finalize_quote_params.py new file mode 100644 index 00000000..e07b0558 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_finalize_quote_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class QuoteFinalizeQuoteParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_line_item_list_params.py new file mode 100644 index 00000000..b08ec8ec --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class QuoteLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_computed_upfront_line_items_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_computed_upfront_line_items_params.py new file mode 100644 index 00000000..4f38ee12 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_computed_upfront_line_items_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class QuoteListComputedUpfrontLineItemsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_line_items_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_line_items_params.py new file mode 100644 index 00000000..1cbaa9e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_line_items_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class QuoteListLineItemsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_params.py new file mode 100644 index 00000000..cb888202 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_list_params.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class QuoteListParams(RequestOptions): + customer: NotRequired[str] + """ + The ID of the customer whose quotes will be retrieved. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["accepted", "canceled", "draft", "open"]] + """ + The status of the quote. + """ + test_clock: NotRequired[str] + """ + Provides a list of quotes that are associated with the specified test clock. The response will not include quotes with test clocks if this and the customer parameter is not set. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_modify_params.py new file mode 100644 index 00000000..9a66752a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_modify_params.py @@ -0,0 +1,259 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class QuoteModifyParams(RequestOptions): + application_fee_amount: NotRequired["Literal['']|int"] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field. + """ + application_fee_percent: NotRequired["Literal['']|float"] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field. + """ + automatic_tax: NotRequired["QuoteModifyParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this quote and resulting invoices and subscriptions. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or at invoice finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`. + """ + customer: NotRequired[str] + """ + The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any line item that does not have `tax_rates` set. + """ + description: NotRequired["Literal['']|str"] + """ + A description that will be displayed on the quote PDF. + """ + discounts: NotRequired["Literal['']|List[QuoteModifyParamsDiscount]"] + """ + The discounts applied to the quote. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. + """ + footer: NotRequired["Literal['']|str"] + """ + A footer that will be displayed on the quote PDF. + """ + header: NotRequired["Literal['']|str"] + """ + A header that will be displayed on the quote PDF. + """ + invoice_settings: NotRequired["QuoteModifyParamsInvoiceSettings"] + """ + All invoices will be billed using the specified settings. + """ + line_items: NotRequired[List["QuoteModifyParamsLineItem"]] + """ + A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge. + """ + subscription_data: NotRequired["QuoteModifyParamsSubscriptionData"] + """ + When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created. + """ + transfer_data: NotRequired["Literal['']|QuoteModifyParamsTransferData"] + """ + The data with which to automatically create a Transfer for each of the invoices. + """ + + +class QuoteModifyParamsAutomaticTax(TypedDict): + enabled: bool + """ + Controls whether Stripe will automatically compute tax on the resulting invoices or subscriptions as well as the quote itself. + """ + liability: NotRequired["QuoteModifyParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class QuoteModifyParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class QuoteModifyParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class QuoteModifyParamsInvoiceSettings(TypedDict): + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay the invoice generated by this quote. This value will be `null` for quotes where `collection_method=charge_automatically`. + """ + issuer: NotRequired["QuoteModifyParamsInvoiceSettingsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class QuoteModifyParamsInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class QuoteModifyParamsLineItem(TypedDict): + discounts: NotRequired[ + "Literal['']|List[QuoteModifyParamsLineItemDiscount]" + ] + """ + The discounts applied to this line item. + """ + id: NotRequired[str] + """ + The ID of an existing line item on the quote. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["QuoteModifyParamsLineItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + The quantity of the line item. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the line item. When set, the `default_tax_rates` on the quote do not apply to this line item. + """ + + +class QuoteModifyParamsLineItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class QuoteModifyParamsLineItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: NotRequired["QuoteModifyParamsLineItemPriceDataRecurring"] + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class QuoteModifyParamsLineItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class QuoteModifyParamsSubscriptionData(TypedDict): + description: NotRequired["Literal['']|str"] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + effective_date: NotRequired[ + "Literal['']|Literal['current_period_end']|int" + ] + """ + When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. The `effective_date` is ignored if it is in the past when the quote is accepted. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + trial_period_days: NotRequired["Literal['']|int"] + """ + Integer representing the number of trial period days before the customer is charged for the first time. + """ + + +class QuoteModifyParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field. + """ + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. There must be at least 1 line item with a recurring price to use this field. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_pdf_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_pdf_params.py new file mode 100644 index 00000000..2ac05dbf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_pdf_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class QuotePdfParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_retrieve_params.py new file mode 100644 index 00000000..744ea9ed --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class QuoteRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_update_params.py new file mode 100644 index 00000000..630d474e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_quote_update_params.py @@ -0,0 +1,258 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class QuoteUpdateParams(TypedDict): + application_fee_amount: NotRequired["Literal['']|int"] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field. + """ + application_fee_percent: NotRequired["Literal['']|float"] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field. + """ + automatic_tax: NotRequired["QuoteUpdateParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this quote and resulting invoices and subscriptions. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or at invoice finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`. + """ + customer: NotRequired[str] + """ + The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any line item that does not have `tax_rates` set. + """ + description: NotRequired["Literal['']|str"] + """ + A description that will be displayed on the quote PDF. + """ + discounts: NotRequired["Literal['']|List[QuoteUpdateParamsDiscount]"] + """ + The discounts applied to the quote. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. + """ + footer: NotRequired["Literal['']|str"] + """ + A footer that will be displayed on the quote PDF. + """ + header: NotRequired["Literal['']|str"] + """ + A header that will be displayed on the quote PDF. + """ + invoice_settings: NotRequired["QuoteUpdateParamsInvoiceSettings"] + """ + All invoices will be billed using the specified settings. + """ + line_items: NotRequired[List["QuoteUpdateParamsLineItem"]] + """ + A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge. + """ + subscription_data: NotRequired["QuoteUpdateParamsSubscriptionData"] + """ + When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created. + """ + transfer_data: NotRequired["Literal['']|QuoteUpdateParamsTransferData"] + """ + The data with which to automatically create a Transfer for each of the invoices. + """ + + +class QuoteUpdateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Controls whether Stripe will automatically compute tax on the resulting invoices or subscriptions as well as the quote itself. + """ + liability: NotRequired["QuoteUpdateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class QuoteUpdateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class QuoteUpdateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class QuoteUpdateParamsInvoiceSettings(TypedDict): + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay the invoice generated by this quote. This value will be `null` for quotes where `collection_method=charge_automatically`. + """ + issuer: NotRequired["QuoteUpdateParamsInvoiceSettingsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class QuoteUpdateParamsInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class QuoteUpdateParamsLineItem(TypedDict): + discounts: NotRequired[ + "Literal['']|List[QuoteUpdateParamsLineItemDiscount]" + ] + """ + The discounts applied to this line item. + """ + id: NotRequired[str] + """ + The ID of an existing line item on the quote. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["QuoteUpdateParamsLineItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + The quantity of the line item. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the line item. When set, the `default_tax_rates` on the quote do not apply to this line item. + """ + + +class QuoteUpdateParamsLineItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class QuoteUpdateParamsLineItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: NotRequired["QuoteUpdateParamsLineItemPriceDataRecurring"] + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class QuoteUpdateParamsLineItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class QuoteUpdateParamsSubscriptionData(TypedDict): + description: NotRequired["Literal['']|str"] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + effective_date: NotRequired[ + "Literal['']|Literal['current_period_end']|int" + ] + """ + When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. The `effective_date` is ignored if it is in the past when the quote is accepted. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values. + """ + trial_period_days: NotRequired["Literal['']|int"] + """ + Integer representing the number of trial period days before the customer is charged for the first time. + """ + + +class QuoteUpdateParamsTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field. + """ + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. There must be at least 1 line item with a recurring price to use this field. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_cancel_params.py new file mode 100644 index 00000000..277b3294 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class RefundCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_create_params.py new file mode 100644 index 00000000..c8d7eac1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_create_params.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class RefundCreateParams(RequestOptions): + amount: NotRequired[int] + charge: NotRequired[str] + """ + The identifier of the charge to refund. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: NotRequired[str] + """ + Customer whose customer balance to refund from. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + instructions_email: NotRequired[str] + """ + For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + origin: NotRequired[Literal["customer_balance"]] + """ + Origin of the refund + """ + payment_intent: NotRequired[str] + """ + The identifier of the PaymentIntent to refund. + """ + reason: NotRequired[ + Literal["duplicate", "fraudulent", "requested_by_customer"] + ] + """ + String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms. + """ + refund_application_fee: NotRequired[bool] + """ + Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge. + """ + reverse_transfer: NotRequired[bool] + """ + Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount). + + A transfer can be reversed only by the application that created the charge. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_expire_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_expire_params.py new file mode 100644 index 00000000..ae2ce2cc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_expire_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class RefundExpireParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_list_params.py new file mode 100644 index 00000000..e1d8aa2b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class RefundListParams(RequestOptions): + charge: NotRequired[str] + """ + Only return refunds for the charge specified by this charge ID. + """ + created: NotRequired["RefundListParamsCreated|int"] + """ + Only return refunds that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment_intent: NotRequired[str] + """ + Only return refunds for the PaymentIntent specified by this ID. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class RefundListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_modify_params.py new file mode 100644 index 00000000..86df6e4f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_modify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class RefundModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_retrieve_params.py new file mode 100644 index 00000000..56741a7d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class RefundRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_update_params.py new file mode 100644 index 00000000..615d175a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_refund_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class RefundUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_approve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_approve_params.py new file mode 100644 index 00000000..c26e9f5b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_approve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReviewApproveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_list_params.py new file mode 100644 index 00000000..8590693d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_list_params.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ReviewListParams(RequestOptions): + created: NotRequired["ReviewListParamsCreated|int"] + """ + Only return reviews that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class ReviewListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_retrieve_params.py new file mode 100644 index 00000000..7a1a3cab --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_review_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReviewRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_attempt_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_attempt_list_params.py new file mode 100644 index 00000000..afd60a4c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_attempt_list_params.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class SetupAttemptListParams(RequestOptions): + created: NotRequired["SetupAttemptListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value + can be a string with an integer Unix timestamp or a + dictionary with a number of different query options. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + setup_intent: str + """ + Only return SetupAttempts created by the SetupIntent specified by + this ID. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class SetupAttemptListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_cancel_params.py new file mode 100644 index 00000000..76c79689 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_cancel_params.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class SetupIntentCancelParams(RequestOptions): + cancellation_reason: NotRequired[ + Literal["abandoned", "duplicate", "requested_by_customer"] + ] + """ + Reason for canceling this SetupIntent. Possible values are: `abandoned`, `requested_by_customer`, or `duplicate` + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_confirm_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_confirm_params.py new file mode 100644 index 00000000..bb3a5b02 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_confirm_params.py @@ -0,0 +1,1418 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SetupIntentConfirmParams(RequestOptions): + confirmation_token: NotRequired[str] + """ + ID of the ConfirmationToken used to confirm this SetupIntent. + + If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + mandate_data: NotRequired[ + "Literal['']|SetupIntentConfirmParamsMandateData" + ] + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. + """ + payment_method_data: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodData" + ] + """ + When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method) + value in the SetupIntent. + """ + payment_method_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptions" + ] + """ + Payment method-specific configuration for this SetupIntent. + """ + return_url: NotRequired[str] + """ + The URL to redirect your customer back to after they authenticate on the payment method's app or site. + If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. + This parameter is only used for cards and other redirect-based payment methods. + """ + use_stripe_sdk: NotRequired[bool] + """ + Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. + """ + + +class SetupIntentConfirmParamsMandateData(TypedDict): + customer_acceptance: NotRequired[ + "SetupIntentConfirmParamsMandateDataCustomerAcceptance" + ] + """ + This hash contains details about the customer acceptance of the Mandate. + """ + + +class SetupIntentConfirmParamsMandateDataCustomerAcceptance(TypedDict): + accepted_at: NotRequired[int] + """ + The time at which the customer accepted the Mandate. + """ + offline: NotRequired[ + "SetupIntentConfirmParamsMandateDataCustomerAcceptanceOffline" + ] + """ + If this is a Mandate accepted offline, this hash contains details about the offline acceptance. + """ + online: NotRequired[ + "SetupIntentConfirmParamsMandateDataCustomerAcceptanceOnline" + ] + """ + If this is a Mandate accepted online, this hash contains details about the online acceptance. + """ + type: Literal["offline", "online"] + """ + The type of customer acceptance information included with the Mandate. One of `online` or `offline`. + """ + + +class SetupIntentConfirmParamsMandateDataCustomerAcceptanceOffline(TypedDict): + pass + + +class SetupIntentConfirmParamsMandateDataCustomerAcceptanceOnline(TypedDict): + ip_address: NotRequired[str] + """ + The IP address from which the Mandate was accepted by the customer. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the Mandate was accepted by the customer. + """ + + +class SetupIntentConfirmParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["SetupIntentConfirmParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["SetupIntentConfirmParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["SetupIntentConfirmParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["SetupIntentConfirmParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["SetupIntentConfirmParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["SetupIntentConfirmParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["SetupIntentConfirmParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["SetupIntentConfirmParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["SetupIntentConfirmParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["SetupIntentConfirmParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["SetupIntentConfirmParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["SetupIntentConfirmParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["SetupIntentConfirmParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired["SetupIntentConfirmParamsPaymentMethodDataKakaoPay"] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["SetupIntentConfirmParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["SetupIntentConfirmParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["SetupIntentConfirmParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["SetupIntentConfirmParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["SetupIntentConfirmParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataMobilepay" + ] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired["SetupIntentConfirmParamsPaymentMethodDataNaverPay"] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["SetupIntentConfirmParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["SetupIntentConfirmParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["SetupIntentConfirmParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["SetupIntentConfirmParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["SetupIntentConfirmParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["SetupIntentConfirmParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["SetupIntentConfirmParamsPaymentMethodDataSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["SetupIntentConfirmParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["SetupIntentConfirmParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["SetupIntentConfirmParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["SetupIntentConfirmParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataAlma(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class SetupIntentConfirmParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataBillie(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|SetupIntentConfirmParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataBillingDetailsAddress( + TypedDict +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataBlik(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class SetupIntentConfirmParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["SetupIntentConfirmParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class SetupIntentConfirmParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataLink(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataPayco(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataPix(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataSwish(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataTwint(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class SetupIntentConfirmParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodDataZip(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options. + """ + amazon_pay: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options. + """ + bacs_debit: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options. + """ + card: NotRequired["SetupIntentConfirmParamsPaymentMethodOptionsCard"] + """ + Configuration for any card setup attempted on this SetupIntent. + """ + card_present: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options. + """ + klarna: NotRequired["SetupIntentConfirmParamsPaymentMethodOptionsKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options. + """ + link: NotRequired["SetupIntentConfirmParamsPaymentMethodOptionsLink"] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + paypal: NotRequired["SetupIntentConfirmParamsPaymentMethodOptionsPaypal"] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + sepa_debit: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + us_bank_account: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsAcssDebit(TypedDict): + currency: NotRequired[Literal["cad", "usd"]] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + mandate_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + default_for: NotRequired[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsAmazonPay(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsCard(TypedDict): + mandate_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter signals that a card has been collected + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + three_d_secure: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this setup. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsCardMandateOptions( + TypedDict +): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + currency: str + """ + Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecure(TypedDict): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: NotRequired[str] + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + network_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: NotRequired[str] + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: NotRequired[Literal["1.0.2", "2.1.0", "2.2.0"]] + """ + The version of 3D Secure that was performed. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsCardPresent(TypedDict): + pass + + +class SetupIntentConfirmParamsPaymentMethodOptionsKlarna(TypedDict): + currency: NotRequired[str] + """ + The currency of the SetupIntent. Three letter ISO currency code. + """ + on_demand: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up a payment method for on-demand payments. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + subscriptions: NotRequired[ + "Literal['']|List[SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscription( + TypedDict +): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: "SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsLink(TypedDict): + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsPaypal(TypedDict): + billing_agreement_id: NotRequired[str] + """ + The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class SetupIntentConfirmParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_create_params.py new file mode 100644 index 00000000..5ea3189f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_create_params.py @@ -0,0 +1,1544 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SetupIntentCreateParams(RequestOptions): + attach_to_self: NotRequired[bool] + """ + If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + + It can only be used for this Stripe Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer. + """ + automatic_payment_methods: NotRequired[ + "SetupIntentCreateParamsAutomaticPaymentMethods" + ] + """ + When you enable this parameter, this SetupIntent accepts payment methods that you enable in the Dashboard and that are compatible with its other parameters. + """ + confirm: NotRequired[bool] + """ + Set to `true` to attempt to confirm this SetupIntent immediately. This parameter defaults to `false`. If a card is the attached payment method, you can provide a `return_url` in case further authentication is necessary. + """ + confirmation_token: NotRequired[str] + """ + ID of the ConfirmationToken used to confirm this SetupIntent. + + If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence. + """ + customer: NotRequired[str] + """ + ID of the Customer this SetupIntent belongs to, if one exists. + + If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + excluded_payment_method_types: NotRequired[ + List[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + The list of payment method types to exclude from use with this SetupIntent. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + flow_directions: NotRequired[List[Literal["inbound", "outbound"]]] + """ + Indicates the directions of money movement for which this payment method is intended to be used. + + Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes. + """ + mandate_data: NotRequired["Literal['']|SetupIntentCreateParamsMandateData"] + """ + This hash contains details about the mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm). + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The Stripe account ID created for this SetupIntent. + """ + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. + """ + payment_method_configuration: NotRequired[str] + """ + The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this SetupIntent. + """ + payment_method_data: NotRequired[ + "SetupIntentCreateParamsPaymentMethodData" + ] + """ + When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method) + value in the SetupIntent. + """ + payment_method_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptions" + ] + """ + Payment method-specific configuration for this SetupIntent. + """ + payment_method_types: NotRequired[List[str]] + """ + The list of payment method types (for example, card) that this SetupIntent can use. If you don't provide this, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + return_url: NotRequired[str] + """ + The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. To redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm). + """ + single_use: NotRequired["SetupIntentCreateParamsSingleUse"] + """ + If you populate this hash, this SetupIntent generates a `single_use` mandate after successful completion. + + Single-use mandates are only valid for the following payment methods: `acss_debit`, `alipay`, `au_becs_debit`, `bacs_debit`, `bancontact`, `boleto`, `ideal`, `link`, `sepa_debit`, and `us_bank_account`. + """ + usage: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates how the payment method is intended to be used in the future. If not provided, this value defaults to `off_session`. + """ + use_stripe_sdk: NotRequired[bool] + """ + Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. + """ + + +class SetupIntentCreateParamsAutomaticPaymentMethods(TypedDict): + allow_redirects: NotRequired[Literal["always", "never"]] + """ + Controls whether this SetupIntent will accept redirect-based payment methods. + + Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/setup_intents/confirm) this SetupIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the setup. + """ + enabled: bool + """ + Whether this feature is enabled. + """ + + +class SetupIntentCreateParamsMandateData(TypedDict): + customer_acceptance: "SetupIntentCreateParamsMandateDataCustomerAcceptance" + """ + This hash contains details about the customer acceptance of the Mandate. + """ + + +class SetupIntentCreateParamsMandateDataCustomerAcceptance(TypedDict): + accepted_at: NotRequired[int] + """ + The time at which the customer accepted the Mandate. + """ + offline: NotRequired[ + "SetupIntentCreateParamsMandateDataCustomerAcceptanceOffline" + ] + """ + If this is a Mandate accepted offline, this hash contains details about the offline acceptance. + """ + online: NotRequired[ + "SetupIntentCreateParamsMandateDataCustomerAcceptanceOnline" + ] + """ + If this is a Mandate accepted online, this hash contains details about the online acceptance. + """ + type: Literal["offline", "online"] + """ + The type of customer acceptance information included with the Mandate. One of `online` or `offline`. + """ + + +class SetupIntentCreateParamsMandateDataCustomerAcceptanceOffline(TypedDict): + pass + + +class SetupIntentCreateParamsMandateDataCustomerAcceptanceOnline(TypedDict): + ip_address: str + """ + The IP address from which the Mandate was accepted by the customer. + """ + user_agent: str + """ + The user agent of the browser from which the Mandate was accepted by the customer. + """ + + +class SetupIntentCreateParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["SetupIntentCreateParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["SetupIntentCreateParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["SetupIntentCreateParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["SetupIntentCreateParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["SetupIntentCreateParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["SetupIntentCreateParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["SetupIntentCreateParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["SetupIntentCreateParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["SetupIntentCreateParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["SetupIntentCreateParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["SetupIntentCreateParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["SetupIntentCreateParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["SetupIntentCreateParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired["SetupIntentCreateParamsPaymentMethodDataKakaoPay"] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["SetupIntentCreateParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["SetupIntentCreateParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["SetupIntentCreateParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["SetupIntentCreateParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["SetupIntentCreateParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired["SetupIntentCreateParamsPaymentMethodDataMobilepay"] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired["SetupIntentCreateParamsPaymentMethodDataNaverPay"] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["SetupIntentCreateParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["SetupIntentCreateParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["SetupIntentCreateParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["SetupIntentCreateParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["SetupIntentCreateParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["SetupIntentCreateParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired["SetupIntentCreateParamsPaymentMethodDataPromptpay"] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["SetupIntentCreateParamsPaymentMethodDataSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["SetupIntentCreateParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["SetupIntentCreateParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["SetupIntentCreateParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "SetupIntentCreateParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["SetupIntentCreateParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class SetupIntentCreateParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class SetupIntentCreateParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataAlma(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class SetupIntentCreateParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class SetupIntentCreateParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataBillie(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|SetupIntentCreateParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class SetupIntentCreateParamsPaymentMethodDataBillingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SetupIntentCreateParamsPaymentMethodDataBlik(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class SetupIntentCreateParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentCreateParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class SetupIntentCreateParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class SetupIntentCreateParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["SetupIntentCreateParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class SetupIntentCreateParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class SetupIntentCreateParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataLink(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class SetupIntentCreateParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class SetupIntentCreateParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentCreateParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataPayco(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataPix(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class SetupIntentCreateParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class SetupIntentCreateParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class SetupIntentCreateParamsPaymentMethodDataSwish(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataTwint(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class SetupIntentCreateParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodDataZip(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options. + """ + amazon_pay: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options. + """ + bacs_debit: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options. + """ + card: NotRequired["SetupIntentCreateParamsPaymentMethodOptionsCard"] + """ + Configuration for any card setup attempted on this SetupIntent. + """ + card_present: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options. + """ + klarna: NotRequired["SetupIntentCreateParamsPaymentMethodOptionsKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options. + """ + link: NotRequired["SetupIntentCreateParamsPaymentMethodOptionsLink"] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + paypal: NotRequired["SetupIntentCreateParamsPaymentMethodOptionsPaypal"] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + sepa_debit: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + us_bank_account: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsAcssDebit(TypedDict): + currency: NotRequired[Literal["cad", "usd"]] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + mandate_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + default_for: NotRequired[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsAmazonPay(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsCard(TypedDict): + mandate_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter signals that a card has been collected + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + three_d_secure: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this setup. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsCardMandateOptions(TypedDict): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + currency: str + """ + Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecure(TypedDict): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: NotRequired[str] + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + network_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: NotRequired[str] + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: NotRequired[Literal["1.0.2", "2.1.0", "2.2.0"]] + """ + The version of 3D Secure that was performed. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsCardPresent(TypedDict): + pass + + +class SetupIntentCreateParamsPaymentMethodOptionsKlarna(TypedDict): + currency: NotRequired[str] + """ + The currency of the SetupIntent. Three letter ISO currency code. + """ + on_demand: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up a payment method for on-demand payments. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + subscriptions: NotRequired[ + "Literal['']|List[SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscription(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: "SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsLink(TypedDict): + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsPaypal(TypedDict): + billing_agreement_id: NotRequired[str] + """ + The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class SetupIntentCreateParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ + + +class SetupIntentCreateParamsSingleUse(TypedDict): + amount: int + """ + Amount the customer is granting permission to collect later. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_list_params.py new file mode 100644 index 00000000..4363dd60 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_list_params.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class SetupIntentListParams(RequestOptions): + attach_to_self: NotRequired[bool] + """ + If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + + It can only be used for this Stripe Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer. + """ + created: NotRequired["SetupIntentListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options. + """ + customer: NotRequired[str] + """ + Only return SetupIntents for the customer specified by this customer ID. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment_method: NotRequired[str] + """ + Only return SetupIntents that associate with the specified payment method. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class SetupIntentListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_modify_params.py new file mode 100644 index 00000000..06f7a78c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_modify_params.py @@ -0,0 +1,1382 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SetupIntentModifyParams(RequestOptions): + attach_to_self: NotRequired[bool] + """ + If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + + It can only be used for this Stripe Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer. + """ + customer: NotRequired[str] + """ + ID of the Customer this SetupIntent belongs to, if one exists. + + If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + excluded_payment_method_types: NotRequired[ + "Literal['']|List[Literal['acss_debit', 'affirm', 'afterpay_clearpay', 'alipay', 'alma', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'billie', 'blik', 'boleto', 'card', 'cashapp', 'crypto', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'mb_way', 'mobilepay', 'multibanco', 'naver_pay', 'nz_bank_account', 'oxxo', 'p24', 'pay_by_bank', 'payco', 'paynow', 'paypal', 'pix', 'promptpay', 'revolut_pay', 'samsung_pay', 'satispay', 'sepa_debit', 'sofort', 'swish', 'twint', 'us_bank_account', 'wechat_pay', 'zip']]" + ] + """ + The list of payment method types to exclude from use with this SetupIntent. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + flow_directions: NotRequired[List[Literal["inbound", "outbound"]]] + """ + Indicates the directions of money movement for which this payment method is intended to be used. + + Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. To unset this field to null, pass in an empty string. + """ + payment_method_configuration: NotRequired[str] + """ + The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this SetupIntent. + """ + payment_method_data: NotRequired[ + "SetupIntentModifyParamsPaymentMethodData" + ] + """ + When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method) + value in the SetupIntent. + """ + payment_method_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptions" + ] + """ + Payment method-specific configuration for this SetupIntent. + """ + payment_method_types: NotRequired[List[str]] + """ + The list of payment method types (for example, card) that this SetupIntent can set up. If you don't provide this, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + + +class SetupIntentModifyParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["SetupIntentModifyParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["SetupIntentModifyParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["SetupIntentModifyParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["SetupIntentModifyParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["SetupIntentModifyParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["SetupIntentModifyParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["SetupIntentModifyParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["SetupIntentModifyParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["SetupIntentModifyParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["SetupIntentModifyParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["SetupIntentModifyParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["SetupIntentModifyParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["SetupIntentModifyParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired["SetupIntentModifyParamsPaymentMethodDataKakaoPay"] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["SetupIntentModifyParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["SetupIntentModifyParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["SetupIntentModifyParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["SetupIntentModifyParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["SetupIntentModifyParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired["SetupIntentModifyParamsPaymentMethodDataMobilepay"] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired["SetupIntentModifyParamsPaymentMethodDataNaverPay"] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["SetupIntentModifyParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["SetupIntentModifyParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["SetupIntentModifyParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["SetupIntentModifyParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["SetupIntentModifyParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["SetupIntentModifyParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired["SetupIntentModifyParamsPaymentMethodDataPromptpay"] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["SetupIntentModifyParamsPaymentMethodDataSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["SetupIntentModifyParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["SetupIntentModifyParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["SetupIntentModifyParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "SetupIntentModifyParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["SetupIntentModifyParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class SetupIntentModifyParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class SetupIntentModifyParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataAlma(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class SetupIntentModifyParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class SetupIntentModifyParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataBillie(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|SetupIntentModifyParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class SetupIntentModifyParamsPaymentMethodDataBillingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SetupIntentModifyParamsPaymentMethodDataBlik(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class SetupIntentModifyParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentModifyParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class SetupIntentModifyParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class SetupIntentModifyParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["SetupIntentModifyParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class SetupIntentModifyParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class SetupIntentModifyParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataLink(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class SetupIntentModifyParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class SetupIntentModifyParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentModifyParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataPayco(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataPix(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class SetupIntentModifyParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class SetupIntentModifyParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class SetupIntentModifyParamsPaymentMethodDataSwish(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataTwint(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class SetupIntentModifyParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodDataZip(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options. + """ + amazon_pay: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options. + """ + bacs_debit: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options. + """ + card: NotRequired["SetupIntentModifyParamsPaymentMethodOptionsCard"] + """ + Configuration for any card setup attempted on this SetupIntent. + """ + card_present: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options. + """ + klarna: NotRequired["SetupIntentModifyParamsPaymentMethodOptionsKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options. + """ + link: NotRequired["SetupIntentModifyParamsPaymentMethodOptionsLink"] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + paypal: NotRequired["SetupIntentModifyParamsPaymentMethodOptionsPaypal"] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + sepa_debit: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + us_bank_account: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsAcssDebit(TypedDict): + currency: NotRequired[Literal["cad", "usd"]] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + mandate_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + default_for: NotRequired[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsAmazonPay(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsCard(TypedDict): + mandate_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter signals that a card has been collected + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + three_d_secure: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this setup. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsCardMandateOptions(TypedDict): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + currency: str + """ + Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecure(TypedDict): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: NotRequired[str] + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + network_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: NotRequired[str] + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: NotRequired[Literal["1.0.2", "2.1.0", "2.2.0"]] + """ + The version of 3D Secure that was performed. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsCardPresent(TypedDict): + pass + + +class SetupIntentModifyParamsPaymentMethodOptionsKlarna(TypedDict): + currency: NotRequired[str] + """ + The currency of the SetupIntent. Three letter ISO currency code. + """ + on_demand: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up a payment method for on-demand payments. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + subscriptions: NotRequired[ + "Literal['']|List[SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscription(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: "SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsLink(TypedDict): + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsPaypal(TypedDict): + billing_agreement_id: NotRequired[str] + """ + The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class SetupIntentModifyParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_retrieve_params.py new file mode 100644 index 00000000..88c235d7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_retrieve_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SetupIntentRetrieveParams(RequestOptions): + client_secret: NotRequired[str] + """ + The client secret of the SetupIntent. We require this string if you use a publishable key to retrieve the SetupIntent. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_update_params.py new file mode 100644 index 00000000..d64ac8ab --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_update_params.py @@ -0,0 +1,1381 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SetupIntentUpdateParams(TypedDict): + attach_to_self: NotRequired[bool] + """ + If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + + It can only be used for this Stripe Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer. + """ + customer: NotRequired[str] + """ + ID of the Customer this SetupIntent belongs to, if one exists. + + If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + excluded_payment_method_types: NotRequired[ + "Literal['']|List[Literal['acss_debit', 'affirm', 'afterpay_clearpay', 'alipay', 'alma', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'billie', 'blik', 'boleto', 'card', 'cashapp', 'crypto', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'mb_way', 'mobilepay', 'multibanco', 'naver_pay', 'nz_bank_account', 'oxxo', 'p24', 'pay_by_bank', 'payco', 'paynow', 'paypal', 'pix', 'promptpay', 'revolut_pay', 'samsung_pay', 'satispay', 'sepa_debit', 'sofort', 'swish', 'twint', 'us_bank_account', 'wechat_pay', 'zip']]" + ] + """ + The list of payment method types to exclude from use with this SetupIntent. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + flow_directions: NotRequired[List[Literal["inbound", "outbound"]]] + """ + Indicates the directions of money movement for which this payment method is intended to be used. + + Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_method: NotRequired[str] + """ + ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. To unset this field to null, pass in an empty string. + """ + payment_method_configuration: NotRequired[str] + """ + The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this SetupIntent. + """ + payment_method_data: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodData" + ] + """ + When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method) + value in the SetupIntent. + """ + payment_method_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptions" + ] + """ + Payment method-specific configuration for this SetupIntent. + """ + payment_method_types: NotRequired[List[str]] + """ + The list of payment method types (for example, card) that this SetupIntent can set up. If you don't provide this, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type). + """ + + +class SetupIntentUpdateParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["SetupIntentUpdateParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["SetupIntentUpdateParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["SetupIntentUpdateParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["SetupIntentUpdateParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["SetupIntentUpdateParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired["SetupIntentUpdateParamsPaymentMethodDataCashapp"] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["SetupIntentUpdateParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["SetupIntentUpdateParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["SetupIntentUpdateParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataGiropay"] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataGrabpay"] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["SetupIntentUpdateParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataKakaoPay"] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["SetupIntentUpdateParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired["SetupIntentUpdateParamsPaymentMethodDataKonbini"] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired["SetupIntentUpdateParamsPaymentMethodDataKrCard"] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["SetupIntentUpdateParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["SetupIntentUpdateParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataMobilepay"] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataNaverPay"] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["SetupIntentUpdateParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["SetupIntentUpdateParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["SetupIntentUpdateParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["SetupIntentUpdateParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["SetupIntentUpdateParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["SetupIntentUpdateParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataPromptpay"] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired["SetupIntentUpdateParamsPaymentMethodDataSatispay"] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["SetupIntentUpdateParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["SetupIntentUpdateParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["SetupIntentUpdateParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["SetupIntentUpdateParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataAfterpayClearpay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataAlma(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class SetupIntentUpdateParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataBillie(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|SetupIntentUpdateParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataBillingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataBlik(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class SetupIntentUpdateParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["SetupIntentUpdateParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class SetupIntentUpdateParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataLink(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataPayco(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataPix(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataSwish(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataTwint(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class SetupIntentUpdateParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodDataZip(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsAcssDebit" + ] + """ + If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options. + """ + amazon_pay: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsAmazonPay" + ] + """ + If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options. + """ + bacs_debit: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsBacsDebit" + ] + """ + If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options. + """ + card: NotRequired["SetupIntentUpdateParamsPaymentMethodOptionsCard"] + """ + Configuration for any card setup attempted on this SetupIntent. + """ + card_present: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsCardPresent" + ] + """ + If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options. + """ + klarna: NotRequired["SetupIntentUpdateParamsPaymentMethodOptionsKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options. + """ + link: NotRequired["SetupIntentUpdateParamsPaymentMethodOptionsLink"] + """ + If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. + """ + paypal: NotRequired["SetupIntentUpdateParamsPaymentMethodOptionsPaypal"] + """ + If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. + """ + sepa_debit: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsSepaDebit" + ] + """ + If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options. + """ + us_bank_account: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccount" + ] + """ + If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsAcssDebit(TypedDict): + currency: NotRequired[Literal["cad", "usd"]] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + mandate_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + default_for: NotRequired[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsAmazonPay(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsCard(TypedDict): + mandate_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + moto: NotRequired[bool] + """ + When specified, this parameter signals that a card has been collected + as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This + parameter can only be provided during confirmation. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + three_d_secure: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure" + ] + """ + If 3D Secure authentication was performed with a third-party provider, + the authentication details to use for this setup. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsCardMandateOptions(TypedDict): + amount: int + """ + Amount to be charged for future payments. + """ + amount_type: Literal["fixed", "maximum"] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + currency: str + """ + Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + end_date: NotRequired[int] + """ + End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date. + """ + interval: Literal["day", "month", "sporadic", "week", "year"] + """ + Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`. + """ + reference: str + """ + Unique identifier for the mandate or subscription. + """ + start_date: int + """ + Start date of the mandate or subscription. Start date should not be lesser than yesterday. + """ + supported_types: NotRequired[List[Literal["india"]]] + """ + Specifies the type of mandates supported. Possible values are `india`. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecure(TypedDict): + ares_trans_status: NotRequired[Literal["A", "C", "I", "N", "R", "U", "Y"]] + """ + The `transStatus` returned from the card Issuer's ACS in the ARes. + """ + cryptogram: NotRequired[str] + """ + The cryptogram, also known as the "authentication value" (AAV, CAVV or + AEVV). This value is 20 bytes, base64-encoded into a 28-character string. + (Most 3D Secure providers will return the base64-encoded version, which + is what you should specify here.) + """ + electronic_commerce_indicator: NotRequired[ + Literal["01", "02", "05", "06", "07"] + ] + """ + The Electronic Commerce Indicator (ECI) is returned by your 3D Secure + provider and indicates what degree of authentication was performed. + """ + network_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions" + ] + """ + Network specific 3DS fields. Network specific arguments require an + explicit card brand choice. The parameter `payment_method_options.card.network`` + must be populated accordingly + """ + requestor_challenge_indicator: NotRequired[str] + """ + The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the + AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. + """ + transaction_id: NotRequired[str] + """ + For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server + Transaction ID (dsTransID). + """ + version: NotRequired[Literal["1.0.2", "2.1.0", "2.2.0"]] + """ + The version of 3D Secure that was performed. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptions( + TypedDict, +): + cartes_bancaires: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires" + ] + """ + Cartes Bancaires-specific 3DS fields. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsCardThreeDSecureNetworkOptionsCartesBancaires( + TypedDict, +): + cb_avalgo: Literal["0", "1", "2", "3", "4", "A"] + """ + The cryptogram calculation algorithm used by the card Issuer's ACS + to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. + messageExtension: CB-AVALGO + """ + cb_exemption: NotRequired[str] + """ + The exemption indicator returned from Cartes Bancaires in the ARes. + message extension: CB-EXEMPTION; string (4 characters) + This is a 3 byte bitmap (low significant byte first and most significant + bit first) that has been Base64 encoded + """ + cb_score: NotRequired[int] + """ + The risk score returned from Cartes Bancaires in the ARes. + message extension: CB-SCORE; numeric value 0-99 + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsCardPresent(TypedDict): + pass + + +class SetupIntentUpdateParamsPaymentMethodOptionsKlarna(TypedDict): + currency: NotRequired[str] + """ + The currency of the SetupIntent. Three letter ISO currency code. + """ + on_demand: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand" + ] + """ + On-demand details if setting up a payment method for on-demand payments. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-CH", + "de-DE", + "el-GR", + "en-AT", + "en-AU", + "en-BE", + "en-CA", + "en-CH", + "en-CZ", + "en-DE", + "en-DK", + "en-ES", + "en-FI", + "en-FR", + "en-GB", + "en-GR", + "en-IE", + "en-IT", + "en-NL", + "en-NO", + "en-NZ", + "en-PL", + "en-PT", + "en-RO", + "en-SE", + "en-US", + "es-ES", + "es-US", + "fi-FI", + "fr-BE", + "fr-CA", + "fr-CH", + "fr-FR", + "it-CH", + "it-IT", + "nb-NO", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "ro-RO", + "sv-FI", + "sv-SE", + ] + ] + """ + Preferred language of the Klarna authorization page that the customer is redirected to + """ + subscriptions: NotRequired[ + "Literal['']|List[SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if setting up or charging a subscription + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsKlarnaOnDemand(TypedDict): + average_amount: NotRequired[int] + """ + Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + maximum_amount: NotRequired[int] + """ + The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + minimum_amount: NotRequired[int] + """ + The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc. + """ + purchase_interval: NotRequired[Literal["day", "month", "week", "year"]] + """ + Interval at which the customer is making purchases + """ + purchase_interval_count: NotRequired[int] + """ + The number of `purchase_interval` between charges + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscription(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: "SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsLink(TypedDict): + persistent_token: NotRequired[str] + """ + [Deprecated] This is a legacy parameter that no longer has any function. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsPaypal(TypedDict): + billing_agreement_id: NotRequired[str] + """ + The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict, +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + mandate_options: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + networks: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks" + ] + """ + Additional fields for network related functions + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Bank account verification method. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountMandateOptions( + TypedDict, +): + collection_method: NotRequired["Literal['']|Literal['paper']"] + """ + The method used to collect offline mandate customer acceptance. + """ + + +class SetupIntentUpdateParamsPaymentMethodOptionsUsBankAccountNetworks( + TypedDict, +): + requested: NotRequired[List[Literal["ach", "us_domestic_wire"]]] + """ + Triggers validations to run across the selected networks + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_verify_microdeposits_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_verify_microdeposits_params.py new file mode 100644 index 00000000..c53bc852 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_setup_intent_verify_microdeposits_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SetupIntentVerifyMicrodepositsParams(RequestOptions): + amounts: NotRequired[List[int]] + """ + Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account. + """ + descriptor_code: NotRequired[str] + """ + A six-character code starting with SM present in the microdeposit sent to the bank account. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_create_params.py new file mode 100644 index 00000000..8697e713 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_create_params.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ShippingRateCreateParams(RequestOptions): + delivery_estimate: NotRequired["ShippingRateCreateParamsDeliveryEstimate"] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: str + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fixed_amount: NotRequired["ShippingRateCreateParamsFixedAmount"] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: NotRequired[Literal["fixed_amount"]] + """ + The type of calculation to use on the shipping rate. + """ + + +class ShippingRateCreateParamsDeliveryEstimate(TypedDict): + maximum: NotRequired["ShippingRateCreateParamsDeliveryEstimateMaximum"] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: NotRequired["ShippingRateCreateParamsDeliveryEstimateMinimum"] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + + +class ShippingRateCreateParamsDeliveryEstimateMaximum(TypedDict): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class ShippingRateCreateParamsDeliveryEstimateMinimum(TypedDict): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class ShippingRateCreateParamsFixedAmount(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[str, "ShippingRateCreateParamsFixedAmountCurrencyOptions"] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class ShippingRateCreateParamsFixedAmountCurrencyOptions(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_list_params.py new file mode 100644 index 00000000..4a0a8baa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ShippingRateListParams(RequestOptions): + active: NotRequired[bool] + """ + Only return shipping rates that are active or inactive. + """ + created: NotRequired["ShippingRateListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options. + """ + currency: NotRequired[str] + """ + Only return shipping rates for the given currency. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class ShippingRateListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_modify_params.py new file mode 100644 index 00000000..85f84f4b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_modify_params.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ShippingRateModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the shipping rate can be used for new purchases. Defaults to `true`. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fixed_amount: NotRequired["ShippingRateModifyParamsFixedAmount"] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + + +class ShippingRateModifyParamsFixedAmount(TypedDict): + currency_options: NotRequired[ + Dict[str, "ShippingRateModifyParamsFixedAmountCurrencyOptions"] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class ShippingRateModifyParamsFixedAmountCurrencyOptions(TypedDict): + amount: NotRequired[int] + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_retrieve_params.py new file mode 100644 index 00000000..2cdc3e78 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ShippingRateRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_update_params.py new file mode 100644 index 00000000..bdfb36dc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_shipping_rate_update_params.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ShippingRateUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Whether the shipping rate can be used for new purchases. Defaults to `true`. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fixed_amount: NotRequired["ShippingRateUpdateParamsFixedAmount"] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + + +class ShippingRateUpdateParamsFixedAmount(TypedDict): + currency_options: NotRequired[ + Dict[str, "ShippingRateUpdateParamsFixedAmountCurrencyOptions"] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class ShippingRateUpdateParamsFixedAmountCurrencyOptions(TypedDict): + amount: NotRequired[int] + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_create_params.py new file mode 100644 index 00000000..013849e7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_create_params.py @@ -0,0 +1,282 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SourceCreateParams(RequestOptions): + amount: NotRequired[int] + """ + Amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources. Not supported for `receiver` type sources, where charge amount may not be specified until funds land. + """ + currency: NotRequired[str] + """ + Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready. + """ + customer: NotRequired[str] + """ + The `Customer` to whom the original source is attached to. Must be set when the original source is not a `Source` (e.g., `Card`). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + flow: NotRequired[ + Literal["code_verification", "none", "receiver", "redirect"] + ] + """ + The authentication `flow` of the source to create. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`. It is generally inferred unless a type supports multiple flows. + """ + mandate: NotRequired["SourceCreateParamsMandate"] + """ + Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status. + """ + metadata: NotRequired[Dict[str, str]] + original_source: NotRequired[str] + """ + The source to share. + """ + owner: NotRequired["SourceCreateParamsOwner"] + """ + Information about the owner of the payment instrument that may be used or required by particular source types. + """ + receiver: NotRequired["SourceCreateParamsReceiver"] + """ + Optional parameters for the receiver flow. Can be set only if the source is a receiver (`flow` is `receiver`). + """ + redirect: NotRequired["SourceCreateParamsRedirect"] + """ + Parameters required for the redirect flow. Required if the source is authenticated by a redirect (`flow` is `redirect`). + """ + source_order: NotRequired["SourceCreateParamsSourceOrder"] + """ + Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it. + """ + statement_descriptor: NotRequired[str] + """ + An arbitrary string to be displayed on your customer's statement. As an example, if your website is `RunClub` and the item you're charging for is a race ticket, you may want to specify a `statement_descriptor` of `RunClub 5K race ticket.` While many payment types will display this information, some may not display it at all. + """ + token: NotRequired[str] + """ + An optional token used to create the source. When passed, token properties will override source parameters. + """ + type: NotRequired[str] + """ + The `type` of the source to create. Required unless `customer` and `original_source` are specified (see the [Cloning card Sources](https://stripe.com/docs/sources/connect#cloning-card-sources) guide) + """ + usage: NotRequired[Literal["reusable", "single_use"]] + + +class SourceCreateParamsMandate(TypedDict): + acceptance: NotRequired["SourceCreateParamsMandateAcceptance"] + """ + The parameters required to notify Stripe of a mandate acceptance or refusal by the customer. + """ + amount: NotRequired["Literal['']|int"] + """ + The amount specified by the mandate. (Leave null for a mandate covering all amounts) + """ + currency: NotRequired[str] + """ + The currency specified by the mandate. (Must match `currency` of the source) + """ + interval: NotRequired[Literal["one_time", "scheduled", "variable"]] + """ + The interval of debits permitted by the mandate. Either `one_time` (just permitting a single debit), `scheduled` (with debits on an agreed schedule or for clearly-defined events), or `variable`(for debits with any frequency) + """ + notification_method: NotRequired[ + Literal["deprecated_none", "email", "manual", "none", "stripe_email"] + ] + """ + The method Stripe should use to notify the customer of upcoming debit instructions and/or mandate confirmation as required by the underlying debit network. Either `email` (an email is sent directly to the customer), `manual` (a `source.mandate_notification` event is sent to your webhooks endpoint and you should handle the notification) or `none` (the underlying debit network does not require any notification). + """ + + +class SourceCreateParamsMandateAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp (in seconds) when the mandate was accepted or refused by the customer. + """ + ip: NotRequired[str] + """ + The IP address from which the mandate was accepted or refused by the customer. + """ + offline: NotRequired["SourceCreateParamsMandateAcceptanceOffline"] + """ + The parameters required to store a mandate accepted offline. Should only be set if `mandate[type]` is `offline` + """ + online: NotRequired["SourceCreateParamsMandateAcceptanceOnline"] + """ + The parameters required to store a mandate accepted online. Should only be set if `mandate[type]` is `online` + """ + status: Literal["accepted", "pending", "refused", "revoked"] + """ + The status of the mandate acceptance. Either `accepted` (the mandate was accepted) or `refused` (the mandate was refused). + """ + type: NotRequired[Literal["offline", "online"]] + """ + The type of acceptance information included with the mandate. Either `online` or `offline` + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the mandate was accepted or refused by the customer. + """ + + +class SourceCreateParamsMandateAcceptanceOffline(TypedDict): + contact_email: str + """ + An email to contact you with if a copy of the mandate is requested, required if `type` is `offline`. + """ + + +class SourceCreateParamsMandateAcceptanceOnline(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp (in seconds) when the mandate was accepted or refused by the customer. + """ + ip: NotRequired[str] + """ + The IP address from which the mandate was accepted or refused by the customer. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the mandate was accepted or refused by the customer. + """ + + +class SourceCreateParamsOwner(TypedDict): + address: NotRequired["SourceCreateParamsOwnerAddress"] + """ + Owner's address. + """ + email: NotRequired[str] + """ + Owner's email address. + """ + name: NotRequired[str] + """ + Owner's full name. + """ + phone: NotRequired[str] + """ + Owner's phone number. + """ + + +class SourceCreateParamsOwnerAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SourceCreateParamsReceiver(TypedDict): + refund_attributes_method: NotRequired[Literal["email", "manual", "none"]] + """ + The method Stripe should use to request information needed to process a refund or mispayment. Either `email` (an email is sent directly to the customer) or `manual` (a `source.refund_attributes_required` event is sent to your webhooks endpoint). Refer to each payment method's documentation to learn which refund attributes may be required. + """ + + +class SourceCreateParamsRedirect(TypedDict): + return_url: str + """ + The URL you provide to redirect the customer back to you after they authenticated their payment. It can use your application URI scheme in the context of a mobile application. + """ + + +class SourceCreateParamsSourceOrder(TypedDict): + items: NotRequired[List["SourceCreateParamsSourceOrderItem"]] + """ + List of items constituting the order. + """ + shipping: NotRequired["SourceCreateParamsSourceOrderShipping"] + """ + Shipping address for the order. Required if any of the SKUs are for products that have `shippable` set to true. + """ + + +class SourceCreateParamsSourceOrderItem(TypedDict): + amount: NotRequired[int] + currency: NotRequired[str] + description: NotRequired[str] + parent: NotRequired[str] + """ + The ID of the SKU being ordered. + """ + quantity: NotRequired[int] + """ + The quantity of this order item. When type is `sku`, this is the number of instances of the SKU to be ordered. + """ + type: NotRequired[Literal["discount", "shipping", "sku", "tax"]] + + +class SourceCreateParamsSourceOrderShipping(TypedDict): + address: "SourceCreateParamsSourceOrderShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: NotRequired[str] + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class SourceCreateParamsSourceOrderShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_detach_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_detach_params.py new file mode 100644 index 00000000..854bb41d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_detach_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class SourceDetachParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_list_source_transactions_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_list_source_transactions_params.py new file mode 100644 index 00000000..67310857 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_list_source_transactions_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SourceListSourceTransactionsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_modify_params.py new file mode 100644 index 00000000..f57584e1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_modify_params.py @@ -0,0 +1,232 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SourceModifyParams(RequestOptions): + amount: NotRequired[int] + """ + Amount associated with the source. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + mandate: NotRequired["SourceModifyParamsMandate"] + """ + Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + owner: NotRequired["SourceModifyParamsOwner"] + """ + Information about the owner of the payment instrument that may be used or required by particular source types. + """ + source_order: NotRequired["SourceModifyParamsSourceOrder"] + """ + Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it. + """ + + +class SourceModifyParamsMandate(TypedDict): + acceptance: NotRequired["SourceModifyParamsMandateAcceptance"] + """ + The parameters required to notify Stripe of a mandate acceptance or refusal by the customer. + """ + amount: NotRequired["Literal['']|int"] + """ + The amount specified by the mandate. (Leave null for a mandate covering all amounts) + """ + currency: NotRequired[str] + """ + The currency specified by the mandate. (Must match `currency` of the source) + """ + interval: NotRequired[Literal["one_time", "scheduled", "variable"]] + """ + The interval of debits permitted by the mandate. Either `one_time` (just permitting a single debit), `scheduled` (with debits on an agreed schedule or for clearly-defined events), or `variable`(for debits with any frequency) + """ + notification_method: NotRequired[ + Literal["deprecated_none", "email", "manual", "none", "stripe_email"] + ] + """ + The method Stripe should use to notify the customer of upcoming debit instructions and/or mandate confirmation as required by the underlying debit network. Either `email` (an email is sent directly to the customer), `manual` (a `source.mandate_notification` event is sent to your webhooks endpoint and you should handle the notification) or `none` (the underlying debit network does not require any notification). + """ + + +class SourceModifyParamsMandateAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp (in seconds) when the mandate was accepted or refused by the customer. + """ + ip: NotRequired[str] + """ + The IP address from which the mandate was accepted or refused by the customer. + """ + offline: NotRequired["SourceModifyParamsMandateAcceptanceOffline"] + """ + The parameters required to store a mandate accepted offline. Should only be set if `mandate[type]` is `offline` + """ + online: NotRequired["SourceModifyParamsMandateAcceptanceOnline"] + """ + The parameters required to store a mandate accepted online. Should only be set if `mandate[type]` is `online` + """ + status: Literal["accepted", "pending", "refused", "revoked"] + """ + The status of the mandate acceptance. Either `accepted` (the mandate was accepted) or `refused` (the mandate was refused). + """ + type: NotRequired[Literal["offline", "online"]] + """ + The type of acceptance information included with the mandate. Either `online` or `offline` + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the mandate was accepted or refused by the customer. + """ + + +class SourceModifyParamsMandateAcceptanceOffline(TypedDict): + contact_email: str + """ + An email to contact you with if a copy of the mandate is requested, required if `type` is `offline`. + """ + + +class SourceModifyParamsMandateAcceptanceOnline(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp (in seconds) when the mandate was accepted or refused by the customer. + """ + ip: NotRequired[str] + """ + The IP address from which the mandate was accepted or refused by the customer. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the mandate was accepted or refused by the customer. + """ + + +class SourceModifyParamsOwner(TypedDict): + address: NotRequired["SourceModifyParamsOwnerAddress"] + """ + Owner's address. + """ + email: NotRequired[str] + """ + Owner's email address. + """ + name: NotRequired[str] + """ + Owner's full name. + """ + phone: NotRequired[str] + """ + Owner's phone number. + """ + + +class SourceModifyParamsOwnerAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SourceModifyParamsSourceOrder(TypedDict): + items: NotRequired[List["SourceModifyParamsSourceOrderItem"]] + """ + List of items constituting the order. + """ + shipping: NotRequired["SourceModifyParamsSourceOrderShipping"] + """ + Shipping address for the order. Required if any of the SKUs are for products that have `shippable` set to true. + """ + + +class SourceModifyParamsSourceOrderItem(TypedDict): + amount: NotRequired[int] + currency: NotRequired[str] + description: NotRequired[str] + parent: NotRequired[str] + """ + The ID of the SKU being ordered. + """ + quantity: NotRequired[int] + """ + The quantity of this order item. When type is `sku`, this is the number of instances of the SKU to be ordered. + """ + type: NotRequired[Literal["discount", "shipping", "sku", "tax"]] + + +class SourceModifyParamsSourceOrderShipping(TypedDict): + address: "SourceModifyParamsSourceOrderShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: NotRequired[str] + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class SourceModifyParamsSourceOrderShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_retrieve_params.py new file mode 100644 index 00000000..cea482bd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_retrieve_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SourceRetrieveParams(RequestOptions): + client_secret: NotRequired[str] + """ + The client secret of the source. Required if a publishable key is used to retrieve the source. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_transaction_list_params.py new file mode 100644 index 00000000..bdc215da --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_transaction_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class SourceTransactionListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_update_params.py new file mode 100644 index 00000000..ff800484 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_update_params.py @@ -0,0 +1,231 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SourceUpdateParams(TypedDict): + amount: NotRequired[int] + """ + Amount associated with the source. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + mandate: NotRequired["SourceUpdateParamsMandate"] + """ + Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + owner: NotRequired["SourceUpdateParamsOwner"] + """ + Information about the owner of the payment instrument that may be used or required by particular source types. + """ + source_order: NotRequired["SourceUpdateParamsSourceOrder"] + """ + Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it. + """ + + +class SourceUpdateParamsMandate(TypedDict): + acceptance: NotRequired["SourceUpdateParamsMandateAcceptance"] + """ + The parameters required to notify Stripe of a mandate acceptance or refusal by the customer. + """ + amount: NotRequired["Literal['']|int"] + """ + The amount specified by the mandate. (Leave null for a mandate covering all amounts) + """ + currency: NotRequired[str] + """ + The currency specified by the mandate. (Must match `currency` of the source) + """ + interval: NotRequired[Literal["one_time", "scheduled", "variable"]] + """ + The interval of debits permitted by the mandate. Either `one_time` (just permitting a single debit), `scheduled` (with debits on an agreed schedule or for clearly-defined events), or `variable`(for debits with any frequency) + """ + notification_method: NotRequired[ + Literal["deprecated_none", "email", "manual", "none", "stripe_email"] + ] + """ + The method Stripe should use to notify the customer of upcoming debit instructions and/or mandate confirmation as required by the underlying debit network. Either `email` (an email is sent directly to the customer), `manual` (a `source.mandate_notification` event is sent to your webhooks endpoint and you should handle the notification) or `none` (the underlying debit network does not require any notification). + """ + + +class SourceUpdateParamsMandateAcceptance(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp (in seconds) when the mandate was accepted or refused by the customer. + """ + ip: NotRequired[str] + """ + The IP address from which the mandate was accepted or refused by the customer. + """ + offline: NotRequired["SourceUpdateParamsMandateAcceptanceOffline"] + """ + The parameters required to store a mandate accepted offline. Should only be set if `mandate[type]` is `offline` + """ + online: NotRequired["SourceUpdateParamsMandateAcceptanceOnline"] + """ + The parameters required to store a mandate accepted online. Should only be set if `mandate[type]` is `online` + """ + status: Literal["accepted", "pending", "refused", "revoked"] + """ + The status of the mandate acceptance. Either `accepted` (the mandate was accepted) or `refused` (the mandate was refused). + """ + type: NotRequired[Literal["offline", "online"]] + """ + The type of acceptance information included with the mandate. Either `online` or `offline` + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the mandate was accepted or refused by the customer. + """ + + +class SourceUpdateParamsMandateAcceptanceOffline(TypedDict): + contact_email: str + """ + An email to contact you with if a copy of the mandate is requested, required if `type` is `offline`. + """ + + +class SourceUpdateParamsMandateAcceptanceOnline(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp (in seconds) when the mandate was accepted or refused by the customer. + """ + ip: NotRequired[str] + """ + The IP address from which the mandate was accepted or refused by the customer. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the mandate was accepted or refused by the customer. + """ + + +class SourceUpdateParamsOwner(TypedDict): + address: NotRequired["SourceUpdateParamsOwnerAddress"] + """ + Owner's address. + """ + email: NotRequired[str] + """ + Owner's email address. + """ + name: NotRequired[str] + """ + Owner's full name. + """ + phone: NotRequired[str] + """ + Owner's phone number. + """ + + +class SourceUpdateParamsOwnerAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SourceUpdateParamsSourceOrder(TypedDict): + items: NotRequired[List["SourceUpdateParamsSourceOrderItem"]] + """ + List of items constituting the order. + """ + shipping: NotRequired["SourceUpdateParamsSourceOrderShipping"] + """ + Shipping address for the order. Required if any of the SKUs are for products that have `shippable` set to true. + """ + + +class SourceUpdateParamsSourceOrderItem(TypedDict): + amount: NotRequired[int] + currency: NotRequired[str] + description: NotRequired[str] + parent: NotRequired[str] + """ + The ID of the SKU being ordered. + """ + quantity: NotRequired[int] + """ + The quantity of this order item. When type is `sku`, this is the number of instances of the SKU to be ordered. + """ + type: NotRequired[Literal["discount", "shipping", "sku", "tax"]] + + +class SourceUpdateParamsSourceOrderShipping(TypedDict): + address: "SourceUpdateParamsSourceOrderShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: NotRequired[str] + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class SourceUpdateParamsSourceOrderShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_verify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_verify_params.py new file mode 100644 index 00000000..81b9e83c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_source_verify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SourceVerifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + values: List[str] + """ + The values needed to verify the source. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_cancel_params.py new file mode 100644 index 00000000..503bdb00 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_cancel_params.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionCancelParams(RequestOptions): + cancellation_details: NotRequired[ + "SubscriptionCancelParamsCancellationDetails" + ] + """ + Details about why this subscription was cancelled + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_now: NotRequired[bool] + """ + Will generate a final invoice that invoices for any un-invoiced metered usage and new/pending proration invoice items. Defaults to `false`. + """ + prorate: NotRequired[bool] + """ + Will generate a proration invoice item that credits remaining unused time until the subscription period end. Defaults to `false`. + """ + + +class SubscriptionCancelParamsCancellationDetails(TypedDict): + comment: NotRequired["Literal['']|str"] + """ + Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user. + """ + feedback: NotRequired[ + "Literal['']|Literal['customer_service', 'low_quality', 'missing_features', 'other', 'switched_service', 'too_complex', 'too_expensive', 'unused']" + ] + """ + The customer submitted reason for why they canceled, if the subscription was canceled explicitly by the user. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_create_params.py new file mode 100644 index 00000000..13101cb3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_create_params.py @@ -0,0 +1,780 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionCreateParams(RequestOptions): + add_invoice_items: NotRequired[ + List["SubscriptionCreateParamsAddInvoiceItem"] + ] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items. + """ + application_fee_percent: NotRequired["Literal['']|float"] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired["SubscriptionCreateParamsAutomaticTax"] + """ + Automatic tax settings for this subscription. + """ + backdate_start_date: NotRequired[int] + """ + A past timestamp to backdate the subscription's start date to. If set, the first invoice will contain line items for the timespan between the start date and the current time. Can be combined with trials and the billing cycle anchor. + """ + billing_cycle_anchor: NotRequired[int] + """ + A future timestamp in UTC format to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). The anchor is the reference point that aligns future billing cycle dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals. + """ + billing_cycle_anchor_config: NotRequired[ + "SubscriptionCreateParamsBillingCycleAnchorConfig" + ] + """ + Mutually exclusive with billing_cycle_anchor and only valid with monthly and yearly price intervals. When provided, the billing_cycle_anchor is set to the next occurrence of the day_of_month at the hour, minute, and second UTC. + """ + billing_mode: NotRequired["SubscriptionCreateParamsBillingMode"] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionCreateParamsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds. + """ + cancel_at: NotRequired["int|Literal['max_period_end', 'min_period_end']"] + """ + A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. + """ + cancel_at_period_end: NotRequired[bool] + """ + Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: str + """ + The identifier of the customer to subscribe. + """ + days_until_due: NotRequired[int] + """ + Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice`. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_source: NotRequired[str] + """ + ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. + """ + description: NotRequired[str] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionCreateParamsDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_settings: NotRequired["SubscriptionCreateParamsInvoiceSettings"] + """ + All invoices will be billed using the specified settings. + """ + items: NotRequired[List["SubscriptionCreateParamsItem"]] + """ + A list of up to 20 subscription items, each with an attached price. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + off_session: NotRequired[bool] + """ + Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session). + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge, for each of the subscription's invoices. + """ + payment_behavior: NotRequired[ + Literal[ + "allow_incomplete", + "default_incomplete", + "error_if_incomplete", + "pending_if_incomplete", + ] + ] + """ + Only applies to subscriptions with `collection_method=charge_automatically`. + + Use `allow_incomplete` to create Subscriptions with `status=incomplete` if the first invoice can't be paid. Creating Subscriptions with this status allows you to manage scenarios where additional customer actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + + Use `default_incomplete` to create Subscriptions with `status=incomplete` when the first invoice requires payment, otherwise start as active. Subscriptions transition to `status=active` when successfully confirming the PaymentIntent on the first invoice. This allows simpler management of scenarios where additional customer actions are needed to pay a subscription's invoice, such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. If the PaymentIntent is not confirmed within 23 hours Subscriptions transition to `status=incomplete_expired`, which is a terminal state. + + Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's first invoice can't be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further customer action is needed, this parameter doesn't create a Subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more. + + `pending_if_incomplete` is only used with updates and cannot be passed when creating a Subscription. + + Subscriptions with `collection_method=send_invoice` are automatically activated regardless of the first Invoice status. + """ + payment_settings: NotRequired["SubscriptionCreateParamsPaymentSettings"] + """ + Payment settings to pass to invoices created by the subscription. + """ + pending_invoice_item_interval: NotRequired[ + "Literal['']|SubscriptionCreateParamsPendingInvoiceItemInterval" + ] + """ + Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) resulting from the `billing_cycle_anchor`. If no value is passed, the default is `create_prorations`. + """ + transfer_data: NotRequired["SubscriptionCreateParamsTransferData"] + """ + If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. + """ + trial_end: NotRequired["Literal['now']|int"] + """ + Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more. + """ + trial_from_plan: NotRequired[bool] + """ + Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more. + """ + trial_period_days: NotRequired[int] + """ + Integer representing the number of trial period days before the customer is charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more. + """ + trial_settings: NotRequired["SubscriptionCreateParamsTrialSettings"] + """ + Settings related to subscription trials. + """ + + +class SubscriptionCreateParamsAddInvoiceItem(TypedDict): + discounts: NotRequired[ + List["SubscriptionCreateParamsAddInvoiceItemDiscount"] + ] + """ + The coupons to redeem into discounts for the item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["SubscriptionCreateParamsAddInvoiceItemPeriod"] + """ + The period associated with this invoice item. If not set, `period.start.type` defaults to `max_item_period_start` and `period.end.type` defaults to `min_item_period_end`. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["SubscriptionCreateParamsAddInvoiceItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. Defaults to 1. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + + +class SubscriptionCreateParamsAddInvoiceItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionCreateParamsAddInvoiceItemPeriod(TypedDict): + end: "SubscriptionCreateParamsAddInvoiceItemPeriodEnd" + """ + End of the invoice item period. + """ + start: "SubscriptionCreateParamsAddInvoiceItemPeriodStart" + """ + Start of the invoice item period. + """ + + +class SubscriptionCreateParamsAddInvoiceItemPeriodEnd(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal["min_item_period_end", "timestamp"] + """ + Select how to calculate the end of the invoice item period. + """ + + +class SubscriptionCreateParamsAddInvoiceItemPeriodStart(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal["max_item_period_start", "now", "timestamp"] + """ + Select how to calculate the start of the invoice item period. + """ + + +class SubscriptionCreateParamsAddInvoiceItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionCreateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired["SubscriptionCreateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionCreateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionCreateParamsBillingCycleAnchorConfig(TypedDict): + day_of_month: int + """ + The day of the month the anchor should be. Ranges from 1 to 31. + """ + hour: NotRequired[int] + """ + The hour of the day the anchor should be. Ranges from 0 to 23. + """ + minute: NotRequired[int] + """ + The minute of the hour the anchor should be. Ranges from 0 to 59. + """ + month: NotRequired[int] + """ + The month to start full cycle periods. Ranges from 1 to 12. + """ + second: NotRequired[int] + """ + The second of the minute the anchor should be. Ranges from 0 to 59. + """ + + +class SubscriptionCreateParamsBillingMode(TypedDict): + flexible: NotRequired["SubscriptionCreateParamsBillingModeFlexible"] + """ + Configure behavior for flexible billing mode. + """ + type: Literal["classic", "flexible"] + """ + Controls the calculation and orchestration of prorations and invoices for subscriptions. If no value is passed, the default is `flexible`. + """ + + +class SubscriptionCreateParamsBillingModeFlexible(TypedDict): + proration_discounts: NotRequired[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + +class SubscriptionCreateParamsBillingThresholds(TypedDict): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionCreateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionCreateParamsInvoiceSettings(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the subscription. Will be set on invoices generated by the subscription. + """ + issuer: NotRequired["SubscriptionCreateParamsInvoiceSettingsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionCreateParamsInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionCreateParamsItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionCreateParamsItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionCreateParamsItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + plan: NotRequired[str] + """ + Plan ID for this item, as a string. + """ + price: NotRequired[str] + """ + The ID of the price object. + """ + price_data: NotRequired["SubscriptionCreateParamsItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + quantity: NotRequired[int] + """ + Quantity for this item. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionCreateParamsItemBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionCreateParamsItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionCreateParamsItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionCreateParamsItemPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionCreateParamsItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class SubscriptionCreateParamsPaymentSettings(TypedDict): + payment_method_options: NotRequired[ + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration to provide to invoices created by the subscription. + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['ach_credit_transfer', 'ach_debit', 'acss_debit', 'affirm', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'boleto', 'card', 'cashapp', 'crypto', 'custom', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'jp_credit_transfer', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'link', 'multibanco', 'naver_pay', 'nz_bank_account', 'p24', 'payco', 'paynow', 'paypal', 'promptpay', 'revolut_pay', 'sepa_credit_transfer', 'sepa_debit', 'sofort', 'swish', 'us_bank_account', 'wechat_pay']]" + ] + """ + The list of payment method types (e.g. card) to provide to the invoice's PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). Should not be specified with payment_method_configuration + """ + save_default_payment_method: NotRequired[Literal["off", "on_subscription"]] + """ + Configure whether Stripe updates `subscription.default_payment_method` when payment succeeds. Defaults to `off` if unspecified. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit" + ] + """ + This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent. + """ + bancontact: NotRequired[ + "Literal['']|SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsBancontact" + ] + """ + This sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent. + """ + card: NotRequired[ + "Literal['']|SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCard" + ] + """ + This sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent. + """ + customer_balance: NotRequired[ + "Literal['']|SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance" + ] + """ + This sub-hash contains details about the Bank transfer payment method options to pass to the invoice's PaymentIntent. + """ + konbini: NotRequired[ + "Literal['']|SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsKonbini" + ] + """ + This sub-hash contains details about the Konbini payment method options to pass to the invoice's PaymentIntent. + """ + sepa_debit: NotRequired[ + "Literal['']|SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit" + ] + """ + This sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice's PaymentIntent. + """ + us_bank_account: NotRequired[ + "Literal['']|SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount" + ] + """ + This sub-hash contains details about the ACH direct debit payment method options to pass to the invoice's PaymentIntent. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebit( + TypedDict, +): + mandate_options: NotRequired[ + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsBancontact( + TypedDict, +): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCard( + TypedDict, +): + mandate_options: NotRequired[ + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this Subscription on. Depends on the available networks of the card attached to the Subscription. Can be only set confirm-time. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions( + TypedDict, +): + amount: NotRequired[int] + """ + Amount to be charged for future payments. + """ + amount_type: NotRequired[Literal["fixed", "maximum"]] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance( + TypedDict, +): + bank_transfer: NotRequired[ + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[str] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + type: NotRequired[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsKonbini( + TypedDict, +): + pass + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsSepaDebit( + TypedDict, +): + pass + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount( + TypedDict, +): + financial_connections: NotRequired[ + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + + +class SubscriptionCreateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class SubscriptionCreateParamsPendingInvoiceItemInterval(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies invoicing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between invoices. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). + """ + + +class SubscriptionCreateParamsTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class SubscriptionCreateParamsTrialSettings(TypedDict): + end_behavior: "SubscriptionCreateParamsTrialSettingsEndBehavior" + """ + Defines how the subscription should behave when the user's free trial ends. + """ + + +class SubscriptionCreateParamsTrialSettingsEndBehavior(TypedDict): + missing_payment_method: Literal["cancel", "create_invoice", "pause"] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_delete_discount_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_delete_discount_params.py new file mode 100644 index 00000000..79ade64e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_delete_discount_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class SubscriptionDeleteDiscountParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_create_params.py new file mode 100644 index 00000000..7b139d10 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_create_params.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionItemCreateParams(RequestOptions): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionItemCreateParamsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionItemCreateParamsDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_behavior: NotRequired[ + Literal[ + "allow_incomplete", + "default_incomplete", + "error_if_incomplete", + "pending_if_incomplete", + ] + ] + """ + Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + + Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription's invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + + Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + + Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://docs.stripe.com/changelog/2019-03-14) to learn more. + """ + plan: NotRequired[str] + """ + The identifier of the plan to add to the subscription. + """ + price: NotRequired[str] + """ + The ID of the price object. + """ + price_data: NotRequired["SubscriptionItemCreateParamsPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint. + """ + quantity: NotRequired[int] + """ + The quantity you'd like to apply to the subscription item you're creating. + """ + subscription: str + """ + The identifier of the subscription to modify. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionItemCreateParamsBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionItemCreateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionItemCreateParamsPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionItemCreateParamsPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionItemCreateParamsPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_delete_params.py new file mode 100644 index 00000000..2355bfe5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_delete_params.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing_extensions import Literal, NotRequired + + +class SubscriptionItemDeleteParams(RequestOptions): + clear_usage: NotRequired[bool] + """ + Delete all usage for the given subscription item. Allowed only when the current plan's `usage_type` is `metered`. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_list_params.py new file mode 100644 index 00000000..38b3a935 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SubscriptionItemListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + subscription: str + """ + The ID of the subscription whose items will be retrieved. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_modify_params.py new file mode 100644 index 00000000..9759b721 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_modify_params.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionItemModifyParams(RequestOptions): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionItemModifyParamsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionItemModifyParamsDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + off_session: NotRequired[bool] + """ + Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session). + """ + payment_behavior: NotRequired[ + Literal[ + "allow_incomplete", + "default_incomplete", + "error_if_incomplete", + "pending_if_incomplete", + ] + ] + """ + Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + + Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription's invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + + Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + + Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://docs.stripe.com/changelog/2019-03-14) to learn more. + """ + plan: NotRequired[str] + """ + The identifier of the new plan for this subscription item. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. When changing a subscription item's price, `quantity` is set to 1 unless a `quantity` parameter is provided. + """ + price_data: NotRequired["SubscriptionItemModifyParamsPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint. + """ + quantity: NotRequired[int] + """ + The quantity you'd like to apply to the subscription item you're creating. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionItemModifyParamsBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionItemModifyParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionItemModifyParamsPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionItemModifyParamsPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionItemModifyParamsPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_retrieve_params.py new file mode 100644 index 00000000..ae8d3d8c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SubscriptionItemRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_update_params.py new file mode 100644 index 00000000..bd6e0d45 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_item_update_params.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionItemUpdateParams(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionItemUpdateParamsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionItemUpdateParamsDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + off_session: NotRequired[bool] + """ + Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session). + """ + payment_behavior: NotRequired[ + Literal[ + "allow_incomplete", + "default_incomplete", + "error_if_incomplete", + "pending_if_incomplete", + ] + ] + """ + Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + + Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription's invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + + Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + + Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://docs.stripe.com/changelog/2019-03-14) to learn more. + """ + plan: NotRequired[str] + """ + The identifier of the new plan for this subscription item. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. When changing a subscription item's price, `quantity` is set to 1 unless a `quantity` parameter is provided. + """ + price_data: NotRequired["SubscriptionItemUpdateParamsPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint. + """ + quantity: NotRequired[int] + """ + The quantity you'd like to apply to the subscription item you're creating. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionItemUpdateParamsBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionItemUpdateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionItemUpdateParamsPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionItemUpdateParamsPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionItemUpdateParamsPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_list_params.py new file mode 100644 index 00000000..d51baa76 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_list_params.py @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionListParams(RequestOptions): + automatic_tax: NotRequired["SubscriptionListParamsAutomaticTax"] + """ + Filter subscriptions by their automatic tax settings. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + The collection method of the subscriptions to retrieve. Either `charge_automatically` or `send_invoice`. + """ + created: NotRequired["SubscriptionListParamsCreated|int"] + """ + Only return subscriptions that were created during the given date interval. + """ + current_period_end: NotRequired[ + "SubscriptionListParamsCurrentPeriodEnd|int" + ] + """ + Only return subscriptions whose minimum item current_period_end falls within the given date interval. + """ + current_period_start: NotRequired[ + "SubscriptionListParamsCurrentPeriodStart|int" + ] + """ + Only return subscriptions whose maximum item current_period_start falls within the given date interval. + """ + customer: NotRequired[str] + """ + The ID of the customer whose subscriptions will be retrieved. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + plan: NotRequired[str] + """ + The ID of the plan whose subscriptions will be retrieved. + """ + price: NotRequired[str] + """ + Filter for subscriptions that contain this recurring price ID. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[ + Literal[ + "active", + "all", + "canceled", + "ended", + "incomplete", + "incomplete_expired", + "past_due", + "paused", + "trialing", + "unpaid", + ] + ] + """ + The status of the subscriptions to retrieve. Passing in a value of `canceled` will return all canceled subscriptions, including those belonging to deleted customers. Pass `ended` to find subscriptions that are canceled and subscriptions that are expired due to [incomplete payment](https://stripe.com/docs/billing/subscriptions/overview#subscription-statuses). Passing in a value of `all` will return subscriptions of all statuses. If no value is supplied, all subscriptions that have not been canceled are returned. + """ + test_clock: NotRequired[str] + """ + Filter for subscriptions that are associated with the specified test clock. The response will not include subscriptions with test clocks if this and the customer parameter is not set. + """ + + +class SubscriptionListParamsAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + + +class SubscriptionListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class SubscriptionListParamsCurrentPeriodEnd(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class SubscriptionListParamsCurrentPeriodStart(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_migrate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_migrate_params.py new file mode 100644 index 00000000..fed3c5df --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_migrate_params.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionMigrateParams(RequestOptions): + billing_mode: "SubscriptionMigrateParamsBillingMode" + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + + +class SubscriptionMigrateParamsBillingMode(TypedDict): + flexible: NotRequired["SubscriptionMigrateParamsBillingModeFlexible"] + """ + Configure behavior for flexible billing mode. + """ + type: Literal["flexible"] + """ + Controls the calculation and orchestration of prorations and invoices for subscriptions. + """ + + +class SubscriptionMigrateParamsBillingModeFlexible(TypedDict): + proration_discounts: NotRequired[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_modify_params.py new file mode 100644 index 00000000..c4696a1c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_modify_params.py @@ -0,0 +1,765 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionModifyParams(RequestOptions): + add_invoice_items: NotRequired[ + List["SubscriptionModifyParamsAddInvoiceItem"] + ] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items. + """ + application_fee_percent: NotRequired["Literal['']|float"] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired["SubscriptionModifyParamsAutomaticTax"] + """ + Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed. + """ + billing_cycle_anchor: NotRequired[Literal["now", "unchanged"]] + """ + Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionModifyParamsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds. + """ + cancel_at: NotRequired[ + "Literal['']|int|Literal['max_period_end', 'min_period_end']" + ] + """ + A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. + """ + cancel_at_period_end: NotRequired[bool] + """ + Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. + """ + cancellation_details: NotRequired[ + "SubscriptionModifyParamsCancellationDetails" + ] + """ + Details about why this subscription was cancelled + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`. + """ + days_until_due: NotRequired[int] + """ + Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice`. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_source: NotRequired["Literal['']|str"] + """ + ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. Pass an empty string to remove previously-defined tax rates. + """ + description: NotRequired["Literal['']|str"] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionModifyParamsDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_settings: NotRequired["SubscriptionModifyParamsInvoiceSettings"] + """ + All invoices will be billed using the specified settings. + """ + items: NotRequired[List["SubscriptionModifyParamsItem"]] + """ + A list of up to 20 subscription items, each with an attached price. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + off_session: NotRequired[bool] + """ + Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session). + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge, for each of the subscription's invoices. + """ + pause_collection: NotRequired[ + "Literal['']|SubscriptionModifyParamsPauseCollection" + ] + """ + If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment). + """ + payment_behavior: NotRequired[ + Literal[ + "allow_incomplete", + "default_incomplete", + "error_if_incomplete", + "pending_if_incomplete", + ] + ] + """ + Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + + Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription's invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + + Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + + Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://docs.stripe.com/changelog/2019-03-14) to learn more. + """ + payment_settings: NotRequired["SubscriptionModifyParamsPaymentSettings"] + """ + Payment settings to pass to invoices created by the subscription. + """ + pending_invoice_item_interval: NotRequired[ + "Literal['']|SubscriptionModifyParamsPendingInvoiceItemInterval" + ] + """ + Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If set, prorations will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same prorations that were previewed with the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint. `proration_date` can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations. + """ + transfer_data: NotRequired[ + "Literal['']|SubscriptionModifyParamsTransferData" + ] + """ + If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value. + """ + trial_end: NotRequired["Literal['now']|int"] + """ + Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, `trial_end` will override the default trial period of the plan the customer is being subscribed to. The `billing_cycle_anchor` will be updated to the `trial_end` value. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`. + """ + trial_from_plan: NotRequired[bool] + """ + Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more. + """ + trial_settings: NotRequired["SubscriptionModifyParamsTrialSettings"] + """ + Settings related to subscription trials. + """ + + +class SubscriptionModifyParamsAddInvoiceItem(TypedDict): + discounts: NotRequired[ + List["SubscriptionModifyParamsAddInvoiceItemDiscount"] + ] + """ + The coupons to redeem into discounts for the item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["SubscriptionModifyParamsAddInvoiceItemPeriod"] + """ + The period associated with this invoice item. If not set, `period.start.type` defaults to `max_item_period_start` and `period.end.type` defaults to `min_item_period_end`. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["SubscriptionModifyParamsAddInvoiceItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. Defaults to 1. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + + +class SubscriptionModifyParamsAddInvoiceItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionModifyParamsAddInvoiceItemPeriod(TypedDict): + end: "SubscriptionModifyParamsAddInvoiceItemPeriodEnd" + """ + End of the invoice item period. + """ + start: "SubscriptionModifyParamsAddInvoiceItemPeriodStart" + """ + Start of the invoice item period. + """ + + +class SubscriptionModifyParamsAddInvoiceItemPeriodEnd(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal["min_item_period_end", "timestamp"] + """ + Select how to calculate the end of the invoice item period. + """ + + +class SubscriptionModifyParamsAddInvoiceItemPeriodStart(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal["max_item_period_start", "now", "timestamp"] + """ + Select how to calculate the start of the invoice item period. + """ + + +class SubscriptionModifyParamsAddInvoiceItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionModifyParamsAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired["SubscriptionModifyParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionModifyParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionModifyParamsBillingThresholds(TypedDict): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionModifyParamsCancellationDetails(TypedDict): + comment: NotRequired["Literal['']|str"] + """ + Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user. + """ + feedback: NotRequired[ + "Literal['']|Literal['customer_service', 'low_quality', 'missing_features', 'other', 'switched_service', 'too_complex', 'too_expensive', 'unused']" + ] + """ + The customer submitted reason for why they canceled, if the subscription was canceled explicitly by the user. + """ + + +class SubscriptionModifyParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionModifyParamsInvoiceSettings(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the subscription. Will be set on invoices generated by the subscription. + """ + issuer: NotRequired["SubscriptionModifyParamsInvoiceSettingsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionModifyParamsInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionModifyParamsItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionModifyParamsItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + clear_usage: NotRequired[bool] + """ + Delete all usage for a given subscription item. You must pass this when deleting a usage records subscription item. `clear_usage` has no effect if the plan has a billing meter attached. + """ + deleted: NotRequired[bool] + """ + A flag that, if set to `true`, will delete the specified item. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionModifyParamsItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + id: NotRequired[str] + """ + Subscription item to update. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + plan: NotRequired[str] + """ + Plan ID for this item, as a string. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. When changing a subscription item's price, `quantity` is set to 1 unless a `quantity` parameter is provided. + """ + price_data: NotRequired["SubscriptionModifyParamsItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionModifyParamsItemBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionModifyParamsItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionModifyParamsItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionModifyParamsItemPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionModifyParamsItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class SubscriptionModifyParamsPauseCollection(TypedDict): + behavior: Literal["keep_as_draft", "mark_uncollectible", "void"] + """ + The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`. + """ + resumes_at: NotRequired[int] + """ + The time after which the subscription will resume collecting payments. + """ + + +class SubscriptionModifyParamsPaymentSettings(TypedDict): + payment_method_options: NotRequired[ + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration to provide to invoices created by the subscription. + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['ach_credit_transfer', 'ach_debit', 'acss_debit', 'affirm', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'boleto', 'card', 'cashapp', 'crypto', 'custom', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'jp_credit_transfer', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'link', 'multibanco', 'naver_pay', 'nz_bank_account', 'p24', 'payco', 'paynow', 'paypal', 'promptpay', 'revolut_pay', 'sepa_credit_transfer', 'sepa_debit', 'sofort', 'swish', 'us_bank_account', 'wechat_pay']]" + ] + """ + The list of payment method types (e.g. card) to provide to the invoice's PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). Should not be specified with payment_method_configuration + """ + save_default_payment_method: NotRequired[Literal["off", "on_subscription"]] + """ + Configure whether Stripe updates `subscription.default_payment_method` when payment succeeds. Defaults to `off` if unspecified. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit" + ] + """ + This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent. + """ + bancontact: NotRequired[ + "Literal['']|SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsBancontact" + ] + """ + This sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent. + """ + card: NotRequired[ + "Literal['']|SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCard" + ] + """ + This sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent. + """ + customer_balance: NotRequired[ + "Literal['']|SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance" + ] + """ + This sub-hash contains details about the Bank transfer payment method options to pass to the invoice's PaymentIntent. + """ + konbini: NotRequired[ + "Literal['']|SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsKonbini" + ] + """ + This sub-hash contains details about the Konbini payment method options to pass to the invoice's PaymentIntent. + """ + sepa_debit: NotRequired[ + "Literal['']|SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit" + ] + """ + This sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice's PaymentIntent. + """ + us_bank_account: NotRequired[ + "Literal['']|SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount" + ] + """ + This sub-hash contains details about the ACH direct debit payment method options to pass to the invoice's PaymentIntent. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebit( + TypedDict, +): + mandate_options: NotRequired[ + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsBancontact( + TypedDict, +): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCard( + TypedDict, +): + mandate_options: NotRequired[ + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this Subscription on. Depends on the available networks of the card attached to the Subscription. Can be only set confirm-time. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions( + TypedDict, +): + amount: NotRequired[int] + """ + Amount to be charged for future payments. + """ + amount_type: NotRequired[Literal["fixed", "maximum"]] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalance( + TypedDict, +): + bank_transfer: NotRequired[ + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[str] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + type: NotRequired[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsKonbini( + TypedDict, +): + pass + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsSepaDebit( + TypedDict, +): + pass + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccount( + TypedDict, +): + financial_connections: NotRequired[ + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + + +class SubscriptionModifyParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class SubscriptionModifyParamsPendingInvoiceItemInterval(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies invoicing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between invoices. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). + """ + + +class SubscriptionModifyParamsTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class SubscriptionModifyParamsTrialSettings(TypedDict): + end_behavior: "SubscriptionModifyParamsTrialSettingsEndBehavior" + """ + Defines how the subscription should behave when the user's free trial ends. + """ + + +class SubscriptionModifyParamsTrialSettingsEndBehavior(TypedDict): + missing_payment_method: Literal["cancel", "create_invoice", "pause"] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_resume_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_resume_params.py new file mode 100644 index 00000000..a74e3c7b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_resume_params.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class SubscriptionResumeParams(RequestOptions): + billing_cycle_anchor: NotRequired[Literal["now", "unchanged"]] + """ + The billing cycle anchor that applies when the subscription is resumed. Either `now` or `unchanged`. The default is `now`. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) resulting from the `billing_cycle_anchor` being `unchanged`. When the `billing_cycle_anchor` is set to `now` (default value), no prorations are generated. If no value is passed, the default is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If set, prorations will be calculated as though the subscription was resumed at the given time. This can be used to apply exactly the same prorations that were previewed with the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_retrieve_params.py new file mode 100644 index 00000000..17751ff4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SubscriptionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_cancel_params.py new file mode 100644 index 00000000..dc84eac0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_cancel_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SubscriptionScheduleCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_now: NotRequired[bool] + """ + If the subscription schedule is `active`, indicates if a final invoice will be generated that contains any un-invoiced metered usage and new/pending proration invoice items. Defaults to `true`. + """ + prorate: NotRequired[bool] + """ + If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_create_params.py new file mode 100644 index 00000000..c2766214 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_create_params.py @@ -0,0 +1,615 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionScheduleCreateParams(RequestOptions): + billing_mode: NotRequired["SubscriptionScheduleCreateParamsBillingMode"] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + customer: NotRequired[str] + """ + The identifier of the customer to create the subscription schedule for. + """ + default_settings: NotRequired[ + "SubscriptionScheduleCreateParamsDefaultSettings" + ] + """ + Object representing the subscription schedule's default settings. + """ + end_behavior: NotRequired[Literal["cancel", "none", "release", "renew"]] + """ + Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + from_subscription: NotRequired[str] + """ + Migrate an existing subscription to be managed by a subscription schedule. If this parameter is set, a subscription schedule will be created using the subscription's item(s), set to auto-renew using the subscription's interval. When using this parameter, other parameters (such as phase values) cannot be set. To create a subscription schedule with other modifications, we recommend making two separate API calls. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phases: NotRequired[List["SubscriptionScheduleCreateParamsPhase"]] + """ + List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. + """ + start_date: NotRequired["int|Literal['now']"] + """ + When the subscription schedule starts. We recommend using `now` so that it starts the subscription immediately. You can also use a Unix timestamp to backdate the subscription so that it starts on a past date, or set a future date for the subscription to start on. + """ + + +class SubscriptionScheduleCreateParamsBillingMode(TypedDict): + flexible: NotRequired[ + "SubscriptionScheduleCreateParamsBillingModeFlexible" + ] + """ + Configure behavior for flexible billing mode. + """ + type: Literal["classic", "flexible"] + """ + Controls the calculation and orchestration of prorations and invoices for subscriptions. If no value is passed, the default is `flexible`. + """ + + +class SubscriptionScheduleCreateParamsBillingModeFlexible(TypedDict): + proration_discounts: NotRequired[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + +class SubscriptionScheduleCreateParamsDefaultSettings(TypedDict): + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired[ + "SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTax" + ] + """ + Default settings for automatic tax computation. + """ + billing_cycle_anchor: NotRequired[Literal["automatic", "phase_start"]] + """ + Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleCreateParamsDefaultSettingsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + description: NotRequired["Literal['']|str"] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + invoice_settings: NotRequired[ + "SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge, for each of the associated subscription's invoices. + """ + transfer_data: NotRequired[ + "Literal['']|SubscriptionScheduleCreateParamsDefaultSettingsTransferData" + ] + """ + The data with which to automatically create a Transfer for each of the associated subscription's invoices. + """ + + +class SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired[ + "SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTaxLiability" + ] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionScheduleCreateParamsDefaultSettingsAutomaticTaxLiability( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleCreateParamsDefaultSettingsBillingThresholds( + TypedDict, +): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettings( + TypedDict +): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule. + """ + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `collection_method=charge_automatically`. + """ + issuer: NotRequired[ + "SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionScheduleCreateParamsDefaultSettingsInvoiceSettingsIssuer( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleCreateParamsDefaultSettingsTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class SubscriptionScheduleCreateParamsPhase(TypedDict): + add_invoice_items: NotRequired[ + List["SubscriptionScheduleCreateParamsPhaseAddInvoiceItem"] + ] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items. + """ + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseAutomaticTax" + ] + """ + Automatic tax settings for this phase. + """ + billing_cycle_anchor: NotRequired[Literal["automatic", "phase_start"]] + """ + Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleCreateParamsPhaseBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase. + """ + description: NotRequired["Literal['']|str"] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionScheduleCreateParamsPhaseDiscount]" + ] + """ + The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts. + """ + duration: NotRequired["SubscriptionScheduleCreateParamsPhaseDuration"] + """ + The number of intervals the phase should last. If set, `end_date` must not be set. + """ + end_date: NotRequired[int] + """ + The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set. + """ + invoice_settings: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + items: List["SubscriptionScheduleCreateParamsPhaseItem"] + """ + List of configuration items, each with an attached price, to apply during this phase of the subscription schedule. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The account on behalf of which to charge, for each of the associated subscription's invoices. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Controls whether the subscription schedule should create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase if there is a difference in billing configuration. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration (item price, quantity, etc.) of the current phase. + """ + transfer_data: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseTransferData" + ] + """ + The data with which to automatically create a Transfer for each of the associated subscription's invoices. + """ + trial: NotRequired[bool] + """ + If set to true the entire phase is counted as a trial and the customer will not be charged for any fees. + """ + trial_end: NotRequired[int] + """ + Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial` + """ + + +class SubscriptionScheduleCreateParamsPhaseAddInvoiceItem(TypedDict): + discounts: NotRequired[ + List["SubscriptionScheduleCreateParamsPhaseAddInvoiceItemDiscount"] + ] + """ + The coupons to redeem into discounts for the item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriod" + ] + """ + The period associated with this invoice item. If not set, `period.start.type` defaults to `max_item_period_start` and `period.end.type` defaults to `min_item_period_end`. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. Defaults to 1. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + + +class SubscriptionScheduleCreateParamsPhaseAddInvoiceItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriod(TypedDict): + end: "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodEnd" + """ + End of the invoice item period. + """ + start: "SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodStart" + """ + Start of the invoice item period. + """ + + +class SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodEnd(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal["min_item_period_end", "phase_end", "timestamp"] + """ + Select how to calculate the end of the invoice item period. + """ + + +class SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPeriodStart( + TypedDict +): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal["max_item_period_start", "phase_start", "timestamp"] + """ + Select how to calculate the start of the invoice item period. + """ + + +class SubscriptionScheduleCreateParamsPhaseAddInvoiceItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionScheduleCreateParamsPhaseAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseAutomaticTaxLiability" + ] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionScheduleCreateParamsPhaseAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleCreateParamsPhaseBillingThresholds(TypedDict): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionScheduleCreateParamsPhaseDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleCreateParamsPhaseDuration(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies phase duration. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The multiplier applied to the interval. + """ + + +class SubscriptionScheduleCreateParamsPhaseInvoiceSettings(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule. + """ + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`. + """ + issuer: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionScheduleCreateParamsPhaseInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleCreateParamsPhaseItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleCreateParamsPhaseItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionScheduleCreateParamsPhaseItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`. + """ + plan: NotRequired[str] + """ + The plan ID to subscribe to. You may specify the same ID in `plan` and `price`. + """ + price: NotRequired[str] + """ + The ID of the price object. + """ + price_data: NotRequired[ + "SubscriptionScheduleCreateParamsPhaseItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + quantity: NotRequired[int] + """ + Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionScheduleCreateParamsPhaseItemBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionScheduleCreateParamsPhaseItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleCreateParamsPhaseItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionScheduleCreateParamsPhaseItemPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionScheduleCreateParamsPhaseItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class SubscriptionScheduleCreateParamsPhaseTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_list_params.py new file mode 100644 index 00000000..2f3b91e9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_list_params.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class SubscriptionScheduleListParams(RequestOptions): + canceled_at: NotRequired["SubscriptionScheduleListParamsCanceledAt|int"] + """ + Only return subscription schedules that were created canceled the given date interval. + """ + completed_at: NotRequired["SubscriptionScheduleListParamsCompletedAt|int"] + """ + Only return subscription schedules that completed during the given date interval. + """ + created: NotRequired["SubscriptionScheduleListParamsCreated|int"] + """ + Only return subscription schedules that were created during the given date interval. + """ + customer: NotRequired[str] + """ + Only return subscription schedules for the given customer. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + released_at: NotRequired["SubscriptionScheduleListParamsReleasedAt|int"] + """ + Only return subscription schedules that were released during the given date interval. + """ + scheduled: NotRequired[bool] + """ + Only return subscription schedules that have not started yet. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class SubscriptionScheduleListParamsCanceledAt(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class SubscriptionScheduleListParamsCompletedAt(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class SubscriptionScheduleListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class SubscriptionScheduleListParamsReleasedAt(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_modify_params.py new file mode 100644 index 00000000..04d91b09 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_modify_params.py @@ -0,0 +1,589 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionScheduleModifyParams(RequestOptions): + default_settings: NotRequired[ + "SubscriptionScheduleModifyParamsDefaultSettings" + ] + """ + Object representing the subscription schedule's default settings. + """ + end_behavior: NotRequired[Literal["cancel", "none", "release", "renew"]] + """ + Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phases: NotRequired[List["SubscriptionScheduleModifyParamsPhase"]] + """ + List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. Note that past phases can be omitted. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + If the update changes the billing configuration (item price, quantity, etc.) of the current phase, indicates how prorations from this change should be handled. The default value is `create_prorations`. + """ + + +class SubscriptionScheduleModifyParamsDefaultSettings(TypedDict): + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired[ + "SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTax" + ] + """ + Default settings for automatic tax computation. + """ + billing_cycle_anchor: NotRequired[Literal["automatic", "phase_start"]] + """ + Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleModifyParamsDefaultSettingsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + description: NotRequired["Literal['']|str"] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + invoice_settings: NotRequired[ + "SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge, for each of the associated subscription's invoices. + """ + transfer_data: NotRequired[ + "Literal['']|SubscriptionScheduleModifyParamsDefaultSettingsTransferData" + ] + """ + The data with which to automatically create a Transfer for each of the associated subscription's invoices. + """ + + +class SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired[ + "SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTaxLiability" + ] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionScheduleModifyParamsDefaultSettingsAutomaticTaxLiability( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleModifyParamsDefaultSettingsBillingThresholds( + TypedDict, +): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettings( + TypedDict +): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule. + """ + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `collection_method=charge_automatically`. + """ + issuer: NotRequired[ + "SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionScheduleModifyParamsDefaultSettingsInvoiceSettingsIssuer( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleModifyParamsDefaultSettingsTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class SubscriptionScheduleModifyParamsPhase(TypedDict): + add_invoice_items: NotRequired[ + List["SubscriptionScheduleModifyParamsPhaseAddInvoiceItem"] + ] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items. + """ + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseAutomaticTax" + ] + """ + Automatic tax settings for this phase. + """ + billing_cycle_anchor: NotRequired[Literal["automatic", "phase_start"]] + """ + Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleModifyParamsPhaseBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase. + """ + description: NotRequired["Literal['']|str"] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionScheduleModifyParamsPhaseDiscount]" + ] + """ + The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts. + """ + duration: NotRequired["SubscriptionScheduleModifyParamsPhaseDuration"] + """ + The number of intervals the phase should last. If set, `end_date` must not be set. + """ + end_date: NotRequired["int|Literal['now']"] + """ + The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set. + """ + invoice_settings: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + items: List["SubscriptionScheduleModifyParamsPhaseItem"] + """ + List of configuration items, each with an attached price, to apply during this phase of the subscription schedule. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The account on behalf of which to charge, for each of the associated subscription's invoices. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Controls whether the subscription schedule should create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase if there is a difference in billing configuration. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration (item price, quantity, etc.) of the current phase. + """ + start_date: NotRequired["int|Literal['now']"] + """ + The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase. + """ + transfer_data: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseTransferData" + ] + """ + The data with which to automatically create a Transfer for each of the associated subscription's invoices. + """ + trial: NotRequired[bool] + """ + If set to true the entire phase is counted as a trial and the customer will not be charged for any fees. + """ + trial_end: NotRequired["int|Literal['now']"] + """ + Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial` + """ + + +class SubscriptionScheduleModifyParamsPhaseAddInvoiceItem(TypedDict): + discounts: NotRequired[ + List["SubscriptionScheduleModifyParamsPhaseAddInvoiceItemDiscount"] + ] + """ + The coupons to redeem into discounts for the item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriod" + ] + """ + The period associated with this invoice item. If not set, `period.start.type` defaults to `max_item_period_start` and `period.end.type` defaults to `min_item_period_end`. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. Defaults to 1. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + + +class SubscriptionScheduleModifyParamsPhaseAddInvoiceItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriod(TypedDict): + end: "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodEnd" + """ + End of the invoice item period. + """ + start: "SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodStart" + """ + Start of the invoice item period. + """ + + +class SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodEnd(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal["min_item_period_end", "phase_end", "timestamp"] + """ + Select how to calculate the end of the invoice item period. + """ + + +class SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPeriodStart( + TypedDict +): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal["max_item_period_start", "phase_start", "timestamp"] + """ + Select how to calculate the start of the invoice item period. + """ + + +class SubscriptionScheduleModifyParamsPhaseAddInvoiceItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionScheduleModifyParamsPhaseAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseAutomaticTaxLiability" + ] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionScheduleModifyParamsPhaseAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleModifyParamsPhaseBillingThresholds(TypedDict): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionScheduleModifyParamsPhaseDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleModifyParamsPhaseDuration(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies phase duration. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The multiplier applied to the interval. + """ + + +class SubscriptionScheduleModifyParamsPhaseInvoiceSettings(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule. + """ + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`. + """ + issuer: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionScheduleModifyParamsPhaseInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleModifyParamsPhaseItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleModifyParamsPhaseItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionScheduleModifyParamsPhaseItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`. + """ + plan: NotRequired[str] + """ + The plan ID to subscribe to. You may specify the same ID in `plan` and `price`. + """ + price: NotRequired[str] + """ + The ID of the price object. + """ + price_data: NotRequired[ + "SubscriptionScheduleModifyParamsPhaseItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + quantity: NotRequired[int] + """ + Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionScheduleModifyParamsPhaseItemBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionScheduleModifyParamsPhaseItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleModifyParamsPhaseItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionScheduleModifyParamsPhaseItemPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionScheduleModifyParamsPhaseItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class SubscriptionScheduleModifyParamsPhaseTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_release_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_release_params.py new file mode 100644 index 00000000..1c5e4aa9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_release_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SubscriptionScheduleReleaseParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + preserve_cancel_date: NotRequired[bool] + """ + Keep any cancellation on the subscription that the schedule has set + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_retrieve_params.py new file mode 100644 index 00000000..8b7f1256 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SubscriptionScheduleRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_update_params.py new file mode 100644 index 00000000..16553471 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_schedule_update_params.py @@ -0,0 +1,588 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionScheduleUpdateParams(TypedDict): + default_settings: NotRequired[ + "SubscriptionScheduleUpdateParamsDefaultSettings" + ] + """ + Object representing the subscription schedule's default settings. + """ + end_behavior: NotRequired[Literal["cancel", "none", "release", "renew"]] + """ + Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phases: NotRequired[List["SubscriptionScheduleUpdateParamsPhase"]] + """ + List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. Note that past phases can be omitted. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + If the update changes the billing configuration (item price, quantity, etc.) of the current phase, indicates how prorations from this change should be handled. The default value is `create_prorations`. + """ + + +class SubscriptionScheduleUpdateParamsDefaultSettings(TypedDict): + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired[ + "SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTax" + ] + """ + Default settings for automatic tax computation. + """ + billing_cycle_anchor: NotRequired[Literal["automatic", "phase_start"]] + """ + Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleUpdateParamsDefaultSettingsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + description: NotRequired["Literal['']|str"] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + invoice_settings: NotRequired[ + "SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge, for each of the associated subscription's invoices. + """ + transfer_data: NotRequired[ + "Literal['']|SubscriptionScheduleUpdateParamsDefaultSettingsTransferData" + ] + """ + The data with which to automatically create a Transfer for each of the associated subscription's invoices. + """ + + +class SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired[ + "SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTaxLiability" + ] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionScheduleUpdateParamsDefaultSettingsAutomaticTaxLiability( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleUpdateParamsDefaultSettingsBillingThresholds( + TypedDict, +): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettings( + TypedDict +): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule. + """ + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `collection_method=charge_automatically`. + """ + issuer: NotRequired[ + "SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionScheduleUpdateParamsDefaultSettingsInvoiceSettingsIssuer( + TypedDict, +): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleUpdateParamsDefaultSettingsTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class SubscriptionScheduleUpdateParamsPhase(TypedDict): + add_invoice_items: NotRequired[ + List["SubscriptionScheduleUpdateParamsPhaseAddInvoiceItem"] + ] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items. + """ + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseAutomaticTax" + ] + """ + Automatic tax settings for this phase. + """ + billing_cycle_anchor: NotRequired[Literal["automatic", "phase_start"]] + """ + Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleUpdateParamsPhaseBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` on creation. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings. + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase. + """ + description: NotRequired["Literal['']|str"] + """ + Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionScheduleUpdateParamsPhaseDiscount]" + ] + """ + The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts. + """ + duration: NotRequired["SubscriptionScheduleUpdateParamsPhaseDuration"] + """ + The number of intervals the phase should last. If set, `end_date` must not be set. + """ + end_date: NotRequired["int|Literal['now']"] + """ + The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set. + """ + invoice_settings: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + items: List["SubscriptionScheduleUpdateParamsPhaseItem"] + """ + List of configuration items, each with an attached price, to apply during this phase of the subscription schedule. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The account on behalf of which to charge, for each of the associated subscription's invoices. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Controls whether the subscription schedule should create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase if there is a difference in billing configuration. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration (item price, quantity, etc.) of the current phase. + """ + start_date: NotRequired["int|Literal['now']"] + """ + The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase. + """ + transfer_data: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseTransferData" + ] + """ + The data with which to automatically create a Transfer for each of the associated subscription's invoices. + """ + trial: NotRequired[bool] + """ + If set to true the entire phase is counted as a trial and the customer will not be charged for any fees. + """ + trial_end: NotRequired["int|Literal['now']"] + """ + Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial` + """ + + +class SubscriptionScheduleUpdateParamsPhaseAddInvoiceItem(TypedDict): + discounts: NotRequired[ + List["SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemDiscount"] + ] + """ + The coupons to redeem into discounts for the item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriod" + ] + """ + The period associated with this invoice item. If not set, `period.start.type` defaults to `max_item_period_start` and `period.end.type` defaults to `min_item_period_end`. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. Defaults to 1. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + + +class SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriod(TypedDict): + end: "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodEnd" + """ + End of the invoice item period. + """ + start: "SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodStart" + """ + Start of the invoice item period. + """ + + +class SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodEnd(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal["min_item_period_end", "phase_end", "timestamp"] + """ + Select how to calculate the end of the invoice item period. + """ + + +class SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPeriodStart( + TypedDict +): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal["max_item_period_start", "phase_start", "timestamp"] + """ + Select how to calculate the start of the invoice item period. + """ + + +class SubscriptionScheduleUpdateParamsPhaseAddInvoiceItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionScheduleUpdateParamsPhaseAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseAutomaticTaxLiability" + ] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionScheduleUpdateParamsPhaseAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleUpdateParamsPhaseBillingThresholds(TypedDict): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionScheduleUpdateParamsPhaseDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleUpdateParamsPhaseDuration(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies phase duration. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The multiplier applied to the interval. + """ + + +class SubscriptionScheduleUpdateParamsPhaseInvoiceSettings(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule. + """ + days_until_due: NotRequired[int] + """ + Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`. + """ + issuer: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionScheduleUpdateParamsPhaseInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionScheduleUpdateParamsPhaseItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionScheduleUpdateParamsPhaseItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionScheduleUpdateParamsPhaseItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`. + """ + plan: NotRequired[str] + """ + The plan ID to subscribe to. You may specify the same ID in `plan` and `price`. + """ + price: NotRequired[str] + """ + The ID of the price object. + """ + price_data: NotRequired[ + "SubscriptionScheduleUpdateParamsPhaseItemPriceData" + ] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. + """ + quantity: NotRequired[int] + """ + Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionScheduleUpdateParamsPhaseItemBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionScheduleUpdateParamsPhaseItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionScheduleUpdateParamsPhaseItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionScheduleUpdateParamsPhaseItemPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionScheduleUpdateParamsPhaseItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class SubscriptionScheduleUpdateParamsPhaseTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_search_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_search_params.py new file mode 100644 index 00000000..7930e586 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_search_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SubscriptionSearchParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + page: NotRequired[str] + """ + A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results. + """ + query: str + """ + The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for subscriptions](https://stripe.com/docs/search#query-fields-for-subscriptions). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_update_params.py new file mode 100644 index 00000000..66201f21 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_subscription_update_params.py @@ -0,0 +1,764 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SubscriptionUpdateParams(TypedDict): + add_invoice_items: NotRequired[ + List["SubscriptionUpdateParamsAddInvoiceItem"] + ] + """ + A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items. + """ + application_fee_percent: NotRequired["Literal['']|float"] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + automatic_tax: NotRequired["SubscriptionUpdateParamsAutomaticTax"] + """ + Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed. + """ + billing_cycle_anchor: NotRequired[Literal["now", "unchanged"]] + """ + Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle). + """ + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionUpdateParamsBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds. + """ + cancel_at: NotRequired[ + "Literal['']|int|Literal['max_period_end', 'min_period_end']" + ] + """ + A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. + """ + cancel_at_period_end: NotRequired[bool] + """ + Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. + """ + cancellation_details: NotRequired[ + "SubscriptionUpdateParamsCancellationDetails" + ] + """ + Details about why this subscription was cancelled + """ + collection_method: NotRequired[ + Literal["charge_automatically", "send_invoice"] + ] + """ + Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`. + """ + days_until_due: NotRequired[int] + """ + Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice`. + """ + default_payment_method: NotRequired[str] + """ + ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_source: NotRequired["Literal['']|str"] + """ + ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source). + """ + default_tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. Pass an empty string to remove previously-defined tax rates. + """ + description: NotRequired["Literal['']|str"] + """ + The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionUpdateParamsDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + invoice_settings: NotRequired["SubscriptionUpdateParamsInvoiceSettings"] + """ + All invoices will be billed using the specified settings. + """ + items: NotRequired[List["SubscriptionUpdateParamsItem"]] + """ + A list of up to 20 subscription items, each with an attached price. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + off_session: NotRequired[bool] + """ + Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session). + """ + on_behalf_of: NotRequired["Literal['']|str"] + """ + The account on behalf of which to charge, for each of the subscription's invoices. + """ + pause_collection: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPauseCollection" + ] + """ + If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment). + """ + payment_behavior: NotRequired[ + Literal[ + "allow_incomplete", + "default_incomplete", + "error_if_incomplete", + "pending_if_incomplete", + ] + ] + """ + Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + + Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription's invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + + Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + + Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://docs.stripe.com/changelog/2019-03-14) to learn more. + """ + payment_settings: NotRequired["SubscriptionUpdateParamsPaymentSettings"] + """ + Payment settings to pass to invoices created by the subscription. + """ + pending_invoice_item_interval: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPendingInvoiceItemInterval" + ] + """ + Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. + """ + proration_date: NotRequired[int] + """ + If set, prorations will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same prorations that were previewed with the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint. `proration_date` can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations. + """ + transfer_data: NotRequired[ + "Literal['']|SubscriptionUpdateParamsTransferData" + ] + """ + If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value. + """ + trial_end: NotRequired["Literal['now']|int"] + """ + Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, `trial_end` will override the default trial period of the plan the customer is being subscribed to. The `billing_cycle_anchor` will be updated to the `trial_end` value. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`. + """ + trial_from_plan: NotRequired[bool] + """ + Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more. + """ + trial_settings: NotRequired["SubscriptionUpdateParamsTrialSettings"] + """ + Settings related to subscription trials. + """ + + +class SubscriptionUpdateParamsAddInvoiceItem(TypedDict): + discounts: NotRequired[ + List["SubscriptionUpdateParamsAddInvoiceItemDiscount"] + ] + """ + The coupons to redeem into discounts for the item. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + period: NotRequired["SubscriptionUpdateParamsAddInvoiceItemPeriod"] + """ + The period associated with this invoice item. If not set, `period.start.type` defaults to `max_item_period_start` and `period.end.type` defaults to `min_item_period_end`. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["SubscriptionUpdateParamsAddInvoiceItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. Defaults to 1. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item. + """ + + +class SubscriptionUpdateParamsAddInvoiceItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionUpdateParamsAddInvoiceItemPeriod(TypedDict): + end: "SubscriptionUpdateParamsAddInvoiceItemPeriodEnd" + """ + End of the invoice item period. + """ + start: "SubscriptionUpdateParamsAddInvoiceItemPeriodStart" + """ + Start of the invoice item period. + """ + + +class SubscriptionUpdateParamsAddInvoiceItemPeriodEnd(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the end of the invoice item period. Must be greater than or equal to `period.start`. + """ + type: Literal["min_item_period_end", "timestamp"] + """ + Select how to calculate the end of the invoice item period. + """ + + +class SubscriptionUpdateParamsAddInvoiceItemPeriodStart(TypedDict): + timestamp: NotRequired[int] + """ + A precise Unix timestamp for the start of the invoice item period. Must be less than or equal to `period.end`. + """ + type: Literal["max_item_period_start", "now", "timestamp"] + """ + Select how to calculate the start of the invoice item period. + """ + + +class SubscriptionUpdateParamsAddInvoiceItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionUpdateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription. + """ + liability: NotRequired["SubscriptionUpdateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SubscriptionUpdateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionUpdateParamsBillingThresholds(TypedDict): + amount_gte: NotRequired[int] + """ + Monetary threshold that triggers the subscription to advance to a new billing period + """ + reset_billing_cycle_anchor: NotRequired[bool] + """ + Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. + """ + + +class SubscriptionUpdateParamsCancellationDetails(TypedDict): + comment: NotRequired["Literal['']|str"] + """ + Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user. + """ + feedback: NotRequired[ + "Literal['']|Literal['customer_service', 'low_quality', 'missing_features', 'other', 'switched_service', 'too_complex', 'too_expensive', 'unused']" + ] + """ + The customer submitted reason for why they canceled, if the subscription was canceled explicitly by the user. + """ + + +class SubscriptionUpdateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionUpdateParamsInvoiceSettings(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the subscription. Will be set on invoices generated by the subscription. + """ + issuer: NotRequired["SubscriptionUpdateParamsInvoiceSettingsIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SubscriptionUpdateParamsInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SubscriptionUpdateParamsItem(TypedDict): + billing_thresholds: NotRequired[ + "Literal['']|SubscriptionUpdateParamsItemBillingThresholds" + ] + """ + Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds. + """ + clear_usage: NotRequired[bool] + """ + Delete all usage for a given subscription item. You must pass this when deleting a usage records subscription item. `clear_usage` has no effect if the plan has a billing meter attached. + """ + deleted: NotRequired[bool] + """ + A flag that, if set to `true`, will delete the specified item. + """ + discounts: NotRequired[ + "Literal['']|List[SubscriptionUpdateParamsItemDiscount]" + ] + """ + The coupons to redeem into discounts for the subscription item. + """ + id: NotRequired[str] + """ + Subscription item to update. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + plan: NotRequired[str] + """ + Plan ID for this item, as a string. + """ + price: NotRequired[str] + """ + The ID of the price object. One of `price` or `price_data` is required. When changing a subscription item's price, `quantity` is set to 1 unless a `quantity` parameter is provided. + """ + price_data: NotRequired["SubscriptionUpdateParamsItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + Quantity for this item. + """ + tax_rates: NotRequired["Literal['']|List[str]"] + """ + A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates. + """ + + +class SubscriptionUpdateParamsItemBillingThresholds(TypedDict): + usage_gte: int + """ + Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte)) + """ + + +class SubscriptionUpdateParamsItemDiscount(TypedDict): + coupon: NotRequired[str] + """ + ID of the coupon to create a new discount for. + """ + discount: NotRequired[str] + """ + ID of an existing discount on the object (or one of its ancestors) to reuse. + """ + promotion_code: NotRequired[str] + """ + ID of the promotion code to create a new discount for. + """ + + +class SubscriptionUpdateParamsItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: str + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. + """ + recurring: "SubscriptionUpdateParamsItemPriceDataRecurring" + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SubscriptionUpdateParamsItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class SubscriptionUpdateParamsPauseCollection(TypedDict): + behavior: Literal["keep_as_draft", "mark_uncollectible", "void"] + """ + The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`. + """ + resumes_at: NotRequired[int] + """ + The time after which the subscription will resume collecting payments. + """ + + +class SubscriptionUpdateParamsPaymentSettings(TypedDict): + payment_method_options: NotRequired[ + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration to provide to invoices created by the subscription. + """ + payment_method_types: NotRequired[ + "Literal['']|List[Literal['ach_credit_transfer', 'ach_debit', 'acss_debit', 'affirm', 'amazon_pay', 'au_becs_debit', 'bacs_debit', 'bancontact', 'boleto', 'card', 'cashapp', 'crypto', 'custom', 'customer_balance', 'eps', 'fpx', 'giropay', 'grabpay', 'ideal', 'jp_credit_transfer', 'kakao_pay', 'klarna', 'konbini', 'kr_card', 'link', 'multibanco', 'naver_pay', 'nz_bank_account', 'p24', 'payco', 'paynow', 'paypal', 'promptpay', 'revolut_pay', 'sepa_credit_transfer', 'sepa_debit', 'sofort', 'swish', 'us_bank_account', 'wechat_pay']]" + ] + """ + The list of payment method types (e.g. card) to provide to the invoice's PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice). Should not be specified with payment_method_configuration + """ + save_default_payment_method: NotRequired[Literal["off", "on_subscription"]] + """ + Configure whether Stripe updates `subscription.default_payment_method` when payment succeeds. Defaults to `off` if unspecified. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit" + ] + """ + This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent. + """ + bancontact: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact" + ] + """ + This sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent. + """ + card: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCard" + ] + """ + This sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent. + """ + customer_balance: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance" + ] + """ + This sub-hash contains details about the Bank transfer payment method options to pass to the invoice's PaymentIntent. + """ + konbini: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini" + ] + """ + This sub-hash contains details about the Konbini payment method options to pass to the invoice's PaymentIntent. + """ + sepa_debit: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit" + ] + """ + This sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice's PaymentIntent. + """ + us_bank_account: NotRequired[ + "Literal['']|SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount" + ] + """ + This sub-hash contains details about the ACH direct debit payment method options to pass to the invoice's PaymentIntent. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebit( + TypedDict, +): + mandate_options: NotRequired[ + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict, +): + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsBancontact( + TypedDict, +): + preferred_language: NotRequired[Literal["de", "en", "fr", "nl"]] + """ + Preferred language of the Bancontact authorization page that the customer is redirected to. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCard( + TypedDict, +): + mandate_options: NotRequired[ + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions" + ] + """ + Configuration options for setting up an eMandate for cards issued in India. + """ + network: NotRequired[ + Literal[ + "amex", + "cartes_bancaires", + "diners", + "discover", + "eftpos_au", + "girocard", + "interac", + "jcb", + "link", + "mastercard", + "unionpay", + "unknown", + "visa", + ] + ] + """ + Selected network to process this Subscription on. Depends on the available networks of the card attached to the Subscription. Can be only set confirm-time. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCardMandateOptions( + TypedDict, +): + amount: NotRequired[int] + """ + Amount to be charged for future payments. + """ + amount_type: NotRequired[Literal["fixed", "maximum"]] + """ + One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param. + """ + description: NotRequired[str] + """ + A description of the mandate or subscription that is meant to be displayed to the customer. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalance( + TypedDict, +): + bank_transfer: NotRequired[ + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[str] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + type: NotRequired[str] + """ + The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsKonbini( + TypedDict, +): + pass + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsSepaDebit( + TypedDict, +): + pass + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccount( + TypedDict, +): + financial_connections: NotRequired[ + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + filters: NotRequired[ + "SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters" + ] + """ + Provide filters for the linked accounts that the customer can select for the payment method. + """ + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + + +class SubscriptionUpdateParamsPaymentSettingsPaymentMethodOptionsUsBankAccountFinancialConnectionsFilters( + TypedDict, +): + account_subcategories: NotRequired[List[Literal["checking", "savings"]]] + """ + The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. + """ + + +class SubscriptionUpdateParamsPendingInvoiceItemInterval(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies invoicing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between invoices. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). + """ + + +class SubscriptionUpdateParamsTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class SubscriptionUpdateParamsTrialSettings(TypedDict): + end_behavior: "SubscriptionUpdateParamsTrialSettingsEndBehavior" + """ + Defines how the subscription should behave when the user's free trial ends. + """ + + +class SubscriptionUpdateParamsTrialSettingsEndBehavior(TypedDict): + missing_payment_method: Literal["cancel", "create_invoice", "pause"] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_code_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_code_list_params.py new file mode 100644 index 00000000..931bee2b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_code_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TaxCodeListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_code_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_code_retrieve_params.py new file mode 100644 index 00000000..df4670f9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_code_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TaxCodeRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_create_params.py new file mode 100644 index 00000000..9cd1071d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_create_params.py @@ -0,0 +1,150 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TaxIdCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + owner: NotRequired["TaxIdCreateParamsOwner"] + """ + The account or customer the tax ID belongs to. Defaults to `owner[type]=self`. + """ + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin` + """ + value: str + """ + Value of the tax ID. + """ + + +class TaxIdCreateParamsOwner(TypedDict): + account: NotRequired[str] + """ + Account the tax ID belongs to. Required when `type=account` + """ + customer: NotRequired[str] + """ + Customer the tax ID belongs to. Required when `type=customer` + """ + type: Literal["account", "application", "customer", "self"] + """ + Type of owner referenced. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_delete_params.py new file mode 100644 index 00000000..3428e7f6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class TaxIdDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_list_params.py new file mode 100644 index 00000000..9c841c25 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_list_params.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TaxIdListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + owner: NotRequired["TaxIdListParamsOwner"] + """ + The account or customer the tax ID belongs to. Defaults to `owner[type]=self`. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class TaxIdListParamsOwner(TypedDict): + account: NotRequired[str] + """ + Account the tax ID belongs to. Required when `type=account` + """ + customer: NotRequired[str] + """ + Customer the tax ID belongs to. Required when `type=customer` + """ + type: Literal["account", "application", "customer", "self"] + """ + Type of owner referenced. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_retrieve_params.py new file mode 100644 index 00000000..6e030d65 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_id_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TaxIdRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_create_params.py new file mode 100644 index 00000000..e92785e0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_create_params.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TaxRateCreateParams(RequestOptions): + active: NotRequired[bool] + """ + Flag determining whether the tax rate is active or inactive (archived). Inactive tax rates cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + """ + display_name: str + """ + The display name of the tax rate, which will be shown to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + inclusive: bool + """ + This specifies if the tax rate is inclusive or exclusive. + """ + jurisdiction: NotRequired[str] + """ + The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer's invoice. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + percentage: float + """ + This represents the tax rate percent out of 100. + """ + state: NotRequired[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States. + """ + tax_type: NotRequired[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The high-level tax type, such as `vat` or `sales_tax`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_list_params.py new file mode 100644 index 00000000..b4c5704a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class TaxRateListParams(RequestOptions): + active: NotRequired[bool] + """ + Optional flag to filter by tax rates that are either active or inactive (archived). + """ + created: NotRequired["TaxRateListParamsCreated|int"] + """ + Optional range for filtering created date. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + inclusive: NotRequired[bool] + """ + Optional flag to filter by tax rates that are inclusive (or those that are not inclusive). + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class TaxRateListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_modify_params.py new file mode 100644 index 00000000..04473b12 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_modify_params.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TaxRateModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Flag determining whether the tax rate is active or inactive (archived). Inactive tax rates cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + """ + display_name: NotRequired[str] + """ + The display name of the tax rate, which will be shown to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + jurisdiction: NotRequired[str] + """ + The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer's invoice. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + state: NotRequired[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States. + """ + tax_type: NotRequired[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The high-level tax type, such as `vat` or `sales_tax`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_retrieve_params.py new file mode 100644 index 00000000..374786b0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TaxRateRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_update_params.py new file mode 100644 index 00000000..c049176a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_tax_rate_update_params.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TaxRateUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Flag determining whether the tax rate is active or inactive (archived). Inactive tax rates cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers. + """ + display_name: NotRequired[str] + """ + The display name of the tax rate, which will be shown to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + jurisdiction: NotRequired[str] + """ + The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer's invoice. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + state: NotRequired[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States. + """ + tax_type: NotRequired[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The high-level tax type, such as `vat` or `sales_tax`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_token_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_token_create_params.py new file mode 100644 index 00000000..658dc00b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_token_create_params.py @@ -0,0 +1,1200 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TokenCreateParams(RequestOptions): + account: NotRequired["TokenCreateParamsAccount"] + """ + Information for the account this token represents. + """ + bank_account: NotRequired["TokenCreateParamsBankAccount"] + """ + The bank account this token will represent. + """ + card: NotRequired["TokenCreateParamsCard|str"] + """ + The card this token will represent. If you also pass in a customer, the card must be the ID of a card belonging to the customer. Otherwise, if you do not pass in a customer, this is a dictionary containing a user's credit card details, with the options described below. + """ + customer: NotRequired[str] + """ + Create a token for the customer, which is owned by the application's account. You can only use this with an [OAuth access token](https://stripe.com/docs/connect/standard-accounts) or [Stripe-Account header](https://stripe.com/docs/connect/authentication). Learn more about [cloning saved payment methods](https://stripe.com/docs/connect/cloning-saved-payment-methods). + """ + cvc_update: NotRequired["TokenCreateParamsCvcUpdate"] + """ + The updated CVC value this token represents. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + person: NotRequired["TokenCreateParamsPerson"] + """ + Information for the person this token represents. + """ + pii: NotRequired["TokenCreateParamsPii"] + """ + The PII this token represents. + """ + + +class TokenCreateParamsAccount(TypedDict): + business_type: NotRequired[ + Literal["company", "government_entity", "individual", "non_profit"] + ] + """ + The business type. + """ + company: NotRequired["TokenCreateParamsAccountCompany"] + """ + Information about the company or business. + """ + individual: NotRequired["TokenCreateParamsAccountIndividual"] + """ + Information about the person represented by the account. + """ + tos_shown_and_accepted: NotRequired[bool] + """ + Whether the user described by the data in the token has been shown [the Stripe Connected Account Agreement](https://docs.stripe.com/connect/account-tokens#stripe-connected-account-agreement). When creating an account token to create a new Connect account, this value must be `true`. + """ + + +class TokenCreateParamsAccountCompany(TypedDict): + address: NotRequired["TokenCreateParamsAccountCompanyAddress"] + """ + The company's primary address. + """ + address_kana: NotRequired["TokenCreateParamsAccountCompanyAddressKana"] + """ + The Kana variation of the company's primary address (Japan only). + """ + address_kanji: NotRequired["TokenCreateParamsAccountCompanyAddressKanji"] + """ + The Kanji variation of the company's primary address (Japan only). + """ + directors_provided: NotRequired[bool] + """ + Whether the company's directors have been provided. Set this Boolean to `true` after creating all the company's directors with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.director` requirement. This value is not automatically set to `true` after creating directors, so it needs to be updated to indicate all directors have been provided. + """ + directorship_declaration: NotRequired[ + "TokenCreateParamsAccountCompanyDirectorshipDeclaration" + ] + """ + This hash is used to attest that the directors information provided to Stripe is both current and correct. + """ + executives_provided: NotRequired[bool] + """ + Whether the company's executives have been provided. Set this Boolean to `true` after creating all the company's executives with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.executive` requirement. + """ + export_license_id: NotRequired[str] + """ + The export license ID number of the company, also referred as Import Export Code (India only). + """ + export_purpose_code: NotRequired[str] + """ + The purpose code to use for export transactions (India only). + """ + name: NotRequired[str] + """ + The company's legal name. + """ + name_kana: NotRequired[str] + """ + The Kana variation of the company's legal name (Japan only). + """ + name_kanji: NotRequired[str] + """ + The Kanji variation of the company's legal name (Japan only). + """ + owners_provided: NotRequired[bool] + """ + Whether the company's owners have been provided. Set this Boolean to `true` after creating all the company's owners with [the Persons API](https://docs.stripe.com/api/persons) for accounts with a `relationship.owner` requirement. + """ + ownership_declaration: NotRequired[ + "TokenCreateParamsAccountCompanyOwnershipDeclaration" + ] + """ + This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct. + """ + ownership_declaration_shown_and_signed: NotRequired[bool] + """ + Whether the user described by the data in the token has been shown the Ownership Declaration and indicated that it is correct. + """ + ownership_exemption_reason: NotRequired[ + "Literal['']|Literal['qualified_entity_exceeds_ownership_threshold', 'qualifies_as_financial_institution']" + ] + """ + This value is used to determine if a business is exempt from providing ultimate beneficial owners. See [this support article](https://support.stripe.com/questions/exemption-from-providing-ownership-details) and [changelog](https://docs.stripe.com/changelog/acacia/2025-01-27/ownership-exemption-reason-accounts-api) for more details. + """ + phone: NotRequired[str] + """ + The company's phone number (used for verification). + """ + registration_date: NotRequired[ + "Literal['']|TokenCreateParamsAccountCompanyRegistrationDate" + ] + """ + When the business was incorporated or registered. + """ + registration_number: NotRequired[str] + """ + The identification number given to a company when it is registered or incorporated, if distinct from the identification number used for filing taxes. (Examples are the CIN for companies and LLP IN for partnerships in India, and the Company Registration Number in Hong Kong). + """ + representative_declaration: NotRequired[ + "TokenCreateParamsAccountCompanyRepresentativeDeclaration" + ] + """ + This hash is used to attest that the representative is authorized to act as the representative of their legal entity. + """ + structure: NotRequired[ + "Literal['']|Literal['free_zone_establishment', 'free_zone_llc', 'government_instrumentality', 'governmental_unit', 'incorporated_non_profit', 'incorporated_partnership', 'limited_liability_partnership', 'llc', 'multi_member_llc', 'private_company', 'private_corporation', 'private_partnership', 'public_company', 'public_corporation', 'public_partnership', 'registered_charity', 'single_member_llc', 'sole_establishment', 'sole_proprietorship', 'tax_exempt_government_instrumentality', 'unincorporated_association', 'unincorporated_non_profit', 'unincorporated_partnership']" + ] + """ + The category identifying the legal structure of the company or legal entity. See [Business structure](https://docs.stripe.com/connect/identity-verification#business-structure) for more details. Pass an empty string to unset this value. + """ + tax_id: NotRequired[str] + """ + The business ID number of the company, as appropriate for the company's country. (Examples are an Employer ID Number in the U.S., a Business Number in Canada, or a Company Number in the UK.) + """ + tax_id_registrar: NotRequired[str] + """ + The jurisdiction in which the `tax_id` is registered (Germany-based companies only). + """ + vat_id: NotRequired[str] + """ + The VAT number of the company. + """ + verification: NotRequired["TokenCreateParamsAccountCompanyVerification"] + """ + Information on the verification state of the company. + """ + + +class TokenCreateParamsAccountCompanyAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class TokenCreateParamsAccountCompanyAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class TokenCreateParamsAccountCompanyAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class TokenCreateParamsAccountCompanyDirectorshipDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the directorship declaration attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the directorship declaration attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the directorship declaration attestation was made. + """ + + +class TokenCreateParamsAccountCompanyOwnershipDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the beneficial owner attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the beneficial owner attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the beneficial owner attestation was made. + """ + + +class TokenCreateParamsAccountCompanyRegistrationDate(TypedDict): + day: int + """ + The day of registration, between 1 and 31. + """ + month: int + """ + The month of registration, between 1 and 12. + """ + year: int + """ + The four-digit year of registration. + """ + + +class TokenCreateParamsAccountCompanyRepresentativeDeclaration(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the representative declaration attestation was made. + """ + ip: NotRequired[str] + """ + The IP address from which the representative declaration attestation was made. + """ + user_agent: NotRequired[str] + """ + The user agent of the browser from which the representative declaration attestation was made. + """ + + +class TokenCreateParamsAccountCompanyVerification(TypedDict): + document: NotRequired[ + "TokenCreateParamsAccountCompanyVerificationDocument" + ] + """ + A document verifying the business. + """ + + +class TokenCreateParamsAccountCompanyVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class TokenCreateParamsAccountIndividual(TypedDict): + address: NotRequired["TokenCreateParamsAccountIndividualAddress"] + """ + The individual's primary address. + """ + address_kana: NotRequired["TokenCreateParamsAccountIndividualAddressKana"] + """ + The Kana variation of the individual's primary address (Japan only). + """ + address_kanji: NotRequired[ + "TokenCreateParamsAccountIndividualAddressKanji" + ] + """ + The Kanji variation of the individual's primary address (Japan only). + """ + dob: NotRequired["Literal['']|TokenCreateParamsAccountIndividualDob"] + """ + The individual's date of birth. + """ + email: NotRequired[str] + """ + The individual's email address. + """ + first_name: NotRequired[str] + """ + The individual's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the individual's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the individual's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the individual is known by. + """ + gender: NotRequired[str] + """ + The individual's gender + """ + id_number: NotRequired[str] + """ + The government-issued ID number of the individual, as appropriate for the representative's country. (Examples are a Social Security Number in the U.S., or a Social Insurance Number in Canada). Instead of the number itself, you can also provide a [PII token created with Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The government-issued secondary ID number of the individual, as appropriate for the representative's country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token created with Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The individual's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the individual's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the individual's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The individual's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone: NotRequired[str] + """ + The individual's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired[ + "TokenCreateParamsAccountIndividualRegisteredAddress" + ] + """ + The individual's registered address. + """ + relationship: NotRequired["TokenCreateParamsAccountIndividualRelationship"] + """ + Describes the person's relationship to the account. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the individual's Social Security Number (U.S. only). + """ + verification: NotRequired["TokenCreateParamsAccountIndividualVerification"] + """ + The individual's verification document information. + """ + + +class TokenCreateParamsAccountIndividualAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class TokenCreateParamsAccountIndividualAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class TokenCreateParamsAccountIndividualAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class TokenCreateParamsAccountIndividualDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class TokenCreateParamsAccountIndividualRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class TokenCreateParamsAccountIndividualRelationship(TypedDict): + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class TokenCreateParamsAccountIndividualVerification(TypedDict): + additional_document: NotRequired[ + "TokenCreateParamsAccountIndividualVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired[ + "TokenCreateParamsAccountIndividualVerificationDocument" + ] + """ + An identifying document, either a passport or local ID card. + """ + + +class TokenCreateParamsAccountIndividualVerificationAdditionalDocument( + TypedDict, +): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class TokenCreateParamsAccountIndividualVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class TokenCreateParamsBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name of the person or business that owns the bank account. This field is required when attaching the bank account to a `Customer` object. + """ + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + The type of entity that holds the account. It can be `company` or `individual`. This field is required when attaching the bank account to a `Customer` object. + """ + account_number: str + """ + The account number for the bank account, in string form. Must be a checking account. + """ + account_type: NotRequired[Literal["checking", "futsu", "savings", "toza"]] + """ + The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`. + """ + country: str + """ + The country in which the bank account is located. + """ + currency: NotRequired[str] + """ + The currency the bank account is in. This must be a country/currency pairing that [Stripe supports.](https://stripe.com/docs/payouts) + """ + payment_method: NotRequired[str] + """ + The ID of a Payment Method with a `type` of `us_bank_account`. The Payment Method's bank account information will be copied and returned as a Bank Account Token. This parameter is exclusive with respect to all other parameters in the `bank_account` hash. You must include the top-level `customer` parameter if the Payment Method is attached to a `Customer` object. If the Payment Method is not attached to a `Customer` object, it will be consumed and cannot be used again. You may not use Payment Methods which were created by a Setup Intent with `attach_to_self=true`. + """ + routing_number: NotRequired[str] + """ + The routing number, sort code, or other country-appropriate institution number for the bank account. For US bank accounts, this is required and should be the ACH routing number, not the wire routing number. If you are providing an IBAN for `account_number`, this field is not required. + """ + + +class TokenCreateParamsCard(TypedDict): + address_city: NotRequired[str] + """ + City / District / Suburb / Town / Village. + """ + address_country: NotRequired[str] + """ + Billing address country, if provided. + """ + address_line1: NotRequired[str] + """ + Address line 1 (Street address / PO Box / Company name). + """ + address_line2: NotRequired[str] + """ + Address line 2 (Apartment / Suite / Unit / Building). + """ + address_state: NotRequired[str] + """ + State / County / Province / Region. + """ + address_zip: NotRequired[str] + """ + ZIP or postal code. + """ + currency: NotRequired[str] + """ + Required in order to add the card to an account; in all other cases, this parameter is not used. When added to an account, the card (which must be a debit card) can be used as a transfer destination for funds in this currency. + """ + cvc: NotRequired[str] + """ + Card security code. Highly recommended to always include this value. + """ + exp_month: str + """ + Two-digit number representing the card's expiration month. + """ + exp_year: str + """ + Two- or four-digit number representing the card's expiration year. + """ + name: NotRequired[str] + """ + Cardholder's full name. + """ + networks: NotRequired["TokenCreateParamsCardNetworks"] + """ + Contains information about card networks used to process the payment. + """ + number: str + """ + The card number, as a string without any separators. + """ + + +class TokenCreateParamsCardNetworks(TypedDict): + preferred: NotRequired[Literal["cartes_bancaires", "mastercard", "visa"]] + """ + The customer's preferred card network for co-branded cards. Supports `cartes_bancaires`, `mastercard`, or `visa`. Selection of a network that does not apply to the card will be stored as `invalid_preference` on the card. + """ + + +class TokenCreateParamsCvcUpdate(TypedDict): + cvc: str + """ + The CVC value, in string form. + """ + + +class TokenCreateParamsPerson(TypedDict): + additional_tos_acceptances: NotRequired[ + "TokenCreateParamsPersonAdditionalTosAcceptances" + ] + """ + Details on the legal guardian's or authorizer's acceptance of the required Stripe agreements. + """ + address: NotRequired["TokenCreateParamsPersonAddress"] + """ + The person's address. + """ + address_kana: NotRequired["TokenCreateParamsPersonAddressKana"] + """ + The Kana variation of the person's address (Japan only). + """ + address_kanji: NotRequired["TokenCreateParamsPersonAddressKanji"] + """ + The Kanji variation of the person's address (Japan only). + """ + dob: NotRequired["Literal['']|TokenCreateParamsPersonDob"] + """ + The person's date of birth. + """ + documents: NotRequired["TokenCreateParamsPersonDocuments"] + """ + Documents that may be submitted to satisfy various informational requests. + """ + email: NotRequired[str] + """ + The person's email address. + """ + first_name: NotRequired[str] + """ + The person's first name. + """ + first_name_kana: NotRequired[str] + """ + The Kana variation of the person's first name (Japan only). + """ + first_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's first name (Japan only). + """ + full_name_aliases: NotRequired["Literal['']|List[str]"] + """ + A list of alternate names or aliases that the person is known by. + """ + gender: NotRequired[str] + """ + The person's gender (International regulations require either "male" or "female"). + """ + id_number: NotRequired[str] + """ + The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + id_number_secondary: NotRequired[str] + """ + The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii). + """ + last_name: NotRequired[str] + """ + The person's last name. + """ + last_name_kana: NotRequired[str] + """ + The Kana variation of the person's last name (Japan only). + """ + last_name_kanji: NotRequired[str] + """ + The Kanji variation of the person's last name (Japan only). + """ + maiden_name: NotRequired[str] + """ + The person's maiden name. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nationality: NotRequired[str] + """ + The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable. + """ + phone: NotRequired[str] + """ + The person's phone number. + """ + political_exposure: NotRequired[Literal["existing", "none"]] + """ + Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction. + """ + registered_address: NotRequired["TokenCreateParamsPersonRegisteredAddress"] + """ + The person's registered address. + """ + relationship: NotRequired["TokenCreateParamsPersonRelationship"] + """ + The relationship that this person has with the account's legal entity. + """ + ssn_last_4: NotRequired[str] + """ + The last four digits of the person's Social Security number (U.S. only). + """ + us_cfpb_data: NotRequired["TokenCreateParamsPersonUsCfpbData"] + """ + Demographic data related to the person. + """ + verification: NotRequired["TokenCreateParamsPersonVerification"] + """ + The person's verification status. + """ + + +class TokenCreateParamsPersonAdditionalTosAcceptances(TypedDict): + account: NotRequired[ + "TokenCreateParamsPersonAdditionalTosAcceptancesAccount" + ] + """ + Details on the legal guardian's acceptance of the main Stripe service agreement. + """ + + +class TokenCreateParamsPersonAdditionalTosAcceptancesAccount(TypedDict): + date: NotRequired[int] + """ + The Unix timestamp marking when the account representative accepted the service agreement. + """ + ip: NotRequired[str] + """ + The IP address from which the account representative accepted the service agreement. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the account representative accepted the service agreement. + """ + + +class TokenCreateParamsPersonAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class TokenCreateParamsPersonAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class TokenCreateParamsPersonAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class TokenCreateParamsPersonDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class TokenCreateParamsPersonDocuments(TypedDict): + company_authorization: NotRequired[ + "TokenCreateParamsPersonDocumentsCompanyAuthorization" + ] + """ + One or more documents that demonstrate proof that this person is authorized to represent the company. + """ + passport: NotRequired["TokenCreateParamsPersonDocumentsPassport"] + """ + One or more documents showing the person's passport page with photo and personal data. + """ + visa: NotRequired["TokenCreateParamsPersonDocumentsVisa"] + """ + One or more documents showing the person's visa required for living in the country where they are residing. + """ + + +class TokenCreateParamsPersonDocumentsCompanyAuthorization(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class TokenCreateParamsPersonDocumentsPassport(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class TokenCreateParamsPersonDocumentsVisa(TypedDict): + files: NotRequired[List[str]] + """ + One or more document ids returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `account_requirement`. + """ + + +class TokenCreateParamsPersonRegisteredAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class TokenCreateParamsPersonRelationship(TypedDict): + authorizer: NotRequired[bool] + """ + Whether the person is the authorizer of the account's representative. + """ + director: NotRequired[bool] + """ + Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations. + """ + executive: NotRequired[bool] + """ + Whether the person has significant responsibility to control, manage, or direct the organization. + """ + legal_guardian: NotRequired[bool] + """ + Whether the person is the legal guardian of the account's representative. + """ + owner: NotRequired[bool] + """ + Whether the person is an owner of the account's legal entity. + """ + percent_ownership: NotRequired["Literal['']|float"] + """ + The percent owned by the person of the account's legal entity. + """ + representative: NotRequired[bool] + """ + Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account. + """ + title: NotRequired[str] + """ + The person's title (e.g., CEO, Support Engineer). + """ + + +class TokenCreateParamsPersonUsCfpbData(TypedDict): + ethnicity_details: NotRequired[ + "TokenCreateParamsPersonUsCfpbDataEthnicityDetails" + ] + """ + The persons ethnicity details + """ + race_details: NotRequired["TokenCreateParamsPersonUsCfpbDataRaceDetails"] + """ + The persons race details + """ + self_identified_gender: NotRequired[str] + """ + The persons self-identified gender + """ + + +class TokenCreateParamsPersonUsCfpbDataEthnicityDetails(TypedDict): + ethnicity: NotRequired[ + List[ + Literal[ + "cuban", + "hispanic_or_latino", + "mexican", + "not_hispanic_or_latino", + "other_hispanic_or_latino", + "prefer_not_to_answer", + "puerto_rican", + ] + ] + ] + """ + The persons ethnicity + """ + ethnicity_other: NotRequired[str] + """ + Please specify your origin, when other is selected. + """ + + +class TokenCreateParamsPersonUsCfpbDataRaceDetails(TypedDict): + race: NotRequired[ + List[ + Literal[ + "african_american", + "american_indian_or_alaska_native", + "asian", + "asian_indian", + "black_or_african_american", + "chinese", + "ethiopian", + "filipino", + "guamanian_or_chamorro", + "haitian", + "jamaican", + "japanese", + "korean", + "native_hawaiian", + "native_hawaiian_or_other_pacific_islander", + "nigerian", + "other_asian", + "other_black_or_african_american", + "other_pacific_islander", + "prefer_not_to_answer", + "samoan", + "somali", + "vietnamese", + "white", + ] + ] + ] + """ + The persons race. + """ + race_other: NotRequired[str] + """ + Please specify your race, when other is selected. + """ + + +class TokenCreateParamsPersonVerification(TypedDict): + additional_document: NotRequired[ + "TokenCreateParamsPersonVerificationAdditionalDocument" + ] + """ + A document showing address, either a passport, local ID card, or utility bill from a well-known utility company. + """ + document: NotRequired["TokenCreateParamsPersonVerificationDocument"] + """ + An identifying document, either a passport or local ID card. + """ + + +class TokenCreateParamsPersonVerificationAdditionalDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class TokenCreateParamsPersonVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. The uploaded file needs to be a color image (smaller than 8,000px by 8,000px), in JPG, PNG, or PDF format, and less than 10 MB in size. + """ + + +class TokenCreateParamsPii(TypedDict): + id_number: NotRequired[str] + """ + The `id_number` for the PII, in string form. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_token_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_token_retrieve_params.py new file mode 100644 index 00000000..a8e659fc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_token_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TokenRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_cancel_params.py new file mode 100644 index 00000000..619d448a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TopupCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_create_params.py new file mode 100644 index 00000000..e7d682ac --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_create_params.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TopupCreateParams(RequestOptions): + amount: int + """ + A positive integer representing how much to transfer. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + source: NotRequired[str] + """ + The ID of a source to transfer funds from. For most users, this should be left unspecified which will use the bank account that was set up in the dashboard for the specified currency. In test mode, this can be a test bank token (see [Testing Top-ups](https://stripe.com/docs/connect/testing#testing-top-ups)). + """ + statement_descriptor: NotRequired[str] + """ + Extra information about a top-up for the source's bank statement. Limited to 15 ASCII characters. + """ + transfer_group: NotRequired[str] + """ + A string that identifies this top-up as part of a group. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_list_params.py new file mode 100644 index 00000000..1bac955d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_list_params.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TopupListParams(RequestOptions): + amount: NotRequired["TopupListParamsAmount|int"] + """ + A positive integer representing how much to transfer. + """ + created: NotRequired["TopupListParamsCreated|int"] + """ + A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["canceled", "failed", "pending", "succeeded"]] + """ + Only return top-ups that have the given status. One of `canceled`, `failed`, `pending` or `succeeded`. + """ + + +class TopupListParamsAmount(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class TopupListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_modify_params.py new file mode 100644 index 00000000..1886a84f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_modify_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TopupModifyParams(RequestOptions): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_retrieve_params.py new file mode 100644 index 00000000..6ae1b2bf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TopupRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_update_params.py new file mode 100644 index 00000000..e4f803fd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_topup_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TopupUpdateParams(TypedDict): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_create_params.py new file mode 100644 index 00000000..b2fb8d59 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_create_params.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TransferCreateParams(RequestOptions): + amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) representing how much to transfer. + """ + currency: str + """ + Three-letter [ISO code for currency](https://www.iso.org/iso-4217-currency-codes.html) in lowercase. Must be a [supported currency](https://docs.stripe.com/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination: str + """ + The ID of a connected Stripe account. [See the Connect documentation](https://docs.stripe.com/docs/connect/separate-charges-and-transfers) for details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + source_transaction: NotRequired[str] + """ + You can use this parameter to transfer funds from a charge before they are added to your available balance. A pending balance will transfer immediately but the funds will not become available until the original charge becomes available. [See the Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-availability) for details. + """ + source_type: NotRequired[Literal["bank_account", "card", "fpx"]] + """ + The source balance to use for this transfer. One of `bank_account`, `card`, or `fpx`. For most users, this will default to `card`. + """ + transfer_group: NotRequired[str] + """ + A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_create_reversal_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_create_reversal_params.py new file mode 100644 index 00000000..e59069fd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_create_reversal_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TransferCreateReversalParams(RequestOptions): + amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) representing how much of this transfer to reverse. Can only reverse up to the unreversed amount remaining of the transfer. Partial transfer reversals are only allowed for transfers to Stripe Accounts. Defaults to the entire transfer amount. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to a reversal object. This will be unset if you POST an empty value. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + refund_application_fee: NotRequired[bool] + """ + Boolean indicating whether the application fee should be refunded when reversing this transfer. If a full transfer reversal is given, the full application fee will be refunded. Otherwise, the application fee will be refunded with an amount proportional to the amount of the transfer reversed. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_list_params.py new file mode 100644 index 00000000..e131cd5a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class TransferListParams(RequestOptions): + created: NotRequired["TransferListParamsCreated|int"] + """ + Only return transfers that were created during the given date interval. + """ + destination: NotRequired[str] + """ + Only return transfers for the destination specified by this account ID. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + transfer_group: NotRequired[str] + """ + Only return transfers with the specified transfer group. + """ + + +class TransferListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_list_reversals_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_list_reversals_params.py new file mode 100644 index 00000000..f5aeb8ef --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_list_reversals_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransferListReversalsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_modify_params.py new file mode 100644 index 00000000..bfee1cec --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_modify_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TransferModifyParams(RequestOptions): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_modify_reversal_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_modify_reversal_params.py new file mode 100644 index 00000000..ab2b0d27 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_modify_reversal_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TransferModifyReversalParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_retrieve_params.py new file mode 100644 index 00000000..21daaac7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransferRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_retrieve_reversal_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_retrieve_reversal_params.py new file mode 100644 index 00000000..d827a484 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_retrieve_reversal_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransferRetrieveReversalParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_create_params.py new file mode 100644 index 00000000..50268c85 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_create_params.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransferReversalCreateParams(TypedDict): + amount: NotRequired[int] + """ + A positive integer in cents (or local equivalent) representing how much of this transfer to reverse. Can only reverse up to the unreversed amount remaining of the transfer. Partial transfer reversals are only allowed for transfers to Stripe Accounts. Defaults to the entire transfer amount. + """ + description: NotRequired[str] + """ + An arbitrary string which you can attach to a reversal object. This will be unset if you POST an empty value. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + refund_application_fee: NotRequired[bool] + """ + Boolean indicating whether the application fee should be refunded when reversing this transfer. If a full transfer reversal is given, the full application fee will be refunded. Otherwise, the application fee will be refunded with an amount proportional to the amount of the transfer reversed. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_list_params.py new file mode 100644 index 00000000..61cb435f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class TransferReversalListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_retrieve_params.py new file mode 100644 index 00000000..8cabccb5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class TransferReversalRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_update_params.py new file mode 100644 index 00000000..aebe79cc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_reversal_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransferReversalUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_update_params.py new file mode 100644 index 00000000..4d045254 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_transfer_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransferUpdateParams(TypedDict): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_create_params.py new file mode 100644 index 00000000..b5cd7b97 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_create_params.py @@ -0,0 +1,411 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class WebhookEndpointCreateParams(RequestOptions): + api_version: NotRequired[ + Literal[ + "2011-01-01", + "2011-06-21", + "2011-06-28", + "2011-08-01", + "2011-09-15", + "2011-11-17", + "2012-02-23", + "2012-03-25", + "2012-06-18", + "2012-06-28", + "2012-07-09", + "2012-09-24", + "2012-10-26", + "2012-11-07", + "2013-02-11", + "2013-02-13", + "2013-07-05", + "2013-08-12", + "2013-08-13", + "2013-10-29", + "2013-12-03", + "2014-01-31", + "2014-03-13", + "2014-03-28", + "2014-05-19", + "2014-06-13", + "2014-06-17", + "2014-07-22", + "2014-07-26", + "2014-08-04", + "2014-08-20", + "2014-09-08", + "2014-10-07", + "2014-11-05", + "2014-11-20", + "2014-12-08", + "2014-12-17", + "2014-12-22", + "2015-01-11", + "2015-01-26", + "2015-02-10", + "2015-02-16", + "2015-02-18", + "2015-03-24", + "2015-04-07", + "2015-06-15", + "2015-07-07", + "2015-07-13", + "2015-07-28", + "2015-08-07", + "2015-08-19", + "2015-09-03", + "2015-09-08", + "2015-09-23", + "2015-10-01", + "2015-10-12", + "2015-10-16", + "2016-02-03", + "2016-02-19", + "2016-02-22", + "2016-02-23", + "2016-02-29", + "2016-03-07", + "2016-06-15", + "2016-07-06", + "2016-10-19", + "2017-01-27", + "2017-02-14", + "2017-04-06", + "2017-05-25", + "2017-06-05", + "2017-08-15", + "2017-12-14", + "2018-01-23", + "2018-02-05", + "2018-02-06", + "2018-02-28", + "2018-05-21", + "2018-07-27", + "2018-08-23", + "2018-09-06", + "2018-09-24", + "2018-10-31", + "2018-11-08", + "2019-02-11", + "2019-02-19", + "2019-03-14", + "2019-05-16", + "2019-08-14", + "2019-09-09", + "2019-10-08", + "2019-10-17", + "2019-11-05", + "2019-12-03", + "2020-03-02", + "2020-08-27", + "2022-08-01", + "2022-11-15", + "2023-08-16", + "2023-10-16", + "2024-04-10", + "2024-06-20", + "2024-09-30.acacia", + "2024-10-28.acacia", + "2024-11-20.acacia", + "2024-12-18.acacia", + "2025-01-27.acacia", + "2025-02-24.acacia", + "2025-03-01.dashboard", + "2025-03-31.basil", + "2025-04-30.basil", + "2025-05-28.basil", + "2025-06-30.basil", + "2025-07-30.basil", + "2025-08-27.basil", + "2025-09-30.clover", + "2025-10-29.clover", + ] + ] + """ + Events sent to this endpoint will be generated with this Stripe Version instead of your account's default Stripe Version. + """ + connect: NotRequired[bool] + """ + Whether this endpoint should receive events from connected accounts (`true`), or from your account (`false`). Defaults to `false`. + """ + description: NotRequired["Literal['']|str"] + """ + An optional description of what the webhook is used for. + """ + enabled_events: List[ + Literal[ + "*", + "account.application.authorized", + "account.application.deauthorized", + "account.external_account.created", + "account.external_account.deleted", + "account.external_account.updated", + "account.updated", + "application_fee.created", + "application_fee.refund.updated", + "application_fee.refunded", + "balance.available", + "balance_settings.updated", + "billing.alert.triggered", + "billing_portal.configuration.created", + "billing_portal.configuration.updated", + "billing_portal.session.created", + "capability.updated", + "cash_balance.funds_available", + "charge.captured", + "charge.dispute.closed", + "charge.dispute.created", + "charge.dispute.funds_reinstated", + "charge.dispute.funds_withdrawn", + "charge.dispute.updated", + "charge.expired", + "charge.failed", + "charge.pending", + "charge.refund.updated", + "charge.refunded", + "charge.succeeded", + "charge.updated", + "checkout.session.async_payment_failed", + "checkout.session.async_payment_succeeded", + "checkout.session.completed", + "checkout.session.expired", + "climate.order.canceled", + "climate.order.created", + "climate.order.delayed", + "climate.order.delivered", + "climate.order.product_substituted", + "climate.product.created", + "climate.product.pricing_updated", + "coupon.created", + "coupon.deleted", + "coupon.updated", + "credit_note.created", + "credit_note.updated", + "credit_note.voided", + "customer.created", + "customer.deleted", + "customer.discount.created", + "customer.discount.deleted", + "customer.discount.updated", + "customer.source.created", + "customer.source.deleted", + "customer.source.expiring", + "customer.source.updated", + "customer.subscription.created", + "customer.subscription.deleted", + "customer.subscription.paused", + "customer.subscription.pending_update_applied", + "customer.subscription.pending_update_expired", + "customer.subscription.resumed", + "customer.subscription.trial_will_end", + "customer.subscription.updated", + "customer.tax_id.created", + "customer.tax_id.deleted", + "customer.tax_id.updated", + "customer.updated", + "customer_cash_balance_transaction.created", + "entitlements.active_entitlement_summary.updated", + "file.created", + "financial_connections.account.created", + "financial_connections.account.deactivated", + "financial_connections.account.disconnected", + "financial_connections.account.reactivated", + "financial_connections.account.refreshed_balance", + "financial_connections.account.refreshed_ownership", + "financial_connections.account.refreshed_transactions", + "identity.verification_session.canceled", + "identity.verification_session.created", + "identity.verification_session.processing", + "identity.verification_session.redacted", + "identity.verification_session.requires_input", + "identity.verification_session.verified", + "invoice.created", + "invoice.deleted", + "invoice.finalization_failed", + "invoice.finalized", + "invoice.marked_uncollectible", + "invoice.overdue", + "invoice.overpaid", + "invoice.paid", + "invoice.payment_action_required", + "invoice.payment_attempt_required", + "invoice.payment_failed", + "invoice.payment_succeeded", + "invoice.sent", + "invoice.upcoming", + "invoice.updated", + "invoice.voided", + "invoice.will_be_due", + "invoice_payment.paid", + "invoiceitem.created", + "invoiceitem.deleted", + "issuing_authorization.created", + "issuing_authorization.request", + "issuing_authorization.updated", + "issuing_card.created", + "issuing_card.updated", + "issuing_cardholder.created", + "issuing_cardholder.updated", + "issuing_dispute.closed", + "issuing_dispute.created", + "issuing_dispute.funds_reinstated", + "issuing_dispute.funds_rescinded", + "issuing_dispute.submitted", + "issuing_dispute.updated", + "issuing_personalization_design.activated", + "issuing_personalization_design.deactivated", + "issuing_personalization_design.rejected", + "issuing_personalization_design.updated", + "issuing_token.created", + "issuing_token.updated", + "issuing_transaction.created", + "issuing_transaction.purchase_details_receipt_updated", + "issuing_transaction.updated", + "mandate.updated", + "payment_intent.amount_capturable_updated", + "payment_intent.canceled", + "payment_intent.created", + "payment_intent.partially_funded", + "payment_intent.payment_failed", + "payment_intent.processing", + "payment_intent.requires_action", + "payment_intent.succeeded", + "payment_link.created", + "payment_link.updated", + "payment_method.attached", + "payment_method.automatically_updated", + "payment_method.detached", + "payment_method.updated", + "payout.canceled", + "payout.created", + "payout.failed", + "payout.paid", + "payout.reconciliation_completed", + "payout.updated", + "person.created", + "person.deleted", + "person.updated", + "plan.created", + "plan.deleted", + "plan.updated", + "price.created", + "price.deleted", + "price.updated", + "product.created", + "product.deleted", + "product.updated", + "promotion_code.created", + "promotion_code.updated", + "quote.accepted", + "quote.canceled", + "quote.created", + "quote.finalized", + "radar.early_fraud_warning.created", + "radar.early_fraud_warning.updated", + "refund.created", + "refund.failed", + "refund.updated", + "reporting.report_run.failed", + "reporting.report_run.succeeded", + "reporting.report_type.updated", + "review.closed", + "review.opened", + "setup_intent.canceled", + "setup_intent.created", + "setup_intent.requires_action", + "setup_intent.setup_failed", + "setup_intent.succeeded", + "sigma.scheduled_query_run.created", + "source.canceled", + "source.chargeable", + "source.failed", + "source.mandate_notification", + "source.refund_attributes_required", + "source.transaction.created", + "source.transaction.updated", + "subscription_schedule.aborted", + "subscription_schedule.canceled", + "subscription_schedule.completed", + "subscription_schedule.created", + "subscription_schedule.expiring", + "subscription_schedule.released", + "subscription_schedule.updated", + "tax.settings.updated", + "tax_rate.created", + "tax_rate.updated", + "terminal.reader.action_failed", + "terminal.reader.action_succeeded", + "terminal.reader.action_updated", + "test_helpers.test_clock.advancing", + "test_helpers.test_clock.created", + "test_helpers.test_clock.deleted", + "test_helpers.test_clock.internal_failure", + "test_helpers.test_clock.ready", + "topup.canceled", + "topup.created", + "topup.failed", + "topup.reversed", + "topup.succeeded", + "transfer.created", + "transfer.reversed", + "transfer.updated", + "treasury.credit_reversal.created", + "treasury.credit_reversal.posted", + "treasury.debit_reversal.completed", + "treasury.debit_reversal.created", + "treasury.debit_reversal.initial_credit_granted", + "treasury.financial_account.closed", + "treasury.financial_account.created", + "treasury.financial_account.features_status_updated", + "treasury.inbound_transfer.canceled", + "treasury.inbound_transfer.created", + "treasury.inbound_transfer.failed", + "treasury.inbound_transfer.succeeded", + "treasury.outbound_payment.canceled", + "treasury.outbound_payment.created", + "treasury.outbound_payment.expected_arrival_date_updated", + "treasury.outbound_payment.failed", + "treasury.outbound_payment.posted", + "treasury.outbound_payment.returned", + "treasury.outbound_payment.tracking_details_updated", + "treasury.outbound_transfer.canceled", + "treasury.outbound_transfer.created", + "treasury.outbound_transfer.expected_arrival_date_updated", + "treasury.outbound_transfer.failed", + "treasury.outbound_transfer.posted", + "treasury.outbound_transfer.returned", + "treasury.outbound_transfer.tracking_details_updated", + "treasury.received_credit.created", + "treasury.received_credit.failed", + "treasury.received_credit.succeeded", + "treasury.received_debit.created", + "billing.credit_balance_transaction.created", + "billing.credit_grant.created", + "billing.credit_grant.updated", + "billing.meter.created", + "billing.meter.deactivated", + "billing.meter.reactivated", + "billing.meter.updated", + ] + ] + """ + The list of events to enable for this endpoint. You may specify `['*']` to enable all events, except those that require explicit selection. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + url: str + """ + The URL of the webhook endpoint. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_delete_params.py new file mode 100644 index 00000000..8c17a5d8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class WebhookEndpointDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_list_params.py new file mode 100644 index 00000000..837e62fd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class WebhookEndpointListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_modify_params.py new file mode 100644 index 00000000..93a0041f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_modify_params.py @@ -0,0 +1,289 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class WebhookEndpointModifyParams(RequestOptions): + description: NotRequired["Literal['']|str"] + """ + An optional description of what the webhook is used for. + """ + disabled: NotRequired[bool] + """ + Disable the webhook endpoint if set to true. + """ + enabled_events: NotRequired[ + List[ + Literal[ + "*", + "account.application.authorized", + "account.application.deauthorized", + "account.external_account.created", + "account.external_account.deleted", + "account.external_account.updated", + "account.updated", + "application_fee.created", + "application_fee.refund.updated", + "application_fee.refunded", + "balance.available", + "balance_settings.updated", + "billing.alert.triggered", + "billing_portal.configuration.created", + "billing_portal.configuration.updated", + "billing_portal.session.created", + "capability.updated", + "cash_balance.funds_available", + "charge.captured", + "charge.dispute.closed", + "charge.dispute.created", + "charge.dispute.funds_reinstated", + "charge.dispute.funds_withdrawn", + "charge.dispute.updated", + "charge.expired", + "charge.failed", + "charge.pending", + "charge.refund.updated", + "charge.refunded", + "charge.succeeded", + "charge.updated", + "checkout.session.async_payment_failed", + "checkout.session.async_payment_succeeded", + "checkout.session.completed", + "checkout.session.expired", + "climate.order.canceled", + "climate.order.created", + "climate.order.delayed", + "climate.order.delivered", + "climate.order.product_substituted", + "climate.product.created", + "climate.product.pricing_updated", + "coupon.created", + "coupon.deleted", + "coupon.updated", + "credit_note.created", + "credit_note.updated", + "credit_note.voided", + "customer.created", + "customer.deleted", + "customer.discount.created", + "customer.discount.deleted", + "customer.discount.updated", + "customer.source.created", + "customer.source.deleted", + "customer.source.expiring", + "customer.source.updated", + "customer.subscription.created", + "customer.subscription.deleted", + "customer.subscription.paused", + "customer.subscription.pending_update_applied", + "customer.subscription.pending_update_expired", + "customer.subscription.resumed", + "customer.subscription.trial_will_end", + "customer.subscription.updated", + "customer.tax_id.created", + "customer.tax_id.deleted", + "customer.tax_id.updated", + "customer.updated", + "customer_cash_balance_transaction.created", + "entitlements.active_entitlement_summary.updated", + "file.created", + "financial_connections.account.created", + "financial_connections.account.deactivated", + "financial_connections.account.disconnected", + "financial_connections.account.reactivated", + "financial_connections.account.refreshed_balance", + "financial_connections.account.refreshed_ownership", + "financial_connections.account.refreshed_transactions", + "identity.verification_session.canceled", + "identity.verification_session.created", + "identity.verification_session.processing", + "identity.verification_session.redacted", + "identity.verification_session.requires_input", + "identity.verification_session.verified", + "invoice.created", + "invoice.deleted", + "invoice.finalization_failed", + "invoice.finalized", + "invoice.marked_uncollectible", + "invoice.overdue", + "invoice.overpaid", + "invoice.paid", + "invoice.payment_action_required", + "invoice.payment_attempt_required", + "invoice.payment_failed", + "invoice.payment_succeeded", + "invoice.sent", + "invoice.upcoming", + "invoice.updated", + "invoice.voided", + "invoice.will_be_due", + "invoice_payment.paid", + "invoiceitem.created", + "invoiceitem.deleted", + "issuing_authorization.created", + "issuing_authorization.request", + "issuing_authorization.updated", + "issuing_card.created", + "issuing_card.updated", + "issuing_cardholder.created", + "issuing_cardholder.updated", + "issuing_dispute.closed", + "issuing_dispute.created", + "issuing_dispute.funds_reinstated", + "issuing_dispute.funds_rescinded", + "issuing_dispute.submitted", + "issuing_dispute.updated", + "issuing_personalization_design.activated", + "issuing_personalization_design.deactivated", + "issuing_personalization_design.rejected", + "issuing_personalization_design.updated", + "issuing_token.created", + "issuing_token.updated", + "issuing_transaction.created", + "issuing_transaction.purchase_details_receipt_updated", + "issuing_transaction.updated", + "mandate.updated", + "payment_intent.amount_capturable_updated", + "payment_intent.canceled", + "payment_intent.created", + "payment_intent.partially_funded", + "payment_intent.payment_failed", + "payment_intent.processing", + "payment_intent.requires_action", + "payment_intent.succeeded", + "payment_link.created", + "payment_link.updated", + "payment_method.attached", + "payment_method.automatically_updated", + "payment_method.detached", + "payment_method.updated", + "payout.canceled", + "payout.created", + "payout.failed", + "payout.paid", + "payout.reconciliation_completed", + "payout.updated", + "person.created", + "person.deleted", + "person.updated", + "plan.created", + "plan.deleted", + "plan.updated", + "price.created", + "price.deleted", + "price.updated", + "product.created", + "product.deleted", + "product.updated", + "promotion_code.created", + "promotion_code.updated", + "quote.accepted", + "quote.canceled", + "quote.created", + "quote.finalized", + "radar.early_fraud_warning.created", + "radar.early_fraud_warning.updated", + "refund.created", + "refund.failed", + "refund.updated", + "reporting.report_run.failed", + "reporting.report_run.succeeded", + "reporting.report_type.updated", + "review.closed", + "review.opened", + "setup_intent.canceled", + "setup_intent.created", + "setup_intent.requires_action", + "setup_intent.setup_failed", + "setup_intent.succeeded", + "sigma.scheduled_query_run.created", + "source.canceled", + "source.chargeable", + "source.failed", + "source.mandate_notification", + "source.refund_attributes_required", + "source.transaction.created", + "source.transaction.updated", + "subscription_schedule.aborted", + "subscription_schedule.canceled", + "subscription_schedule.completed", + "subscription_schedule.created", + "subscription_schedule.expiring", + "subscription_schedule.released", + "subscription_schedule.updated", + "tax.settings.updated", + "tax_rate.created", + "tax_rate.updated", + "terminal.reader.action_failed", + "terminal.reader.action_succeeded", + "terminal.reader.action_updated", + "test_helpers.test_clock.advancing", + "test_helpers.test_clock.created", + "test_helpers.test_clock.deleted", + "test_helpers.test_clock.internal_failure", + "test_helpers.test_clock.ready", + "topup.canceled", + "topup.created", + "topup.failed", + "topup.reversed", + "topup.succeeded", + "transfer.created", + "transfer.reversed", + "transfer.updated", + "treasury.credit_reversal.created", + "treasury.credit_reversal.posted", + "treasury.debit_reversal.completed", + "treasury.debit_reversal.created", + "treasury.debit_reversal.initial_credit_granted", + "treasury.financial_account.closed", + "treasury.financial_account.created", + "treasury.financial_account.features_status_updated", + "treasury.inbound_transfer.canceled", + "treasury.inbound_transfer.created", + "treasury.inbound_transfer.failed", + "treasury.inbound_transfer.succeeded", + "treasury.outbound_payment.canceled", + "treasury.outbound_payment.created", + "treasury.outbound_payment.expected_arrival_date_updated", + "treasury.outbound_payment.failed", + "treasury.outbound_payment.posted", + "treasury.outbound_payment.returned", + "treasury.outbound_payment.tracking_details_updated", + "treasury.outbound_transfer.canceled", + "treasury.outbound_transfer.created", + "treasury.outbound_transfer.expected_arrival_date_updated", + "treasury.outbound_transfer.failed", + "treasury.outbound_transfer.posted", + "treasury.outbound_transfer.returned", + "treasury.outbound_transfer.tracking_details_updated", + "treasury.received_credit.created", + "treasury.received_credit.failed", + "treasury.received_credit.succeeded", + "treasury.received_debit.created", + "billing.credit_balance_transaction.created", + "billing.credit_grant.created", + "billing.credit_grant.updated", + "billing.meter.created", + "billing.meter.deactivated", + "billing.meter.reactivated", + "billing.meter.updated", + ] + ] + ] + """ + The list of events to enable for this endpoint. You may specify `['*']` to enable all events, except those that require explicit selection. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + url: NotRequired[str] + """ + The URL of the webhook endpoint. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_retrieve_params.py new file mode 100644 index 00000000..3387b0f2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class WebhookEndpointRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_update_params.py new file mode 100644 index 00000000..48ab0604 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/_webhook_endpoint_update_params.py @@ -0,0 +1,288 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class WebhookEndpointUpdateParams(TypedDict): + description: NotRequired["Literal['']|str"] + """ + An optional description of what the webhook is used for. + """ + disabled: NotRequired[bool] + """ + Disable the webhook endpoint if set to true. + """ + enabled_events: NotRequired[ + List[ + Literal[ + "*", + "account.application.authorized", + "account.application.deauthorized", + "account.external_account.created", + "account.external_account.deleted", + "account.external_account.updated", + "account.updated", + "application_fee.created", + "application_fee.refund.updated", + "application_fee.refunded", + "balance.available", + "balance_settings.updated", + "billing.alert.triggered", + "billing_portal.configuration.created", + "billing_portal.configuration.updated", + "billing_portal.session.created", + "capability.updated", + "cash_balance.funds_available", + "charge.captured", + "charge.dispute.closed", + "charge.dispute.created", + "charge.dispute.funds_reinstated", + "charge.dispute.funds_withdrawn", + "charge.dispute.updated", + "charge.expired", + "charge.failed", + "charge.pending", + "charge.refund.updated", + "charge.refunded", + "charge.succeeded", + "charge.updated", + "checkout.session.async_payment_failed", + "checkout.session.async_payment_succeeded", + "checkout.session.completed", + "checkout.session.expired", + "climate.order.canceled", + "climate.order.created", + "climate.order.delayed", + "climate.order.delivered", + "climate.order.product_substituted", + "climate.product.created", + "climate.product.pricing_updated", + "coupon.created", + "coupon.deleted", + "coupon.updated", + "credit_note.created", + "credit_note.updated", + "credit_note.voided", + "customer.created", + "customer.deleted", + "customer.discount.created", + "customer.discount.deleted", + "customer.discount.updated", + "customer.source.created", + "customer.source.deleted", + "customer.source.expiring", + "customer.source.updated", + "customer.subscription.created", + "customer.subscription.deleted", + "customer.subscription.paused", + "customer.subscription.pending_update_applied", + "customer.subscription.pending_update_expired", + "customer.subscription.resumed", + "customer.subscription.trial_will_end", + "customer.subscription.updated", + "customer.tax_id.created", + "customer.tax_id.deleted", + "customer.tax_id.updated", + "customer.updated", + "customer_cash_balance_transaction.created", + "entitlements.active_entitlement_summary.updated", + "file.created", + "financial_connections.account.created", + "financial_connections.account.deactivated", + "financial_connections.account.disconnected", + "financial_connections.account.reactivated", + "financial_connections.account.refreshed_balance", + "financial_connections.account.refreshed_ownership", + "financial_connections.account.refreshed_transactions", + "identity.verification_session.canceled", + "identity.verification_session.created", + "identity.verification_session.processing", + "identity.verification_session.redacted", + "identity.verification_session.requires_input", + "identity.verification_session.verified", + "invoice.created", + "invoice.deleted", + "invoice.finalization_failed", + "invoice.finalized", + "invoice.marked_uncollectible", + "invoice.overdue", + "invoice.overpaid", + "invoice.paid", + "invoice.payment_action_required", + "invoice.payment_attempt_required", + "invoice.payment_failed", + "invoice.payment_succeeded", + "invoice.sent", + "invoice.upcoming", + "invoice.updated", + "invoice.voided", + "invoice.will_be_due", + "invoice_payment.paid", + "invoiceitem.created", + "invoiceitem.deleted", + "issuing_authorization.created", + "issuing_authorization.request", + "issuing_authorization.updated", + "issuing_card.created", + "issuing_card.updated", + "issuing_cardholder.created", + "issuing_cardholder.updated", + "issuing_dispute.closed", + "issuing_dispute.created", + "issuing_dispute.funds_reinstated", + "issuing_dispute.funds_rescinded", + "issuing_dispute.submitted", + "issuing_dispute.updated", + "issuing_personalization_design.activated", + "issuing_personalization_design.deactivated", + "issuing_personalization_design.rejected", + "issuing_personalization_design.updated", + "issuing_token.created", + "issuing_token.updated", + "issuing_transaction.created", + "issuing_transaction.purchase_details_receipt_updated", + "issuing_transaction.updated", + "mandate.updated", + "payment_intent.amount_capturable_updated", + "payment_intent.canceled", + "payment_intent.created", + "payment_intent.partially_funded", + "payment_intent.payment_failed", + "payment_intent.processing", + "payment_intent.requires_action", + "payment_intent.succeeded", + "payment_link.created", + "payment_link.updated", + "payment_method.attached", + "payment_method.automatically_updated", + "payment_method.detached", + "payment_method.updated", + "payout.canceled", + "payout.created", + "payout.failed", + "payout.paid", + "payout.reconciliation_completed", + "payout.updated", + "person.created", + "person.deleted", + "person.updated", + "plan.created", + "plan.deleted", + "plan.updated", + "price.created", + "price.deleted", + "price.updated", + "product.created", + "product.deleted", + "product.updated", + "promotion_code.created", + "promotion_code.updated", + "quote.accepted", + "quote.canceled", + "quote.created", + "quote.finalized", + "radar.early_fraud_warning.created", + "radar.early_fraud_warning.updated", + "refund.created", + "refund.failed", + "refund.updated", + "reporting.report_run.failed", + "reporting.report_run.succeeded", + "reporting.report_type.updated", + "review.closed", + "review.opened", + "setup_intent.canceled", + "setup_intent.created", + "setup_intent.requires_action", + "setup_intent.setup_failed", + "setup_intent.succeeded", + "sigma.scheduled_query_run.created", + "source.canceled", + "source.chargeable", + "source.failed", + "source.mandate_notification", + "source.refund_attributes_required", + "source.transaction.created", + "source.transaction.updated", + "subscription_schedule.aborted", + "subscription_schedule.canceled", + "subscription_schedule.completed", + "subscription_schedule.created", + "subscription_schedule.expiring", + "subscription_schedule.released", + "subscription_schedule.updated", + "tax.settings.updated", + "tax_rate.created", + "tax_rate.updated", + "terminal.reader.action_failed", + "terminal.reader.action_succeeded", + "terminal.reader.action_updated", + "test_helpers.test_clock.advancing", + "test_helpers.test_clock.created", + "test_helpers.test_clock.deleted", + "test_helpers.test_clock.internal_failure", + "test_helpers.test_clock.ready", + "topup.canceled", + "topup.created", + "topup.failed", + "topup.reversed", + "topup.succeeded", + "transfer.created", + "transfer.reversed", + "transfer.updated", + "treasury.credit_reversal.created", + "treasury.credit_reversal.posted", + "treasury.debit_reversal.completed", + "treasury.debit_reversal.created", + "treasury.debit_reversal.initial_credit_granted", + "treasury.financial_account.closed", + "treasury.financial_account.created", + "treasury.financial_account.features_status_updated", + "treasury.inbound_transfer.canceled", + "treasury.inbound_transfer.created", + "treasury.inbound_transfer.failed", + "treasury.inbound_transfer.succeeded", + "treasury.outbound_payment.canceled", + "treasury.outbound_payment.created", + "treasury.outbound_payment.expected_arrival_date_updated", + "treasury.outbound_payment.failed", + "treasury.outbound_payment.posted", + "treasury.outbound_payment.returned", + "treasury.outbound_payment.tracking_details_updated", + "treasury.outbound_transfer.canceled", + "treasury.outbound_transfer.created", + "treasury.outbound_transfer.expected_arrival_date_updated", + "treasury.outbound_transfer.failed", + "treasury.outbound_transfer.posted", + "treasury.outbound_transfer.returned", + "treasury.outbound_transfer.tracking_details_updated", + "treasury.received_credit.created", + "treasury.received_credit.failed", + "treasury.received_credit.succeeded", + "treasury.received_debit.created", + "billing.credit_balance_transaction.created", + "billing.credit_grant.created", + "billing.credit_grant.updated", + "billing.meter.created", + "billing.meter.deactivated", + "billing.meter.reactivated", + "billing.meter.updated", + ] + ] + ] + """ + The list of events to enable for this endpoint. You may specify `['*']` to enable all events, except those that require explicit selection. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + url: NotRequired[str] + """ + The URL of the webhook endpoint. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__init__.py new file mode 100644 index 00000000..dd5370ee --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__init__.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.apps._secret_create_params import ( + SecretCreateParams as SecretCreateParams, + SecretCreateParamsScope as SecretCreateParamsScope, + ) + from stripe.params.apps._secret_delete_where_params import ( + SecretDeleteWhereParams as SecretDeleteWhereParams, + SecretDeleteWhereParamsScope as SecretDeleteWhereParamsScope, + ) + from stripe.params.apps._secret_find_params import ( + SecretFindParams as SecretFindParams, + SecretFindParamsScope as SecretFindParamsScope, + ) + from stripe.params.apps._secret_list_params import ( + SecretListParams as SecretListParams, + SecretListParamsScope as SecretListParamsScope, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "SecretCreateParams": ("stripe.params.apps._secret_create_params", False), + "SecretCreateParamsScope": ( + "stripe.params.apps._secret_create_params", + False, + ), + "SecretDeleteWhereParams": ( + "stripe.params.apps._secret_delete_where_params", + False, + ), + "SecretDeleteWhereParamsScope": ( + "stripe.params.apps._secret_delete_where_params", + False, + ), + "SecretFindParams": ("stripe.params.apps._secret_find_params", False), + "SecretFindParamsScope": ("stripe.params.apps._secret_find_params", False), + "SecretListParams": ("stripe.params.apps._secret_list_params", False), + "SecretListParamsScope": ("stripe.params.apps._secret_list_params", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..791641bb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_create_params.cpython-312.pyc new file mode 100644 index 00000000..a0d432e6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_delete_where_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_delete_where_params.cpython-312.pyc new file mode 100644 index 00000000..7d8ef11a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_delete_where_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_find_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_find_params.cpython-312.pyc new file mode 100644 index 00000000..690f3914 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_find_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_list_params.cpython-312.pyc new file mode 100644 index 00000000..376238a3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/__pycache__/_secret_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_create_params.py new file mode 100644 index 00000000..8fe08f4b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_create_params.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SecretCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + The Unix timestamp for the expiry time of the secret, after which the secret deletes. + """ + name: str + """ + A name for the secret that's unique within the scope. + """ + payload: str + """ + The plaintext secret value to be stored. + """ + scope: "SecretCreateParamsScope" + """ + Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user. + """ + + +class SecretCreateParamsScope(TypedDict): + type: Literal["account", "user"] + """ + The secret scope type. + """ + user: NotRequired[str] + """ + The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_delete_where_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_delete_where_params.py new file mode 100644 index 00000000..ad26f74b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_delete_where_params.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SecretDeleteWhereParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + name: str + """ + A name for the secret that's unique within the scope. + """ + scope: "SecretDeleteWhereParamsScope" + """ + Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user. + """ + + +class SecretDeleteWhereParamsScope(TypedDict): + type: Literal["account", "user"] + """ + The secret scope type. + """ + user: NotRequired[str] + """ + The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_find_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_find_params.py new file mode 100644 index 00000000..4f47911b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_find_params.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SecretFindParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + name: str + """ + A name for the secret that's unique within the scope. + """ + scope: "SecretFindParamsScope" + """ + Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user. + """ + + +class SecretFindParamsScope(TypedDict): + type: Literal["account", "user"] + """ + The secret scope type. + """ + user: NotRequired[str] + """ + The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_list_params.py new file mode 100644 index 00000000..b3856e85 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/apps/_secret_list_params.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SecretListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + scope: "SecretListParamsScope" + """ + Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class SecretListParamsScope(TypedDict): + type: Literal["account", "user"] + """ + The secret scope type. + """ + user: NotRequired[str] + """ + The user ID. This field is required if `type` is set to `user`, and should not be provided if `type` is set to `account`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__init__.py new file mode 100644 index 00000000..29df82a7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__init__.py @@ -0,0 +1,266 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.billing._alert_activate_params import ( + AlertActivateParams as AlertActivateParams, + ) + from stripe.params.billing._alert_archive_params import ( + AlertArchiveParams as AlertArchiveParams, + ) + from stripe.params.billing._alert_create_params import ( + AlertCreateParams as AlertCreateParams, + AlertCreateParamsUsageThreshold as AlertCreateParamsUsageThreshold, + AlertCreateParamsUsageThresholdFilter as AlertCreateParamsUsageThresholdFilter, + ) + from stripe.params.billing._alert_deactivate_params import ( + AlertDeactivateParams as AlertDeactivateParams, + ) + from stripe.params.billing._alert_list_params import ( + AlertListParams as AlertListParams, + ) + from stripe.params.billing._alert_retrieve_params import ( + AlertRetrieveParams as AlertRetrieveParams, + ) + from stripe.params.billing._credit_balance_summary_retrieve_params import ( + CreditBalanceSummaryRetrieveParams as CreditBalanceSummaryRetrieveParams, + CreditBalanceSummaryRetrieveParamsFilter as CreditBalanceSummaryRetrieveParamsFilter, + CreditBalanceSummaryRetrieveParamsFilterApplicabilityScope as CreditBalanceSummaryRetrieveParamsFilterApplicabilityScope, + CreditBalanceSummaryRetrieveParamsFilterApplicabilityScopePrice as CreditBalanceSummaryRetrieveParamsFilterApplicabilityScopePrice, + ) + from stripe.params.billing._credit_balance_transaction_list_params import ( + CreditBalanceTransactionListParams as CreditBalanceTransactionListParams, + ) + from stripe.params.billing._credit_balance_transaction_retrieve_params import ( + CreditBalanceTransactionRetrieveParams as CreditBalanceTransactionRetrieveParams, + ) + from stripe.params.billing._credit_grant_create_params import ( + CreditGrantCreateParams as CreditGrantCreateParams, + CreditGrantCreateParamsAmount as CreditGrantCreateParamsAmount, + CreditGrantCreateParamsAmountMonetary as CreditGrantCreateParamsAmountMonetary, + CreditGrantCreateParamsApplicabilityConfig as CreditGrantCreateParamsApplicabilityConfig, + CreditGrantCreateParamsApplicabilityConfigScope as CreditGrantCreateParamsApplicabilityConfigScope, + CreditGrantCreateParamsApplicabilityConfigScopePrice as CreditGrantCreateParamsApplicabilityConfigScopePrice, + ) + from stripe.params.billing._credit_grant_expire_params import ( + CreditGrantExpireParams as CreditGrantExpireParams, + ) + from stripe.params.billing._credit_grant_list_params import ( + CreditGrantListParams as CreditGrantListParams, + ) + from stripe.params.billing._credit_grant_modify_params import ( + CreditGrantModifyParams as CreditGrantModifyParams, + ) + from stripe.params.billing._credit_grant_retrieve_params import ( + CreditGrantRetrieveParams as CreditGrantRetrieveParams, + ) + from stripe.params.billing._credit_grant_update_params import ( + CreditGrantUpdateParams as CreditGrantUpdateParams, + ) + from stripe.params.billing._credit_grant_void_grant_params import ( + CreditGrantVoidGrantParams as CreditGrantVoidGrantParams, + ) + from stripe.params.billing._meter_create_params import ( + MeterCreateParams as MeterCreateParams, + MeterCreateParamsCustomerMapping as MeterCreateParamsCustomerMapping, + MeterCreateParamsDefaultAggregation as MeterCreateParamsDefaultAggregation, + MeterCreateParamsValueSettings as MeterCreateParamsValueSettings, + ) + from stripe.params.billing._meter_deactivate_params import ( + MeterDeactivateParams as MeterDeactivateParams, + ) + from stripe.params.billing._meter_event_adjustment_create_params import ( + MeterEventAdjustmentCreateParams as MeterEventAdjustmentCreateParams, + MeterEventAdjustmentCreateParamsCancel as MeterEventAdjustmentCreateParamsCancel, + ) + from stripe.params.billing._meter_event_create_params import ( + MeterEventCreateParams as MeterEventCreateParams, + ) + from stripe.params.billing._meter_event_summary_list_params import ( + MeterEventSummaryListParams as MeterEventSummaryListParams, + ) + from stripe.params.billing._meter_list_event_summaries_params import ( + MeterListEventSummariesParams as MeterListEventSummariesParams, + ) + from stripe.params.billing._meter_list_params import ( + MeterListParams as MeterListParams, + ) + from stripe.params.billing._meter_modify_params import ( + MeterModifyParams as MeterModifyParams, + ) + from stripe.params.billing._meter_reactivate_params import ( + MeterReactivateParams as MeterReactivateParams, + ) + from stripe.params.billing._meter_retrieve_params import ( + MeterRetrieveParams as MeterRetrieveParams, + ) + from stripe.params.billing._meter_update_params import ( + MeterUpdateParams as MeterUpdateParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "AlertActivateParams": ( + "stripe.params.billing._alert_activate_params", + False, + ), + "AlertArchiveParams": ( + "stripe.params.billing._alert_archive_params", + False, + ), + "AlertCreateParams": ("stripe.params.billing._alert_create_params", False), + "AlertCreateParamsUsageThreshold": ( + "stripe.params.billing._alert_create_params", + False, + ), + "AlertCreateParamsUsageThresholdFilter": ( + "stripe.params.billing._alert_create_params", + False, + ), + "AlertDeactivateParams": ( + "stripe.params.billing._alert_deactivate_params", + False, + ), + "AlertListParams": ("stripe.params.billing._alert_list_params", False), + "AlertRetrieveParams": ( + "stripe.params.billing._alert_retrieve_params", + False, + ), + "CreditBalanceSummaryRetrieveParams": ( + "stripe.params.billing._credit_balance_summary_retrieve_params", + False, + ), + "CreditBalanceSummaryRetrieveParamsFilter": ( + "stripe.params.billing._credit_balance_summary_retrieve_params", + False, + ), + "CreditBalanceSummaryRetrieveParamsFilterApplicabilityScope": ( + "stripe.params.billing._credit_balance_summary_retrieve_params", + False, + ), + "CreditBalanceSummaryRetrieveParamsFilterApplicabilityScopePrice": ( + "stripe.params.billing._credit_balance_summary_retrieve_params", + False, + ), + "CreditBalanceTransactionListParams": ( + "stripe.params.billing._credit_balance_transaction_list_params", + False, + ), + "CreditBalanceTransactionRetrieveParams": ( + "stripe.params.billing._credit_balance_transaction_retrieve_params", + False, + ), + "CreditGrantCreateParams": ( + "stripe.params.billing._credit_grant_create_params", + False, + ), + "CreditGrantCreateParamsAmount": ( + "stripe.params.billing._credit_grant_create_params", + False, + ), + "CreditGrantCreateParamsAmountMonetary": ( + "stripe.params.billing._credit_grant_create_params", + False, + ), + "CreditGrantCreateParamsApplicabilityConfig": ( + "stripe.params.billing._credit_grant_create_params", + False, + ), + "CreditGrantCreateParamsApplicabilityConfigScope": ( + "stripe.params.billing._credit_grant_create_params", + False, + ), + "CreditGrantCreateParamsApplicabilityConfigScopePrice": ( + "stripe.params.billing._credit_grant_create_params", + False, + ), + "CreditGrantExpireParams": ( + "stripe.params.billing._credit_grant_expire_params", + False, + ), + "CreditGrantListParams": ( + "stripe.params.billing._credit_grant_list_params", + False, + ), + "CreditGrantModifyParams": ( + "stripe.params.billing._credit_grant_modify_params", + False, + ), + "CreditGrantRetrieveParams": ( + "stripe.params.billing._credit_grant_retrieve_params", + False, + ), + "CreditGrantUpdateParams": ( + "stripe.params.billing._credit_grant_update_params", + False, + ), + "CreditGrantVoidGrantParams": ( + "stripe.params.billing._credit_grant_void_grant_params", + False, + ), + "MeterCreateParams": ("stripe.params.billing._meter_create_params", False), + "MeterCreateParamsCustomerMapping": ( + "stripe.params.billing._meter_create_params", + False, + ), + "MeterCreateParamsDefaultAggregation": ( + "stripe.params.billing._meter_create_params", + False, + ), + "MeterCreateParamsValueSettings": ( + "stripe.params.billing._meter_create_params", + False, + ), + "MeterDeactivateParams": ( + "stripe.params.billing._meter_deactivate_params", + False, + ), + "MeterEventAdjustmentCreateParams": ( + "stripe.params.billing._meter_event_adjustment_create_params", + False, + ), + "MeterEventAdjustmentCreateParamsCancel": ( + "stripe.params.billing._meter_event_adjustment_create_params", + False, + ), + "MeterEventCreateParams": ( + "stripe.params.billing._meter_event_create_params", + False, + ), + "MeterEventSummaryListParams": ( + "stripe.params.billing._meter_event_summary_list_params", + False, + ), + "MeterListEventSummariesParams": ( + "stripe.params.billing._meter_list_event_summaries_params", + False, + ), + "MeterListParams": ("stripe.params.billing._meter_list_params", False), + "MeterModifyParams": ("stripe.params.billing._meter_modify_params", False), + "MeterReactivateParams": ( + "stripe.params.billing._meter_reactivate_params", + False, + ), + "MeterRetrieveParams": ( + "stripe.params.billing._meter_retrieve_params", + False, + ), + "MeterUpdateParams": ("stripe.params.billing._meter_update_params", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..b015a1a3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_activate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_activate_params.cpython-312.pyc new file mode 100644 index 00000000..279f555b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_activate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_archive_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_archive_params.cpython-312.pyc new file mode 100644 index 00000000..b609a166 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_archive_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_create_params.cpython-312.pyc new file mode 100644 index 00000000..af013940 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_deactivate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_deactivate_params.cpython-312.pyc new file mode 100644 index 00000000..475bac57 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_deactivate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_list_params.cpython-312.pyc new file mode 100644 index 00000000..f65cc05c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f433003f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_alert_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_summary_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_summary_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..769e4ebf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_summary_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..a8f8df50 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..9ac606b4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_balance_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_create_params.cpython-312.pyc new file mode 100644 index 00000000..b34c121d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_expire_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_expire_params.cpython-312.pyc new file mode 100644 index 00000000..2be311b1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_expire_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_list_params.cpython-312.pyc new file mode 100644 index 00000000..10ab3650 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_modify_params.cpython-312.pyc new file mode 100644 index 00000000..d78a84e3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..166cb1a2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_update_params.cpython-312.pyc new file mode 100644 index 00000000..293d29a3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_void_grant_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_void_grant_params.cpython-312.pyc new file mode 100644 index 00000000..73d3e588 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_credit_grant_void_grant_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_create_params.cpython-312.pyc new file mode 100644 index 00000000..1d0b9248 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_deactivate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_deactivate_params.cpython-312.pyc new file mode 100644 index 00000000..6e50039e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_deactivate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc new file mode 100644 index 00000000..2065b11b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_create_params.cpython-312.pyc new file mode 100644 index 00000000..99e3a4a2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_summary_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_summary_list_params.cpython-312.pyc new file mode 100644 index 00000000..4b4753d9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_event_summary_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_list_event_summaries_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_list_event_summaries_params.cpython-312.pyc new file mode 100644 index 00000000..97b0d945 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_list_event_summaries_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_list_params.cpython-312.pyc new file mode 100644 index 00000000..4b9bb150 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_modify_params.cpython-312.pyc new file mode 100644 index 00000000..4884fd5c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_reactivate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_reactivate_params.cpython-312.pyc new file mode 100644 index 00000000..5027dbda Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_reactivate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..8ee4e6db Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_update_params.cpython-312.pyc new file mode 100644 index 00000000..0de663af Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/__pycache__/_meter_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_activate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_activate_params.py new file mode 100644 index 00000000..f68a2b71 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_activate_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AlertActivateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_archive_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_archive_params.py new file mode 100644 index 00000000..3213ed47 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_archive_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AlertArchiveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_create_params.py new file mode 100644 index 00000000..95d96ca8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_create_params.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AlertCreateParams(RequestOptions): + alert_type: Literal["usage_threshold"] + """ + The type of alert to create. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + title: str + """ + The title of the alert. + """ + usage_threshold: NotRequired["AlertCreateParamsUsageThreshold"] + """ + The configuration of the usage threshold. + """ + + +class AlertCreateParamsUsageThreshold(TypedDict): + filters: NotRequired[List["AlertCreateParamsUsageThresholdFilter"]] + """ + The filters allows limiting the scope of this usage alert. You can only specify up to one filter at this time. + """ + gte: int + """ + Defines at which value the alert will fire. + """ + meter: str + """ + The [Billing Meter](https://docs.stripe.com/api/billing/meter) ID whose usage is monitored. + """ + recurrence: Literal["one_time"] + """ + Defines how the alert will behave. + """ + + +class AlertCreateParamsUsageThresholdFilter(TypedDict): + customer: NotRequired[str] + """ + Limit the scope to this usage alert only to this customer. + """ + type: Literal["customer"] + """ + What type of filter is being applied to this usage alert. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_deactivate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_deactivate_params.py new file mode 100644 index 00000000..b69f8cbb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_deactivate_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AlertDeactivateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_list_params.py new file mode 100644 index 00000000..20129d2f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_list_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class AlertListParams(RequestOptions): + alert_type: NotRequired[Literal["usage_threshold"]] + """ + Filter results to only include this type of alert. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + meter: NotRequired[str] + """ + Filter results to only include alerts with the given meter. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_retrieve_params.py new file mode 100644 index 00000000..92df807c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_alert_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AlertRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_summary_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_summary_retrieve_params.py new file mode 100644 index 00000000..83568bde --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_summary_retrieve_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CreditBalanceSummaryRetrieveParams(RequestOptions): + customer: str + """ + The customer for which to fetch credit balance summary. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + filter: "CreditBalanceSummaryRetrieveParamsFilter" + """ + The filter criteria for the credit balance summary. + """ + + +class CreditBalanceSummaryRetrieveParamsFilter(TypedDict): + applicability_scope: NotRequired[ + "CreditBalanceSummaryRetrieveParamsFilterApplicabilityScope" + ] + """ + The billing credit applicability scope for which to fetch credit balance summary. + """ + credit_grant: NotRequired[str] + """ + The credit grant for which to fetch credit balance summary. + """ + type: Literal["applicability_scope", "credit_grant"] + """ + Specify the type of this filter. + """ + + +class CreditBalanceSummaryRetrieveParamsFilterApplicabilityScope(TypedDict): + price_type: NotRequired[Literal["metered"]] + """ + The price type that credit grants can apply to. We currently only support the `metered` price type. Cannot be used in combination with `prices`. + """ + prices: NotRequired[ + List["CreditBalanceSummaryRetrieveParamsFilterApplicabilityScopePrice"] + ] + """ + A list of prices that the credit grant can apply to. We currently only support the `metered` prices. Cannot be used in combination with `price_type`. + """ + + +class CreditBalanceSummaryRetrieveParamsFilterApplicabilityScopePrice( + TypedDict, +): + id: str + """ + The price ID this credit grant should apply to. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_transaction_list_params.py new file mode 100644 index 00000000..2a61839e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_transaction_list_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditBalanceTransactionListParams(RequestOptions): + credit_grant: NotRequired[str] + """ + The credit grant for which to fetch credit balance transactions. + """ + customer: str + """ + The customer for which to fetch credit balance transactions. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_transaction_retrieve_params.py new file mode 100644 index 00000000..2a550682 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_balance_transaction_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditBalanceTransactionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_create_params.py new file mode 100644 index 00000000..2b30b24b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_create_params.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CreditGrantCreateParams(RequestOptions): + amount: "CreditGrantCreateParamsAmount" + """ + Amount of this credit grant. + """ + applicability_config: "CreditGrantCreateParamsApplicabilityConfig" + """ + Configuration specifying what this credit grant applies to. We currently only support `metered` prices that have a [Billing Meter](https://docs.stripe.com/api/billing/meter) attached to them. + """ + category: NotRequired[Literal["paid", "promotional"]] + """ + The category of this credit grant. It defaults to `paid` if not specified. + """ + customer: str + """ + ID of the customer to receive the billing credits. + """ + effective_at: NotRequired[int] + """ + The time when the billing credits become effective-when they're eligible for use. It defaults to the current timestamp if not specified. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + The time when the billing credits expire. If not specified, the billing credits don't expire. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of key-value pairs that you can attach to an object. You can use this to store additional information about the object (for example, cost basis) in a structured format. + """ + name: NotRequired[str] + """ + A descriptive name shown in the Dashboard. + """ + priority: NotRequired[int] + """ + The desired priority for applying this credit grant. If not specified, it will be set to the default value of 50. The highest priority is 0 and the lowest is 100. + """ + + +class CreditGrantCreateParamsAmount(TypedDict): + monetary: NotRequired["CreditGrantCreateParamsAmountMonetary"] + """ + The monetary amount. + """ + type: Literal["monetary"] + """ + The type of this amount. We currently only support `monetary` billing credits. + """ + + +class CreditGrantCreateParamsAmountMonetary(TypedDict): + currency: str + """ + Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `value` parameter. + """ + value: int + """ + A positive integer representing the amount of the credit grant. + """ + + +class CreditGrantCreateParamsApplicabilityConfig(TypedDict): + scope: "CreditGrantCreateParamsApplicabilityConfigScope" + """ + Specify the scope of this applicability config. + """ + + +class CreditGrantCreateParamsApplicabilityConfigScope(TypedDict): + price_type: NotRequired[Literal["metered"]] + """ + The price type that credit grants can apply to. We currently only support the `metered` price type. Cannot be used in combination with `prices`. + """ + prices: NotRequired[ + List["CreditGrantCreateParamsApplicabilityConfigScopePrice"] + ] + """ + A list of prices that the credit grant can apply to. We currently only support the `metered` prices. Cannot be used in combination with `price_type`. + """ + + +class CreditGrantCreateParamsApplicabilityConfigScopePrice(TypedDict): + id: str + """ + The price ID this credit grant should apply to. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_expire_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_expire_params.py new file mode 100644 index 00000000..a2e4fa63 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_expire_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditGrantExpireParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_list_params.py new file mode 100644 index 00000000..bf8ab6d0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditGrantListParams(RequestOptions): + customer: NotRequired[str] + """ + Only return credit grants for this customer. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_modify_params.py new file mode 100644 index 00000000..4c02e354 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_modify_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class CreditGrantModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired["Literal['']|int"] + """ + The time when the billing credits created by this credit grant expire. If set to empty, the billing credits never expire. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of key-value pairs you can attach to an object. You can use this to store additional information about the object (for example, cost basis) in a structured format. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_retrieve_params.py new file mode 100644 index 00000000..5c0418e6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditGrantRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_update_params.py new file mode 100644 index 00000000..fc5c4e40 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CreditGrantUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired["Literal['']|int"] + """ + The time when the billing credits created by this credit grant expire. If set to empty, the billing credits never expire. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of key-value pairs you can attach to an object. You can use this to store additional information about the object (for example, cost basis) in a structured format. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_void_grant_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_void_grant_params.py new file mode 100644 index 00000000..9a411106 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_credit_grant_void_grant_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditGrantVoidGrantParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_create_params.py new file mode 100644 index 00000000..d1b7aeb4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_create_params.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class MeterCreateParams(RequestOptions): + customer_mapping: NotRequired["MeterCreateParamsCustomerMapping"] + """ + Fields that specify how to map a meter event to a customer. + """ + default_aggregation: "MeterCreateParamsDefaultAggregation" + """ + The default settings to aggregate a meter's events with. + """ + display_name: str + """ + The meter's name. Not visible to the customer. + """ + event_name: str + """ + The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events. + """ + event_time_window: NotRequired[Literal["day", "hour"]] + """ + The time window which meter events have been pre-aggregated for, if any. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + value_settings: NotRequired["MeterCreateParamsValueSettings"] + """ + Fields that specify how to calculate a meter event's value. + """ + + +class MeterCreateParamsCustomerMapping(TypedDict): + event_payload_key: str + """ + The key in the meter event payload to use for mapping the event to a customer. + """ + type: Literal["by_id"] + """ + The method for mapping a meter event to a customer. Must be `by_id`. + """ + + +class MeterCreateParamsDefaultAggregation(TypedDict): + formula: Literal["count", "last", "sum"] + """ + Specifies how events are aggregated. Allowed values are `count` to count the number of events, `sum` to sum each event's value and `last` to take the last event's value in the window. + """ + + +class MeterCreateParamsValueSettings(TypedDict): + event_payload_key: str + """ + The key in the usage event payload to use as the value for this meter. For example, if the event payload contains usage on a `bytes_used` field, then set the event_payload_key to "bytes_used". + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_deactivate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_deactivate_params.py new file mode 100644 index 00000000..9ad26f4b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_deactivate_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class MeterDeactivateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_adjustment_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_adjustment_create_params.py new file mode 100644 index 00000000..fd7595b1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_adjustment_create_params.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class MeterEventAdjustmentCreateParams(RequestOptions): + cancel: NotRequired["MeterEventAdjustmentCreateParamsCancel"] + """ + Specifies which event to cancel. + """ + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + type: Literal["cancel"] + """ + Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet. + """ + + +class MeterEventAdjustmentCreateParamsCancel(TypedDict): + identifier: NotRequired[str] + """ + Unique identifier for the event. You can only cancel events within 24 hours of Stripe receiving them. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_create_params.py new file mode 100644 index 00000000..6a65963e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_create_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class MeterEventCreateParams(RequestOptions): + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + identifier: NotRequired[str] + """ + A unique identifier for the event. If not provided, one is generated. We recommend using UUID-like identifiers. We will enforce uniqueness within a rolling period of at least 24 hours. The enforcement of uniqueness primarily addresses issues arising from accidental retries or other problems occurring within extremely brief time intervals. This approach helps prevent duplicate entries and ensures data integrity in high-frequency operations. + """ + payload: Dict[str, str] + """ + The payload of the event. This must contain the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides). + """ + timestamp: NotRequired[int] + """ + The time of the event. Measured in seconds since the Unix epoch. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current timestamp if not specified. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_summary_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_summary_list_params.py new file mode 100644 index 00000000..3c5d49a6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_event_summary_list_params.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class MeterEventSummaryListParams(TypedDict): + customer: str + """ + The customer for which to fetch event summaries. + """ + end_time: int + """ + The timestamp from when to stop aggregating meter events (exclusive). Must be aligned with minute boundaries. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + start_time: int + """ + The timestamp from when to start aggregating meter events (inclusive). Must be aligned with minute boundaries. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + value_grouping_window: NotRequired[Literal["day", "hour"]] + """ + Specifies what granularity to use when generating event summaries. If not specified, a single event summary would be returned for the specified time range. For hourly granularity, start and end times must align with hour boundaries (e.g., 00:00, 01:00, ..., 23:00). For daily granularity, start and end times must align with UTC day boundaries (00:00 UTC). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_list_event_summaries_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_list_event_summaries_params.py new file mode 100644 index 00000000..ac858160 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_list_event_summaries_params.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class MeterListEventSummariesParams(RequestOptions): + customer: str + """ + The customer for which to fetch event summaries. + """ + end_time: int + """ + The timestamp from when to stop aggregating meter events (exclusive). Must be aligned with minute boundaries. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + start_time: int + """ + The timestamp from when to start aggregating meter events (inclusive). Must be aligned with minute boundaries. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + value_grouping_window: NotRequired[Literal["day", "hour"]] + """ + Specifies what granularity to use when generating event summaries. If not specified, a single event summary would be returned for the specified time range. For hourly granularity, start and end times must align with hour boundaries (e.g., 00:00, 01:00, ..., 23:00). For daily granularity, start and end times must align with UTC day boundaries (00:00 UTC). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_list_params.py new file mode 100644 index 00000000..4de12600 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class MeterListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "inactive"]] + """ + Filter results to only include meters with the given status. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_modify_params.py new file mode 100644 index 00000000..1a6251ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_modify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class MeterModifyParams(RequestOptions): + display_name: NotRequired[str] + """ + The meter's name. Not visible to the customer. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_reactivate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_reactivate_params.py new file mode 100644 index 00000000..fba5db17 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_reactivate_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class MeterReactivateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_retrieve_params.py new file mode 100644 index 00000000..0c1bb88e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class MeterRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_update_params.py new file mode 100644 index 00000000..8d8c0069 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing/_meter_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class MeterUpdateParams(TypedDict): + display_name: NotRequired[str] + """ + The meter's name. Not visible to the customer. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__init__.py new file mode 100644 index 00000000..1fe2f4e0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__init__.py @@ -0,0 +1,317 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.billing_portal._configuration_create_params import ( + ConfigurationCreateParams as ConfigurationCreateParams, + ConfigurationCreateParamsBusinessProfile as ConfigurationCreateParamsBusinessProfile, + ConfigurationCreateParamsFeatures as ConfigurationCreateParamsFeatures, + ConfigurationCreateParamsFeaturesCustomerUpdate as ConfigurationCreateParamsFeaturesCustomerUpdate, + ConfigurationCreateParamsFeaturesInvoiceHistory as ConfigurationCreateParamsFeaturesInvoiceHistory, + ConfigurationCreateParamsFeaturesPaymentMethodUpdate as ConfigurationCreateParamsFeaturesPaymentMethodUpdate, + ConfigurationCreateParamsFeaturesSubscriptionCancel as ConfigurationCreateParamsFeaturesSubscriptionCancel, + ConfigurationCreateParamsFeaturesSubscriptionCancelCancellationReason as ConfigurationCreateParamsFeaturesSubscriptionCancelCancellationReason, + ConfigurationCreateParamsFeaturesSubscriptionUpdate as ConfigurationCreateParamsFeaturesSubscriptionUpdate, + ConfigurationCreateParamsFeaturesSubscriptionUpdateProduct as ConfigurationCreateParamsFeaturesSubscriptionUpdateProduct, + ConfigurationCreateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity as ConfigurationCreateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity, + ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd as ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd, + ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition as ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition, + ConfigurationCreateParamsLoginPage as ConfigurationCreateParamsLoginPage, + ) + from stripe.params.billing_portal._configuration_list_params import ( + ConfigurationListParams as ConfigurationListParams, + ) + from stripe.params.billing_portal._configuration_modify_params import ( + ConfigurationModifyParams as ConfigurationModifyParams, + ConfigurationModifyParamsBusinessProfile as ConfigurationModifyParamsBusinessProfile, + ConfigurationModifyParamsFeatures as ConfigurationModifyParamsFeatures, + ConfigurationModifyParamsFeaturesCustomerUpdate as ConfigurationModifyParamsFeaturesCustomerUpdate, + ConfigurationModifyParamsFeaturesInvoiceHistory as ConfigurationModifyParamsFeaturesInvoiceHistory, + ConfigurationModifyParamsFeaturesPaymentMethodUpdate as ConfigurationModifyParamsFeaturesPaymentMethodUpdate, + ConfigurationModifyParamsFeaturesSubscriptionCancel as ConfigurationModifyParamsFeaturesSubscriptionCancel, + ConfigurationModifyParamsFeaturesSubscriptionCancelCancellationReason as ConfigurationModifyParamsFeaturesSubscriptionCancelCancellationReason, + ConfigurationModifyParamsFeaturesSubscriptionUpdate as ConfigurationModifyParamsFeaturesSubscriptionUpdate, + ConfigurationModifyParamsFeaturesSubscriptionUpdateProduct as ConfigurationModifyParamsFeaturesSubscriptionUpdateProduct, + ConfigurationModifyParamsFeaturesSubscriptionUpdateProductAdjustableQuantity as ConfigurationModifyParamsFeaturesSubscriptionUpdateProductAdjustableQuantity, + ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd as ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd, + ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition as ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition, + ConfigurationModifyParamsLoginPage as ConfigurationModifyParamsLoginPage, + ) + from stripe.params.billing_portal._configuration_retrieve_params import ( + ConfigurationRetrieveParams as ConfigurationRetrieveParams, + ) + from stripe.params.billing_portal._configuration_update_params import ( + ConfigurationUpdateParams as ConfigurationUpdateParams, + ConfigurationUpdateParamsBusinessProfile as ConfigurationUpdateParamsBusinessProfile, + ConfigurationUpdateParamsFeatures as ConfigurationUpdateParamsFeatures, + ConfigurationUpdateParamsFeaturesCustomerUpdate as ConfigurationUpdateParamsFeaturesCustomerUpdate, + ConfigurationUpdateParamsFeaturesInvoiceHistory as ConfigurationUpdateParamsFeaturesInvoiceHistory, + ConfigurationUpdateParamsFeaturesPaymentMethodUpdate as ConfigurationUpdateParamsFeaturesPaymentMethodUpdate, + ConfigurationUpdateParamsFeaturesSubscriptionCancel as ConfigurationUpdateParamsFeaturesSubscriptionCancel, + ConfigurationUpdateParamsFeaturesSubscriptionCancelCancellationReason as ConfigurationUpdateParamsFeaturesSubscriptionCancelCancellationReason, + ConfigurationUpdateParamsFeaturesSubscriptionUpdate as ConfigurationUpdateParamsFeaturesSubscriptionUpdate, + ConfigurationUpdateParamsFeaturesSubscriptionUpdateProduct as ConfigurationUpdateParamsFeaturesSubscriptionUpdateProduct, + ConfigurationUpdateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity as ConfigurationUpdateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity, + ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd as ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd, + ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition as ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition, + ConfigurationUpdateParamsLoginPage as ConfigurationUpdateParamsLoginPage, + ) + from stripe.params.billing_portal._session_create_params import ( + SessionCreateParams as SessionCreateParams, + SessionCreateParamsFlowData as SessionCreateParamsFlowData, + SessionCreateParamsFlowDataAfterCompletion as SessionCreateParamsFlowDataAfterCompletion, + SessionCreateParamsFlowDataAfterCompletionHostedConfirmation as SessionCreateParamsFlowDataAfterCompletionHostedConfirmation, + SessionCreateParamsFlowDataAfterCompletionRedirect as SessionCreateParamsFlowDataAfterCompletionRedirect, + SessionCreateParamsFlowDataSubscriptionCancel as SessionCreateParamsFlowDataSubscriptionCancel, + SessionCreateParamsFlowDataSubscriptionCancelRetention as SessionCreateParamsFlowDataSubscriptionCancelRetention, + SessionCreateParamsFlowDataSubscriptionCancelRetentionCouponOffer as SessionCreateParamsFlowDataSubscriptionCancelRetentionCouponOffer, + SessionCreateParamsFlowDataSubscriptionUpdate as SessionCreateParamsFlowDataSubscriptionUpdate, + SessionCreateParamsFlowDataSubscriptionUpdateConfirm as SessionCreateParamsFlowDataSubscriptionUpdateConfirm, + SessionCreateParamsFlowDataSubscriptionUpdateConfirmDiscount as SessionCreateParamsFlowDataSubscriptionUpdateConfirmDiscount, + SessionCreateParamsFlowDataSubscriptionUpdateConfirmItem as SessionCreateParamsFlowDataSubscriptionUpdateConfirmItem, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ConfigurationCreateParams": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsBusinessProfile": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeatures": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesCustomerUpdate": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesInvoiceHistory": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesPaymentMethodUpdate": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesSubscriptionCancel": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesSubscriptionCancelCancellationReason": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesSubscriptionUpdate": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesSubscriptionUpdateProduct": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsLoginPage": ( + "stripe.params.billing_portal._configuration_create_params", + False, + ), + "ConfigurationListParams": ( + "stripe.params.billing_portal._configuration_list_params", + False, + ), + "ConfigurationModifyParams": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsBusinessProfile": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeatures": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesCustomerUpdate": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesInvoiceHistory": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesPaymentMethodUpdate": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesSubscriptionCancel": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesSubscriptionCancelCancellationReason": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesSubscriptionUpdate": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesSubscriptionUpdateProduct": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesSubscriptionUpdateProductAdjustableQuantity": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsLoginPage": ( + "stripe.params.billing_portal._configuration_modify_params", + False, + ), + "ConfigurationRetrieveParams": ( + "stripe.params.billing_portal._configuration_retrieve_params", + False, + ), + "ConfigurationUpdateParams": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsBusinessProfile": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeatures": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesCustomerUpdate": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesInvoiceHistory": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesPaymentMethodUpdate": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesSubscriptionCancel": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesSubscriptionCancelCancellationReason": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesSubscriptionUpdate": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesSubscriptionUpdateProduct": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsLoginPage": ( + "stripe.params.billing_portal._configuration_update_params", + False, + ), + "SessionCreateParams": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowData": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataAfterCompletion": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataAfterCompletionHostedConfirmation": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataAfterCompletionRedirect": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataSubscriptionCancel": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataSubscriptionCancelRetention": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataSubscriptionCancelRetentionCouponOffer": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataSubscriptionUpdate": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataSubscriptionUpdateConfirm": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataSubscriptionUpdateConfirmDiscount": ( + "stripe.params.billing_portal._session_create_params", + False, + ), + "SessionCreateParamsFlowDataSubscriptionUpdateConfirmItem": ( + "stripe.params.billing_portal._session_create_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..f1776296 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_create_params.cpython-312.pyc new file mode 100644 index 00000000..40a3feb2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_list_params.cpython-312.pyc new file mode 100644 index 00000000..3e778528 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_modify_params.cpython-312.pyc new file mode 100644 index 00000000..bd02d6e7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..5ee4f2f4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_update_params.cpython-312.pyc new file mode 100644 index 00000000..df3984c3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_configuration_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_session_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_session_create_params.cpython-312.pyc new file mode 100644 index 00000000..ef083166 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/__pycache__/_session_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_create_params.py new file mode 100644 index 00000000..1265f59a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_create_params.py @@ -0,0 +1,263 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfigurationCreateParams(RequestOptions): + business_profile: NotRequired["ConfigurationCreateParamsBusinessProfile"] + """ + The business information shown to customers in the portal. + """ + default_return_url: NotRequired["Literal['']|str"] + """ + The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: "ConfigurationCreateParamsFeatures" + """ + Information about the features available in the portal. + """ + login_page: NotRequired["ConfigurationCreateParamsLoginPage"] + """ + The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share). + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired["Literal['']|str"] + """ + The name of the configuration. + """ + + +class ConfigurationCreateParamsBusinessProfile(TypedDict): + headline: NotRequired["Literal['']|str"] + """ + The messaging shown to customers in the portal. + """ + privacy_policy_url: NotRequired[str] + """ + A link to the business's publicly available privacy policy. + """ + terms_of_service_url: NotRequired[str] + """ + A link to the business's publicly available terms of service. + """ + + +class ConfigurationCreateParamsFeatures(TypedDict): + customer_update: NotRequired[ + "ConfigurationCreateParamsFeaturesCustomerUpdate" + ] + """ + Information about updating the customer details in the portal. + """ + invoice_history: NotRequired[ + "ConfigurationCreateParamsFeaturesInvoiceHistory" + ] + """ + Information about showing the billing history in the portal. + """ + payment_method_update: NotRequired[ + "ConfigurationCreateParamsFeaturesPaymentMethodUpdate" + ] + """ + Information about updating payment methods in the portal. + """ + subscription_cancel: NotRequired[ + "ConfigurationCreateParamsFeaturesSubscriptionCancel" + ] + """ + Information about canceling subscriptions in the portal. + """ + subscription_update: NotRequired[ + "ConfigurationCreateParamsFeaturesSubscriptionUpdate" + ] + """ + Information about updating subscriptions in the portal. + """ + + +class ConfigurationCreateParamsFeaturesCustomerUpdate(TypedDict): + allowed_updates: NotRequired[ + "Literal['']|List[Literal['address', 'email', 'name', 'phone', 'shipping', 'tax_id']]" + ] + """ + The types of customer updates that are supported. When empty, customers are not updateable. + """ + enabled: bool + """ + Whether the feature is enabled. + """ + + +class ConfigurationCreateParamsFeaturesInvoiceHistory(TypedDict): + enabled: bool + """ + Whether the feature is enabled. + """ + + +class ConfigurationCreateParamsFeaturesPaymentMethodUpdate(TypedDict): + enabled: bool + """ + Whether the feature is enabled. + """ + payment_method_configuration: NotRequired["Literal['']|str"] + """ + The [Payment Method Configuration](https://docs.stripe.com/api/payment_method_configurations) to use for this portal session. When specified, customers will be able to update their payment method to one of the options specified by the payment method configuration. If not set or set to an empty string, the default payment method configuration is used. + """ + + +class ConfigurationCreateParamsFeaturesSubscriptionCancel(TypedDict): + cancellation_reason: NotRequired[ + "ConfigurationCreateParamsFeaturesSubscriptionCancelCancellationReason" + ] + """ + Whether the cancellation reasons will be collected in the portal and which options are exposed to the customer + """ + enabled: bool + """ + Whether the feature is enabled. + """ + mode: NotRequired[Literal["at_period_end", "immediately"]] + """ + Whether to cancel subscriptions immediately or at the end of the billing period. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`, which is only compatible with `mode=immediately`. Passing `always_invoice` will result in an error. No prorations are generated when canceling a subscription at the end of its natural billing period. + """ + + +class ConfigurationCreateParamsFeaturesSubscriptionCancelCancellationReason( + TypedDict, +): + enabled: bool + """ + Whether the feature is enabled. + """ + options: Union[ + Literal[""], + List[ + Literal[ + "customer_service", + "low_quality", + "missing_features", + "other", + "switched_service", + "too_complex", + "too_expensive", + "unused", + ] + ], + ] + """ + Which cancellation reasons will be given as options to the customer. + """ + + +class ConfigurationCreateParamsFeaturesSubscriptionUpdate(TypedDict): + default_allowed_updates: NotRequired[ + "Literal['']|List[Literal['price', 'promotion_code', 'quantity']]" + ] + """ + The types of subscription updates that are supported. When empty, subscriptions are not updateable. + """ + enabled: bool + """ + Whether the feature is enabled. + """ + products: NotRequired[ + "Literal['']|List[ConfigurationCreateParamsFeaturesSubscriptionUpdateProduct]" + ] + """ + The list of up to 10 products that support subscription updates. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. + """ + schedule_at_period_end: NotRequired[ + "ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd" + ] + """ + Setting to control when an update should be scheduled at the end of the period instead of applying immediately. + """ + trial_update_behavior: NotRequired[Literal["continue_trial", "end_trial"]] + """ + The behavior when updating a subscription that is trialing. + """ + + +class ConfigurationCreateParamsFeaturesSubscriptionUpdateProduct(TypedDict): + adjustable_quantity: NotRequired[ + "ConfigurationCreateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity" + ] + """ + Control whether the quantity of the product can be adjusted. + """ + prices: List[str] + """ + The list of price IDs for the product that a subscription can be updated to. + """ + product: str + """ + The product id. + """ + + +class ConfigurationCreateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity( + TypedDict, +): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity that can be set for the product. + """ + minimum: NotRequired[int] + """ + The minimum quantity that can be set for the product. + """ + + +class ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd( + TypedDict, +): + conditions: NotRequired[ + List[ + "ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition" + ] + ] + """ + List of conditions. When any condition is true, the update will be scheduled at the end of the current period. + """ + + +class ConfigurationCreateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition( + TypedDict, +): + type: Literal["decreasing_item_amount", "shortening_interval"] + """ + The type of condition. + """ + + +class ConfigurationCreateParamsLoginPage(TypedDict): + enabled: bool + """ + Set to `true` to generate a shareable URL [`login_page.url`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-login_page-url) that will take your customers to a hosted login page for the customer portal. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_list_params.py new file mode 100644 index 00000000..e1566f7c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_list_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ConfigurationListParams(RequestOptions): + active: NotRequired[bool] + """ + Only return configurations that are active or inactive (e.g., pass `true` to only list active configurations). + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + is_default: NotRequired[bool] + """ + Only return the default or non-default configurations (e.g., pass `true` to only list the default configuration). + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_modify_params.py new file mode 100644 index 00000000..72cbf435 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_modify_params.py @@ -0,0 +1,255 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfigurationModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Whether the configuration is active and can be used to create portal sessions. + """ + business_profile: NotRequired["ConfigurationModifyParamsBusinessProfile"] + """ + The business information shown to customers in the portal. + """ + default_return_url: NotRequired["Literal['']|str"] + """ + The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: NotRequired["ConfigurationModifyParamsFeatures"] + """ + Information about the features available in the portal. + """ + login_page: NotRequired["ConfigurationModifyParamsLoginPage"] + """ + The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share). + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired["Literal['']|str"] + """ + The name of the configuration. + """ + + +class ConfigurationModifyParamsBusinessProfile(TypedDict): + headline: NotRequired["Literal['']|str"] + """ + The messaging shown to customers in the portal. + """ + privacy_policy_url: NotRequired["Literal['']|str"] + """ + A link to the business's publicly available privacy policy. + """ + terms_of_service_url: NotRequired["Literal['']|str"] + """ + A link to the business's publicly available terms of service. + """ + + +class ConfigurationModifyParamsFeatures(TypedDict): + customer_update: NotRequired[ + "ConfigurationModifyParamsFeaturesCustomerUpdate" + ] + """ + Information about updating the customer details in the portal. + """ + invoice_history: NotRequired[ + "ConfigurationModifyParamsFeaturesInvoiceHistory" + ] + """ + Information about showing the billing history in the portal. + """ + payment_method_update: NotRequired[ + "ConfigurationModifyParamsFeaturesPaymentMethodUpdate" + ] + """ + Information about updating payment methods in the portal. + """ + subscription_cancel: NotRequired[ + "ConfigurationModifyParamsFeaturesSubscriptionCancel" + ] + """ + Information about canceling subscriptions in the portal. + """ + subscription_update: NotRequired[ + "ConfigurationModifyParamsFeaturesSubscriptionUpdate" + ] + """ + Information about updating subscriptions in the portal. + """ + + +class ConfigurationModifyParamsFeaturesCustomerUpdate(TypedDict): + allowed_updates: NotRequired[ + "Literal['']|List[Literal['address', 'email', 'name', 'phone', 'shipping', 'tax_id']]" + ] + """ + The types of customer updates that are supported. When empty, customers are not updateable. + """ + enabled: NotRequired[bool] + """ + Whether the feature is enabled. + """ + + +class ConfigurationModifyParamsFeaturesInvoiceHistory(TypedDict): + enabled: bool + """ + Whether the feature is enabled. + """ + + +class ConfigurationModifyParamsFeaturesPaymentMethodUpdate(TypedDict): + enabled: bool + """ + Whether the feature is enabled. + """ + payment_method_configuration: NotRequired["Literal['']|str"] + """ + The [Payment Method Configuration](https://docs.stripe.com/api/payment_method_configurations) to use for this portal session. When specified, customers will be able to update their payment method to one of the options specified by the payment method configuration. If not set or set to an empty string, the default payment method configuration is used. + """ + + +class ConfigurationModifyParamsFeaturesSubscriptionCancel(TypedDict): + cancellation_reason: NotRequired[ + "ConfigurationModifyParamsFeaturesSubscriptionCancelCancellationReason" + ] + """ + Whether the cancellation reasons will be collected in the portal and which options are exposed to the customer + """ + enabled: NotRequired[bool] + """ + Whether the feature is enabled. + """ + mode: NotRequired[Literal["at_period_end", "immediately"]] + """ + Whether to cancel subscriptions immediately or at the end of the billing period. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`, which is only compatible with `mode=immediately`. Passing `always_invoice` will result in an error. No prorations are generated when canceling a subscription at the end of its natural billing period. + """ + + +class ConfigurationModifyParamsFeaturesSubscriptionCancelCancellationReason( + TypedDict, +): + enabled: bool + """ + Whether the feature is enabled. + """ + options: NotRequired[ + "Literal['']|List[Literal['customer_service', 'low_quality', 'missing_features', 'other', 'switched_service', 'too_complex', 'too_expensive', 'unused']]" + ] + """ + Which cancellation reasons will be given as options to the customer. + """ + + +class ConfigurationModifyParamsFeaturesSubscriptionUpdate(TypedDict): + default_allowed_updates: NotRequired[ + "Literal['']|List[Literal['price', 'promotion_code', 'quantity']]" + ] + """ + The types of subscription updates that are supported. When empty, subscriptions are not updateable. + """ + enabled: NotRequired[bool] + """ + Whether the feature is enabled. + """ + products: NotRequired[ + "Literal['']|List[ConfigurationModifyParamsFeaturesSubscriptionUpdateProduct]" + ] + """ + The list of up to 10 products that support subscription updates. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. + """ + schedule_at_period_end: NotRequired[ + "ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd" + ] + """ + Setting to control when an update should be scheduled at the end of the period instead of applying immediately. + """ + trial_update_behavior: NotRequired[Literal["continue_trial", "end_trial"]] + """ + The behavior when updating a subscription that is trialing. + """ + + +class ConfigurationModifyParamsFeaturesSubscriptionUpdateProduct(TypedDict): + adjustable_quantity: NotRequired[ + "ConfigurationModifyParamsFeaturesSubscriptionUpdateProductAdjustableQuantity" + ] + """ + Control whether the quantity of the product can be adjusted. + """ + prices: List[str] + """ + The list of price IDs for the product that a subscription can be updated to. + """ + product: str + """ + The product id. + """ + + +class ConfigurationModifyParamsFeaturesSubscriptionUpdateProductAdjustableQuantity( + TypedDict, +): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity that can be set for the product. + """ + minimum: NotRequired[int] + """ + The minimum quantity that can be set for the product. + """ + + +class ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd( + TypedDict, +): + conditions: NotRequired[ + "Literal['']|List[ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition]" + ] + """ + List of conditions. When any condition is true, the update will be scheduled at the end of the current period. + """ + + +class ConfigurationModifyParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition( + TypedDict, +): + type: Literal["decreasing_item_amount", "shortening_interval"] + """ + The type of condition. + """ + + +class ConfigurationModifyParamsLoginPage(TypedDict): + enabled: bool + """ + Set to `true` to generate a shareable URL [`login_page.url`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-login_page-url) that will take your customers to a hosted login page for the customer portal. + + Set to `false` to deactivate the `login_page.url`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_retrieve_params.py new file mode 100644 index 00000000..95f024ac --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ConfigurationRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_update_params.py new file mode 100644 index 00000000..084ad54b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_configuration_update_params.py @@ -0,0 +1,254 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfigurationUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Whether the configuration is active and can be used to create portal sessions. + """ + business_profile: NotRequired["ConfigurationUpdateParamsBusinessProfile"] + """ + The business information shown to customers in the portal. + """ + default_return_url: NotRequired["Literal['']|str"] + """ + The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: NotRequired["ConfigurationUpdateParamsFeatures"] + """ + Information about the features available in the portal. + """ + login_page: NotRequired["ConfigurationUpdateParamsLoginPage"] + """ + The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share). + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired["Literal['']|str"] + """ + The name of the configuration. + """ + + +class ConfigurationUpdateParamsBusinessProfile(TypedDict): + headline: NotRequired["Literal['']|str"] + """ + The messaging shown to customers in the portal. + """ + privacy_policy_url: NotRequired["Literal['']|str"] + """ + A link to the business's publicly available privacy policy. + """ + terms_of_service_url: NotRequired["Literal['']|str"] + """ + A link to the business's publicly available terms of service. + """ + + +class ConfigurationUpdateParamsFeatures(TypedDict): + customer_update: NotRequired[ + "ConfigurationUpdateParamsFeaturesCustomerUpdate" + ] + """ + Information about updating the customer details in the portal. + """ + invoice_history: NotRequired[ + "ConfigurationUpdateParamsFeaturesInvoiceHistory" + ] + """ + Information about showing the billing history in the portal. + """ + payment_method_update: NotRequired[ + "ConfigurationUpdateParamsFeaturesPaymentMethodUpdate" + ] + """ + Information about updating payment methods in the portal. + """ + subscription_cancel: NotRequired[ + "ConfigurationUpdateParamsFeaturesSubscriptionCancel" + ] + """ + Information about canceling subscriptions in the portal. + """ + subscription_update: NotRequired[ + "ConfigurationUpdateParamsFeaturesSubscriptionUpdate" + ] + """ + Information about updating subscriptions in the portal. + """ + + +class ConfigurationUpdateParamsFeaturesCustomerUpdate(TypedDict): + allowed_updates: NotRequired[ + "Literal['']|List[Literal['address', 'email', 'name', 'phone', 'shipping', 'tax_id']]" + ] + """ + The types of customer updates that are supported. When empty, customers are not updateable. + """ + enabled: NotRequired[bool] + """ + Whether the feature is enabled. + """ + + +class ConfigurationUpdateParamsFeaturesInvoiceHistory(TypedDict): + enabled: bool + """ + Whether the feature is enabled. + """ + + +class ConfigurationUpdateParamsFeaturesPaymentMethodUpdate(TypedDict): + enabled: bool + """ + Whether the feature is enabled. + """ + payment_method_configuration: NotRequired["Literal['']|str"] + """ + The [Payment Method Configuration](https://docs.stripe.com/api/payment_method_configurations) to use for this portal session. When specified, customers will be able to update their payment method to one of the options specified by the payment method configuration. If not set or set to an empty string, the default payment method configuration is used. + """ + + +class ConfigurationUpdateParamsFeaturesSubscriptionCancel(TypedDict): + cancellation_reason: NotRequired[ + "ConfigurationUpdateParamsFeaturesSubscriptionCancelCancellationReason" + ] + """ + Whether the cancellation reasons will be collected in the portal and which options are exposed to the customer + """ + enabled: NotRequired[bool] + """ + Whether the feature is enabled. + """ + mode: NotRequired[Literal["at_period_end", "immediately"]] + """ + Whether to cancel subscriptions immediately or at the end of the billing period. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`, which is only compatible with `mode=immediately`. Passing `always_invoice` will result in an error. No prorations are generated when canceling a subscription at the end of its natural billing period. + """ + + +class ConfigurationUpdateParamsFeaturesSubscriptionCancelCancellationReason( + TypedDict, +): + enabled: bool + """ + Whether the feature is enabled. + """ + options: NotRequired[ + "Literal['']|List[Literal['customer_service', 'low_quality', 'missing_features', 'other', 'switched_service', 'too_complex', 'too_expensive', 'unused']]" + ] + """ + Which cancellation reasons will be given as options to the customer. + """ + + +class ConfigurationUpdateParamsFeaturesSubscriptionUpdate(TypedDict): + default_allowed_updates: NotRequired[ + "Literal['']|List[Literal['price', 'promotion_code', 'quantity']]" + ] + """ + The types of subscription updates that are supported. When empty, subscriptions are not updateable. + """ + enabled: NotRequired[bool] + """ + Whether the feature is enabled. + """ + products: NotRequired[ + "Literal['']|List[ConfigurationUpdateParamsFeaturesSubscriptionUpdateProduct]" + ] + """ + The list of up to 10 products that support subscription updates. + """ + proration_behavior: NotRequired[ + Literal["always_invoice", "create_prorations", "none"] + ] + """ + Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. + """ + schedule_at_period_end: NotRequired[ + "ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd" + ] + """ + Setting to control when an update should be scheduled at the end of the period instead of applying immediately. + """ + trial_update_behavior: NotRequired[Literal["continue_trial", "end_trial"]] + """ + The behavior when updating a subscription that is trialing. + """ + + +class ConfigurationUpdateParamsFeaturesSubscriptionUpdateProduct(TypedDict): + adjustable_quantity: NotRequired[ + "ConfigurationUpdateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity" + ] + """ + Control whether the quantity of the product can be adjusted. + """ + prices: List[str] + """ + The list of price IDs for the product that a subscription can be updated to. + """ + product: str + """ + The product id. + """ + + +class ConfigurationUpdateParamsFeaturesSubscriptionUpdateProductAdjustableQuantity( + TypedDict, +): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity that can be set for the product. + """ + minimum: NotRequired[int] + """ + The minimum quantity that can be set for the product. + """ + + +class ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEnd( + TypedDict, +): + conditions: NotRequired[ + "Literal['']|List[ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition]" + ] + """ + List of conditions. When any condition is true, the update will be scheduled at the end of the current period. + """ + + +class ConfigurationUpdateParamsFeaturesSubscriptionUpdateScheduleAtPeriodEndCondition( + TypedDict, +): + type: Literal["decreasing_item_amount", "shortening_interval"] + """ + The type of condition. + """ + + +class ConfigurationUpdateParamsLoginPage(TypedDict): + enabled: bool + """ + Set to `true` to generate a shareable URL [`login_page.url`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-login_page-url) that will take your customers to a hosted login page for the customer portal. + + Set to `false` to deactivate the `login_page.url`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_session_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_session_create_params.py new file mode 100644 index 00000000..f16942ae --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/billing_portal/_session_create_params.py @@ -0,0 +1,236 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SessionCreateParams(RequestOptions): + configuration: NotRequired[str] + """ + The ID of an existing [configuration](https://stripe.com/docs/api/customer_portal/configuration) to use for this session, describing its functionality and features. If not specified, the session uses the default configuration. + """ + customer: str + """ + The ID of an existing customer. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + flow_data: NotRequired["SessionCreateParamsFlowData"] + """ + Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows. + """ + locale: NotRequired[ + Literal[ + "auto", + "bg", + "cs", + "da", + "de", + "el", + "en", + "en-AU", + "en-CA", + "en-GB", + "en-IE", + "en-IN", + "en-NZ", + "en-SG", + "es", + "es-419", + "et", + "fi", + "fil", + "fr", + "fr-CA", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "lv", + "ms", + "mt", + "nb", + "nl", + "pl", + "pt", + "pt-BR", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tr", + "vi", + "zh", + "zh-HK", + "zh-TW", + ] + ] + """ + The IETF language tag of the locale customer portal is displayed in. If blank or auto, the customer's `preferred_locales` or browser's locale is used. + """ + on_behalf_of: NotRequired[str] + """ + The `on_behalf_of` account to use for this session. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays. + """ + return_url: NotRequired[str] + """ + The default URL to redirect customers to when they click on the portal's link to return to your website. + """ + + +class SessionCreateParamsFlowData(TypedDict): + after_completion: NotRequired["SessionCreateParamsFlowDataAfterCompletion"] + """ + Behavior after the flow is completed. + """ + subscription_cancel: NotRequired[ + "SessionCreateParamsFlowDataSubscriptionCancel" + ] + """ + Configuration when `flow_data.type=subscription_cancel`. + """ + subscription_update: NotRequired[ + "SessionCreateParamsFlowDataSubscriptionUpdate" + ] + """ + Configuration when `flow_data.type=subscription_update`. + """ + subscription_update_confirm: NotRequired[ + "SessionCreateParamsFlowDataSubscriptionUpdateConfirm" + ] + """ + Configuration when `flow_data.type=subscription_update_confirm`. + """ + type: Literal[ + "payment_method_update", + "subscription_cancel", + "subscription_update", + "subscription_update_confirm", + ] + """ + Type of flow that the customer will go through. + """ + + +class SessionCreateParamsFlowDataAfterCompletion(TypedDict): + hosted_confirmation: NotRequired[ + "SessionCreateParamsFlowDataAfterCompletionHostedConfirmation" + ] + """ + Configuration when `after_completion.type=hosted_confirmation`. + """ + redirect: NotRequired["SessionCreateParamsFlowDataAfterCompletionRedirect"] + """ + Configuration when `after_completion.type=redirect`. + """ + type: Literal["hosted_confirmation", "portal_homepage", "redirect"] + """ + The specified behavior after the flow is completed. + """ + + +class SessionCreateParamsFlowDataAfterCompletionHostedConfirmation(TypedDict): + custom_message: NotRequired[str] + """ + A custom message to display to the customer after the flow is completed. + """ + + +class SessionCreateParamsFlowDataAfterCompletionRedirect(TypedDict): + return_url: str + """ + The URL the customer will be redirected to after the flow is completed. + """ + + +class SessionCreateParamsFlowDataSubscriptionCancel(TypedDict): + retention: NotRequired[ + "SessionCreateParamsFlowDataSubscriptionCancelRetention" + ] + """ + Specify a retention strategy to be used in the cancellation flow. + """ + subscription: str + """ + The ID of the subscription to be canceled. + """ + + +class SessionCreateParamsFlowDataSubscriptionCancelRetention(TypedDict): + coupon_offer: ( + "SessionCreateParamsFlowDataSubscriptionCancelRetentionCouponOffer" + ) + """ + Configuration when `retention.type=coupon_offer`. + """ + type: Literal["coupon_offer"] + """ + Type of retention strategy to use with the customer. + """ + + +class SessionCreateParamsFlowDataSubscriptionCancelRetentionCouponOffer( + TypedDict, +): + coupon: str + """ + The ID of the coupon to be offered. + """ + + +class SessionCreateParamsFlowDataSubscriptionUpdate(TypedDict): + subscription: str + """ + The ID of the subscription to be updated. + """ + + +class SessionCreateParamsFlowDataSubscriptionUpdateConfirm(TypedDict): + discounts: NotRequired[ + List["SessionCreateParamsFlowDataSubscriptionUpdateConfirmDiscount"] + ] + """ + The coupon or promotion code to apply to this subscription update. + """ + items: List["SessionCreateParamsFlowDataSubscriptionUpdateConfirmItem"] + """ + The [subscription item](https://stripe.com/docs/api/subscription_items) to be updated through this flow. Currently, only up to one may be specified and subscriptions with multiple items are not updatable. + """ + subscription: str + """ + The ID of the subscription to be updated. + """ + + +class SessionCreateParamsFlowDataSubscriptionUpdateConfirmDiscount(TypedDict): + coupon: NotRequired[str] + """ + The ID of the coupon to apply to this subscription update. + """ + promotion_code: NotRequired[str] + """ + The ID of a promotion code to apply to this subscription update. + """ + + +class SessionCreateParamsFlowDataSubscriptionUpdateConfirmItem(TypedDict): + id: str + """ + The ID of the [subscription item](https://stripe.com/docs/api/subscriptions/object#subscription_object-items-data-id) to be updated. + """ + price: NotRequired[str] + """ + The price the customer should subscribe to through this flow. The price must also be included in the configuration's [`features.subscription_update.products`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-features-subscription_update-products). + """ + quantity: NotRequired[int] + """ + [Quantity](https://stripe.com/docs/subscriptions/quantities) for this item that the customer should subscribe to through this flow. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__init__.py new file mode 100644 index 00000000..678e8a29 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__init__.py @@ -0,0 +1,796 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.checkout._session_create_params import ( + SessionCreateParams as SessionCreateParams, + SessionCreateParamsAdaptivePricing as SessionCreateParamsAdaptivePricing, + SessionCreateParamsAfterExpiration as SessionCreateParamsAfterExpiration, + SessionCreateParamsAfterExpirationRecovery as SessionCreateParamsAfterExpirationRecovery, + SessionCreateParamsAutomaticTax as SessionCreateParamsAutomaticTax, + SessionCreateParamsAutomaticTaxLiability as SessionCreateParamsAutomaticTaxLiability, + SessionCreateParamsBrandingSettings as SessionCreateParamsBrandingSettings, + SessionCreateParamsBrandingSettingsIcon as SessionCreateParamsBrandingSettingsIcon, + SessionCreateParamsBrandingSettingsLogo as SessionCreateParamsBrandingSettingsLogo, + SessionCreateParamsConsentCollection as SessionCreateParamsConsentCollection, + SessionCreateParamsConsentCollectionPaymentMethodReuseAgreement as SessionCreateParamsConsentCollectionPaymentMethodReuseAgreement, + SessionCreateParamsCustomField as SessionCreateParamsCustomField, + SessionCreateParamsCustomFieldDropdown as SessionCreateParamsCustomFieldDropdown, + SessionCreateParamsCustomFieldDropdownOption as SessionCreateParamsCustomFieldDropdownOption, + SessionCreateParamsCustomFieldLabel as SessionCreateParamsCustomFieldLabel, + SessionCreateParamsCustomFieldNumeric as SessionCreateParamsCustomFieldNumeric, + SessionCreateParamsCustomFieldText as SessionCreateParamsCustomFieldText, + SessionCreateParamsCustomText as SessionCreateParamsCustomText, + SessionCreateParamsCustomTextAfterSubmit as SessionCreateParamsCustomTextAfterSubmit, + SessionCreateParamsCustomTextShippingAddress as SessionCreateParamsCustomTextShippingAddress, + SessionCreateParamsCustomTextSubmit as SessionCreateParamsCustomTextSubmit, + SessionCreateParamsCustomTextTermsOfServiceAcceptance as SessionCreateParamsCustomTextTermsOfServiceAcceptance, + SessionCreateParamsCustomerUpdate as SessionCreateParamsCustomerUpdate, + SessionCreateParamsDiscount as SessionCreateParamsDiscount, + SessionCreateParamsInvoiceCreation as SessionCreateParamsInvoiceCreation, + SessionCreateParamsInvoiceCreationInvoiceData as SessionCreateParamsInvoiceCreationInvoiceData, + SessionCreateParamsInvoiceCreationInvoiceDataCustomField as SessionCreateParamsInvoiceCreationInvoiceDataCustomField, + SessionCreateParamsInvoiceCreationInvoiceDataIssuer as SessionCreateParamsInvoiceCreationInvoiceDataIssuer, + SessionCreateParamsInvoiceCreationInvoiceDataRenderingOptions as SessionCreateParamsInvoiceCreationInvoiceDataRenderingOptions, + SessionCreateParamsLineItem as SessionCreateParamsLineItem, + SessionCreateParamsLineItemAdjustableQuantity as SessionCreateParamsLineItemAdjustableQuantity, + SessionCreateParamsLineItemPriceData as SessionCreateParamsLineItemPriceData, + SessionCreateParamsLineItemPriceDataProductData as SessionCreateParamsLineItemPriceDataProductData, + SessionCreateParamsLineItemPriceDataRecurring as SessionCreateParamsLineItemPriceDataRecurring, + SessionCreateParamsNameCollection as SessionCreateParamsNameCollection, + SessionCreateParamsNameCollectionBusiness as SessionCreateParamsNameCollectionBusiness, + SessionCreateParamsNameCollectionIndividual as SessionCreateParamsNameCollectionIndividual, + SessionCreateParamsOptionalItem as SessionCreateParamsOptionalItem, + SessionCreateParamsOptionalItemAdjustableQuantity as SessionCreateParamsOptionalItemAdjustableQuantity, + SessionCreateParamsPaymentIntentData as SessionCreateParamsPaymentIntentData, + SessionCreateParamsPaymentIntentDataShipping as SessionCreateParamsPaymentIntentDataShipping, + SessionCreateParamsPaymentIntentDataShippingAddress as SessionCreateParamsPaymentIntentDataShippingAddress, + SessionCreateParamsPaymentIntentDataTransferData as SessionCreateParamsPaymentIntentDataTransferData, + SessionCreateParamsPaymentMethodData as SessionCreateParamsPaymentMethodData, + SessionCreateParamsPaymentMethodOptions as SessionCreateParamsPaymentMethodOptions, + SessionCreateParamsPaymentMethodOptionsAcssDebit as SessionCreateParamsPaymentMethodOptionsAcssDebit, + SessionCreateParamsPaymentMethodOptionsAcssDebitMandateOptions as SessionCreateParamsPaymentMethodOptionsAcssDebitMandateOptions, + SessionCreateParamsPaymentMethodOptionsAffirm as SessionCreateParamsPaymentMethodOptionsAffirm, + SessionCreateParamsPaymentMethodOptionsAfterpayClearpay as SessionCreateParamsPaymentMethodOptionsAfterpayClearpay, + SessionCreateParamsPaymentMethodOptionsAlipay as SessionCreateParamsPaymentMethodOptionsAlipay, + SessionCreateParamsPaymentMethodOptionsAlma as SessionCreateParamsPaymentMethodOptionsAlma, + SessionCreateParamsPaymentMethodOptionsAmazonPay as SessionCreateParamsPaymentMethodOptionsAmazonPay, + SessionCreateParamsPaymentMethodOptionsAuBecsDebit as SessionCreateParamsPaymentMethodOptionsAuBecsDebit, + SessionCreateParamsPaymentMethodOptionsBacsDebit as SessionCreateParamsPaymentMethodOptionsBacsDebit, + SessionCreateParamsPaymentMethodOptionsBacsDebitMandateOptions as SessionCreateParamsPaymentMethodOptionsBacsDebitMandateOptions, + SessionCreateParamsPaymentMethodOptionsBancontact as SessionCreateParamsPaymentMethodOptionsBancontact, + SessionCreateParamsPaymentMethodOptionsBillie as SessionCreateParamsPaymentMethodOptionsBillie, + SessionCreateParamsPaymentMethodOptionsBoleto as SessionCreateParamsPaymentMethodOptionsBoleto, + SessionCreateParamsPaymentMethodOptionsCard as SessionCreateParamsPaymentMethodOptionsCard, + SessionCreateParamsPaymentMethodOptionsCardInstallments as SessionCreateParamsPaymentMethodOptionsCardInstallments, + SessionCreateParamsPaymentMethodOptionsCardRestrictions as SessionCreateParamsPaymentMethodOptionsCardRestrictions, + SessionCreateParamsPaymentMethodOptionsCashapp as SessionCreateParamsPaymentMethodOptionsCashapp, + SessionCreateParamsPaymentMethodOptionsCustomerBalance as SessionCreateParamsPaymentMethodOptionsCustomerBalance, + SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer as SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer, + SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer as SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer, + SessionCreateParamsPaymentMethodOptionsDemoPay as SessionCreateParamsPaymentMethodOptionsDemoPay, + SessionCreateParamsPaymentMethodOptionsEps as SessionCreateParamsPaymentMethodOptionsEps, + SessionCreateParamsPaymentMethodOptionsFpx as SessionCreateParamsPaymentMethodOptionsFpx, + SessionCreateParamsPaymentMethodOptionsGiropay as SessionCreateParamsPaymentMethodOptionsGiropay, + SessionCreateParamsPaymentMethodOptionsGrabpay as SessionCreateParamsPaymentMethodOptionsGrabpay, + SessionCreateParamsPaymentMethodOptionsIdeal as SessionCreateParamsPaymentMethodOptionsIdeal, + SessionCreateParamsPaymentMethodOptionsKakaoPay as SessionCreateParamsPaymentMethodOptionsKakaoPay, + SessionCreateParamsPaymentMethodOptionsKlarna as SessionCreateParamsPaymentMethodOptionsKlarna, + SessionCreateParamsPaymentMethodOptionsKlarnaSubscription as SessionCreateParamsPaymentMethodOptionsKlarnaSubscription, + SessionCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling as SessionCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling, + SessionCreateParamsPaymentMethodOptionsKonbini as SessionCreateParamsPaymentMethodOptionsKonbini, + SessionCreateParamsPaymentMethodOptionsKrCard as SessionCreateParamsPaymentMethodOptionsKrCard, + SessionCreateParamsPaymentMethodOptionsLink as SessionCreateParamsPaymentMethodOptionsLink, + SessionCreateParamsPaymentMethodOptionsMobilepay as SessionCreateParamsPaymentMethodOptionsMobilepay, + SessionCreateParamsPaymentMethodOptionsMultibanco as SessionCreateParamsPaymentMethodOptionsMultibanco, + SessionCreateParamsPaymentMethodOptionsNaverPay as SessionCreateParamsPaymentMethodOptionsNaverPay, + SessionCreateParamsPaymentMethodOptionsOxxo as SessionCreateParamsPaymentMethodOptionsOxxo, + SessionCreateParamsPaymentMethodOptionsP24 as SessionCreateParamsPaymentMethodOptionsP24, + SessionCreateParamsPaymentMethodOptionsPayByBank as SessionCreateParamsPaymentMethodOptionsPayByBank, + SessionCreateParamsPaymentMethodOptionsPayco as SessionCreateParamsPaymentMethodOptionsPayco, + SessionCreateParamsPaymentMethodOptionsPaynow as SessionCreateParamsPaymentMethodOptionsPaynow, + SessionCreateParamsPaymentMethodOptionsPaypal as SessionCreateParamsPaymentMethodOptionsPaypal, + SessionCreateParamsPaymentMethodOptionsPix as SessionCreateParamsPaymentMethodOptionsPix, + SessionCreateParamsPaymentMethodOptionsRevolutPay as SessionCreateParamsPaymentMethodOptionsRevolutPay, + SessionCreateParamsPaymentMethodOptionsSamsungPay as SessionCreateParamsPaymentMethodOptionsSamsungPay, + SessionCreateParamsPaymentMethodOptionsSatispay as SessionCreateParamsPaymentMethodOptionsSatispay, + SessionCreateParamsPaymentMethodOptionsSepaDebit as SessionCreateParamsPaymentMethodOptionsSepaDebit, + SessionCreateParamsPaymentMethodOptionsSepaDebitMandateOptions as SessionCreateParamsPaymentMethodOptionsSepaDebitMandateOptions, + SessionCreateParamsPaymentMethodOptionsSofort as SessionCreateParamsPaymentMethodOptionsSofort, + SessionCreateParamsPaymentMethodOptionsSwish as SessionCreateParamsPaymentMethodOptionsSwish, + SessionCreateParamsPaymentMethodOptionsTwint as SessionCreateParamsPaymentMethodOptionsTwint, + SessionCreateParamsPaymentMethodOptionsUsBankAccount as SessionCreateParamsPaymentMethodOptionsUsBankAccount, + SessionCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections as SessionCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections, + SessionCreateParamsPaymentMethodOptionsWechatPay as SessionCreateParamsPaymentMethodOptionsWechatPay, + SessionCreateParamsPermissions as SessionCreateParamsPermissions, + SessionCreateParamsPhoneNumberCollection as SessionCreateParamsPhoneNumberCollection, + SessionCreateParamsSavedPaymentMethodOptions as SessionCreateParamsSavedPaymentMethodOptions, + SessionCreateParamsSetupIntentData as SessionCreateParamsSetupIntentData, + SessionCreateParamsShippingAddressCollection as SessionCreateParamsShippingAddressCollection, + SessionCreateParamsShippingOption as SessionCreateParamsShippingOption, + SessionCreateParamsShippingOptionShippingRateData as SessionCreateParamsShippingOptionShippingRateData, + SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimate as SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimate, + SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum as SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum, + SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum as SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum, + SessionCreateParamsShippingOptionShippingRateDataFixedAmount as SessionCreateParamsShippingOptionShippingRateDataFixedAmount, + SessionCreateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions as SessionCreateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions, + SessionCreateParamsSubscriptionData as SessionCreateParamsSubscriptionData, + SessionCreateParamsSubscriptionDataBillingMode as SessionCreateParamsSubscriptionDataBillingMode, + SessionCreateParamsSubscriptionDataBillingModeFlexible as SessionCreateParamsSubscriptionDataBillingModeFlexible, + SessionCreateParamsSubscriptionDataInvoiceSettings as SessionCreateParamsSubscriptionDataInvoiceSettings, + SessionCreateParamsSubscriptionDataInvoiceSettingsIssuer as SessionCreateParamsSubscriptionDataInvoiceSettingsIssuer, + SessionCreateParamsSubscriptionDataTransferData as SessionCreateParamsSubscriptionDataTransferData, + SessionCreateParamsSubscriptionDataTrialSettings as SessionCreateParamsSubscriptionDataTrialSettings, + SessionCreateParamsSubscriptionDataTrialSettingsEndBehavior as SessionCreateParamsSubscriptionDataTrialSettingsEndBehavior, + SessionCreateParamsTaxIdCollection as SessionCreateParamsTaxIdCollection, + SessionCreateParamsWalletOptions as SessionCreateParamsWalletOptions, + SessionCreateParamsWalletOptionsLink as SessionCreateParamsWalletOptionsLink, + ) + from stripe.params.checkout._session_expire_params import ( + SessionExpireParams as SessionExpireParams, + ) + from stripe.params.checkout._session_line_item_list_params import ( + SessionLineItemListParams as SessionLineItemListParams, + ) + from stripe.params.checkout._session_list_line_items_params import ( + SessionListLineItemsParams as SessionListLineItemsParams, + ) + from stripe.params.checkout._session_list_params import ( + SessionListParams as SessionListParams, + SessionListParamsCreated as SessionListParamsCreated, + SessionListParamsCustomerDetails as SessionListParamsCustomerDetails, + ) + from stripe.params.checkout._session_modify_params import ( + SessionModifyParams as SessionModifyParams, + SessionModifyParamsCollectedInformation as SessionModifyParamsCollectedInformation, + SessionModifyParamsCollectedInformationShippingDetails as SessionModifyParamsCollectedInformationShippingDetails, + SessionModifyParamsCollectedInformationShippingDetailsAddress as SessionModifyParamsCollectedInformationShippingDetailsAddress, + SessionModifyParamsShippingOption as SessionModifyParamsShippingOption, + SessionModifyParamsShippingOptionShippingRateData as SessionModifyParamsShippingOptionShippingRateData, + SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimate as SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimate, + SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMaximum as SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMaximum, + SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMinimum as SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMinimum, + SessionModifyParamsShippingOptionShippingRateDataFixedAmount as SessionModifyParamsShippingOptionShippingRateDataFixedAmount, + SessionModifyParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions as SessionModifyParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions, + ) + from stripe.params.checkout._session_retrieve_params import ( + SessionRetrieveParams as SessionRetrieveParams, + ) + from stripe.params.checkout._session_update_params import ( + SessionUpdateParams as SessionUpdateParams, + SessionUpdateParamsCollectedInformation as SessionUpdateParamsCollectedInformation, + SessionUpdateParamsCollectedInformationShippingDetails as SessionUpdateParamsCollectedInformationShippingDetails, + SessionUpdateParamsCollectedInformationShippingDetailsAddress as SessionUpdateParamsCollectedInformationShippingDetailsAddress, + SessionUpdateParamsShippingOption as SessionUpdateParamsShippingOption, + SessionUpdateParamsShippingOptionShippingRateData as SessionUpdateParamsShippingOptionShippingRateData, + SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimate as SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimate, + SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum as SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum, + SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum as SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum, + SessionUpdateParamsShippingOptionShippingRateDataFixedAmount as SessionUpdateParamsShippingOptionShippingRateDataFixedAmount, + SessionUpdateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions as SessionUpdateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "SessionCreateParams": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsAdaptivePricing": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsAfterExpiration": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsAfterExpirationRecovery": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsAutomaticTax": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsAutomaticTaxLiability": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsBrandingSettings": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsBrandingSettingsIcon": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsBrandingSettingsLogo": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsConsentCollection": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsConsentCollectionPaymentMethodReuseAgreement": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomField": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomFieldDropdown": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomFieldDropdownOption": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomFieldLabel": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomFieldNumeric": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomFieldText": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomText": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomTextAfterSubmit": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomTextShippingAddress": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomTextSubmit": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomTextTermsOfServiceAcceptance": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsCustomerUpdate": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsDiscount": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsInvoiceCreation": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsInvoiceCreationInvoiceData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsInvoiceCreationInvoiceDataCustomField": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsInvoiceCreationInvoiceDataIssuer": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsInvoiceCreationInvoiceDataRenderingOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsLineItem": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsLineItemAdjustableQuantity": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsLineItemPriceData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsLineItemPriceDataProductData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsLineItemPriceDataRecurring": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsNameCollection": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsNameCollectionBusiness": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsNameCollectionIndividual": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsOptionalItem": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsOptionalItemAdjustableQuantity": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentIntentData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentIntentDataShipping": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentIntentDataShippingAddress": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentIntentDataTransferData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAcssDebit": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAcssDebitMandateOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAffirm": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAfterpayClearpay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAlipay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAlma": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAmazonPay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsAuBecsDebit": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsBacsDebit": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsBacsDebitMandateOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsBancontact": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsBillie": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsBoleto": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsCard": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsCardInstallments": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsCardRestrictions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsCashapp": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsCustomerBalance": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsDemoPay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsEps": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsFpx": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsGiropay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsGrabpay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsIdeal": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsKakaoPay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsKlarna": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsKlarnaSubscription": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsKonbini": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsKrCard": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsLink": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsMobilepay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsMultibanco": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsNaverPay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsOxxo": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsP24": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsPayByBank": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsPayco": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsPaynow": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsPaypal": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsPix": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsRevolutPay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsSamsungPay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsSatispay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsSepaDebit": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsSepaDebitMandateOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsSofort": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsSwish": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsTwint": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsUsBankAccount": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPaymentMethodOptionsWechatPay": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPermissions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsPhoneNumberCollection": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSavedPaymentMethodOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSetupIntentData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingAddressCollection": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingOption": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingOptionShippingRateData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimate": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingOptionShippingRateDataFixedAmount": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionDataBillingMode": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionDataBillingModeFlexible": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionDataInvoiceSettings": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionDataInvoiceSettingsIssuer": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionDataTransferData": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionDataTrialSettings": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsSubscriptionDataTrialSettingsEndBehavior": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsTaxIdCollection": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsWalletOptions": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionCreateParamsWalletOptionsLink": ( + "stripe.params.checkout._session_create_params", + False, + ), + "SessionExpireParams": ( + "stripe.params.checkout._session_expire_params", + False, + ), + "SessionLineItemListParams": ( + "stripe.params.checkout._session_line_item_list_params", + False, + ), + "SessionListLineItemsParams": ( + "stripe.params.checkout._session_list_line_items_params", + False, + ), + "SessionListParams": ( + "stripe.params.checkout._session_list_params", + False, + ), + "SessionListParamsCreated": ( + "stripe.params.checkout._session_list_params", + False, + ), + "SessionListParamsCustomerDetails": ( + "stripe.params.checkout._session_list_params", + False, + ), + "SessionModifyParams": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsCollectedInformation": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsCollectedInformationShippingDetails": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsCollectedInformationShippingDetailsAddress": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsShippingOption": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsShippingOptionShippingRateData": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimate": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMaximum": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMinimum": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsShippingOptionShippingRateDataFixedAmount": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionModifyParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions": ( + "stripe.params.checkout._session_modify_params", + False, + ), + "SessionRetrieveParams": ( + "stripe.params.checkout._session_retrieve_params", + False, + ), + "SessionUpdateParams": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsCollectedInformation": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsCollectedInformationShippingDetails": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsCollectedInformationShippingDetailsAddress": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsShippingOption": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsShippingOptionShippingRateData": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimate": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsShippingOptionShippingRateDataFixedAmount": ( + "stripe.params.checkout._session_update_params", + False, + ), + "SessionUpdateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions": ( + "stripe.params.checkout._session_update_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..c0f7731e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_create_params.cpython-312.pyc new file mode 100644 index 00000000..9d94caa4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_expire_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_expire_params.cpython-312.pyc new file mode 100644 index 00000000..4125f0c7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_expire_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..c845363f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_list_line_items_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_list_line_items_params.cpython-312.pyc new file mode 100644 index 00000000..4dda1630 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_list_line_items_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_list_params.cpython-312.pyc new file mode 100644 index 00000000..8ec73671 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_modify_params.cpython-312.pyc new file mode 100644 index 00000000..33a13272 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..34209ca7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_update_params.cpython-312.pyc new file mode 100644 index 00000000..416df866 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/__pycache__/_session_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_create_params.py new file mode 100644 index 00000000..73bd78a2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_create_params.py @@ -0,0 +1,2890 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SessionCreateParams(RequestOptions): + adaptive_pricing: NotRequired["SessionCreateParamsAdaptivePricing"] + """ + Settings for price localization with [Adaptive Pricing](https://docs.stripe.com/payments/checkout/adaptive-pricing). + """ + after_expiration: NotRequired["SessionCreateParamsAfterExpiration"] + """ + Configure actions after a Checkout Session has expired. + """ + allow_promotion_codes: NotRequired[bool] + """ + Enables user redeemable promotion codes. + """ + automatic_tax: NotRequired["SessionCreateParamsAutomaticTax"] + """ + Settings for automatic tax lookup for this session and resulting payments, invoices, and subscriptions. + """ + billing_address_collection: NotRequired[Literal["auto", "required"]] + """ + Specify whether Checkout should collect the customer's billing address. Defaults to `auto`. + """ + branding_settings: NotRequired["SessionCreateParamsBrandingSettings"] + """ + The branding settings for the Checkout Session. This parameter is not allowed if ui_mode is `custom`. + """ + cancel_url: NotRequired[str] + """ + If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website. This parameter is not allowed if ui_mode is `embedded` or `custom`. + """ + client_reference_id: NotRequired[str] + """ + A unique string to reference the Checkout Session. This can be a + customer ID, a cart ID, or similar, and can be used to reconcile the + session with your internal systems. + """ + consent_collection: NotRequired["SessionCreateParamsConsentCollection"] + """ + Configure fields for the Checkout Session to gather active consent from customers. + """ + currency: NotRequired[str] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Required in `setup` mode when `payment_method_types` is not set. + """ + custom_fields: NotRequired[List["SessionCreateParamsCustomField"]] + """ + Collect additional information from your customer using custom fields. Up to 3 fields are supported. + """ + custom_text: NotRequired["SessionCreateParamsCustomText"] + """ + Display additional text for your customers using custom text. + """ + customer: NotRequired[str] + """ + ID of an existing Customer, if one exists. In `payment` mode, the customer's most recently saved card + payment method will be used to prefill the email, name, card details, and billing address + on the Checkout page. In `subscription` mode, the customer's [default payment method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) + will be used if it's a card, otherwise the most recently saved card will be used. A valid billing address, billing name and billing email are required on the payment method for Checkout to prefill the customer's card details. + + If the Customer already has a valid [email](https://stripe.com/docs/api/customers/object#customer_object-email) set, the email will be prefilled and not editable in Checkout. + If the Customer does not have a valid `email`, Checkout will set the email entered during the session on the Customer. + + If blank for Checkout Sessions in `subscription` mode or with `customer_creation` set as `always` in `payment` mode, Checkout will create a new Customer object based on information provided during the payment flow. + + You can set [`payment_intent_data.setup_future_usage`](https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-setup_future_usage) to have Checkout automatically attach the payment method to the Customer you pass in for future reuse. + """ + customer_creation: NotRequired[Literal["always", "if_required"]] + """ + Configure whether a Checkout Session creates a [Customer](https://stripe.com/docs/api/customers) during Session confirmation. + + When a Customer is not created, you can still retrieve email, address, and other customer data entered in Checkout + with [customer_details](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-customer_details). + + Sessions that don't create Customers instead are grouped by [guest customers](https://stripe.com/docs/payments/checkout/guest-customers) + in the Dashboard. Promotion codes limited to first time customers will return invalid for these Sessions. + + Can only be set in `payment` and `setup` mode. + """ + customer_email: NotRequired[str] + """ + If provided, this value will be used when the Customer object is created. + If not provided, customers will be asked to enter their email address. + Use this parameter to prefill customer data if you already have an email + on file. To access information about the customer once a session is + complete, use the `customer` field. + """ + customer_update: NotRequired["SessionCreateParamsCustomerUpdate"] + """ + Controls what fields on Customer can be updated by the Checkout Session. Can only be provided when `customer` is provided. + """ + discounts: NotRequired[List["SessionCreateParamsDiscount"]] + """ + The coupon or promotion code to apply to this Session. Currently, only up to one may be specified. + """ + excluded_payment_method_types: NotRequired[ + List[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + A list of the types of payment methods (e.g., `card`) that should be excluded from this Checkout Session. This should only be used when payment methods for this Checkout Session are managed through the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + The Epoch time in seconds at which the Checkout Session will expire. It can be anywhere from 30 minutes to 24 hours after Checkout Session creation. By default, this value is 24 hours from creation. + """ + invoice_creation: NotRequired["SessionCreateParamsInvoiceCreation"] + """ + Generate a post-purchase Invoice for one-time payments. + """ + line_items: NotRequired[List["SessionCreateParamsLineItem"]] + """ + A list of items the customer is purchasing. Use this parameter to pass one-time or recurring [Prices](https://stripe.com/docs/api/prices). The parameter is required for `payment` and `subscription` mode. + + For `payment` mode, there is a maximum of 100 line items, however it is recommended to consolidate line items if there are more than a few dozen. + + For `subscription` mode, there is a maximum of 20 line items with recurring Prices and 20 line items with one-time Prices. Line items with one-time Prices will be on the initial invoice only. + """ + locale: NotRequired[ + Literal[ + "auto", + "bg", + "cs", + "da", + "de", + "el", + "en", + "en-GB", + "es", + "es-419", + "et", + "fi", + "fil", + "fr", + "fr-CA", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "lv", + "ms", + "mt", + "nb", + "nl", + "pl", + "pt", + "pt-BR", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tr", + "vi", + "zh", + "zh-HK", + "zh-TW", + ] + ] + """ + The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mode: NotRequired[Literal["payment", "setup", "subscription"]] + """ + The mode of the Checkout Session. Pass `subscription` if the Checkout Session includes at least one recurring item. + """ + name_collection: NotRequired["SessionCreateParamsNameCollection"] + """ + Controls name collection settings for the session. + + You can configure Checkout to collect your customers' business names, individual names, or both. Each name field can be either required or optional. + + If a [Customer](https://stripe.com/docs/api/customers) is created or provided, the names can be saved to the Customer object as well. + """ + optional_items: NotRequired[List["SessionCreateParamsOptionalItem"]] + """ + A list of optional items the customer can add to their order at checkout. Use this parameter to pass one-time or recurring [Prices](https://stripe.com/docs/api/prices). + + There is a maximum of 10 optional items allowed on a Checkout Session, and the existing limits on the number of line items allowed on a Checkout Session apply to the combined number of line items and optional items. + + For `payment` mode, there is a maximum of 100 combined line items and optional items, however it is recommended to consolidate items if there are more than a few dozen. + + For `subscription` mode, there is a maximum of 20 line items and optional items with recurring Prices and 20 line items and optional items with one-time Prices. + """ + origin_context: NotRequired[Literal["mobile_app", "web"]] + """ + Where the user is coming from. This informs the optimizations that are applied to the session. + """ + payment_intent_data: NotRequired["SessionCreateParamsPaymentIntentData"] + """ + A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode. + """ + payment_method_collection: NotRequired[Literal["always", "if_required"]] + """ + Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0. + This may occur if the Checkout Session includes a free trial or a discount. + + Can only be set in `subscription` mode. Defaults to `always`. + + If you'd like information on how to collect a payment method outside of Checkout, read the guide on configuring [subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials). + """ + payment_method_configuration: NotRequired[str] + """ + The ID of the payment method configuration to use with this Checkout session. + """ + payment_method_data: NotRequired["SessionCreateParamsPaymentMethodData"] + """ + This parameter allows you to set some attributes on the payment method created during a Checkout session. + """ + payment_method_options: NotRequired[ + "SessionCreateParamsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration. + """ + payment_method_types: NotRequired[ + List[ + Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "card", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + ] + ] + """ + A list of the types of payment methods (e.g., `card`) this Checkout Session can accept. + + You can omit this attribute to manage your payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). + See [Dynamic Payment Methods](https://stripe.com/docs/payments/payment-methods/integration-options#using-dynamic-payment-methods) for more details. + + Read more about the supported payment methods and their requirements in our [payment + method details guide](https://docs.stripe.com/docs/payments/checkout/payment-methods). + + If multiple payment methods are passed, Checkout will dynamically reorder them to + prioritize the most relevant payment methods based on the customer's location and + other characteristics. + """ + permissions: NotRequired["SessionCreateParamsPermissions"] + """ + This property is used to set up permissions for various actions (e.g., update) on the CheckoutSession object. Can only be set when creating `embedded` or `custom` sessions. + + For specific permissions, please refer to their dedicated subsections, such as `permissions.update_shipping_details`. + """ + phone_number_collection: NotRequired[ + "SessionCreateParamsPhoneNumberCollection" + ] + """ + Controls phone number collection settings for the session. + + We recommend that you review your privacy policy and check with your legal contacts + before using this feature. Learn more about [collecting phone numbers with Checkout](https://stripe.com/docs/payments/checkout/phone-numbers). + """ + redirect_on_completion: NotRequired[ + Literal["always", "if_required", "never"] + ] + """ + This parameter applies to `ui_mode: embedded`. Learn more about the [redirect behavior](https://stripe.com/docs/payments/checkout/custom-success-page?payment-ui=embedded-form) of embedded sessions. Defaults to `always`. + """ + return_url: NotRequired[str] + """ + The URL to redirect your customer back to after they authenticate or cancel their payment on the + payment method's app or site. This parameter is required if `ui_mode` is `embedded` or `custom` + and redirect-based payment methods are enabled on the session. + """ + saved_payment_method_options: NotRequired[ + "SessionCreateParamsSavedPaymentMethodOptions" + ] + """ + Controls saved payment method settings for the session. Only available in `payment` and `subscription` mode. + """ + setup_intent_data: NotRequired["SessionCreateParamsSetupIntentData"] + """ + A subset of parameters to be passed to SetupIntent creation for Checkout Sessions in `setup` mode. + """ + shipping_address_collection: NotRequired[ + "SessionCreateParamsShippingAddressCollection" + ] + """ + When set, provides configuration for Checkout to collect a shipping address from a customer. + """ + shipping_options: NotRequired[List["SessionCreateParamsShippingOption"]] + """ + The shipping rate options to apply to this Session. Up to a maximum of 5. + """ + submit_type: NotRequired[ + Literal["auto", "book", "donate", "pay", "subscribe"] + ] + """ + Describes the type of transaction being performed by Checkout in order + to customize relevant text on the page, such as the submit button. + `submit_type` can only be specified on Checkout Sessions in + `payment` or `subscription` mode. If blank or `auto`, `pay` is used. + """ + subscription_data: NotRequired["SessionCreateParamsSubscriptionData"] + """ + A subset of parameters to be passed to subscription creation for Checkout Sessions in `subscription` mode. + """ + success_url: NotRequired[str] + """ + The URL to which Stripe should send customers when payment or setup + is complete. + This parameter is not allowed if ui_mode is `embedded` or `custom`. If you'd like to use + information from the successful Checkout Session on your page, read the + guide on [customizing your success page](https://stripe.com/docs/payments/checkout/custom-success-page). + """ + tax_id_collection: NotRequired["SessionCreateParamsTaxIdCollection"] + """ + Controls tax ID collection during checkout. + """ + ui_mode: NotRequired[Literal["custom", "embedded", "hosted"]] + """ + The UI mode of the Session. Defaults to `hosted`. + """ + wallet_options: NotRequired["SessionCreateParamsWalletOptions"] + """ + Wallet-specific configuration. + """ + + +class SessionCreateParamsAdaptivePricing(TypedDict): + enabled: NotRequired[bool] + """ + If set to `true`, Adaptive Pricing is available on [eligible sessions](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing?payment-ui=stripe-hosted#restrictions). Defaults to your [dashboard setting](https://dashboard.stripe.com/settings/adaptive-pricing). + """ + + +class SessionCreateParamsAfterExpiration(TypedDict): + recovery: NotRequired["SessionCreateParamsAfterExpirationRecovery"] + """ + Configure a Checkout Session that can be used to recover an expired session. + """ + + +class SessionCreateParamsAfterExpirationRecovery(TypedDict): + allow_promotion_codes: NotRequired[bool] + """ + Enables user redeemable promotion codes on the recovered Checkout Sessions. Defaults to `false` + """ + enabled: bool + """ + If `true`, a recovery URL will be generated to recover this Checkout Session if it + expires before a successful transaction is completed. It will be attached to the + Checkout Session object upon expiration. + """ + + +class SessionCreateParamsAutomaticTax(TypedDict): + enabled: bool + """ + Set to `true` to [calculate tax automatically](https://docs.stripe.com/tax) using the customer's location. + + Enabling this parameter causes Checkout to collect any billing address information necessary for tax calculation. + """ + liability: NotRequired["SessionCreateParamsAutomaticTaxLiability"] + """ + The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account. + """ + + +class SessionCreateParamsAutomaticTaxLiability(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SessionCreateParamsBrandingSettings(TypedDict): + background_color: NotRequired["Literal['']|str"] + """ + A hex color value starting with `#` representing the background color for the Checkout Session. + """ + border_style: NotRequired[ + "Literal['']|Literal['pill', 'rectangular', 'rounded']" + ] + """ + The border style for the Checkout Session. + """ + button_color: NotRequired["Literal['']|str"] + """ + A hex color value starting with `#` representing the button color for the Checkout Session. + """ + display_name: NotRequired[str] + """ + A string to override the business name shown on the Checkout Session. This only shows at the top of the Checkout page, and your business name still appears in terms, receipts, and other places. + """ + font_family: NotRequired[ + "Literal['']|Literal['be_vietnam_pro', 'bitter', 'chakra_petch', 'default', 'hahmlet', 'inconsolata', 'inter', 'lato', 'lora', 'm_plus_1_code', 'montserrat', 'noto_sans', 'noto_sans_jp', 'noto_serif', 'nunito', 'open_sans', 'pridi', 'pt_sans', 'pt_serif', 'raleway', 'roboto', 'roboto_slab', 'source_sans_pro', 'titillium_web', 'ubuntu_mono', 'zen_maru_gothic']" + ] + """ + The font family for the Checkout Session corresponding to one of the [supported font families](https://docs.stripe.com/payments/checkout/customization/appearance?payment-ui=stripe-hosted#font-compatibility). + """ + icon: NotRequired["SessionCreateParamsBrandingSettingsIcon"] + """ + The icon for the Checkout Session. For best results, use a square image. + """ + logo: NotRequired["SessionCreateParamsBrandingSettingsLogo"] + """ + The logo for the Checkout Session. + """ + + +class SessionCreateParamsBrandingSettingsIcon(TypedDict): + file: NotRequired[str] + """ + The ID of a [File upload](https://stripe.com/docs/api/files) representing the icon. Purpose must be `business_icon`. Required if `type` is `file` and disallowed otherwise. + """ + type: Literal["file", "url"] + """ + The type of image for the icon. Must be one of `file` or `url`. + """ + url: NotRequired[str] + """ + The URL of the image. Required if `type` is `url` and disallowed otherwise. + """ + + +class SessionCreateParamsBrandingSettingsLogo(TypedDict): + file: NotRequired[str] + """ + The ID of a [File upload](https://stripe.com/docs/api/files) representing the logo. Purpose must be `business_logo`. Required if `type` is `file` and disallowed otherwise. + """ + type: Literal["file", "url"] + """ + The type of image for the logo. Must be one of `file` or `url`. + """ + url: NotRequired[str] + """ + The URL of the image. Required if `type` is `url` and disallowed otherwise. + """ + + +class SessionCreateParamsConsentCollection(TypedDict): + payment_method_reuse_agreement: NotRequired[ + "SessionCreateParamsConsentCollectionPaymentMethodReuseAgreement" + ] + """ + Determines the display of payment method reuse agreement text in the UI. If set to `hidden`, it will hide legal text related to the reuse of a payment method. + """ + promotions: NotRequired[Literal["auto", "none"]] + """ + If set to `auto`, enables the collection of customer consent for promotional communications. The Checkout + Session will determine whether to display an option to opt into promotional communication + from the merchant depending on the customer's locale. Only available to US merchants. + """ + terms_of_service: NotRequired[Literal["none", "required"]] + """ + If set to `required`, it requires customers to check a terms of service checkbox before being able to pay. + There must be a valid terms of service URL set in your [Dashboard settings](https://dashboard.stripe.com/settings/public). + """ + + +class SessionCreateParamsConsentCollectionPaymentMethodReuseAgreement( + TypedDict, +): + position: Literal["auto", "hidden"] + """ + Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's + defaults will be used. When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI. + """ + + +class SessionCreateParamsCustomField(TypedDict): + dropdown: NotRequired["SessionCreateParamsCustomFieldDropdown"] + """ + Configuration for `type=dropdown` fields. + """ + key: str + """ + String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters. + """ + label: "SessionCreateParamsCustomFieldLabel" + """ + The label for the field, displayed to the customer. + """ + numeric: NotRequired["SessionCreateParamsCustomFieldNumeric"] + """ + Configuration for `type=numeric` fields. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`. + """ + text: NotRequired["SessionCreateParamsCustomFieldText"] + """ + Configuration for `type=text` fields. + """ + type: Literal["dropdown", "numeric", "text"] + """ + The type of the field. + """ + + +class SessionCreateParamsCustomFieldDropdown(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page.Must match a `value` in the `options` array. + """ + options: List["SessionCreateParamsCustomFieldDropdownOption"] + """ + The options available for the customer to select. Up to 200 options allowed. + """ + + +class SessionCreateParamsCustomFieldDropdownOption(TypedDict): + label: str + """ + The label for the option, displayed to the customer. Up to 100 characters. + """ + value: str + """ + The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters. + """ + + +class SessionCreateParamsCustomFieldLabel(TypedDict): + custom: str + """ + Custom text for the label, displayed to the customer. Up to 50 characters. + """ + type: Literal["custom"] + """ + The type of the label. + """ + + +class SessionCreateParamsCustomFieldNumeric(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class SessionCreateParamsCustomFieldText(TypedDict): + default_value: NotRequired[str] + """ + The value that will pre-fill the field on the payment page. + """ + maximum_length: NotRequired[int] + """ + The maximum character length constraint for the customer's input. + """ + minimum_length: NotRequired[int] + """ + The minimum character length requirement for the customer's input. + """ + + +class SessionCreateParamsCustomText(TypedDict): + after_submit: NotRequired[ + "Literal['']|SessionCreateParamsCustomTextAfterSubmit" + ] + """ + Custom text that should be displayed after the payment confirmation button. + """ + shipping_address: NotRequired[ + "Literal['']|SessionCreateParamsCustomTextShippingAddress" + ] + """ + Custom text that should be displayed alongside shipping address collection. + """ + submit: NotRequired["Literal['']|SessionCreateParamsCustomTextSubmit"] + """ + Custom text that should be displayed alongside the payment confirmation button. + """ + terms_of_service_acceptance: NotRequired[ + "Literal['']|SessionCreateParamsCustomTextTermsOfServiceAcceptance" + ] + """ + Custom text that should be displayed in place of the default terms of service agreement text. + """ + + +class SessionCreateParamsCustomTextAfterSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class SessionCreateParamsCustomTextShippingAddress(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class SessionCreateParamsCustomTextSubmit(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class SessionCreateParamsCustomTextTermsOfServiceAcceptance(TypedDict): + message: str + """ + Text may be up to 1200 characters in length. + """ + + +class SessionCreateParamsCustomerUpdate(TypedDict): + address: NotRequired[Literal["auto", "never"]] + """ + Describes whether Checkout saves the billing address onto `customer.address`. + To always collect a full billing address, use `billing_address_collection`. Defaults to `never`. + """ + name: NotRequired[Literal["auto", "never"]] + """ + Describes whether Checkout saves the name onto `customer.name`. Defaults to `never`. + """ + shipping: NotRequired[Literal["auto", "never"]] + """ + Describes whether Checkout saves shipping information onto `customer.shipping`. + To collect shipping information, use `shipping_address_collection`. Defaults to `never`. + """ + + +class SessionCreateParamsDiscount(TypedDict): + coupon: NotRequired[str] + """ + The ID of the coupon to apply to this Session. + """ + promotion_code: NotRequired[str] + """ + The ID of a promotion code to apply to this Session. + """ + + +class SessionCreateParamsInvoiceCreation(TypedDict): + enabled: bool + """ + Set to `true` to enable invoice creation. + """ + invoice_data: NotRequired["SessionCreateParamsInvoiceCreationInvoiceData"] + """ + Parameters passed when creating invoices for payment-mode Checkout Sessions. + """ + + +class SessionCreateParamsInvoiceCreationInvoiceData(TypedDict): + account_tax_ids: NotRequired["Literal['']|List[str]"] + """ + The account tax IDs associated with the invoice. + """ + custom_fields: NotRequired[ + "Literal['']|List[SessionCreateParamsInvoiceCreationInvoiceDataCustomField]" + ] + """ + Default custom fields to be displayed on invoices for this customer. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + footer: NotRequired[str] + """ + Default footer to be displayed on invoices for this customer. + """ + issuer: NotRequired["SessionCreateParamsInvoiceCreationInvoiceDataIssuer"] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + rendering_options: NotRequired[ + "Literal['']|SessionCreateParamsInvoiceCreationInvoiceDataRenderingOptions" + ] + """ + Default options for invoice PDF rendering for this customer. + """ + + +class SessionCreateParamsInvoiceCreationInvoiceDataCustomField(TypedDict): + name: str + """ + The name of the custom field. This may be up to 40 characters. + """ + value: str + """ + The value of the custom field. This may be up to 140 characters. + """ + + +class SessionCreateParamsInvoiceCreationInvoiceDataIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SessionCreateParamsInvoiceCreationInvoiceDataRenderingOptions(TypedDict): + amount_tax_display: NotRequired[ + "Literal['']|Literal['exclude_tax', 'include_inclusive_tax']" + ] + """ + How line-item prices and amounts will be displayed with respect to tax on invoice PDFs. One of `exclude_tax` or `include_inclusive_tax`. `include_inclusive_tax` will include inclusive tax (and exclude exclusive tax) in invoice PDF amounts. `exclude_tax` will exclude all tax (inclusive and exclusive alike) from invoice PDF amounts. + """ + template: NotRequired[str] + """ + ID of the invoice rendering template to use for this invoice. + """ + + +class SessionCreateParamsLineItem(TypedDict): + adjustable_quantity: NotRequired[ + "SessionCreateParamsLineItemAdjustableQuantity" + ] + """ + When set, provides configuration for this item's quantity to be adjusted by the customer during Checkout. + """ + dynamic_tax_rates: NotRequired[List[str]] + """ + The [tax rates](https://stripe.com/docs/api/tax_rates) that will be applied to this line item depending on the customer's billing/shipping address. We currently support the following countries: US, GB, AU, and all countries in the EU. + """ + price: NotRequired[str] + """ + The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. One of `price` or `price_data` is required. + """ + price_data: NotRequired["SessionCreateParamsLineItemPriceData"] + """ + Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required. + """ + quantity: NotRequired[int] + """ + The quantity of the line item being purchased. Quantity should not be defined when `recurring.usage_type=metered`. + """ + tax_rates: NotRequired[List[str]] + """ + The [tax rates](https://stripe.com/docs/api/tax_rates) which apply to this line item. + """ + + +class SessionCreateParamsLineItemAdjustableQuantity(TypedDict): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity the customer can purchase for the Checkout Session. By default this value is 99. You can specify a value up to 999999. + """ + minimum: NotRequired[int] + """ + The minimum quantity the customer must purchase for the Checkout Session. By default this value is 0. + """ + + +class SessionCreateParamsLineItemPriceData(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + product: NotRequired[str] + """ + The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + """ + product_data: NotRequired[ + "SessionCreateParamsLineItemPriceDataProductData" + ] + """ + Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + """ + recurring: NotRequired["SessionCreateParamsLineItemPriceDataRecurring"] + """ + The recurring components of a price such as `interval` and `interval_count`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + """ + unit_amount: NotRequired[int] + """ + A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + """ + unit_amount_decimal: NotRequired[str] + """ + Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + """ + + +class SessionCreateParamsLineItemPriceDataProductData(TypedDict): + description: NotRequired[str] + """ + The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + """ + images: NotRequired[List[str]] + """ + A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The product's name, meant to be displayable to the customer. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + unit_label: NotRequired[str] + """ + A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. + """ + + +class SessionCreateParamsLineItemPriceDataRecurring(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Specifies billing frequency. Either `day`, `week`, `month` or `year`. + """ + interval_count: NotRequired[int] + """ + The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + """ + + +class SessionCreateParamsNameCollection(TypedDict): + business: NotRequired["SessionCreateParamsNameCollectionBusiness"] + """ + Controls settings applied for collecting the customer's business name on the session. + """ + individual: NotRequired["SessionCreateParamsNameCollectionIndividual"] + """ + Controls settings applied for collecting the customer's individual name on the session. + """ + + +class SessionCreateParamsNameCollectionBusiness(TypedDict): + enabled: bool + """ + Enable business name collection on the Checkout Session. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide a business name before completing the Checkout Session. Defaults to `false`. + """ + + +class SessionCreateParamsNameCollectionIndividual(TypedDict): + enabled: bool + """ + Enable individual name collection on the Checkout Session. Defaults to `false`. + """ + optional: NotRequired[bool] + """ + Whether the customer is required to provide their name before completing the Checkout Session. Defaults to `false`. + """ + + +class SessionCreateParamsOptionalItem(TypedDict): + adjustable_quantity: NotRequired[ + "SessionCreateParamsOptionalItemAdjustableQuantity" + ] + """ + When set, provides configuration for the customer to adjust the quantity of the line item created when a customer chooses to add this optional item to their order. + """ + price: str + """ + The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. + """ + quantity: int + """ + The initial quantity of the line item created when a customer chooses to add this optional item to their order. + """ + + +class SessionCreateParamsOptionalItemAdjustableQuantity(TypedDict): + enabled: bool + """ + Set to true if the quantity can be adjusted to any non-negative integer. + """ + maximum: NotRequired[int] + """ + The maximum quantity of this item the customer can purchase. By default this value is 99. You can specify a value up to 999999. + """ + minimum: NotRequired[int] + """ + The minimum quantity of this item the customer must purchase, if they choose to purchase it. Because this item is optional, the customer will always be able to remove it from their order, even if the `minimum` configured here is greater than 0. By default this value is 0. + """ + + +class SessionCreateParamsPaymentIntentData(TypedDict): + application_fee_amount: NotRequired[int] + """ + The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + capture_method: NotRequired[ + Literal["automatic", "automatic_async", "manual"] + ] + """ + Controls when the funds will be captured from the customer's account. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The Stripe account ID for which these funds are intended. For details, + see the PaymentIntents [use case for connected + accounts](https://docs.stripe.com/docs/payments/connected-accounts). + """ + receipt_email: NotRequired[str] + """ + Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails). + """ + setup_future_usage: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates that you intend to [make future payments](https://stripe.com/docs/payments/payment-intents#future-usage) with the payment + method collected by this Checkout Session. + + When setting this to `on_session`, Checkout will show a notice to the + customer that their payment details will be saved. + + When setting this to `off_session`, Checkout will show a notice to the + customer that their payment details will be saved and used for future + payments. + + If a Customer has been provided or Checkout creates a new Customer, + Checkout will attach the payment method to the Customer. + + If Checkout does not create a Customer, the payment method is not attached + to a Customer. To reuse the payment method, you can retrieve it from the + Checkout Session's PaymentIntent. + + When processing card payments, Checkout also uses `setup_future_usage` + to dynamically optimize your payment flow and comply with regional + legislation and network rules, such as SCA. + """ + shipping: NotRequired["SessionCreateParamsPaymentIntentDataShipping"] + """ + Shipping information for this payment. + """ + statement_descriptor: NotRequired[str] + """ + Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see [the Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors). + + Setting this value for a card charge returns an error. For card charges, set the [statement_descriptor_suffix](https://docs.stripe.com/get-started/account/statement-descriptors#dynamic) instead. + """ + statement_descriptor_suffix: NotRequired[str] + """ + Provides information about a card charge. Concatenated to the account's [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors#static) to form the complete statement descriptor that appears on the customer's statement. + """ + transfer_data: NotRequired[ + "SessionCreateParamsPaymentIntentDataTransferData" + ] + """ + The parameters used to automatically create a Transfer when the payment succeeds. + For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts). + """ + transfer_group: NotRequired[str] + """ + A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details. + """ + + +class SessionCreateParamsPaymentIntentDataShipping(TypedDict): + address: "SessionCreateParamsPaymentIntentDataShippingAddress" + """ + Shipping address. + """ + carrier: NotRequired[str] + """ + The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. + """ + name: str + """ + Recipient name. + """ + phone: NotRequired[str] + """ + Recipient phone (including extension). + """ + tracking_number: NotRequired[str] + """ + The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. + """ + + +class SessionCreateParamsPaymentIntentDataShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SessionCreateParamsPaymentIntentDataTransferData(TypedDict): + amount: NotRequired[int] + """ + The amount that will be transferred automatically when a charge succeeds. + """ + destination: str + """ + If specified, successful charges will be attributed to the destination + account for tax reporting, and the funds from charges will be transferred + to the destination account. The ID of the resulting transfer will be + returned on the successful charge's `transfer` field. + """ + + +class SessionCreateParamsPaymentMethodData(TypedDict): + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + Allow redisplay will be set on the payment method on confirmation and indicates whether this payment method can be shown again to the customer in a checkout flow. Only set this field if you wish to override the allow_redisplay value determined by Checkout. + """ + + +class SessionCreateParamsPaymentMethodOptions(TypedDict): + acss_debit: NotRequired["SessionCreateParamsPaymentMethodOptionsAcssDebit"] + """ + contains details about the ACSS Debit payment method options. + """ + affirm: NotRequired["SessionCreateParamsPaymentMethodOptionsAffirm"] + """ + contains details about the Affirm payment method options. + """ + afterpay_clearpay: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsAfterpayClearpay" + ] + """ + contains details about the Afterpay Clearpay payment method options. + """ + alipay: NotRequired["SessionCreateParamsPaymentMethodOptionsAlipay"] + """ + contains details about the Alipay payment method options. + """ + alma: NotRequired["SessionCreateParamsPaymentMethodOptionsAlma"] + """ + contains details about the Alma payment method options. + """ + amazon_pay: NotRequired["SessionCreateParamsPaymentMethodOptionsAmazonPay"] + """ + contains details about the AmazonPay payment method options. + """ + au_becs_debit: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsAuBecsDebit" + ] + """ + contains details about the AU Becs Debit payment method options. + """ + bacs_debit: NotRequired["SessionCreateParamsPaymentMethodOptionsBacsDebit"] + """ + contains details about the Bacs Debit payment method options. + """ + bancontact: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsBancontact" + ] + """ + contains details about the Bancontact payment method options. + """ + billie: NotRequired["SessionCreateParamsPaymentMethodOptionsBillie"] + """ + contains details about the Billie payment method options. + """ + boleto: NotRequired["SessionCreateParamsPaymentMethodOptionsBoleto"] + """ + contains details about the Boleto payment method options. + """ + card: NotRequired["SessionCreateParamsPaymentMethodOptionsCard"] + """ + contains details about the Card payment method options. + """ + cashapp: NotRequired["SessionCreateParamsPaymentMethodOptionsCashapp"] + """ + contains details about the Cashapp Pay payment method options. + """ + customer_balance: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsCustomerBalance" + ] + """ + contains details about the Customer Balance payment method options. + """ + demo_pay: NotRequired["SessionCreateParamsPaymentMethodOptionsDemoPay"] + """ + contains details about the DemoPay payment method options. + """ + eps: NotRequired["SessionCreateParamsPaymentMethodOptionsEps"] + """ + contains details about the EPS payment method options. + """ + fpx: NotRequired["SessionCreateParamsPaymentMethodOptionsFpx"] + """ + contains details about the FPX payment method options. + """ + giropay: NotRequired["SessionCreateParamsPaymentMethodOptionsGiropay"] + """ + contains details about the Giropay payment method options. + """ + grabpay: NotRequired["SessionCreateParamsPaymentMethodOptionsGrabpay"] + """ + contains details about the Grabpay payment method options. + """ + ideal: NotRequired["SessionCreateParamsPaymentMethodOptionsIdeal"] + """ + contains details about the Ideal payment method options. + """ + kakao_pay: NotRequired["SessionCreateParamsPaymentMethodOptionsKakaoPay"] + """ + contains details about the Kakao Pay payment method options. + """ + klarna: NotRequired["SessionCreateParamsPaymentMethodOptionsKlarna"] + """ + contains details about the Klarna payment method options. + """ + konbini: NotRequired["SessionCreateParamsPaymentMethodOptionsKonbini"] + """ + contains details about the Konbini payment method options. + """ + kr_card: NotRequired["SessionCreateParamsPaymentMethodOptionsKrCard"] + """ + contains details about the Korean card payment method options. + """ + link: NotRequired["SessionCreateParamsPaymentMethodOptionsLink"] + """ + contains details about the Link payment method options. + """ + mobilepay: NotRequired["SessionCreateParamsPaymentMethodOptionsMobilepay"] + """ + contains details about the Mobilepay payment method options. + """ + multibanco: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsMultibanco" + ] + """ + contains details about the Multibanco payment method options. + """ + naver_pay: NotRequired["SessionCreateParamsPaymentMethodOptionsNaverPay"] + """ + contains details about the Naver Pay payment method options. + """ + oxxo: NotRequired["SessionCreateParamsPaymentMethodOptionsOxxo"] + """ + contains details about the OXXO payment method options. + """ + p24: NotRequired["SessionCreateParamsPaymentMethodOptionsP24"] + """ + contains details about the P24 payment method options. + """ + pay_by_bank: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsPayByBank" + ] + """ + contains details about the Pay By Bank payment method options. + """ + payco: NotRequired["SessionCreateParamsPaymentMethodOptionsPayco"] + """ + contains details about the PAYCO payment method options. + """ + paynow: NotRequired["SessionCreateParamsPaymentMethodOptionsPaynow"] + """ + contains details about the PayNow payment method options. + """ + paypal: NotRequired["SessionCreateParamsPaymentMethodOptionsPaypal"] + """ + contains details about the PayPal payment method options. + """ + pix: NotRequired["SessionCreateParamsPaymentMethodOptionsPix"] + """ + contains details about the Pix payment method options. + """ + revolut_pay: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsRevolutPay" + ] + """ + contains details about the RevolutPay payment method options. + """ + samsung_pay: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsSamsungPay" + ] + """ + contains details about the Samsung Pay payment method options. + """ + satispay: NotRequired["SessionCreateParamsPaymentMethodOptionsSatispay"] + """ + contains details about the Satispay payment method options. + """ + sepa_debit: NotRequired["SessionCreateParamsPaymentMethodOptionsSepaDebit"] + """ + contains details about the Sepa Debit payment method options. + """ + sofort: NotRequired["SessionCreateParamsPaymentMethodOptionsSofort"] + """ + contains details about the Sofort payment method options. + """ + swish: NotRequired["SessionCreateParamsPaymentMethodOptionsSwish"] + """ + contains details about the Swish payment method options. + """ + twint: NotRequired["SessionCreateParamsPaymentMethodOptionsTwint"] + """ + contains details about the TWINT payment method options. + """ + us_bank_account: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsUsBankAccount" + ] + """ + contains details about the Us Bank Account payment method options. + """ + wechat_pay: NotRequired["SessionCreateParamsPaymentMethodOptionsWechatPay"] + """ + contains details about the WeChat Pay payment method options. + """ + + +class SessionCreateParamsPaymentMethodOptionsAcssDebit(TypedDict): + currency: NotRequired[Literal["cad", "usd"]] + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). This is only accepted for Checkout Sessions in `setup` mode. + """ + mandate_options: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsAcssDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[ + Literal["automatic", "instant", "microdeposits"] + ] + """ + Verification method for the intent + """ + + +class SessionCreateParamsPaymentMethodOptionsAcssDebitMandateOptions( + TypedDict +): + custom_mandate_url: NotRequired["Literal['']|str"] + """ + A URL for custom mandate text to render during confirmation step. + The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, + or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. + """ + default_for: NotRequired[List[Literal["invoice", "subscription"]]] + """ + List of Stripe products where this mandate can be selected automatically. Only usable in `setup` mode. + """ + interval_description: NotRequired[str] + """ + Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. + """ + payment_schedule: NotRequired[Literal["combined", "interval", "sporadic"]] + """ + Payment schedule for the mandate. + """ + transaction_type: NotRequired[Literal["business", "personal"]] + """ + Transaction type of the mandate. + """ + + +class SessionCreateParamsPaymentMethodOptionsAffirm(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsAfterpayClearpay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsAlipay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsAlma(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + +class SessionCreateParamsPaymentMethodOptionsAmazonPay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsAuBecsDebit(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class SessionCreateParamsPaymentMethodOptionsBacsDebit(TypedDict): + mandate_options: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsBacsDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class SessionCreateParamsPaymentMethodOptionsBacsDebitMandateOptions( + TypedDict +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'. + """ + + +class SessionCreateParamsPaymentMethodOptionsBancontact(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsBillie(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + +class SessionCreateParamsPaymentMethodOptionsBoleto(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto invoice will expire on Wednesday at 23:59 America/Sao_Paulo time. + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsCard(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + installments: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsCardInstallments" + ] + """ + Installment options for card payments + """ + request_extended_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [capture beyond the standard authorization validity window](https://docs.stripe.com/payments/extended-authorization) for this CheckoutSession. + """ + request_incremental_authorization: NotRequired[ + Literal["if_available", "never"] + ] + """ + Request ability to [increment the authorization](https://docs.stripe.com/payments/incremental-authorization) for this CheckoutSession. + """ + request_multicapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to make [multiple captures](https://docs.stripe.com/payments/multicapture) for this CheckoutSession. + """ + request_overcapture: NotRequired[Literal["if_available", "never"]] + """ + Request ability to [overcapture](https://docs.stripe.com/payments/overcapture) for this CheckoutSession. + """ + request_three_d_secure: NotRequired[ + Literal["any", "automatic", "challenge"] + ] + """ + We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine. + """ + restrictions: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsCardRestrictions" + ] + """ + Restrictions to apply to the card payment method. For example, you can block specific card brands. + """ + setup_future_usage: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + statement_descriptor_suffix_kana: NotRequired[str] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters. + """ + statement_descriptor_suffix_kanji: NotRequired[str] + """ + Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that's set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters. + """ + + +class SessionCreateParamsPaymentMethodOptionsCardInstallments(TypedDict): + enabled: NotRequired[bool] + """ + Setting to true enables installments for this Checkout Session. + Setting to false will prevent any installment plan from applying to a payment. + """ + + +class SessionCreateParamsPaymentMethodOptionsCardRestrictions(TypedDict): + brands_blocked: NotRequired[ + List[ + Literal[ + "american_express", + "discover_global_network", + "mastercard", + "visa", + ] + ] + ] + """ + Specify the card brands to block in the Checkout Session. If a customer enters or selects a card belonging to a blocked brand, they can't complete the Session. + """ + + +class SessionCreateParamsPaymentMethodOptionsCashapp(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsCustomerBalance(TypedDict): + bank_transfer: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer" + ] + """ + Configuration for the bank transfer funding type, if the `funding_type` is set to `bank_transfer`. + """ + funding_type: NotRequired[Literal["bank_transfer"]] + """ + The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransfer( + TypedDict, +): + eu_bank_transfer: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer" + ] + """ + Configuration for eu_bank_transfer funding type. + """ + requested_address_types: NotRequired[ + List[ + Literal[ + "aba", "iban", "sepa", "sort_code", "spei", "swift", "zengin" + ] + ] + ] + """ + List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + + Permitted values include: `sort_code`, `zengin`, `iban`, or `spei`. + """ + type: Literal[ + "eu_bank_transfer", + "gb_bank_transfer", + "jp_bank_transfer", + "mx_bank_transfer", + "us_bank_transfer", + ] + """ + The list of bank transfer types that this PaymentIntent is allowed to use for funding. + """ + + +class SessionCreateParamsPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer( + TypedDict, +): + country: str + """ + The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`. + """ + + +class SessionCreateParamsPaymentMethodOptionsDemoPay(TypedDict): + setup_future_usage: NotRequired[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsEps(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsFpx(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsGiropay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsGrabpay(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsIdeal(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsKakaoPay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsKlarna(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + subscriptions: NotRequired[ + "Literal['']|List[SessionCreateParamsPaymentMethodOptionsKlarnaSubscription]" + ] + """ + Subscription details if the Checkout Session sets up a future subscription. + """ + + +class SessionCreateParamsPaymentMethodOptionsKlarnaSubscription(TypedDict): + interval: Literal["day", "month", "week", "year"] + """ + Unit of time between subscription charges. + """ + interval_count: NotRequired[int] + """ + The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months. + """ + name: NotRequired[str] + """ + Name for subscription. + """ + next_billing: ( + "SessionCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling" + ) + """ + Describes the upcoming charge for this subscription. + """ + reference: str + """ + A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges. + """ + + +class SessionCreateParamsPaymentMethodOptionsKlarnaSubscriptionNextBilling( + TypedDict, +): + amount: int + """ + The amount of the next charge for the subscription. + """ + date: str + """ + The date of the next charge for the subscription in YYYY-MM-DD format. + """ + + +class SessionCreateParamsPaymentMethodOptionsKonbini(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST. Defaults to 3 days. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsKrCard(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsLink(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsMobilepay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsMultibanco(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsNaverPay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsOxxo(TypedDict): + expires_after_days: NotRequired[int] + """ + The number of calendar days before an OXXO voucher expires. For example, if you create an OXXO voucher on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsP24(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + tos_shown_and_accepted: NotRequired[bool] + """ + Confirm that the payer has accepted the P24 terms and conditions. + """ + + +class SessionCreateParamsPaymentMethodOptionsPayByBank(TypedDict): + pass + + +class SessionCreateParamsPaymentMethodOptionsPayco(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + +class SessionCreateParamsPaymentMethodOptionsPaynow(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsPaypal(TypedDict): + capture_method: NotRequired["Literal['']|Literal['manual']"] + """ + Controls when the funds will be captured from the customer's account. + """ + preferred_locale: NotRequired[ + Literal[ + "cs-CZ", + "da-DK", + "de-AT", + "de-DE", + "de-LU", + "el-GR", + "en-GB", + "en-US", + "es-ES", + "fi-FI", + "fr-BE", + "fr-FR", + "fr-LU", + "hu-HU", + "it-IT", + "nl-BE", + "nl-NL", + "pl-PL", + "pt-PT", + "sk-SK", + "sv-SE", + ] + ] + """ + [Preferred locale](https://stripe.com/docs/payments/paypal/supported-locales) of the PayPal checkout page that the customer is redirected to. + """ + reference: NotRequired[str] + """ + A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID. + """ + risk_correlation_id: NotRequired[str] + """ + The risk correlation ID for an on-session payment using a saved PayPal payment method. + """ + setup_future_usage: NotRequired[ + "Literal['']|Literal['none', 'off_session']" + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + + If you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`. + """ + + +class SessionCreateParamsPaymentMethodOptionsPix(TypedDict): + amount_includes_iof: NotRequired[Literal["always", "never"]] + """ + Determines if the amount includes the IOF tax. Defaults to `never`. + """ + expires_after_seconds: NotRequired[int] + """ + The number of seconds (between 10 and 1209600) after which Pix payment will expire. Defaults to 86400 seconds. + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsRevolutPay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + setup_future_usage: NotRequired[Literal["none", "off_session"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsSamsungPay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + +class SessionCreateParamsPaymentMethodOptionsSatispay(TypedDict): + capture_method: NotRequired[Literal["manual"]] + """ + Controls when the funds will be captured from the customer's account. + """ + + +class SessionCreateParamsPaymentMethodOptionsSepaDebit(TypedDict): + mandate_options: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsSepaDebitMandateOptions" + ] + """ + Additional fields for Mandate creation + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + + +class SessionCreateParamsPaymentMethodOptionsSepaDebitMandateOptions( + TypedDict +): + reference_prefix: NotRequired["Literal['']|str"] + """ + Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'. + """ + + +class SessionCreateParamsPaymentMethodOptionsSofort(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsSwish(TypedDict): + reference: NotRequired[str] + """ + The order reference that will be displayed to customers in the Swish application. Defaults to the `id` of the Payment Intent. + """ + + +class SessionCreateParamsPaymentMethodOptionsTwint(TypedDict): + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPaymentMethodOptionsUsBankAccount(TypedDict): + financial_connections: NotRequired[ + "SessionCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections" + ] + """ + Additional fields for Financial Connections Session creation + """ + setup_future_usage: NotRequired[ + Literal["none", "off_session", "on_session"] + ] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + target_date: NotRequired[str] + """ + Controls when Stripe will attempt to debit the funds from the customer's account. The date must be a string in YYYY-MM-DD format. The date must be in the future and between 3 and 15 calendar days from now. + """ + verification_method: NotRequired[Literal["automatic", "instant"]] + """ + Verification method for the intent + """ + + +class SessionCreateParamsPaymentMethodOptionsUsBankAccountFinancialConnections( + TypedDict, +): + permissions: NotRequired[ + List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + ] + """ + The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + + +class SessionCreateParamsPaymentMethodOptionsWechatPay(TypedDict): + app_id: NotRequired[str] + """ + The app ID registered with WeChat Pay. Only required when client is ios or android. + """ + client: Literal["android", "ios", "web"] + """ + The client type that the end customer will pay from + """ + setup_future_usage: NotRequired[Literal["none"]] + """ + Indicates that you intend to make future payments with this PaymentIntent's payment method. + + If you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](https://docs.stripe.com/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](https://docs.stripe.com/api/payment_methods/attach) the payment method to a Customer after the transaction completes. + + If the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](https://docs.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead. + + When processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](https://docs.stripe.com/strong-customer-authentication). + """ + + +class SessionCreateParamsPermissions(TypedDict): + update_shipping_details: NotRequired[Literal["client_only", "server_only"]] + """ + Determines which entity is allowed to update the shipping details. + + Default is `client_only`. Stripe Checkout client will automatically update the shipping details. If set to `server_only`, only your server is allowed to update the shipping details. + + When set to `server_only`, you must add the onShippingDetailsChange event handler when initializing the Stripe Checkout client and manually update the shipping details from your server using the Stripe API. + """ + + +class SessionCreateParamsPhoneNumberCollection(TypedDict): + enabled: bool + """ + Set to `true` to enable phone number collection. + + Can only be set in `payment` and `subscription` mode. + """ + + +class SessionCreateParamsSavedPaymentMethodOptions(TypedDict): + allow_redisplay_filters: NotRequired[ + List[Literal["always", "limited", "unspecified"]] + ] + """ + Uses the `allow_redisplay` value of each saved payment method to filter the set presented to a returning customer. By default, only saved payment methods with 'allow_redisplay: ‘always' are shown in Checkout. + """ + payment_method_remove: NotRequired[Literal["disabled", "enabled"]] + """ + Enable customers to choose if they wish to remove their saved payment methods. Disabled by default. + """ + payment_method_save: NotRequired[Literal["disabled", "enabled"]] + """ + Enable customers to choose if they wish to save their payment method for future use. Disabled by default. + """ + + +class SessionCreateParamsSetupIntentData(TypedDict): + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The Stripe account for which the setup is intended. + """ + + +class SessionCreateParamsShippingAddressCollection(TypedDict): + allowed_countries: List[ + Literal[ + "AC", + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MK", + "ML", + "MM", + "MN", + "MO", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SZ", + "TA", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + "ZZ", + ] + ] + """ + An array of two-letter ISO country codes representing which countries Checkout should provide as options for + shipping locations. + """ + + +class SessionCreateParamsShippingOption(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the Shipping Rate to use for this shipping option. + """ + shipping_rate_data: NotRequired[ + "SessionCreateParamsShippingOptionShippingRateData" + ] + """ + Parameters to be passed to Shipping Rate creation for this shipping option. + """ + + +class SessionCreateParamsShippingOptionShippingRateData(TypedDict): + delivery_estimate: NotRequired[ + "SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimate" + ] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: str + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + fixed_amount: NotRequired[ + "SessionCreateParamsShippingOptionShippingRateDataFixedAmount" + ] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: NotRequired[Literal["fixed_amount"]] + """ + The type of calculation to use on the shipping rate. + """ + + +class SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimate( + TypedDict, +): + maximum: NotRequired[ + "SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum" + ] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: NotRequired[ + "SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum" + ] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + + +class SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class SessionCreateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class SessionCreateParamsShippingOptionShippingRateDataFixedAmount(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[ + str, + "SessionCreateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions", + ] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class SessionCreateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions( + TypedDict, +): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + + +class SessionCreateParamsSubscriptionData(TypedDict): + application_fee_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. To use an application fee percent, the request must be made on behalf of another account, using the `Stripe-Account` header or an OAuth key. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions). + """ + billing_cycle_anchor: NotRequired[int] + """ + A future timestamp to anchor the subscription's billing cycle for new subscriptions. + """ + billing_mode: NotRequired["SessionCreateParamsSubscriptionDataBillingMode"] + """ + Controls how prorations and invoices for subscriptions are calculated and orchestrated. + """ + default_tax_rates: NotRequired[List[str]] + """ + The tax rates that will apply to any subscription item that does not have + `tax_rates` set. Invoices created will have their `default_tax_rates` populated + from the subscription. + """ + description: NotRequired[str] + """ + The subscription's description, meant to be displayable to the customer. + Use this field to optionally store an explanation of the subscription + for rendering in the [customer portal](https://stripe.com/docs/customer-management). + """ + invoice_settings: NotRequired[ + "SessionCreateParamsSubscriptionDataInvoiceSettings" + ] + """ + All invoices will be billed using the specified settings. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + on_behalf_of: NotRequired[str] + """ + The account on behalf of which to charge, for each of the subscription's invoices. + """ + proration_behavior: NotRequired[Literal["create_prorations", "none"]] + """ + Determines how to handle prorations resulting from the `billing_cycle_anchor`. If no value is passed, the default is `create_prorations`. + """ + transfer_data: NotRequired[ + "SessionCreateParamsSubscriptionDataTransferData" + ] + """ + If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. + """ + trial_end: NotRequired[int] + """ + Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. Has to be at least 48 hours in the future. + """ + trial_period_days: NotRequired[int] + """ + Integer representing the number of trial period days before the customer is charged for the first time. Has to be at least 1. + """ + trial_settings: NotRequired[ + "SessionCreateParamsSubscriptionDataTrialSettings" + ] + """ + Settings related to subscription trials. + """ + + +class SessionCreateParamsSubscriptionDataBillingMode(TypedDict): + flexible: NotRequired[ + "SessionCreateParamsSubscriptionDataBillingModeFlexible" + ] + """ + Configure behavior for flexible billing mode. + """ + type: Literal["classic", "flexible"] + """ + Controls the calculation and orchestration of prorations and invoices for subscriptions. If no value is passed, the default is `flexible`. + """ + + +class SessionCreateParamsSubscriptionDataBillingModeFlexible(TypedDict): + proration_discounts: NotRequired[Literal["included", "itemized"]] + """ + Controls how invoices and invoice items display proration amounts and discount amounts. + """ + + +class SessionCreateParamsSubscriptionDataInvoiceSettings(TypedDict): + issuer: NotRequired[ + "SessionCreateParamsSubscriptionDataInvoiceSettingsIssuer" + ] + """ + The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account. + """ + + +class SessionCreateParamsSubscriptionDataInvoiceSettingsIssuer(TypedDict): + account: NotRequired[str] + """ + The connected account being referenced when `type` is `account`. + """ + type: Literal["account", "self"] + """ + Type of the account referenced in the request. + """ + + +class SessionCreateParamsSubscriptionDataTransferData(TypedDict): + amount_percent: NotRequired[float] + """ + A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination. + """ + destination: str + """ + ID of an existing, connected Stripe account. + """ + + +class SessionCreateParamsSubscriptionDataTrialSettings(TypedDict): + end_behavior: "SessionCreateParamsSubscriptionDataTrialSettingsEndBehavior" + """ + Defines how the subscription should behave when the user's free trial ends. + """ + + +class SessionCreateParamsSubscriptionDataTrialSettingsEndBehavior(TypedDict): + missing_payment_method: Literal["cancel", "create_invoice", "pause"] + """ + Indicates how the subscription should change when the trial ends if the user did not provide a payment method. + """ + + +class SessionCreateParamsTaxIdCollection(TypedDict): + enabled: bool + """ + Enable tax ID collection during checkout. Defaults to `false`. + """ + required: NotRequired[Literal["if_supported", "never"]] + """ + Describes whether a tax ID is required during checkout. Defaults to `never`. + """ + + +class SessionCreateParamsWalletOptions(TypedDict): + link: NotRequired["SessionCreateParamsWalletOptionsLink"] + """ + contains details about the Link wallet options. + """ + + +class SessionCreateParamsWalletOptionsLink(TypedDict): + display: NotRequired[Literal["auto", "never"]] + """ + Specifies whether Checkout should display Link as a payment option. By default, Checkout will display all the supported wallets that the Checkout Session was created with. This is the `auto` behavior, and it is the default choice. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_expire_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_expire_params.py new file mode 100644 index 00000000..090460b1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_expire_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SessionExpireParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_line_item_list_params.py new file mode 100644 index 00000000..29666f0c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class SessionLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_list_line_items_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_list_line_items_params.py new file mode 100644 index 00000000..35895af2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_list_line_items_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SessionListLineItemsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_list_params.py new file mode 100644 index 00000000..cf2a7710 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_list_params.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SessionListParams(RequestOptions): + created: NotRequired["SessionListParamsCreated|int"] + """ + Only return Checkout Sessions that were created during the given date interval. + """ + customer: NotRequired[str] + """ + Only return the Checkout Sessions for the Customer specified. + """ + customer_details: NotRequired["SessionListParamsCustomerDetails"] + """ + Only return the Checkout Sessions for the Customer details specified. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment_intent: NotRequired[str] + """ + Only return the Checkout Session for the PaymentIntent specified. + """ + payment_link: NotRequired[str] + """ + Only return the Checkout Sessions for the Payment Link specified. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["complete", "expired", "open"]] + """ + Only return the Checkout Sessions matching the given status. + """ + subscription: NotRequired[str] + """ + Only return the Checkout Session for the subscription specified. + """ + + +class SessionListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class SessionListParamsCustomerDetails(TypedDict): + email: str + """ + Customer's email address. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_modify_params.py new file mode 100644 index 00000000..8a9fd903 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_modify_params.py @@ -0,0 +1,199 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SessionModifyParams(RequestOptions): + collected_information: NotRequired[ + "SessionModifyParamsCollectedInformation" + ] + """ + Information about the customer collected within the Checkout Session. Can only be set when updating `embedded` or `custom` sessions. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + shipping_options: NotRequired[ + "Literal['']|List[SessionModifyParamsShippingOption]" + ] + """ + The shipping rate options to apply to this Session. Up to a maximum of 5. + """ + + +class SessionModifyParamsCollectedInformation(TypedDict): + shipping_details: NotRequired[ + "SessionModifyParamsCollectedInformationShippingDetails" + ] + """ + The shipping details to apply to this Session. + """ + + +class SessionModifyParamsCollectedInformationShippingDetails(TypedDict): + address: "SessionModifyParamsCollectedInformationShippingDetailsAddress" + """ + The address of the customer + """ + name: str + """ + The name of customer + """ + + +class SessionModifyParamsCollectedInformationShippingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SessionModifyParamsShippingOption(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the Shipping Rate to use for this shipping option. + """ + shipping_rate_data: NotRequired[ + "SessionModifyParamsShippingOptionShippingRateData" + ] + """ + Parameters to be passed to Shipping Rate creation for this shipping option. + """ + + +class SessionModifyParamsShippingOptionShippingRateData(TypedDict): + delivery_estimate: NotRequired[ + "SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimate" + ] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: str + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + fixed_amount: NotRequired[ + "SessionModifyParamsShippingOptionShippingRateDataFixedAmount" + ] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: NotRequired[Literal["fixed_amount"]] + """ + The type of calculation to use on the shipping rate. + """ + + +class SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimate( + TypedDict, +): + maximum: NotRequired[ + "SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMaximum" + ] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: NotRequired[ + "SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMinimum" + ] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + + +class SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMaximum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class SessionModifyParamsShippingOptionShippingRateDataDeliveryEstimateMinimum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class SessionModifyParamsShippingOptionShippingRateDataFixedAmount(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[ + str, + "SessionModifyParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions", + ] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class SessionModifyParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions( + TypedDict, +): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_retrieve_params.py new file mode 100644 index 00000000..fc641db9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SessionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_update_params.py new file mode 100644 index 00000000..2b710959 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/checkout/_session_update_params.py @@ -0,0 +1,198 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SessionUpdateParams(TypedDict): + collected_information: NotRequired[ + "SessionUpdateParamsCollectedInformation" + ] + """ + Information about the customer collected within the Checkout Session. Can only be set when updating `embedded` or `custom` sessions. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + shipping_options: NotRequired[ + "Literal['']|List[SessionUpdateParamsShippingOption]" + ] + """ + The shipping rate options to apply to this Session. Up to a maximum of 5. + """ + + +class SessionUpdateParamsCollectedInformation(TypedDict): + shipping_details: NotRequired[ + "SessionUpdateParamsCollectedInformationShippingDetails" + ] + """ + The shipping details to apply to this Session. + """ + + +class SessionUpdateParamsCollectedInformationShippingDetails(TypedDict): + address: "SessionUpdateParamsCollectedInformationShippingDetailsAddress" + """ + The address of the customer + """ + name: str + """ + The name of customer + """ + + +class SessionUpdateParamsCollectedInformationShippingDetailsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class SessionUpdateParamsShippingOption(TypedDict): + shipping_rate: NotRequired[str] + """ + The ID of the Shipping Rate to use for this shipping option. + """ + shipping_rate_data: NotRequired[ + "SessionUpdateParamsShippingOptionShippingRateData" + ] + """ + Parameters to be passed to Shipping Rate creation for this shipping option. + """ + + +class SessionUpdateParamsShippingOptionShippingRateData(TypedDict): + delivery_estimate: NotRequired[ + "SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimate" + ] + """ + The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + display_name: str + """ + The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions. + """ + fixed_amount: NotRequired[ + "SessionUpdateParamsShippingOptionShippingRateDataFixedAmount" + ] + """ + Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`. + """ + type: NotRequired[Literal["fixed_amount"]] + """ + The type of calculation to use on the shipping rate. + """ + + +class SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimate( + TypedDict, +): + maximum: NotRequired[ + "SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum" + ] + """ + The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite. + """ + minimum: NotRequired[ + "SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum" + ] + """ + The lower bound of the estimated range. If empty, represents no lower bound. + """ + + +class SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMaximum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class SessionUpdateParamsShippingOptionShippingRateDataDeliveryEstimateMinimum( + TypedDict, +): + unit: Literal["business_day", "day", "hour", "month", "week"] + """ + A unit of time. + """ + value: int + """ + Must be greater than 0. + """ + + +class SessionUpdateParamsShippingOptionShippingRateDataFixedAmount(TypedDict): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + currency_options: NotRequired[ + Dict[ + str, + "SessionUpdateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions", + ] + ] + """ + Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies). + """ + + +class SessionUpdateParamsShippingOptionShippingRateDataFixedAmountCurrencyOptions( + TypedDict, +): + amount: int + """ + A non-negative integer in cents representing how much to charge. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive", "unspecified"]] + """ + Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__init__.py new file mode 100644 index 00000000..68984299 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__init__.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.climate._order_cancel_params import ( + OrderCancelParams as OrderCancelParams, + ) + from stripe.params.climate._order_create_params import ( + OrderCreateParams as OrderCreateParams, + OrderCreateParamsBeneficiary as OrderCreateParamsBeneficiary, + ) + from stripe.params.climate._order_list_params import ( + OrderListParams as OrderListParams, + ) + from stripe.params.climate._order_modify_params import ( + OrderModifyParams as OrderModifyParams, + OrderModifyParamsBeneficiary as OrderModifyParamsBeneficiary, + ) + from stripe.params.climate._order_retrieve_params import ( + OrderRetrieveParams as OrderRetrieveParams, + ) + from stripe.params.climate._order_update_params import ( + OrderUpdateParams as OrderUpdateParams, + OrderUpdateParamsBeneficiary as OrderUpdateParamsBeneficiary, + ) + from stripe.params.climate._product_list_params import ( + ProductListParams as ProductListParams, + ) + from stripe.params.climate._product_retrieve_params import ( + ProductRetrieveParams as ProductRetrieveParams, + ) + from stripe.params.climate._supplier_list_params import ( + SupplierListParams as SupplierListParams, + ) + from stripe.params.climate._supplier_retrieve_params import ( + SupplierRetrieveParams as SupplierRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "OrderCancelParams": ("stripe.params.climate._order_cancel_params", False), + "OrderCreateParams": ("stripe.params.climate._order_create_params", False), + "OrderCreateParamsBeneficiary": ( + "stripe.params.climate._order_create_params", + False, + ), + "OrderListParams": ("stripe.params.climate._order_list_params", False), + "OrderModifyParams": ("stripe.params.climate._order_modify_params", False), + "OrderModifyParamsBeneficiary": ( + "stripe.params.climate._order_modify_params", + False, + ), + "OrderRetrieveParams": ( + "stripe.params.climate._order_retrieve_params", + False, + ), + "OrderUpdateParams": ("stripe.params.climate._order_update_params", False), + "OrderUpdateParamsBeneficiary": ( + "stripe.params.climate._order_update_params", + False, + ), + "ProductListParams": ("stripe.params.climate._product_list_params", False), + "ProductRetrieveParams": ( + "stripe.params.climate._product_retrieve_params", + False, + ), + "SupplierListParams": ( + "stripe.params.climate._supplier_list_params", + False, + ), + "SupplierRetrieveParams": ( + "stripe.params.climate._supplier_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..e604c588 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..7876381b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_create_params.cpython-312.pyc new file mode 100644 index 00000000..92c7002d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_list_params.cpython-312.pyc new file mode 100644 index 00000000..d6c4c00b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_modify_params.cpython-312.pyc new file mode 100644 index 00000000..24ab840c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..bf93def2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_update_params.cpython-312.pyc new file mode 100644 index 00000000..76fbf13e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_order_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_product_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_product_list_params.cpython-312.pyc new file mode 100644 index 00000000..2fe4a055 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_product_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_product_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_product_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..9b41e46d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_product_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_supplier_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_supplier_list_params.cpython-312.pyc new file mode 100644 index 00000000..11b1acd0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_supplier_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_supplier_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_supplier_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f8660a5a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/__pycache__/_supplier_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_cancel_params.py new file mode 100644 index 00000000..ba99988d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OrderCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_create_params.py new file mode 100644 index 00000000..45ca4295 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_create_params.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired, TypedDict + + +class OrderCreateParams(RequestOptions): + amount: NotRequired[int] + """ + Requested amount of carbon removal units. Either this or `metric_tons` must be specified. + """ + beneficiary: NotRequired["OrderCreateParamsBeneficiary"] + """ + Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set. + """ + currency: NotRequired[str] + """ + Request currency for the order as a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a supported [settlement currency for your account](https://stripe.com/docs/currencies). If omitted, the account's default currency will be used. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + metric_tons: NotRequired[str] + """ + Requested number of tons for the order. Either this or `amount` must be specified. + """ + product: str + """ + Unique identifier of the Climate product. + """ + + +class OrderCreateParamsBeneficiary(TypedDict): + public_name: str + """ + Publicly displayable name for the end beneficiary of carbon removal. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_list_params.py new file mode 100644 index 00000000..c17bfa64 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OrderListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_modify_params.py new file mode 100644 index 00000000..af437147 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_modify_params.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class OrderModifyParams(RequestOptions): + beneficiary: NotRequired["Literal['']|OrderModifyParamsBeneficiary"] + """ + Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + + +class OrderModifyParamsBeneficiary(TypedDict): + public_name: Union[Literal[""], str] + """ + Publicly displayable name for the end beneficiary of carbon removal. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_retrieve_params.py new file mode 100644 index 00000000..9364635f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OrderRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_update_params.py new file mode 100644 index 00000000..05a947f0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_order_update_params.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class OrderUpdateParams(TypedDict): + beneficiary: NotRequired["Literal['']|OrderUpdateParamsBeneficiary"] + """ + Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + + +class OrderUpdateParamsBeneficiary(TypedDict): + public_name: Union[Literal[""], str] + """ + Publicly displayable name for the end beneficiary of carbon removal. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_product_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_product_list_params.py new file mode 100644 index 00000000..504998ab --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_product_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ProductListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_product_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_product_retrieve_params.py new file mode 100644 index 00000000..c9cc1bd6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_product_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ProductRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_supplier_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_supplier_list_params.py new file mode 100644 index 00000000..93e5b97a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_supplier_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SupplierListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_supplier_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_supplier_retrieve_params.py new file mode 100644 index 00000000..262e8b95 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/climate/_supplier_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SupplierRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__init__.py new file mode 100644 index 00000000..e297cf84 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__init__.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.entitlements._active_entitlement_list_params import ( + ActiveEntitlementListParams as ActiveEntitlementListParams, + ) + from stripe.params.entitlements._active_entitlement_retrieve_params import ( + ActiveEntitlementRetrieveParams as ActiveEntitlementRetrieveParams, + ) + from stripe.params.entitlements._feature_create_params import ( + FeatureCreateParams as FeatureCreateParams, + ) + from stripe.params.entitlements._feature_list_params import ( + FeatureListParams as FeatureListParams, + ) + from stripe.params.entitlements._feature_modify_params import ( + FeatureModifyParams as FeatureModifyParams, + ) + from stripe.params.entitlements._feature_retrieve_params import ( + FeatureRetrieveParams as FeatureRetrieveParams, + ) + from stripe.params.entitlements._feature_update_params import ( + FeatureUpdateParams as FeatureUpdateParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ActiveEntitlementListParams": ( + "stripe.params.entitlements._active_entitlement_list_params", + False, + ), + "ActiveEntitlementRetrieveParams": ( + "stripe.params.entitlements._active_entitlement_retrieve_params", + False, + ), + "FeatureCreateParams": ( + "stripe.params.entitlements._feature_create_params", + False, + ), + "FeatureListParams": ( + "stripe.params.entitlements._feature_list_params", + False, + ), + "FeatureModifyParams": ( + "stripe.params.entitlements._feature_modify_params", + False, + ), + "FeatureRetrieveParams": ( + "stripe.params.entitlements._feature_retrieve_params", + False, + ), + "FeatureUpdateParams": ( + "stripe.params.entitlements._feature_update_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..5238ce13 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_active_entitlement_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_active_entitlement_list_params.cpython-312.pyc new file mode 100644 index 00000000..892d8cfa Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_active_entitlement_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_active_entitlement_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_active_entitlement_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..233bab2f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_active_entitlement_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_create_params.cpython-312.pyc new file mode 100644 index 00000000..bd52b9bf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_list_params.cpython-312.pyc new file mode 100644 index 00000000..e7346f15 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_modify_params.cpython-312.pyc new file mode 100644 index 00000000..3a9c583d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..e94e639b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_update_params.cpython-312.pyc new file mode 100644 index 00000000..e9645437 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/__pycache__/_feature_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_active_entitlement_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_active_entitlement_list_params.py new file mode 100644 index 00000000..0964edb0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_active_entitlement_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ActiveEntitlementListParams(RequestOptions): + customer: str + """ + The ID of the customer. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_active_entitlement_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_active_entitlement_retrieve_params.py new file mode 100644 index 00000000..c8d0020e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_active_entitlement_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ActiveEntitlementRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_create_params.py new file mode 100644 index 00000000..58338e5f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_create_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class FeatureCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + lookup_key: str + """ + A unique key you provide as your own system identifier. This may be up to 80 characters. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: str + """ + The feature's name, for your own purpose, not meant to be displayable to the customer. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_list_params.py new file mode 100644 index 00000000..d57a686c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_list_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class FeatureListParams(RequestOptions): + archived: NotRequired[bool] + """ + If set, filter results to only include features with the given archive status. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + lookup_key: NotRequired[str] + """ + If set, filter results to only include features with the given lookup_key. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_modify_params.py new file mode 100644 index 00000000..59158e75 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_modify_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class FeatureModifyParams(RequestOptions): + active: NotRequired[bool] + """ + Inactive features cannot be attached to new products and will not be returned from the features list endpoint. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: NotRequired[str] + """ + The feature's name, for your own purpose, not meant to be displayable to the customer. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_retrieve_params.py new file mode 100644 index 00000000..5933235c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class FeatureRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_update_params.py new file mode 100644 index 00000000..cbc29b19 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/entitlements/_feature_update_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FeatureUpdateParams(TypedDict): + active: NotRequired[bool] + """ + Inactive features cannot be attached to new products and will not be returned from the features list endpoint. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: NotRequired[str] + """ + The feature's name, for your own purpose, not meant to be displayable to the customer. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__init__.py new file mode 100644 index 00000000..bfa14a8f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__init__.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.financial_connections._account_disconnect_params import ( + AccountDisconnectParams as AccountDisconnectParams, + ) + from stripe.params.financial_connections._account_list_owners_params import ( + AccountListOwnersParams as AccountListOwnersParams, + ) + from stripe.params.financial_connections._account_list_params import ( + AccountListParams as AccountListParams, + AccountListParamsAccountHolder as AccountListParamsAccountHolder, + ) + from stripe.params.financial_connections._account_owner_list_params import ( + AccountOwnerListParams as AccountOwnerListParams, + ) + from stripe.params.financial_connections._account_refresh_account_params import ( + AccountRefreshAccountParams as AccountRefreshAccountParams, + ) + from stripe.params.financial_connections._account_refresh_params import ( + AccountRefreshParams as AccountRefreshParams, + ) + from stripe.params.financial_connections._account_retrieve_params import ( + AccountRetrieveParams as AccountRetrieveParams, + ) + from stripe.params.financial_connections._account_subscribe_params import ( + AccountSubscribeParams as AccountSubscribeParams, + ) + from stripe.params.financial_connections._account_unsubscribe_params import ( + AccountUnsubscribeParams as AccountUnsubscribeParams, + ) + from stripe.params.financial_connections._session_create_params import ( + SessionCreateParams as SessionCreateParams, + SessionCreateParamsAccountHolder as SessionCreateParamsAccountHolder, + SessionCreateParamsFilters as SessionCreateParamsFilters, + ) + from stripe.params.financial_connections._session_retrieve_params import ( + SessionRetrieveParams as SessionRetrieveParams, + ) + from stripe.params.financial_connections._transaction_list_params import ( + TransactionListParams as TransactionListParams, + TransactionListParamsTransactedAt as TransactionListParamsTransactedAt, + TransactionListParamsTransactionRefresh as TransactionListParamsTransactionRefresh, + ) + from stripe.params.financial_connections._transaction_retrieve_params import ( + TransactionRetrieveParams as TransactionRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "AccountDisconnectParams": ( + "stripe.params.financial_connections._account_disconnect_params", + False, + ), + "AccountListOwnersParams": ( + "stripe.params.financial_connections._account_list_owners_params", + False, + ), + "AccountListParams": ( + "stripe.params.financial_connections._account_list_params", + False, + ), + "AccountListParamsAccountHolder": ( + "stripe.params.financial_connections._account_list_params", + False, + ), + "AccountOwnerListParams": ( + "stripe.params.financial_connections._account_owner_list_params", + False, + ), + "AccountRefreshAccountParams": ( + "stripe.params.financial_connections._account_refresh_account_params", + False, + ), + "AccountRefreshParams": ( + "stripe.params.financial_connections._account_refresh_params", + False, + ), + "AccountRetrieveParams": ( + "stripe.params.financial_connections._account_retrieve_params", + False, + ), + "AccountSubscribeParams": ( + "stripe.params.financial_connections._account_subscribe_params", + False, + ), + "AccountUnsubscribeParams": ( + "stripe.params.financial_connections._account_unsubscribe_params", + False, + ), + "SessionCreateParams": ( + "stripe.params.financial_connections._session_create_params", + False, + ), + "SessionCreateParamsAccountHolder": ( + "stripe.params.financial_connections._session_create_params", + False, + ), + "SessionCreateParamsFilters": ( + "stripe.params.financial_connections._session_create_params", + False, + ), + "SessionRetrieveParams": ( + "stripe.params.financial_connections._session_retrieve_params", + False, + ), + "TransactionListParams": ( + "stripe.params.financial_connections._transaction_list_params", + False, + ), + "TransactionListParamsTransactedAt": ( + "stripe.params.financial_connections._transaction_list_params", + False, + ), + "TransactionListParamsTransactionRefresh": ( + "stripe.params.financial_connections._transaction_list_params", + False, + ), + "TransactionRetrieveParams": ( + "stripe.params.financial_connections._transaction_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..fc12a825 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_disconnect_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_disconnect_params.cpython-312.pyc new file mode 100644 index 00000000..5ee3a3e2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_disconnect_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_list_owners_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_list_owners_params.cpython-312.pyc new file mode 100644 index 00000000..42095839 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_list_owners_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_list_params.cpython-312.pyc new file mode 100644 index 00000000..b2ea4428 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_owner_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_owner_list_params.cpython-312.pyc new file mode 100644 index 00000000..a848e972 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_owner_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_refresh_account_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_refresh_account_params.cpython-312.pyc new file mode 100644 index 00000000..7eaff4a2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_refresh_account_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_refresh_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_refresh_params.cpython-312.pyc new file mode 100644 index 00000000..0e085421 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_refresh_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..dc217376 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_subscribe_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_subscribe_params.cpython-312.pyc new file mode 100644 index 00000000..bab4f3a3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_subscribe_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_unsubscribe_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_unsubscribe_params.cpython-312.pyc new file mode 100644 index 00000000..60180772 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_account_unsubscribe_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_session_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_session_create_params.cpython-312.pyc new file mode 100644 index 00000000..e55e0c00 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_session_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_session_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_session_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..d0be9c3a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_session_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..61ed2b72 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..eb286773 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/__pycache__/_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_disconnect_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_disconnect_params.py new file mode 100644 index 00000000..45ca66ce --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_disconnect_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountDisconnectParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_list_owners_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_list_owners_params.py new file mode 100644 index 00000000..a185d56c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_list_owners_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountListOwnersParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + ownership: str + """ + The ID of the ownership object to fetch owners from. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_list_params.py new file mode 100644 index 00000000..d87f6b10 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_list_params.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountListParams(RequestOptions): + account_holder: NotRequired["AccountListParamsAccountHolder"] + """ + If present, only return accounts that belong to the specified account holder. `account_holder[customer]` and `account_holder[account]` are mutually exclusive. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + session: NotRequired[str] + """ + If present, only return accounts that were collected as part of the given session. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class AccountListParamsAccountHolder(TypedDict): + account: NotRequired[str] + """ + The ID of the Stripe account whose accounts will be retrieved. + """ + customer: NotRequired[str] + """ + The ID of the Stripe customer whose accounts will be retrieved. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_owner_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_owner_list_params.py new file mode 100644 index 00000000..d2ea5e2f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_owner_list_params.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AccountOwnerListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + ownership: str + """ + The ID of the ownership object to fetch owners from. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_refresh_account_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_refresh_account_params.py new file mode 100644 index 00000000..578ef3c4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_refresh_account_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class AccountRefreshAccountParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: List[Literal["balance", "ownership", "transactions"]] + """ + The list of account features that you would like to refresh. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_refresh_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_refresh_params.py new file mode 100644 index 00000000..7ca98edd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_refresh_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AccountRefreshParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: List[Literal["balance", "ownership", "transactions"]] + """ + The list of account features that you would like to refresh. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_retrieve_params.py new file mode 100644 index 00000000..02d5a379 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AccountRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_subscribe_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_subscribe_params.py new file mode 100644 index 00000000..b6ac1c02 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_subscribe_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class AccountSubscribeParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: List[Literal["transactions"]] + """ + The list of account features to which you would like to subscribe. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_unsubscribe_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_unsubscribe_params.py new file mode 100644 index 00000000..98cc488d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_account_unsubscribe_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class AccountUnsubscribeParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: List[Literal["transactions"]] + """ + The list of account features from which you would like to unsubscribe. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_session_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_session_create_params.py new file mode 100644 index 00000000..e1dfd366 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_session_create_params.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SessionCreateParams(RequestOptions): + account_holder: "SessionCreateParamsAccountHolder" + """ + The account holder to link accounts for. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + filters: NotRequired["SessionCreateParamsFilters"] + """ + Filters to restrict the kinds of accounts to collect. + """ + permissions: List[ + Literal["balances", "ownership", "payment_method", "transactions"] + ] + """ + List of data features that you would like to request access to. + + Possible values are `balances`, `transactions`, `ownership`, and `payment_method`. + """ + prefetch: NotRequired[ + List[Literal["balances", "ownership", "transactions"]] + ] + """ + List of data features that you would like to retrieve upon account creation. + """ + return_url: NotRequired[str] + """ + For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. + """ + + +class SessionCreateParamsAccountHolder(TypedDict): + account: NotRequired[str] + """ + The ID of the Stripe account whose accounts will be retrieved. Should only be present if `type` is `account`. + """ + customer: NotRequired[str] + """ + The ID of the Stripe customer whose accounts will be retrieved. Should only be present if `type` is `customer`. + """ + type: Literal["account", "customer"] + """ + Type of account holder to collect accounts for. + """ + + +class SessionCreateParamsFilters(TypedDict): + account_subcategories: NotRequired[ + List[ + Literal[ + "checking", + "credit_card", + "line_of_credit", + "mortgage", + "savings", + ] + ] + ] + """ + Restricts the Session to subcategories of accounts that can be linked. Valid subcategories are: `checking`, `savings`, `mortgage`, `line_of_credit`, `credit_card`. + """ + countries: NotRequired[List[str]] + """ + List of countries from which to collect accounts. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_session_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_session_retrieve_params.py new file mode 100644 index 00000000..fc641db9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_session_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SessionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_transaction_list_params.py new file mode 100644 index 00000000..3290ec94 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_transaction_list_params.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class TransactionListParams(RequestOptions): + account: str + """ + The ID of the Financial Connections Account whose transactions will be retrieved. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + transacted_at: NotRequired["TransactionListParamsTransactedAt|int"] + """ + A filter on the list based on the object `transacted_at` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with the following options: + """ + transaction_refresh: NotRequired["TransactionListParamsTransactionRefresh"] + """ + A filter on the list based on the object `transaction_refresh` field. The value can be a dictionary with the following options: + """ + + +class TransactionListParamsTransactedAt(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class TransactionListParamsTransactionRefresh(TypedDict): + after: str + """ + Return results where the transactions were created or updated by a refresh that took place after this refresh (non-inclusive). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_transaction_retrieve_params.py new file mode 100644 index 00000000..07744dd9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/financial_connections/_transaction_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransactionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__init__.py new file mode 100644 index 00000000..700618ae --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__init__.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.forwarding._request_create_params import ( + RequestCreateParams as RequestCreateParams, + RequestCreateParamsRequest as RequestCreateParamsRequest, + RequestCreateParamsRequestHeader as RequestCreateParamsRequestHeader, + ) + from stripe.params.forwarding._request_list_params import ( + RequestListParams as RequestListParams, + RequestListParamsCreated as RequestListParamsCreated, + ) + from stripe.params.forwarding._request_retrieve_params import ( + RequestRetrieveParams as RequestRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "RequestCreateParams": ( + "stripe.params.forwarding._request_create_params", + False, + ), + "RequestCreateParamsRequest": ( + "stripe.params.forwarding._request_create_params", + False, + ), + "RequestCreateParamsRequestHeader": ( + "stripe.params.forwarding._request_create_params", + False, + ), + "RequestListParams": ( + "stripe.params.forwarding._request_list_params", + False, + ), + "RequestListParamsCreated": ( + "stripe.params.forwarding._request_list_params", + False, + ), + "RequestRetrieveParams": ( + "stripe.params.forwarding._request_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..b4a81450 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_create_params.cpython-312.pyc new file mode 100644 index 00000000..8b358a00 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_list_params.cpython-312.pyc new file mode 100644 index 00000000..8209336b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..1802759d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/__pycache__/_request_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_create_params.py new file mode 100644 index 00000000..e35ebfc5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_create_params.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class RequestCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_method: str + """ + The PaymentMethod to insert into the forwarded request. Forwarding previously consumed PaymentMethods is allowed. + """ + replacements: List[ + Literal[ + "card_cvc", + "card_expiry", + "card_number", + "cardholder_name", + "request_signature", + ] + ] + """ + The field kinds to be replaced in the forwarded request. + """ + request: "RequestCreateParamsRequest" + """ + The request body and headers to be sent to the destination endpoint. + """ + url: str + """ + The destination URL for the forwarded request. Must be supported by the config. + """ + + +class RequestCreateParamsRequest(TypedDict): + body: NotRequired[str] + """ + The body payload to send to the destination endpoint. + """ + headers: NotRequired[List["RequestCreateParamsRequestHeader"]] + """ + The headers to include in the forwarded request. Can be omitted if no additional headers (excluding Stripe-generated ones such as the Content-Type header) should be included. + """ + + +class RequestCreateParamsRequestHeader(TypedDict): + name: str + """ + The header name. + """ + value: str + """ + The header value. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_list_params.py new file mode 100644 index 00000000..6c79d631 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_list_params.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class RequestListParams(RequestOptions): + created: NotRequired["RequestListParamsCreated"] + """ + Similar to other List endpoints, filters results based on created timestamp. You can pass gt, gte, lt, and lte timestamp values. + """ + ending_before: NotRequired[str] + """ + A pagination cursor to fetch the previous page of the list. The value must be a ForwardingRequest ID. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A pagination cursor to fetch the next page of the list. The value must be a ForwardingRequest ID. + """ + + +class RequestListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Return results where the `created` field is greater than this value. + """ + gte: NotRequired[int] + """ + Return results where the `created` field is greater than or equal to this value. + """ + lt: NotRequired[int] + """ + Return results where the `created` field is less than this value. + """ + lte: NotRequired[int] + """ + Return results where the `created` field is less than or equal to this value. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_retrieve_params.py new file mode 100644 index 00000000..988b7d6a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/forwarding/_request_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class RequestRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__init__.py new file mode 100644 index 00000000..f791e48c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__init__.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.identity._verification_report_list_params import ( + VerificationReportListParams as VerificationReportListParams, + VerificationReportListParamsCreated as VerificationReportListParamsCreated, + ) + from stripe.params.identity._verification_report_retrieve_params import ( + VerificationReportRetrieveParams as VerificationReportRetrieveParams, + ) + from stripe.params.identity._verification_session_cancel_params import ( + VerificationSessionCancelParams as VerificationSessionCancelParams, + ) + from stripe.params.identity._verification_session_create_params import ( + VerificationSessionCreateParams as VerificationSessionCreateParams, + VerificationSessionCreateParamsOptions as VerificationSessionCreateParamsOptions, + VerificationSessionCreateParamsOptionsDocument as VerificationSessionCreateParamsOptionsDocument, + VerificationSessionCreateParamsProvidedDetails as VerificationSessionCreateParamsProvidedDetails, + VerificationSessionCreateParamsRelatedPerson as VerificationSessionCreateParamsRelatedPerson, + ) + from stripe.params.identity._verification_session_list_params import ( + VerificationSessionListParams as VerificationSessionListParams, + VerificationSessionListParamsCreated as VerificationSessionListParamsCreated, + ) + from stripe.params.identity._verification_session_modify_params import ( + VerificationSessionModifyParams as VerificationSessionModifyParams, + VerificationSessionModifyParamsOptions as VerificationSessionModifyParamsOptions, + VerificationSessionModifyParamsOptionsDocument as VerificationSessionModifyParamsOptionsDocument, + VerificationSessionModifyParamsProvidedDetails as VerificationSessionModifyParamsProvidedDetails, + ) + from stripe.params.identity._verification_session_redact_params import ( + VerificationSessionRedactParams as VerificationSessionRedactParams, + ) + from stripe.params.identity._verification_session_retrieve_params import ( + VerificationSessionRetrieveParams as VerificationSessionRetrieveParams, + ) + from stripe.params.identity._verification_session_update_params import ( + VerificationSessionUpdateParams as VerificationSessionUpdateParams, + VerificationSessionUpdateParamsOptions as VerificationSessionUpdateParamsOptions, + VerificationSessionUpdateParamsOptionsDocument as VerificationSessionUpdateParamsOptionsDocument, + VerificationSessionUpdateParamsProvidedDetails as VerificationSessionUpdateParamsProvidedDetails, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "VerificationReportListParams": ( + "stripe.params.identity._verification_report_list_params", + False, + ), + "VerificationReportListParamsCreated": ( + "stripe.params.identity._verification_report_list_params", + False, + ), + "VerificationReportRetrieveParams": ( + "stripe.params.identity._verification_report_retrieve_params", + False, + ), + "VerificationSessionCancelParams": ( + "stripe.params.identity._verification_session_cancel_params", + False, + ), + "VerificationSessionCreateParams": ( + "stripe.params.identity._verification_session_create_params", + False, + ), + "VerificationSessionCreateParamsOptions": ( + "stripe.params.identity._verification_session_create_params", + False, + ), + "VerificationSessionCreateParamsOptionsDocument": ( + "stripe.params.identity._verification_session_create_params", + False, + ), + "VerificationSessionCreateParamsProvidedDetails": ( + "stripe.params.identity._verification_session_create_params", + False, + ), + "VerificationSessionCreateParamsRelatedPerson": ( + "stripe.params.identity._verification_session_create_params", + False, + ), + "VerificationSessionListParams": ( + "stripe.params.identity._verification_session_list_params", + False, + ), + "VerificationSessionListParamsCreated": ( + "stripe.params.identity._verification_session_list_params", + False, + ), + "VerificationSessionModifyParams": ( + "stripe.params.identity._verification_session_modify_params", + False, + ), + "VerificationSessionModifyParamsOptions": ( + "stripe.params.identity._verification_session_modify_params", + False, + ), + "VerificationSessionModifyParamsOptionsDocument": ( + "stripe.params.identity._verification_session_modify_params", + False, + ), + "VerificationSessionModifyParamsProvidedDetails": ( + "stripe.params.identity._verification_session_modify_params", + False, + ), + "VerificationSessionRedactParams": ( + "stripe.params.identity._verification_session_redact_params", + False, + ), + "VerificationSessionRetrieveParams": ( + "stripe.params.identity._verification_session_retrieve_params", + False, + ), + "VerificationSessionUpdateParams": ( + "stripe.params.identity._verification_session_update_params", + False, + ), + "VerificationSessionUpdateParamsOptions": ( + "stripe.params.identity._verification_session_update_params", + False, + ), + "VerificationSessionUpdateParamsOptionsDocument": ( + "stripe.params.identity._verification_session_update_params", + False, + ), + "VerificationSessionUpdateParamsProvidedDetails": ( + "stripe.params.identity._verification_session_update_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..102fd33a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_report_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_report_list_params.cpython-312.pyc new file mode 100644 index 00000000..2352d6ae Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_report_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_report_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_report_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..a4ad409e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_report_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..c4cb3c31 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_create_params.cpython-312.pyc new file mode 100644 index 00000000..486b7bab Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_list_params.cpython-312.pyc new file mode 100644 index 00000000..596fd692 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_modify_params.cpython-312.pyc new file mode 100644 index 00000000..c86fa252 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_redact_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_redact_params.cpython-312.pyc new file mode 100644 index 00000000..9b96ebc3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_redact_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..4dc4c906 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_update_params.cpython-312.pyc new file mode 100644 index 00000000..68500e60 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/__pycache__/_verification_session_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_report_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_report_list_params.py new file mode 100644 index 00000000..e02d3b36 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_report_list_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class VerificationReportListParams(RequestOptions): + client_reference_id: NotRequired[str] + """ + A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems. + """ + created: NotRequired["VerificationReportListParamsCreated|int"] + """ + Only return VerificationReports that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[Literal["document", "id_number"]] + """ + Only return VerificationReports of this type + """ + verification_session: NotRequired[str] + """ + Only return VerificationReports created by this VerificationSession ID. It is allowed to provide a VerificationIntent ID. + """ + + +class VerificationReportListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_report_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_report_retrieve_params.py new file mode 100644 index 00000000..a289cedd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_report_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class VerificationReportRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_cancel_params.py new file mode 100644 index 00000000..3c43c7a9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class VerificationSessionCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_create_params.py new file mode 100644 index 00000000..2c7cc20a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_create_params.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class VerificationSessionCreateParams(RequestOptions): + client_reference_id: NotRequired[str] + """ + A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + options: NotRequired["VerificationSessionCreateParamsOptions"] + """ + A set of options for the session's verification checks. + """ + provided_details: NotRequired[ + "VerificationSessionCreateParamsProvidedDetails" + ] + """ + Details provided about the user being verified. These details may be shown to the user. + """ + related_customer: NotRequired[str] + """ + Customer ID + """ + related_person: NotRequired["VerificationSessionCreateParamsRelatedPerson"] + """ + Tokens referencing a Person resource and it's associated account. + """ + return_url: NotRequired[str] + """ + The URL that the user will be redirected to upon completing the verification flow. + """ + type: NotRequired[Literal["document", "id_number"]] + """ + The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. You must provide a `type` if not passing `verification_flow`. + """ + verification_flow: NotRequired[str] + """ + The ID of a verification flow from the Dashboard. See https://docs.stripe.com/identity/verification-flows. + """ + + +class VerificationSessionCreateParamsOptions(TypedDict): + document: NotRequired[ + "Literal['']|VerificationSessionCreateParamsOptionsDocument" + ] + """ + Options that apply to the [document check](https://stripe.com/docs/identity/verification-checks?type=document). + """ + + +class VerificationSessionCreateParamsOptionsDocument(TypedDict): + allowed_types: NotRequired[ + List[Literal["driving_license", "id_card", "passport"]] + ] + """ + Array of strings of allowed identity document types. If the provided identity document isn't one of the allowed types, the verification check will fail with a document_type_not_allowed error code. + """ + require_id_number: NotRequired[bool] + """ + Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document's extracted name and date of birth. + """ + require_live_capture: NotRequired[bool] + """ + Disable image uploads, identity document images have to be captured using the device's camera. + """ + require_matching_selfie: NotRequired[bool] + """ + Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user's face. [Learn more](https://stripe.com/docs/identity/selfie). + """ + + +class VerificationSessionCreateParamsProvidedDetails(TypedDict): + email: NotRequired[str] + """ + Email of user being verified + """ + phone: NotRequired[str] + """ + Phone number of user being verified + """ + + +class VerificationSessionCreateParamsRelatedPerson(TypedDict): + account: str + """ + A token representing a connected account. If provided, the person parameter is also required and must be associated with the account. + """ + person: str + """ + A token referencing a Person resource that this verification is being used to verify. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_list_params.py new file mode 100644 index 00000000..6bd46221 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_list_params.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class VerificationSessionListParams(RequestOptions): + client_reference_id: NotRequired[str] + """ + A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems. + """ + created: NotRequired["VerificationSessionListParamsCreated|int"] + """ + Only return VerificationSessions that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + related_customer: NotRequired[str] + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[ + Literal["canceled", "processing", "requires_input", "verified"] + ] + """ + Only return VerificationSessions with this status. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work). + """ + + +class VerificationSessionListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_modify_params.py new file mode 100644 index 00000000..ec4fb2c1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_modify_params.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class VerificationSessionModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + options: NotRequired["VerificationSessionModifyParamsOptions"] + """ + A set of options for the session's verification checks. + """ + provided_details: NotRequired[ + "VerificationSessionModifyParamsProvidedDetails" + ] + """ + Details provided about the user being verified. These details may be shown to the user. + """ + type: NotRequired[Literal["document", "id_number"]] + """ + The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. + """ + + +class VerificationSessionModifyParamsOptions(TypedDict): + document: NotRequired[ + "Literal['']|VerificationSessionModifyParamsOptionsDocument" + ] + """ + Options that apply to the [document check](https://stripe.com/docs/identity/verification-checks?type=document). + """ + + +class VerificationSessionModifyParamsOptionsDocument(TypedDict): + allowed_types: NotRequired[ + List[Literal["driving_license", "id_card", "passport"]] + ] + """ + Array of strings of allowed identity document types. If the provided identity document isn't one of the allowed types, the verification check will fail with a document_type_not_allowed error code. + """ + require_id_number: NotRequired[bool] + """ + Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document's extracted name and date of birth. + """ + require_live_capture: NotRequired[bool] + """ + Disable image uploads, identity document images have to be captured using the device's camera. + """ + require_matching_selfie: NotRequired[bool] + """ + Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user's face. [Learn more](https://stripe.com/docs/identity/selfie). + """ + + +class VerificationSessionModifyParamsProvidedDetails(TypedDict): + email: NotRequired[str] + """ + Email of user being verified + """ + phone: NotRequired[str] + """ + Phone number of user being verified + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_redact_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_redact_params.py new file mode 100644 index 00000000..a624950f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_redact_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class VerificationSessionRedactParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_retrieve_params.py new file mode 100644 index 00000000..f696500f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class VerificationSessionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_update_params.py new file mode 100644 index 00000000..6fe2b727 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/identity/_verification_session_update_params.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class VerificationSessionUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + options: NotRequired["VerificationSessionUpdateParamsOptions"] + """ + A set of options for the session's verification checks. + """ + provided_details: NotRequired[ + "VerificationSessionUpdateParamsProvidedDetails" + ] + """ + Details provided about the user being verified. These details may be shown to the user. + """ + type: NotRequired[Literal["document", "id_number"]] + """ + The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. + """ + + +class VerificationSessionUpdateParamsOptions(TypedDict): + document: NotRequired[ + "Literal['']|VerificationSessionUpdateParamsOptionsDocument" + ] + """ + Options that apply to the [document check](https://stripe.com/docs/identity/verification-checks?type=document). + """ + + +class VerificationSessionUpdateParamsOptionsDocument(TypedDict): + allowed_types: NotRequired[ + List[Literal["driving_license", "id_card", "passport"]] + ] + """ + Array of strings of allowed identity document types. If the provided identity document isn't one of the allowed types, the verification check will fail with a document_type_not_allowed error code. + """ + require_id_number: NotRequired[bool] + """ + Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document's extracted name and date of birth. + """ + require_live_capture: NotRequired[bool] + """ + Disable image uploads, identity document images have to be captured using the device's camera. + """ + require_matching_selfie: NotRequired[bool] + """ + Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user's face. [Learn more](https://stripe.com/docs/identity/selfie). + """ + + +class VerificationSessionUpdateParamsProvidedDetails(TypedDict): + email: NotRequired[str] + """ + Email of user being verified + """ + phone: NotRequired[str] + """ + Phone number of user being verified + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__init__.py new file mode 100644 index 00000000..4532dea5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__init__.py @@ -0,0 +1,1171 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.issuing._authorization_approve_params import ( + AuthorizationApproveParams as AuthorizationApproveParams, + ) + from stripe.params.issuing._authorization_capture_params import ( + AuthorizationCaptureParams as AuthorizationCaptureParams, + AuthorizationCaptureParamsPurchaseDetails as AuthorizationCaptureParamsPurchaseDetails, + AuthorizationCaptureParamsPurchaseDetailsFleet as AuthorizationCaptureParamsPurchaseDetailsFleet, + AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData as AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax, + AuthorizationCaptureParamsPurchaseDetailsFlight as AuthorizationCaptureParamsPurchaseDetailsFlight, + AuthorizationCaptureParamsPurchaseDetailsFlightSegment as AuthorizationCaptureParamsPurchaseDetailsFlightSegment, + AuthorizationCaptureParamsPurchaseDetailsFuel as AuthorizationCaptureParamsPurchaseDetailsFuel, + AuthorizationCaptureParamsPurchaseDetailsLodging as AuthorizationCaptureParamsPurchaseDetailsLodging, + AuthorizationCaptureParamsPurchaseDetailsReceipt as AuthorizationCaptureParamsPurchaseDetailsReceipt, + ) + from stripe.params.issuing._authorization_create_params import ( + AuthorizationCreateParams as AuthorizationCreateParams, + AuthorizationCreateParamsAmountDetails as AuthorizationCreateParamsAmountDetails, + AuthorizationCreateParamsFleet as AuthorizationCreateParamsFleet, + AuthorizationCreateParamsFleetCardholderPromptData as AuthorizationCreateParamsFleetCardholderPromptData, + AuthorizationCreateParamsFleetReportedBreakdown as AuthorizationCreateParamsFleetReportedBreakdown, + AuthorizationCreateParamsFleetReportedBreakdownFuel as AuthorizationCreateParamsFleetReportedBreakdownFuel, + AuthorizationCreateParamsFleetReportedBreakdownNonFuel as AuthorizationCreateParamsFleetReportedBreakdownNonFuel, + AuthorizationCreateParamsFleetReportedBreakdownTax as AuthorizationCreateParamsFleetReportedBreakdownTax, + AuthorizationCreateParamsFuel as AuthorizationCreateParamsFuel, + AuthorizationCreateParamsMerchantData as AuthorizationCreateParamsMerchantData, + AuthorizationCreateParamsNetworkData as AuthorizationCreateParamsNetworkData, + AuthorizationCreateParamsRiskAssessment as AuthorizationCreateParamsRiskAssessment, + AuthorizationCreateParamsRiskAssessmentCardTestingRisk as AuthorizationCreateParamsRiskAssessmentCardTestingRisk, + AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk as AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk, + AuthorizationCreateParamsVerificationData as AuthorizationCreateParamsVerificationData, + AuthorizationCreateParamsVerificationDataAuthenticationExemption as AuthorizationCreateParamsVerificationDataAuthenticationExemption, + AuthorizationCreateParamsVerificationDataThreeDSecure as AuthorizationCreateParamsVerificationDataThreeDSecure, + ) + from stripe.params.issuing._authorization_decline_params import ( + AuthorizationDeclineParams as AuthorizationDeclineParams, + ) + from stripe.params.issuing._authorization_expire_params import ( + AuthorizationExpireParams as AuthorizationExpireParams, + ) + from stripe.params.issuing._authorization_finalize_amount_params import ( + AuthorizationFinalizeAmountParams as AuthorizationFinalizeAmountParams, + AuthorizationFinalizeAmountParamsFleet as AuthorizationFinalizeAmountParamsFleet, + AuthorizationFinalizeAmountParamsFleetCardholderPromptData as AuthorizationFinalizeAmountParamsFleetCardholderPromptData, + AuthorizationFinalizeAmountParamsFleetReportedBreakdown as AuthorizationFinalizeAmountParamsFleetReportedBreakdown, + AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel as AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel, + AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel as AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel, + AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax as AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax, + AuthorizationFinalizeAmountParamsFuel as AuthorizationFinalizeAmountParamsFuel, + ) + from stripe.params.issuing._authorization_increment_params import ( + AuthorizationIncrementParams as AuthorizationIncrementParams, + ) + from stripe.params.issuing._authorization_list_params import ( + AuthorizationListParams as AuthorizationListParams, + AuthorizationListParamsCreated as AuthorizationListParamsCreated, + ) + from stripe.params.issuing._authorization_modify_params import ( + AuthorizationModifyParams as AuthorizationModifyParams, + ) + from stripe.params.issuing._authorization_respond_params import ( + AuthorizationRespondParams as AuthorizationRespondParams, + ) + from stripe.params.issuing._authorization_retrieve_params import ( + AuthorizationRetrieveParams as AuthorizationRetrieveParams, + ) + from stripe.params.issuing._authorization_reverse_params import ( + AuthorizationReverseParams as AuthorizationReverseParams, + ) + from stripe.params.issuing._authorization_update_params import ( + AuthorizationUpdateParams as AuthorizationUpdateParams, + ) + from stripe.params.issuing._card_create_params import ( + CardCreateParams as CardCreateParams, + CardCreateParamsPin as CardCreateParamsPin, + CardCreateParamsShipping as CardCreateParamsShipping, + CardCreateParamsShippingAddress as CardCreateParamsShippingAddress, + CardCreateParamsShippingAddressValidation as CardCreateParamsShippingAddressValidation, + CardCreateParamsShippingCustoms as CardCreateParamsShippingCustoms, + CardCreateParamsSpendingControls as CardCreateParamsSpendingControls, + CardCreateParamsSpendingControlsSpendingLimit as CardCreateParamsSpendingControlsSpendingLimit, + ) + from stripe.params.issuing._card_deliver_card_params import ( + CardDeliverCardParams as CardDeliverCardParams, + ) + from stripe.params.issuing._card_fail_card_params import ( + CardFailCardParams as CardFailCardParams, + ) + from stripe.params.issuing._card_list_params import ( + CardListParams as CardListParams, + CardListParamsCreated as CardListParamsCreated, + ) + from stripe.params.issuing._card_modify_params import ( + CardModifyParams as CardModifyParams, + CardModifyParamsPin as CardModifyParamsPin, + CardModifyParamsShipping as CardModifyParamsShipping, + CardModifyParamsShippingAddress as CardModifyParamsShippingAddress, + CardModifyParamsShippingAddressValidation as CardModifyParamsShippingAddressValidation, + CardModifyParamsShippingCustoms as CardModifyParamsShippingCustoms, + CardModifyParamsSpendingControls as CardModifyParamsSpendingControls, + CardModifyParamsSpendingControlsSpendingLimit as CardModifyParamsSpendingControlsSpendingLimit, + ) + from stripe.params.issuing._card_retrieve_params import ( + CardRetrieveParams as CardRetrieveParams, + ) + from stripe.params.issuing._card_return_card_params import ( + CardReturnCardParams as CardReturnCardParams, + ) + from stripe.params.issuing._card_ship_card_params import ( + CardShipCardParams as CardShipCardParams, + ) + from stripe.params.issuing._card_submit_card_params import ( + CardSubmitCardParams as CardSubmitCardParams, + ) + from stripe.params.issuing._card_update_params import ( + CardUpdateParams as CardUpdateParams, + CardUpdateParamsPin as CardUpdateParamsPin, + CardUpdateParamsShipping as CardUpdateParamsShipping, + CardUpdateParamsShippingAddress as CardUpdateParamsShippingAddress, + CardUpdateParamsShippingAddressValidation as CardUpdateParamsShippingAddressValidation, + CardUpdateParamsShippingCustoms as CardUpdateParamsShippingCustoms, + CardUpdateParamsSpendingControls as CardUpdateParamsSpendingControls, + CardUpdateParamsSpendingControlsSpendingLimit as CardUpdateParamsSpendingControlsSpendingLimit, + ) + from stripe.params.issuing._cardholder_create_params import ( + CardholderCreateParams as CardholderCreateParams, + CardholderCreateParamsBilling as CardholderCreateParamsBilling, + CardholderCreateParamsBillingAddress as CardholderCreateParamsBillingAddress, + CardholderCreateParamsCompany as CardholderCreateParamsCompany, + CardholderCreateParamsIndividual as CardholderCreateParamsIndividual, + CardholderCreateParamsIndividualCardIssuing as CardholderCreateParamsIndividualCardIssuing, + CardholderCreateParamsIndividualCardIssuingUserTermsAcceptance as CardholderCreateParamsIndividualCardIssuingUserTermsAcceptance, + CardholderCreateParamsIndividualDob as CardholderCreateParamsIndividualDob, + CardholderCreateParamsIndividualVerification as CardholderCreateParamsIndividualVerification, + CardholderCreateParamsIndividualVerificationDocument as CardholderCreateParamsIndividualVerificationDocument, + CardholderCreateParamsSpendingControls as CardholderCreateParamsSpendingControls, + CardholderCreateParamsSpendingControlsSpendingLimit as CardholderCreateParamsSpendingControlsSpendingLimit, + ) + from stripe.params.issuing._cardholder_list_params import ( + CardholderListParams as CardholderListParams, + CardholderListParamsCreated as CardholderListParamsCreated, + ) + from stripe.params.issuing._cardholder_modify_params import ( + CardholderModifyParams as CardholderModifyParams, + CardholderModifyParamsBilling as CardholderModifyParamsBilling, + CardholderModifyParamsBillingAddress as CardholderModifyParamsBillingAddress, + CardholderModifyParamsCompany as CardholderModifyParamsCompany, + CardholderModifyParamsIndividual as CardholderModifyParamsIndividual, + CardholderModifyParamsIndividualCardIssuing as CardholderModifyParamsIndividualCardIssuing, + CardholderModifyParamsIndividualCardIssuingUserTermsAcceptance as CardholderModifyParamsIndividualCardIssuingUserTermsAcceptance, + CardholderModifyParamsIndividualDob as CardholderModifyParamsIndividualDob, + CardholderModifyParamsIndividualVerification as CardholderModifyParamsIndividualVerification, + CardholderModifyParamsIndividualVerificationDocument as CardholderModifyParamsIndividualVerificationDocument, + CardholderModifyParamsSpendingControls as CardholderModifyParamsSpendingControls, + CardholderModifyParamsSpendingControlsSpendingLimit as CardholderModifyParamsSpendingControlsSpendingLimit, + ) + from stripe.params.issuing._cardholder_retrieve_params import ( + CardholderRetrieveParams as CardholderRetrieveParams, + ) + from stripe.params.issuing._cardholder_update_params import ( + CardholderUpdateParams as CardholderUpdateParams, + CardholderUpdateParamsBilling as CardholderUpdateParamsBilling, + CardholderUpdateParamsBillingAddress as CardholderUpdateParamsBillingAddress, + CardholderUpdateParamsCompany as CardholderUpdateParamsCompany, + CardholderUpdateParamsIndividual as CardholderUpdateParamsIndividual, + CardholderUpdateParamsIndividualCardIssuing as CardholderUpdateParamsIndividualCardIssuing, + CardholderUpdateParamsIndividualCardIssuingUserTermsAcceptance as CardholderUpdateParamsIndividualCardIssuingUserTermsAcceptance, + CardholderUpdateParamsIndividualDob as CardholderUpdateParamsIndividualDob, + CardholderUpdateParamsIndividualVerification as CardholderUpdateParamsIndividualVerification, + CardholderUpdateParamsIndividualVerificationDocument as CardholderUpdateParamsIndividualVerificationDocument, + CardholderUpdateParamsSpendingControls as CardholderUpdateParamsSpendingControls, + CardholderUpdateParamsSpendingControlsSpendingLimit as CardholderUpdateParamsSpendingControlsSpendingLimit, + ) + from stripe.params.issuing._dispute_create_params import ( + DisputeCreateParams as DisputeCreateParams, + DisputeCreateParamsEvidence as DisputeCreateParamsEvidence, + DisputeCreateParamsEvidenceCanceled as DisputeCreateParamsEvidenceCanceled, + DisputeCreateParamsEvidenceDuplicate as DisputeCreateParamsEvidenceDuplicate, + DisputeCreateParamsEvidenceFraudulent as DisputeCreateParamsEvidenceFraudulent, + DisputeCreateParamsEvidenceMerchandiseNotAsDescribed as DisputeCreateParamsEvidenceMerchandiseNotAsDescribed, + DisputeCreateParamsEvidenceNoValidAuthorization as DisputeCreateParamsEvidenceNoValidAuthorization, + DisputeCreateParamsEvidenceNotReceived as DisputeCreateParamsEvidenceNotReceived, + DisputeCreateParamsEvidenceOther as DisputeCreateParamsEvidenceOther, + DisputeCreateParamsEvidenceServiceNotAsDescribed as DisputeCreateParamsEvidenceServiceNotAsDescribed, + DisputeCreateParamsTreasury as DisputeCreateParamsTreasury, + ) + from stripe.params.issuing._dispute_list_params import ( + DisputeListParams as DisputeListParams, + DisputeListParamsCreated as DisputeListParamsCreated, + ) + from stripe.params.issuing._dispute_modify_params import ( + DisputeModifyParams as DisputeModifyParams, + DisputeModifyParamsEvidence as DisputeModifyParamsEvidence, + DisputeModifyParamsEvidenceCanceled as DisputeModifyParamsEvidenceCanceled, + DisputeModifyParamsEvidenceDuplicate as DisputeModifyParamsEvidenceDuplicate, + DisputeModifyParamsEvidenceFraudulent as DisputeModifyParamsEvidenceFraudulent, + DisputeModifyParamsEvidenceMerchandiseNotAsDescribed as DisputeModifyParamsEvidenceMerchandiseNotAsDescribed, + DisputeModifyParamsEvidenceNoValidAuthorization as DisputeModifyParamsEvidenceNoValidAuthorization, + DisputeModifyParamsEvidenceNotReceived as DisputeModifyParamsEvidenceNotReceived, + DisputeModifyParamsEvidenceOther as DisputeModifyParamsEvidenceOther, + DisputeModifyParamsEvidenceServiceNotAsDescribed as DisputeModifyParamsEvidenceServiceNotAsDescribed, + ) + from stripe.params.issuing._dispute_retrieve_params import ( + DisputeRetrieveParams as DisputeRetrieveParams, + ) + from stripe.params.issuing._dispute_submit_params import ( + DisputeSubmitParams as DisputeSubmitParams, + ) + from stripe.params.issuing._dispute_update_params import ( + DisputeUpdateParams as DisputeUpdateParams, + DisputeUpdateParamsEvidence as DisputeUpdateParamsEvidence, + DisputeUpdateParamsEvidenceCanceled as DisputeUpdateParamsEvidenceCanceled, + DisputeUpdateParamsEvidenceDuplicate as DisputeUpdateParamsEvidenceDuplicate, + DisputeUpdateParamsEvidenceFraudulent as DisputeUpdateParamsEvidenceFraudulent, + DisputeUpdateParamsEvidenceMerchandiseNotAsDescribed as DisputeUpdateParamsEvidenceMerchandiseNotAsDescribed, + DisputeUpdateParamsEvidenceNoValidAuthorization as DisputeUpdateParamsEvidenceNoValidAuthorization, + DisputeUpdateParamsEvidenceNotReceived as DisputeUpdateParamsEvidenceNotReceived, + DisputeUpdateParamsEvidenceOther as DisputeUpdateParamsEvidenceOther, + DisputeUpdateParamsEvidenceServiceNotAsDescribed as DisputeUpdateParamsEvidenceServiceNotAsDescribed, + ) + from stripe.params.issuing._personalization_design_activate_params import ( + PersonalizationDesignActivateParams as PersonalizationDesignActivateParams, + ) + from stripe.params.issuing._personalization_design_create_params import ( + PersonalizationDesignCreateParams as PersonalizationDesignCreateParams, + PersonalizationDesignCreateParamsCarrierText as PersonalizationDesignCreateParamsCarrierText, + PersonalizationDesignCreateParamsPreferences as PersonalizationDesignCreateParamsPreferences, + ) + from stripe.params.issuing._personalization_design_deactivate_params import ( + PersonalizationDesignDeactivateParams as PersonalizationDesignDeactivateParams, + ) + from stripe.params.issuing._personalization_design_list_params import ( + PersonalizationDesignListParams as PersonalizationDesignListParams, + PersonalizationDesignListParamsPreferences as PersonalizationDesignListParamsPreferences, + ) + from stripe.params.issuing._personalization_design_modify_params import ( + PersonalizationDesignModifyParams as PersonalizationDesignModifyParams, + PersonalizationDesignModifyParamsCarrierText as PersonalizationDesignModifyParamsCarrierText, + PersonalizationDesignModifyParamsPreferences as PersonalizationDesignModifyParamsPreferences, + ) + from stripe.params.issuing._personalization_design_reject_params import ( + PersonalizationDesignRejectParams as PersonalizationDesignRejectParams, + PersonalizationDesignRejectParamsRejectionReasons as PersonalizationDesignRejectParamsRejectionReasons, + ) + from stripe.params.issuing._personalization_design_retrieve_params import ( + PersonalizationDesignRetrieveParams as PersonalizationDesignRetrieveParams, + ) + from stripe.params.issuing._personalization_design_update_params import ( + PersonalizationDesignUpdateParams as PersonalizationDesignUpdateParams, + PersonalizationDesignUpdateParamsCarrierText as PersonalizationDesignUpdateParamsCarrierText, + PersonalizationDesignUpdateParamsPreferences as PersonalizationDesignUpdateParamsPreferences, + ) + from stripe.params.issuing._physical_bundle_list_params import ( + PhysicalBundleListParams as PhysicalBundleListParams, + ) + from stripe.params.issuing._physical_bundle_retrieve_params import ( + PhysicalBundleRetrieveParams as PhysicalBundleRetrieveParams, + ) + from stripe.params.issuing._token_list_params import ( + TokenListParams as TokenListParams, + TokenListParamsCreated as TokenListParamsCreated, + ) + from stripe.params.issuing._token_modify_params import ( + TokenModifyParams as TokenModifyParams, + ) + from stripe.params.issuing._token_retrieve_params import ( + TokenRetrieveParams as TokenRetrieveParams, + ) + from stripe.params.issuing._token_update_params import ( + TokenUpdateParams as TokenUpdateParams, + ) + from stripe.params.issuing._transaction_create_force_capture_params import ( + TransactionCreateForceCaptureParams as TransactionCreateForceCaptureParams, + TransactionCreateForceCaptureParamsMerchantData as TransactionCreateForceCaptureParamsMerchantData, + TransactionCreateForceCaptureParamsPurchaseDetails as TransactionCreateForceCaptureParamsPurchaseDetails, + TransactionCreateForceCaptureParamsPurchaseDetailsFleet as TransactionCreateForceCaptureParamsPurchaseDetailsFleet, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData as TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax, + TransactionCreateForceCaptureParamsPurchaseDetailsFlight as TransactionCreateForceCaptureParamsPurchaseDetailsFlight, + TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment as TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment, + TransactionCreateForceCaptureParamsPurchaseDetailsFuel as TransactionCreateForceCaptureParamsPurchaseDetailsFuel, + TransactionCreateForceCaptureParamsPurchaseDetailsLodging as TransactionCreateForceCaptureParamsPurchaseDetailsLodging, + TransactionCreateForceCaptureParamsPurchaseDetailsReceipt as TransactionCreateForceCaptureParamsPurchaseDetailsReceipt, + ) + from stripe.params.issuing._transaction_create_unlinked_refund_params import ( + TransactionCreateUnlinkedRefundParams as TransactionCreateUnlinkedRefundParams, + TransactionCreateUnlinkedRefundParamsMerchantData as TransactionCreateUnlinkedRefundParamsMerchantData, + TransactionCreateUnlinkedRefundParamsPurchaseDetails as TransactionCreateUnlinkedRefundParamsPurchaseDetails, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging as TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt as TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt, + ) + from stripe.params.issuing._transaction_list_params import ( + TransactionListParams as TransactionListParams, + TransactionListParamsCreated as TransactionListParamsCreated, + ) + from stripe.params.issuing._transaction_modify_params import ( + TransactionModifyParams as TransactionModifyParams, + ) + from stripe.params.issuing._transaction_refund_params import ( + TransactionRefundParams as TransactionRefundParams, + ) + from stripe.params.issuing._transaction_retrieve_params import ( + TransactionRetrieveParams as TransactionRetrieveParams, + ) + from stripe.params.issuing._transaction_update_params import ( + TransactionUpdateParams as TransactionUpdateParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "AuthorizationApproveParams": ( + "stripe.params.issuing._authorization_approve_params", + False, + ), + "AuthorizationCaptureParams": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetails": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleet": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFlight": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFlightSegment": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFuel": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsLodging": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsReceipt": ( + "stripe.params.issuing._authorization_capture_params", + False, + ), + "AuthorizationCreateParams": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsAmountDetails": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleet": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetCardholderPromptData": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdown": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdownFuel": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdownNonFuel": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdownTax": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFuel": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsMerchantData": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsNetworkData": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsRiskAssessment": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsRiskAssessmentCardTestingRisk": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsVerificationData": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsVerificationDataAuthenticationExemption": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsVerificationDataThreeDSecure": ( + "stripe.params.issuing._authorization_create_params", + False, + ), + "AuthorizationDeclineParams": ( + "stripe.params.issuing._authorization_decline_params", + False, + ), + "AuthorizationExpireParams": ( + "stripe.params.issuing._authorization_expire_params", + False, + ), + "AuthorizationFinalizeAmountParams": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleet": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetCardholderPromptData": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdown": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFuel": ( + "stripe.params.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationIncrementParams": ( + "stripe.params.issuing._authorization_increment_params", + False, + ), + "AuthorizationListParams": ( + "stripe.params.issuing._authorization_list_params", + False, + ), + "AuthorizationListParamsCreated": ( + "stripe.params.issuing._authorization_list_params", + False, + ), + "AuthorizationModifyParams": ( + "stripe.params.issuing._authorization_modify_params", + False, + ), + "AuthorizationRespondParams": ( + "stripe.params.issuing._authorization_respond_params", + False, + ), + "AuthorizationRetrieveParams": ( + "stripe.params.issuing._authorization_retrieve_params", + False, + ), + "AuthorizationReverseParams": ( + "stripe.params.issuing._authorization_reverse_params", + False, + ), + "AuthorizationUpdateParams": ( + "stripe.params.issuing._authorization_update_params", + False, + ), + "CardCreateParams": ("stripe.params.issuing._card_create_params", False), + "CardCreateParamsPin": ( + "stripe.params.issuing._card_create_params", + False, + ), + "CardCreateParamsShipping": ( + "stripe.params.issuing._card_create_params", + False, + ), + "CardCreateParamsShippingAddress": ( + "stripe.params.issuing._card_create_params", + False, + ), + "CardCreateParamsShippingAddressValidation": ( + "stripe.params.issuing._card_create_params", + False, + ), + "CardCreateParamsShippingCustoms": ( + "stripe.params.issuing._card_create_params", + False, + ), + "CardCreateParamsSpendingControls": ( + "stripe.params.issuing._card_create_params", + False, + ), + "CardCreateParamsSpendingControlsSpendingLimit": ( + "stripe.params.issuing._card_create_params", + False, + ), + "CardDeliverCardParams": ( + "stripe.params.issuing._card_deliver_card_params", + False, + ), + "CardFailCardParams": ( + "stripe.params.issuing._card_fail_card_params", + False, + ), + "CardListParams": ("stripe.params.issuing._card_list_params", False), + "CardListParamsCreated": ( + "stripe.params.issuing._card_list_params", + False, + ), + "CardModifyParams": ("stripe.params.issuing._card_modify_params", False), + "CardModifyParamsPin": ( + "stripe.params.issuing._card_modify_params", + False, + ), + "CardModifyParamsShipping": ( + "stripe.params.issuing._card_modify_params", + False, + ), + "CardModifyParamsShippingAddress": ( + "stripe.params.issuing._card_modify_params", + False, + ), + "CardModifyParamsShippingAddressValidation": ( + "stripe.params.issuing._card_modify_params", + False, + ), + "CardModifyParamsShippingCustoms": ( + "stripe.params.issuing._card_modify_params", + False, + ), + "CardModifyParamsSpendingControls": ( + "stripe.params.issuing._card_modify_params", + False, + ), + "CardModifyParamsSpendingControlsSpendingLimit": ( + "stripe.params.issuing._card_modify_params", + False, + ), + "CardRetrieveParams": ( + "stripe.params.issuing._card_retrieve_params", + False, + ), + "CardReturnCardParams": ( + "stripe.params.issuing._card_return_card_params", + False, + ), + "CardShipCardParams": ( + "stripe.params.issuing._card_ship_card_params", + False, + ), + "CardSubmitCardParams": ( + "stripe.params.issuing._card_submit_card_params", + False, + ), + "CardUpdateParams": ("stripe.params.issuing._card_update_params", False), + "CardUpdateParamsPin": ( + "stripe.params.issuing._card_update_params", + False, + ), + "CardUpdateParamsShipping": ( + "stripe.params.issuing._card_update_params", + False, + ), + "CardUpdateParamsShippingAddress": ( + "stripe.params.issuing._card_update_params", + False, + ), + "CardUpdateParamsShippingAddressValidation": ( + "stripe.params.issuing._card_update_params", + False, + ), + "CardUpdateParamsShippingCustoms": ( + "stripe.params.issuing._card_update_params", + False, + ), + "CardUpdateParamsSpendingControls": ( + "stripe.params.issuing._card_update_params", + False, + ), + "CardUpdateParamsSpendingControlsSpendingLimit": ( + "stripe.params.issuing._card_update_params", + False, + ), + "CardholderCreateParams": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsBilling": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsBillingAddress": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsCompany": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsIndividual": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsIndividualCardIssuing": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsIndividualCardIssuingUserTermsAcceptance": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsIndividualDob": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsIndividualVerification": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsIndividualVerificationDocument": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsSpendingControls": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderCreateParamsSpendingControlsSpendingLimit": ( + "stripe.params.issuing._cardholder_create_params", + False, + ), + "CardholderListParams": ( + "stripe.params.issuing._cardholder_list_params", + False, + ), + "CardholderListParamsCreated": ( + "stripe.params.issuing._cardholder_list_params", + False, + ), + "CardholderModifyParams": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsBilling": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsBillingAddress": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsCompany": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsIndividual": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsIndividualCardIssuing": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsIndividualCardIssuingUserTermsAcceptance": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsIndividualDob": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsIndividualVerification": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsIndividualVerificationDocument": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsSpendingControls": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderModifyParamsSpendingControlsSpendingLimit": ( + "stripe.params.issuing._cardholder_modify_params", + False, + ), + "CardholderRetrieveParams": ( + "stripe.params.issuing._cardholder_retrieve_params", + False, + ), + "CardholderUpdateParams": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsBilling": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsBillingAddress": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsCompany": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsIndividual": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsIndividualCardIssuing": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsIndividualCardIssuingUserTermsAcceptance": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsIndividualDob": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsIndividualVerification": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsIndividualVerificationDocument": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsSpendingControls": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "CardholderUpdateParamsSpendingControlsSpendingLimit": ( + "stripe.params.issuing._cardholder_update_params", + False, + ), + "DisputeCreateParams": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidence": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceCanceled": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceDuplicate": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceFraudulent": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceMerchandiseNotAsDescribed": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceNoValidAuthorization": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceNotReceived": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceOther": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsEvidenceServiceNotAsDescribed": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeCreateParamsTreasury": ( + "stripe.params.issuing._dispute_create_params", + False, + ), + "DisputeListParams": ("stripe.params.issuing._dispute_list_params", False), + "DisputeListParamsCreated": ( + "stripe.params.issuing._dispute_list_params", + False, + ), + "DisputeModifyParams": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidence": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceCanceled": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceDuplicate": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceFraudulent": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceMerchandiseNotAsDescribed": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceNoValidAuthorization": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceNotReceived": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceOther": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeModifyParamsEvidenceServiceNotAsDescribed": ( + "stripe.params.issuing._dispute_modify_params", + False, + ), + "DisputeRetrieveParams": ( + "stripe.params.issuing._dispute_retrieve_params", + False, + ), + "DisputeSubmitParams": ( + "stripe.params.issuing._dispute_submit_params", + False, + ), + "DisputeUpdateParams": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidence": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceCanceled": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceDuplicate": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceFraudulent": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceMerchandiseNotAsDescribed": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceNoValidAuthorization": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceNotReceived": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceOther": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "DisputeUpdateParamsEvidenceServiceNotAsDescribed": ( + "stripe.params.issuing._dispute_update_params", + False, + ), + "PersonalizationDesignActivateParams": ( + "stripe.params.issuing._personalization_design_activate_params", + False, + ), + "PersonalizationDesignCreateParams": ( + "stripe.params.issuing._personalization_design_create_params", + False, + ), + "PersonalizationDesignCreateParamsCarrierText": ( + "stripe.params.issuing._personalization_design_create_params", + False, + ), + "PersonalizationDesignCreateParamsPreferences": ( + "stripe.params.issuing._personalization_design_create_params", + False, + ), + "PersonalizationDesignDeactivateParams": ( + "stripe.params.issuing._personalization_design_deactivate_params", + False, + ), + "PersonalizationDesignListParams": ( + "stripe.params.issuing._personalization_design_list_params", + False, + ), + "PersonalizationDesignListParamsPreferences": ( + "stripe.params.issuing._personalization_design_list_params", + False, + ), + "PersonalizationDesignModifyParams": ( + "stripe.params.issuing._personalization_design_modify_params", + False, + ), + "PersonalizationDesignModifyParamsCarrierText": ( + "stripe.params.issuing._personalization_design_modify_params", + False, + ), + "PersonalizationDesignModifyParamsPreferences": ( + "stripe.params.issuing._personalization_design_modify_params", + False, + ), + "PersonalizationDesignRejectParams": ( + "stripe.params.issuing._personalization_design_reject_params", + False, + ), + "PersonalizationDesignRejectParamsRejectionReasons": ( + "stripe.params.issuing._personalization_design_reject_params", + False, + ), + "PersonalizationDesignRetrieveParams": ( + "stripe.params.issuing._personalization_design_retrieve_params", + False, + ), + "PersonalizationDesignUpdateParams": ( + "stripe.params.issuing._personalization_design_update_params", + False, + ), + "PersonalizationDesignUpdateParamsCarrierText": ( + "stripe.params.issuing._personalization_design_update_params", + False, + ), + "PersonalizationDesignUpdateParamsPreferences": ( + "stripe.params.issuing._personalization_design_update_params", + False, + ), + "PhysicalBundleListParams": ( + "stripe.params.issuing._physical_bundle_list_params", + False, + ), + "PhysicalBundleRetrieveParams": ( + "stripe.params.issuing._physical_bundle_retrieve_params", + False, + ), + "TokenListParams": ("stripe.params.issuing._token_list_params", False), + "TokenListParamsCreated": ( + "stripe.params.issuing._token_list_params", + False, + ), + "TokenModifyParams": ("stripe.params.issuing._token_modify_params", False), + "TokenRetrieveParams": ( + "stripe.params.issuing._token_retrieve_params", + False, + ), + "TokenUpdateParams": ("stripe.params.issuing._token_update_params", False), + "TransactionCreateForceCaptureParams": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsMerchantData": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetails": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleet": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFlight": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFuel": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsLodging": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsReceipt": ( + "stripe.params.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateUnlinkedRefundParams": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsMerchantData": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetails": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt": ( + "stripe.params.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionListParams": ( + "stripe.params.issuing._transaction_list_params", + False, + ), + "TransactionListParamsCreated": ( + "stripe.params.issuing._transaction_list_params", + False, + ), + "TransactionModifyParams": ( + "stripe.params.issuing._transaction_modify_params", + False, + ), + "TransactionRefundParams": ( + "stripe.params.issuing._transaction_refund_params", + False, + ), + "TransactionRetrieveParams": ( + "stripe.params.issuing._transaction_retrieve_params", + False, + ), + "TransactionUpdateParams": ( + "stripe.params.issuing._transaction_update_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..bfe65e7c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_approve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_approve_params.cpython-312.pyc new file mode 100644 index 00000000..f98bb5ae Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_approve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc new file mode 100644 index 00000000..b9895dff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_create_params.cpython-312.pyc new file mode 100644 index 00000000..11a99523 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_decline_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_decline_params.cpython-312.pyc new file mode 100644 index 00000000..8c9ba351 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_decline_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc new file mode 100644 index 00000000..caa55f98 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc new file mode 100644 index 00000000..8b9ae37e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc new file mode 100644 index 00000000..3c6dee2d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_list_params.cpython-312.pyc new file mode 100644 index 00000000..a4c7dbd9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_modify_params.cpython-312.pyc new file mode 100644 index 00000000..0a1a309e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc new file mode 100644 index 00000000..cc353ba0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..d77a583d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc new file mode 100644 index 00000000..735ad0fc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_update_params.cpython-312.pyc new file mode 100644 index 00000000..200bbc2c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_authorization_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_create_params.cpython-312.pyc new file mode 100644 index 00000000..4531e54e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc new file mode 100644 index 00000000..a7cea76e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc new file mode 100644 index 00000000..7f047740 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_list_params.cpython-312.pyc new file mode 100644 index 00000000..48684392 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_modify_params.cpython-312.pyc new file mode 100644 index 00000000..782f51c3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..3c7aa64b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_return_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_return_card_params.cpython-312.pyc new file mode 100644 index 00000000..cba2776c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_return_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc new file mode 100644 index 00000000..1741e01d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc new file mode 100644 index 00000000..5ac860c8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_update_params.cpython-312.pyc new file mode 100644 index 00000000..36c7c6f8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_card_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_create_params.cpython-312.pyc new file mode 100644 index 00000000..b605ac98 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_list_params.cpython-312.pyc new file mode 100644 index 00000000..e8cdbff7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_modify_params.cpython-312.pyc new file mode 100644 index 00000000..e0bd7444 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..1052b1dd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_update_params.cpython-312.pyc new file mode 100644 index 00000000..75cbe4ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_cardholder_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_create_params.cpython-312.pyc new file mode 100644 index 00000000..54ed56d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_list_params.cpython-312.pyc new file mode 100644 index 00000000..a1acf5fb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_modify_params.cpython-312.pyc new file mode 100644 index 00000000..93cfd93a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..94d33acb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_submit_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_submit_params.cpython-312.pyc new file mode 100644 index 00000000..fecec2ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_submit_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_update_params.cpython-312.pyc new file mode 100644 index 00000000..9a5da2d8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_dispute_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc new file mode 100644 index 00000000..7af8abe7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_create_params.cpython-312.pyc new file mode 100644 index 00000000..b61c1cd8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc new file mode 100644 index 00000000..cd6a64d3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_list_params.cpython-312.pyc new file mode 100644 index 00000000..84a004e4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_modify_params.cpython-312.pyc new file mode 100644 index 00000000..0fec319b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc new file mode 100644 index 00000000..ea6603f6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..9d1a4ea6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_update_params.cpython-312.pyc new file mode 100644 index 00000000..cf129408 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_personalization_design_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_physical_bundle_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_physical_bundle_list_params.cpython-312.pyc new file mode 100644 index 00000000..25f72632 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_physical_bundle_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_physical_bundle_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_physical_bundle_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..14d155c6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_physical_bundle_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_list_params.cpython-312.pyc new file mode 100644 index 00000000..44578ac7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_modify_params.cpython-312.pyc new file mode 100644 index 00000000..49155214 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..35e9460d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_update_params.cpython-312.pyc new file mode 100644 index 00000000..12b26fa8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_token_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc new file mode 100644 index 00000000..c21951cb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc new file mode 100644 index 00000000..78f1d783 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..47e3a4ad Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_modify_params.cpython-312.pyc new file mode 100644 index 00000000..a30e342a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc new file mode 100644 index 00000000..57f506ef Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..11529dd7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_update_params.cpython-312.pyc new file mode 100644 index 00000000..6c31330e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/__pycache__/_transaction_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_approve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_approve_params.py new file mode 100644 index 00000000..f21d353f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_approve_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class AuthorizationApproveParams(RequestOptions): + amount: NotRequired[int] + """ + If the authorization's `pending_request.is_amount_controllable` property is `true`, you may provide this value to control how much to hold for the authorization. Must be positive (use [`decline`](https://stripe.com/docs/api/issuing/authorizations/decline) to decline an authorization request). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_capture_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_capture_params.py new file mode 100644 index 00000000..79049f77 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_capture_params.py @@ -0,0 +1,273 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationCaptureParams(RequestOptions): + capture_amount: NotRequired[int] + """ + The amount to capture from the authorization. If not provided, the full amount of the authorization will be captured. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + close_authorization: NotRequired[bool] + """ + Whether to close the authorization after capture. Defaults to true. Set to false to enable multi-capture flows. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + purchase_details: NotRequired["AuthorizationCaptureParamsPurchaseDetails"] + """ + Additional purchase information that is optionally provided by the merchant. + """ + + +class AuthorizationCaptureParamsPurchaseDetails(TypedDict): + fleet: NotRequired["AuthorizationCaptureParamsPurchaseDetailsFleet"] + """ + Fleet-specific information for transactions using Fleet cards. + """ + flight: NotRequired["AuthorizationCaptureParamsPurchaseDetailsFlight"] + """ + Information about the flight that was purchased with this transaction. + """ + fuel: NotRequired["AuthorizationCaptureParamsPurchaseDetailsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + lodging: NotRequired["AuthorizationCaptureParamsPurchaseDetailsLodging"] + """ + Information about lodging that was purchased with this transaction. + """ + receipt: NotRequired[ + List["AuthorizationCaptureParamsPurchaseDetailsReceipt"] + ] + """ + The line items in the purchase. + """ + reference: NotRequired[str] + """ + A merchant-specific order number. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData( + TypedDict, +): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown( + TypedDict, +): + fuel: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax( + TypedDict, +): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFlight(TypedDict): + departure_at: NotRequired[int] + """ + The time that the flight departed. + """ + passenger_name: NotRequired[str] + """ + The name of the passenger. + """ + refundable: NotRequired[bool] + """ + Whether the ticket is refundable. + """ + segments: NotRequired[ + List["AuthorizationCaptureParamsPurchaseDetailsFlightSegment"] + ] + """ + The legs of the trip. + """ + travel_agency: NotRequired[str] + """ + The travel agency that issued the ticket. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFlightSegment(TypedDict): + arrival_airport_code: NotRequired[str] + """ + The three-letter IATA airport code of the flight's destination. + """ + carrier: NotRequired[str] + """ + The airline carrier code. + """ + departure_airport_code: NotRequired[str] + """ + The three-letter IATA airport code that the flight departed from. + """ + flight_number: NotRequired[str] + """ + The flight number. + """ + service_class: NotRequired[str] + """ + The flight's service class. + """ + stopover_allowed: NotRequired[bool] + """ + Whether a stopover is allowed on this flight. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsLodging(TypedDict): + check_in_at: NotRequired[int] + """ + The time of checking into the lodging. + """ + nights: NotRequired[int] + """ + The number of nights stayed at the lodging. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsReceipt(TypedDict): + description: NotRequired[str] + quantity: NotRequired[str] + total: NotRequired[int] + unit_cost: NotRequired[int] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_create_params.py new file mode 100644 index 00000000..c5831f78 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_create_params.py @@ -0,0 +1,674 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationCreateParams(RequestOptions): + amount: NotRequired[int] + """ + The total amount to attempt to authorize. This amount is in the provided currency, or defaults to the card's currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + amount_details: NotRequired["AuthorizationCreateParamsAmountDetails"] + """ + Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + authorization_method: NotRequired[ + Literal["chip", "contactless", "keyed_in", "online", "swipe"] + ] + """ + How the card details were provided. Defaults to online. + """ + card: str + """ + Card associated with this authorization. + """ + currency: NotRequired[str] + """ + The currency of the authorization. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fleet: NotRequired["AuthorizationCreateParamsFleet"] + """ + Fleet-specific information for authorizations using Fleet cards. + """ + fraud_disputability_likelihood: NotRequired[ + Literal["neutral", "unknown", "very_likely", "very_unlikely"] + ] + """ + Probability that this transaction can be disputed in the event of fraud. Assessed by comparing the characteristics of the authorization to card network rules. + """ + fuel: NotRequired["AuthorizationCreateParamsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + is_amount_controllable: NotRequired[bool] + """ + If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization. + """ + merchant_amount: NotRequired[int] + """ + The total amount to attempt to authorize. This amount is in the provided merchant currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + merchant_currency: NotRequired[str] + """ + The currency of the authorization. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + merchant_data: NotRequired["AuthorizationCreateParamsMerchantData"] + """ + Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened. + """ + network_data: NotRequired["AuthorizationCreateParamsNetworkData"] + """ + Details about the authorization, such as identifiers, set by the card network. + """ + risk_assessment: NotRequired["AuthorizationCreateParamsRiskAssessment"] + """ + Stripe's assessment of the fraud risk for this authorization. + """ + verification_data: NotRequired["AuthorizationCreateParamsVerificationData"] + """ + Verifications that Stripe performed on information that the cardholder provided to the merchant. + """ + wallet: NotRequired[Literal["apple_pay", "google_pay", "samsung_pay"]] + """ + The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized. + """ + + +class AuthorizationCreateParamsAmountDetails(TypedDict): + atm_fee: NotRequired[int] + """ + The ATM withdrawal fee. + """ + cashback_amount: NotRequired[int] + """ + The amount of cash requested by the cardholder. + """ + + +class AuthorizationCreateParamsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "AuthorizationCreateParamsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "AuthorizationCreateParamsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class AuthorizationCreateParamsFleetCardholderPromptData(TypedDict): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdown(TypedDict): + fuel: NotRequired["AuthorizationCreateParamsFleetReportedBreakdownFuel"] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "AuthorizationCreateParamsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired["AuthorizationCreateParamsFleetReportedBreakdownTax"] + """ + Information about tax included in this transaction. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdownFuel(TypedDict): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdownNonFuel(TypedDict): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdownTax(TypedDict): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class AuthorizationCreateParamsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class AuthorizationCreateParamsMerchantData(TypedDict): + category: NotRequired[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + city: NotRequired[str] + """ + City where the seller is located + """ + country: NotRequired[str] + """ + Country where the seller is located + """ + name: NotRequired[str] + """ + Name of the seller + """ + network_id: NotRequired[str] + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: NotRequired[str] + """ + Postal code where the seller is located + """ + state: NotRequired[str] + """ + State where the seller is located + """ + terminal_id: NotRequired[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: NotRequired[str] + """ + URL provided by the merchant on a 3DS request + """ + + +class AuthorizationCreateParamsNetworkData(TypedDict): + acquiring_institution_id: NotRequired[str] + """ + Identifier assigned to the acquirer by the card network. + """ + + +class AuthorizationCreateParamsRiskAssessment(TypedDict): + card_testing_risk: NotRequired[ + "AuthorizationCreateParamsRiskAssessmentCardTestingRisk" + ] + """ + Stripe's assessment of this authorization's likelihood of being card testing activity. + """ + merchant_dispute_risk: NotRequired[ + "AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk" + ] + """ + The dispute risk of the merchant (the seller on a purchase) on an authorization based on all Stripe Issuing activity. + """ + + +class AuthorizationCreateParamsRiskAssessmentCardTestingRisk(TypedDict): + invalid_account_number_decline_rate_past_hour: NotRequired[int] + """ + The % of declines due to a card number not existing in the past hour, taking place at the same merchant. Higher rates correspond to a greater probability of card testing activity, meaning bad actors may be attempting different card number combinations to guess a correct one. Takes on values between 0 and 100. + """ + invalid_credentials_decline_rate_past_hour: NotRequired[int] + """ + The % of declines due to incorrect verification data (like CVV or expiry) in the past hour, taking place at the same merchant. Higher rates correspond to a greater probability of bad actors attempting to utilize valid card credentials at merchants with verification requirements. Takes on values between 0 and 100. + """ + risk_level: Literal[ + "elevated", "highest", "low", "normal", "not_assessed", "unknown" + ] + """ + The likelihood that this authorization is associated with card testing activity. This is assessed by evaluating decline activity over the last hour. + """ + + +class AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk(TypedDict): + dispute_rate: NotRequired[int] + """ + The dispute rate observed across all Stripe Issuing authorizations for this merchant. For example, a value of 50 means 50% of authorizations from this merchant on Stripe Issuing have resulted in a dispute. Higher values mean a higher likelihood the authorization is disputed. Takes on values between 0 and 100. + """ + risk_level: Literal[ + "elevated", "highest", "low", "normal", "not_assessed", "unknown" + ] + """ + The likelihood that authorizations from this merchant will result in a dispute based on their history on Stripe Issuing. + """ + + +class AuthorizationCreateParamsVerificationData(TypedDict): + address_line1_check: NotRequired[ + Literal["match", "mismatch", "not_provided"] + ] + """ + Whether the cardholder provided an address first line and if it matched the cardholder's `billing.address.line1`. + """ + address_postal_code_check: NotRequired[ + Literal["match", "mismatch", "not_provided"] + ] + """ + Whether the cardholder provided a postal code and if it matched the cardholder's `billing.address.postal_code`. + """ + authentication_exemption: NotRequired[ + "AuthorizationCreateParamsVerificationDataAuthenticationExemption" + ] + """ + The exemption applied to this authorization. + """ + cvc_check: NotRequired[Literal["match", "mismatch", "not_provided"]] + """ + Whether the cardholder provided a CVC and if it matched Stripe's record. + """ + expiry_check: NotRequired[Literal["match", "mismatch", "not_provided"]] + """ + Whether the cardholder provided an expiry date and if it matched Stripe's record. + """ + three_d_secure: NotRequired[ + "AuthorizationCreateParamsVerificationDataThreeDSecure" + ] + """ + 3D Secure details. + """ + + +class AuthorizationCreateParamsVerificationDataAuthenticationExemption( + TypedDict, +): + claimed_by: Literal["acquirer", "issuer"] + """ + The entity that requested the exemption, either the acquiring merchant or the Issuing user. + """ + type: Literal[ + "low_value_transaction", "transaction_risk_analysis", "unknown" + ] + """ + The specific exemption claimed for this authorization. + """ + + +class AuthorizationCreateParamsVerificationDataThreeDSecure(TypedDict): + result: Literal[ + "attempt_acknowledged", "authenticated", "failed", "required" + ] + """ + The outcome of the 3D Secure authentication request. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_decline_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_decline_params.py new file mode 100644 index 00000000..d746a8a1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_decline_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class AuthorizationDeclineParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_expire_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_expire_params.py new file mode 100644 index 00000000..46a5aa04 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_expire_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AuthorizationExpireParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_finalize_amount_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_finalize_amount_params.py new file mode 100644 index 00000000..a15604fa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_finalize_amount_params.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationFinalizeAmountParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + final_amount: int + """ + The final authorization amount that will be captured by the merchant. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + fleet: NotRequired["AuthorizationFinalizeAmountParamsFleet"] + """ + Fleet-specific information for authorizations using Fleet cards. + """ + fuel: NotRequired["AuthorizationFinalizeAmountParamsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + + +class AuthorizationFinalizeAmountParamsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class AuthorizationFinalizeAmountParamsFleetCardholderPromptData(TypedDict): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdown(TypedDict): + fuel: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel(TypedDict): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel( + TypedDict +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax(TypedDict): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class AuthorizationFinalizeAmountParamsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_increment_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_increment_params.py new file mode 100644 index 00000000..30fe7ede --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_increment_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AuthorizationIncrementParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + increment_amount: int + """ + The amount to increment the authorization by. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + is_amount_controllable: NotRequired[bool] + """ + If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_list_params.py new file mode 100644 index 00000000..ccea3363 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_list_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationListParams(RequestOptions): + card: NotRequired[str] + """ + Only return authorizations that belong to the given card. + """ + cardholder: NotRequired[str] + """ + Only return authorizations that belong to the given cardholder. + """ + created: NotRequired["AuthorizationListParamsCreated|int"] + """ + Only return authorizations that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["closed", "expired", "pending", "reversed"]] + """ + Only return authorizations with the given status. One of `pending`, `closed`, or `reversed`. + """ + + +class AuthorizationListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_modify_params.py new file mode 100644 index 00000000..af062982 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_modify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class AuthorizationModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_respond_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_respond_params.py new file mode 100644 index 00000000..885fdda9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_respond_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AuthorizationRespondParams(RequestOptions): + confirmed: bool + """ + Whether to simulate the user confirming that the transaction was legitimate (true) or telling Stripe that it was fraudulent (false). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_retrieve_params.py new file mode 100644 index 00000000..58e557b8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AuthorizationRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_reverse_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_reverse_params.py new file mode 100644 index 00000000..5788d84f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_reverse_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class AuthorizationReverseParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + reverse_amount: NotRequired[int] + """ + The amount to reverse from the authorization. If not provided, the full amount of the authorization will be reversed. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_update_params.py new file mode 100644 index 00000000..6734372b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_authorization_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_create_params.py new file mode 100644 index 00000000..6b5059c9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_create_params.py @@ -0,0 +1,1103 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardCreateParams(RequestOptions): + cardholder: NotRequired[str] + """ + The [Cardholder](https://stripe.com/docs/api#issuing_cardholder_object) object with which the card will be associated. + """ + currency: str + """ + The currency for the card. + """ + exp_month: NotRequired[int] + """ + The desired expiration month (1-12) for this card if [specifying a custom expiration date](https://docs.stripe.com/issuing/cards/virtual/issue-cards?testing-method=with-code#exp-dates). + """ + exp_year: NotRequired[int] + """ + The desired 4-digit expiration year for this card if [specifying a custom expiration date](https://docs.stripe.com/issuing/cards/virtual/issue-cards?testing-method=with-code#exp-dates). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: NotRequired[str] + """ + The new financial account ID the card will be associated with. This field allows a card to be reassigned to a different financial account. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + personalization_design: NotRequired[str] + """ + The personalization design object belonging to this card. + """ + pin: NotRequired["CardCreateParamsPin"] + """ + The desired PIN for this card. + """ + replacement_for: NotRequired[str] + """ + The card this is meant to be a replacement for (if any). + """ + replacement_reason: NotRequired[ + Literal["damaged", "expired", "lost", "stolen"] + ] + """ + If `replacement_for` is specified, this should indicate why that card is being replaced. + """ + second_line: NotRequired["Literal['']|str"] + """ + The second line to print on the card. Max length: 24 characters. + """ + shipping: NotRequired["CardCreateParamsShipping"] + """ + The address where the card will be shipped. + """ + spending_controls: NotRequired["CardCreateParamsSpendingControls"] + """ + Rules that control spending for this card. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details. + """ + status: NotRequired[Literal["active", "inactive"]] + """ + Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`. + """ + type: Literal["physical", "virtual"] + """ + The type of card to issue. Possible values are `physical` or `virtual`. + """ + + +class CardCreateParamsPin(TypedDict): + encrypted_number: NotRequired[str] + """ + The card's desired new PIN, encrypted under Stripe's public key. + """ + + +class CardCreateParamsShipping(TypedDict): + address: "CardCreateParamsShippingAddress" + """ + The address that the card is shipped to. + """ + address_validation: NotRequired[ + "CardCreateParamsShippingAddressValidation" + ] + """ + Address validation settings. + """ + customs: NotRequired["CardCreateParamsShippingCustoms"] + """ + Customs information for the shipment. + """ + name: str + """ + The name printed on the shipping label when shipping the card. + """ + phone_number: NotRequired[str] + """ + Phone number of the recipient of the shipment. + """ + require_signature: NotRequired[bool] + """ + Whether a signature is required for card delivery. + """ + service: NotRequired[Literal["express", "priority", "standard"]] + """ + Shipment service. + """ + type: NotRequired[Literal["bulk", "individual"]] + """ + Packaging options. + """ + + +class CardCreateParamsShippingAddress(TypedDict): + city: str + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: str + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CardCreateParamsShippingAddressValidation(TypedDict): + mode: Literal[ + "disabled", "normalization_only", "validation_and_normalization" + ] + """ + The address validation capabilities to use. + """ + + +class CardCreateParamsShippingCustoms(TypedDict): + eori_number: NotRequired[str] + """ + The Economic Operators Registration and Identification (EORI) number to use for Customs. Required for bulk shipments to Europe. + """ + + +class CardCreateParamsSpendingControls(TypedDict): + allowed_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: NotRequired[ + List["CardCreateParamsSpendingControlsSpendingLimit"] + ] + """ + Limit spending with amount-based rules that apply across any cards this card replaced (i.e., its `replacement_for` card and _that_ card's `replacement_for` card, up the chain). + """ + + +class CardCreateParamsSpendingControlsSpendingLimit(TypedDict): + amount: int + """ + Maximum amount allowed to spend per interval. + """ + categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", "daily", "monthly", "per_authorization", "weekly", "yearly" + ] + """ + Interval (or event) to which the amount applies. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_deliver_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_deliver_card_params.py new file mode 100644 index 00000000..4c588313 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_deliver_card_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CardDeliverCardParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_fail_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_fail_card_params.py new file mode 100644 index 00000000..5ef9da9a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_fail_card_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CardFailCardParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_list_params.py new file mode 100644 index 00000000..ebc0d470 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_list_params.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardListParams(RequestOptions): + cardholder: NotRequired[str] + """ + Only return cards belonging to the Cardholder with the provided ID. + """ + created: NotRequired["CardListParamsCreated|int"] + """ + Only return cards that were issued during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + exp_month: NotRequired[int] + """ + Only return cards that have the given expiration month. + """ + exp_year: NotRequired[int] + """ + Only return cards that have the given expiration year. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + last4: NotRequired[str] + """ + Only return cards that have the given last four digits. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + personalization_design: NotRequired[str] + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "canceled", "inactive"]] + """ + Only return cards that have the given status. One of `active`, `inactive`, or `canceled`. + """ + type: NotRequired[Literal["physical", "virtual"]] + """ + Only return cards that have the given type. One of `virtual` or `physical`. + """ + + +class CardListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_modify_params.py new file mode 100644 index 00000000..f635f349 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_modify_params.py @@ -0,0 +1,1066 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardModifyParams(RequestOptions): + cancellation_reason: NotRequired[Literal["lost", "stolen"]] + """ + Reason why the `status` of this card is `canceled`. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + personalization_design: NotRequired[str] + pin: NotRequired["CardModifyParamsPin"] + """ + The desired new PIN for this card. + """ + shipping: NotRequired["CardModifyParamsShipping"] + """ + Updated shipping information for the card. + """ + spending_controls: NotRequired["CardModifyParamsSpendingControls"] + """ + Rules that control spending for this card. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details. + """ + status: NotRequired[Literal["active", "canceled", "inactive"]] + """ + Dictates whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`. If this card is being canceled because it was lost or stolen, this information should be provided as `cancellation_reason`. + """ + + +class CardModifyParamsPin(TypedDict): + encrypted_number: NotRequired[str] + """ + The card's desired new PIN, encrypted under Stripe's public key. + """ + + +class CardModifyParamsShipping(TypedDict): + address: "CardModifyParamsShippingAddress" + """ + The address that the card is shipped to. + """ + address_validation: NotRequired[ + "CardModifyParamsShippingAddressValidation" + ] + """ + Address validation settings. + """ + customs: NotRequired["CardModifyParamsShippingCustoms"] + """ + Customs information for the shipment. + """ + name: str + """ + The name printed on the shipping label when shipping the card. + """ + phone_number: NotRequired[str] + """ + Phone number of the recipient of the shipment. + """ + require_signature: NotRequired[bool] + """ + Whether a signature is required for card delivery. + """ + service: NotRequired[Literal["express", "priority", "standard"]] + """ + Shipment service. + """ + type: NotRequired[Literal["bulk", "individual"]] + """ + Packaging options. + """ + + +class CardModifyParamsShippingAddress(TypedDict): + city: str + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: str + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CardModifyParamsShippingAddressValidation(TypedDict): + mode: Literal[ + "disabled", "normalization_only", "validation_and_normalization" + ] + """ + The address validation capabilities to use. + """ + + +class CardModifyParamsShippingCustoms(TypedDict): + eori_number: NotRequired[str] + """ + The Economic Operators Registration and Identification (EORI) number to use for Customs. Required for bulk shipments to Europe. + """ + + +class CardModifyParamsSpendingControls(TypedDict): + allowed_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: NotRequired[ + List["CardModifyParamsSpendingControlsSpendingLimit"] + ] + """ + Limit spending with amount-based rules that apply across any cards this card replaced (i.e., its `replacement_for` card and _that_ card's `replacement_for` card, up the chain). + """ + + +class CardModifyParamsSpendingControlsSpendingLimit(TypedDict): + amount: int + """ + Maximum amount allowed to spend per interval. + """ + categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", "daily", "monthly", "per_authorization", "weekly", "yearly" + ] + """ + Interval (or event) to which the amount applies. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_retrieve_params.py new file mode 100644 index 00000000..4c3afad9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CardRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_return_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_return_card_params.py new file mode 100644 index 00000000..1f18e8e1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_return_card_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CardReturnCardParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_ship_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_ship_card_params.py new file mode 100644 index 00000000..6071008d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_ship_card_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CardShipCardParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_submit_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_submit_card_params.py new file mode 100644 index 00000000..d3164669 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_submit_card_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CardSubmitCardParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_update_params.py new file mode 100644 index 00000000..74a6a9d9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_card_update_params.py @@ -0,0 +1,1065 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardUpdateParams(TypedDict): + cancellation_reason: NotRequired[Literal["lost", "stolen"]] + """ + Reason why the `status` of this card is `canceled`. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + personalization_design: NotRequired[str] + pin: NotRequired["CardUpdateParamsPin"] + """ + The desired new PIN for this card. + """ + shipping: NotRequired["CardUpdateParamsShipping"] + """ + Updated shipping information for the card. + """ + spending_controls: NotRequired["CardUpdateParamsSpendingControls"] + """ + Rules that control spending for this card. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details. + """ + status: NotRequired[Literal["active", "canceled", "inactive"]] + """ + Dictates whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`. If this card is being canceled because it was lost or stolen, this information should be provided as `cancellation_reason`. + """ + + +class CardUpdateParamsPin(TypedDict): + encrypted_number: NotRequired[str] + """ + The card's desired new PIN, encrypted under Stripe's public key. + """ + + +class CardUpdateParamsShipping(TypedDict): + address: "CardUpdateParamsShippingAddress" + """ + The address that the card is shipped to. + """ + address_validation: NotRequired[ + "CardUpdateParamsShippingAddressValidation" + ] + """ + Address validation settings. + """ + customs: NotRequired["CardUpdateParamsShippingCustoms"] + """ + Customs information for the shipment. + """ + name: str + """ + The name printed on the shipping label when shipping the card. + """ + phone_number: NotRequired[str] + """ + Phone number of the recipient of the shipment. + """ + require_signature: NotRequired[bool] + """ + Whether a signature is required for card delivery. + """ + service: NotRequired[Literal["express", "priority", "standard"]] + """ + Shipment service. + """ + type: NotRequired[Literal["bulk", "individual"]] + """ + Packaging options. + """ + + +class CardUpdateParamsShippingAddress(TypedDict): + city: str + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: str + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CardUpdateParamsShippingAddressValidation(TypedDict): + mode: Literal[ + "disabled", "normalization_only", "validation_and_normalization" + ] + """ + The address validation capabilities to use. + """ + + +class CardUpdateParamsShippingCustoms(TypedDict): + eori_number: NotRequired[str] + """ + The Economic Operators Registration and Identification (EORI) number to use for Customs. Required for bulk shipments to Europe. + """ + + +class CardUpdateParamsSpendingControls(TypedDict): + allowed_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: NotRequired[ + List["CardUpdateParamsSpendingControlsSpendingLimit"] + ] + """ + Limit spending with amount-based rules that apply across any cards this card replaced (i.e., its `replacement_for` card and _that_ card's `replacement_for` card, up the chain). + """ + + +class CardUpdateParamsSpendingControlsSpendingLimit(TypedDict): + amount: int + """ + Maximum amount allowed to spend per interval. + """ + categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", "daily", "monthly", "per_authorization", "weekly", "yearly" + ] + """ + Interval (or event) to which the amount applies. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_create_params.py new file mode 100644 index 00000000..a5caa9e0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_create_params.py @@ -0,0 +1,1128 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardholderCreateParams(RequestOptions): + billing: "CardholderCreateParamsBilling" + """ + The cardholder's billing address. + """ + company: NotRequired["CardholderCreateParamsCompany"] + """ + Additional information about a `company` cardholder. + """ + email: NotRequired[str] + """ + The cardholder's email address. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + individual: NotRequired["CardholderCreateParamsIndividual"] + """ + Additional information about an `individual` cardholder. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The cardholder's name. This will be printed on cards issued to them. The maximum length of this field is 24 characters. This field cannot contain any special characters or numbers. + """ + phone_number: NotRequired[str] + """ + The cardholder's phone number. This will be transformed to [E.164](https://en.wikipedia.org/wiki/E.164) if it is not provided in that format already. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure#when-is-3d-secure-applied) for more details. + """ + preferred_locales: NotRequired[List[Literal["de", "en", "es", "fr", "it"]]] + """ + The cardholder's preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`. + This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder. + """ + spending_controls: NotRequired["CardholderCreateParamsSpendingControls"] + """ + Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details. + """ + status: NotRequired[Literal["active", "inactive"]] + """ + Specifies whether to permit authorizations on this cardholder's cards. Defaults to `active`. + """ + type: NotRequired[Literal["company", "individual"]] + """ + One of `individual` or `company`. See [Choose a cardholder type](https://stripe.com/docs/issuing/other/choose-cardholder) for more details. + """ + + +class CardholderCreateParamsBilling(TypedDict): + address: "CardholderCreateParamsBillingAddress" + """ + The cardholder's billing address. + """ + + +class CardholderCreateParamsBillingAddress(TypedDict): + city: str + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: str + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CardholderCreateParamsCompany(TypedDict): + tax_id: NotRequired[str] + """ + The entity's business ID number. + """ + + +class CardholderCreateParamsIndividual(TypedDict): + card_issuing: NotRequired["CardholderCreateParamsIndividualCardIssuing"] + """ + Information related to the card_issuing program for this cardholder. + """ + dob: NotRequired["CardholderCreateParamsIndividualDob"] + """ + The date of birth of this cardholder. Cardholders must be older than 13 years old. + """ + first_name: NotRequired[str] + """ + The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + last_name: NotRequired[str] + """ + The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + verification: NotRequired["CardholderCreateParamsIndividualVerification"] + """ + Government-issued ID document for this cardholder. + """ + + +class CardholderCreateParamsIndividualCardIssuing(TypedDict): + user_terms_acceptance: NotRequired[ + "CardholderCreateParamsIndividualCardIssuingUserTermsAcceptance" + ] + """ + Information about cardholder acceptance of Celtic [Authorized User Terms](https://stripe.com/docs/issuing/cards#accept-authorized-user-terms). Required for cards backed by a Celtic program. + """ + + +class CardholderCreateParamsIndividualCardIssuingUserTermsAcceptance( + TypedDict +): + date: NotRequired[int] + """ + The Unix timestamp marking when the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users. + """ + ip: NotRequired[str] + """ + The IP address from which the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the cardholder accepted the Authorized User Terms. + """ + + +class CardholderCreateParamsIndividualDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class CardholderCreateParamsIndividualVerification(TypedDict): + document: NotRequired[ + "CardholderCreateParamsIndividualVerificationDocument" + ] + """ + An identifying document, either a passport or local ID card. + """ + + +class CardholderCreateParamsIndividualVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + + +class CardholderCreateParamsSpendingControls(TypedDict): + allowed_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: NotRequired[ + List["CardholderCreateParamsSpendingControlsSpendingLimit"] + ] + """ + Limit spending with amount-based rules that apply across this cardholder's cards. + """ + spending_limits_currency: NotRequired[str] + """ + Currency of amounts within `spending_limits`. Defaults to your merchant country's currency. + """ + + +class CardholderCreateParamsSpendingControlsSpendingLimit(TypedDict): + amount: int + """ + Maximum amount allowed to spend per interval. + """ + categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", "daily", "monthly", "per_authorization", "weekly", "yearly" + ] + """ + Interval (or event) to which the amount applies. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_list_params.py new file mode 100644 index 00000000..00fc05d2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_list_params.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardholderListParams(RequestOptions): + created: NotRequired["CardholderListParamsCreated|int"] + """ + Only return cardholders that were created during the given date interval. + """ + email: NotRequired[str] + """ + Only return cardholders that have the given email address. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + phone_number: NotRequired[str] + """ + Only return cardholders that have the given phone number. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "blocked", "inactive"]] + """ + Only return cardholders that have the given status. One of `active`, `inactive`, or `blocked`. + """ + type: NotRequired[Literal["company", "individual"]] + """ + Only return cardholders that have the given type. One of `individual` or `company`. + """ + + +class CardholderListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_modify_params.py new file mode 100644 index 00000000..74bfc840 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_modify_params.py @@ -0,0 +1,1120 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardholderModifyParams(RequestOptions): + billing: NotRequired["CardholderModifyParamsBilling"] + """ + The cardholder's billing address. + """ + company: NotRequired["CardholderModifyParamsCompany"] + """ + Additional information about a `company` cardholder. + """ + email: NotRequired[str] + """ + The cardholder's email address. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + individual: NotRequired["CardholderModifyParamsIndividual"] + """ + Additional information about an `individual` cardholder. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone_number: NotRequired[str] + """ + The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure) for more details. + """ + preferred_locales: NotRequired[List[Literal["de", "en", "es", "fr", "it"]]] + """ + The cardholder's preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`. + This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder. + """ + spending_controls: NotRequired["CardholderModifyParamsSpendingControls"] + """ + Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details. + """ + status: NotRequired[Literal["active", "inactive"]] + """ + Specifies whether to permit authorizations on this cardholder's cards. + """ + + +class CardholderModifyParamsBilling(TypedDict): + address: "CardholderModifyParamsBillingAddress" + """ + The cardholder's billing address. + """ + + +class CardholderModifyParamsBillingAddress(TypedDict): + city: str + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: str + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CardholderModifyParamsCompany(TypedDict): + tax_id: NotRequired[str] + """ + The entity's business ID number. + """ + + +class CardholderModifyParamsIndividual(TypedDict): + card_issuing: NotRequired["CardholderModifyParamsIndividualCardIssuing"] + """ + Information related to the card_issuing program for this cardholder. + """ + dob: NotRequired["CardholderModifyParamsIndividualDob"] + """ + The date of birth of this cardholder. Cardholders must be older than 13 years old. + """ + first_name: NotRequired[str] + """ + The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + last_name: NotRequired[str] + """ + The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + verification: NotRequired["CardholderModifyParamsIndividualVerification"] + """ + Government-issued ID document for this cardholder. + """ + + +class CardholderModifyParamsIndividualCardIssuing(TypedDict): + user_terms_acceptance: NotRequired[ + "CardholderModifyParamsIndividualCardIssuingUserTermsAcceptance" + ] + """ + Information about cardholder acceptance of Celtic [Authorized User Terms](https://stripe.com/docs/issuing/cards#accept-authorized-user-terms). Required for cards backed by a Celtic program. + """ + + +class CardholderModifyParamsIndividualCardIssuingUserTermsAcceptance( + TypedDict +): + date: NotRequired[int] + """ + The Unix timestamp marking when the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users. + """ + ip: NotRequired[str] + """ + The IP address from which the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the cardholder accepted the Authorized User Terms. + """ + + +class CardholderModifyParamsIndividualDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class CardholderModifyParamsIndividualVerification(TypedDict): + document: NotRequired[ + "CardholderModifyParamsIndividualVerificationDocument" + ] + """ + An identifying document, either a passport or local ID card. + """ + + +class CardholderModifyParamsIndividualVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + + +class CardholderModifyParamsSpendingControls(TypedDict): + allowed_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: NotRequired[ + List["CardholderModifyParamsSpendingControlsSpendingLimit"] + ] + """ + Limit spending with amount-based rules that apply across this cardholder's cards. + """ + spending_limits_currency: NotRequired[str] + """ + Currency of amounts within `spending_limits`. Defaults to your merchant country's currency. + """ + + +class CardholderModifyParamsSpendingControlsSpendingLimit(TypedDict): + amount: int + """ + Maximum amount allowed to spend per interval. + """ + categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", "daily", "monthly", "per_authorization", "weekly", "yearly" + ] + """ + Interval (or event) to which the amount applies. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_retrieve_params.py new file mode 100644 index 00000000..43bdef06 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CardholderRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_update_params.py new file mode 100644 index 00000000..ffc9c289 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_cardholder_update_params.py @@ -0,0 +1,1119 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CardholderUpdateParams(TypedDict): + billing: NotRequired["CardholderUpdateParamsBilling"] + """ + The cardholder's billing address. + """ + company: NotRequired["CardholderUpdateParamsCompany"] + """ + Additional information about a `company` cardholder. + """ + email: NotRequired[str] + """ + The cardholder's email address. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + individual: NotRequired["CardholderUpdateParamsIndividual"] + """ + Additional information about an `individual` cardholder. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone_number: NotRequired[str] + """ + The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure) for more details. + """ + preferred_locales: NotRequired[List[Literal["de", "en", "es", "fr", "it"]]] + """ + The cardholder's preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`. + This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder. + """ + spending_controls: NotRequired["CardholderUpdateParamsSpendingControls"] + """ + Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details. + """ + status: NotRequired[Literal["active", "inactive"]] + """ + Specifies whether to permit authorizations on this cardholder's cards. + """ + + +class CardholderUpdateParamsBilling(TypedDict): + address: "CardholderUpdateParamsBillingAddress" + """ + The cardholder's billing address. + """ + + +class CardholderUpdateParamsBillingAddress(TypedDict): + city: str + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: str + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: str + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class CardholderUpdateParamsCompany(TypedDict): + tax_id: NotRequired[str] + """ + The entity's business ID number. + """ + + +class CardholderUpdateParamsIndividual(TypedDict): + card_issuing: NotRequired["CardholderUpdateParamsIndividualCardIssuing"] + """ + Information related to the card_issuing program for this cardholder. + """ + dob: NotRequired["CardholderUpdateParamsIndividualDob"] + """ + The date of birth of this cardholder. Cardholders must be older than 13 years old. + """ + first_name: NotRequired[str] + """ + The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + last_name: NotRequired[str] + """ + The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters. + """ + verification: NotRequired["CardholderUpdateParamsIndividualVerification"] + """ + Government-issued ID document for this cardholder. + """ + + +class CardholderUpdateParamsIndividualCardIssuing(TypedDict): + user_terms_acceptance: NotRequired[ + "CardholderUpdateParamsIndividualCardIssuingUserTermsAcceptance" + ] + """ + Information about cardholder acceptance of Celtic [Authorized User Terms](https://stripe.com/docs/issuing/cards#accept-authorized-user-terms). Required for cards backed by a Celtic program. + """ + + +class CardholderUpdateParamsIndividualCardIssuingUserTermsAcceptance( + TypedDict +): + date: NotRequired[int] + """ + The Unix timestamp marking when the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users. + """ + ip: NotRequired[str] + """ + The IP address from which the cardholder accepted the Authorized User Terms. Required for Celtic Spend Card users. + """ + user_agent: NotRequired["Literal['']|str"] + """ + The user agent of the browser from which the cardholder accepted the Authorized User Terms. + """ + + +class CardholderUpdateParamsIndividualDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class CardholderUpdateParamsIndividualVerification(TypedDict): + document: NotRequired[ + "CardholderUpdateParamsIndividualVerificationDocument" + ] + """ + An identifying document, either a passport or local ID card. + """ + + +class CardholderUpdateParamsIndividualVerificationDocument(TypedDict): + back: NotRequired[str] + """ + The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + front: NotRequired[str] + """ + The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`. + """ + + +class CardholderUpdateParamsSpendingControls(TypedDict): + allowed_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`. + """ + allowed_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control. + """ + blocked_categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`. + """ + blocked_merchant_countries: NotRequired[List[str]] + """ + Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control. + """ + spending_limits: NotRequired[ + List["CardholderUpdateParamsSpendingControlsSpendingLimit"] + ] + """ + Limit spending with amount-based rules that apply across this cardholder's cards. + """ + spending_limits_currency: NotRequired[str] + """ + Currency of amounts within `spending_limits`. Defaults to your merchant country's currency. + """ + + +class CardholderUpdateParamsSpendingControlsSpendingLimit(TypedDict): + amount: int + """ + Maximum amount allowed to spend per interval. + """ + categories: NotRequired[ + List[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + ] + """ + Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories. + """ + interval: Literal[ + "all_time", "daily", "monthly", "per_authorization", "weekly", "yearly" + ] + """ + Interval (or event) to which the amount applies. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_create_params.py new file mode 100644 index 00000000..4fdc9209 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_create_params.py @@ -0,0 +1,287 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class DisputeCreateParams(RequestOptions): + amount: NotRequired[int] + """ + The dispute amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If not set, defaults to the full transaction amount. + """ + evidence: NotRequired["DisputeCreateParamsEvidence"] + """ + Evidence provided for the dispute. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + transaction: NotRequired[str] + """ + The ID of the issuing transaction to create a dispute for. For transaction on Treasury FinancialAccounts, use `treasury.received_debit`. + """ + treasury: NotRequired["DisputeCreateParamsTreasury"] + """ + Params for disputes related to Treasury FinancialAccounts + """ + + +class DisputeCreateParamsEvidence(TypedDict): + canceled: NotRequired["Literal['']|DisputeCreateParamsEvidenceCanceled"] + """ + Evidence provided when `reason` is 'canceled'. + """ + duplicate: NotRequired["Literal['']|DisputeCreateParamsEvidenceDuplicate"] + """ + Evidence provided when `reason` is 'duplicate'. + """ + fraudulent: NotRequired[ + "Literal['']|DisputeCreateParamsEvidenceFraudulent" + ] + """ + Evidence provided when `reason` is 'fraudulent'. + """ + merchandise_not_as_described: NotRequired[ + "Literal['']|DisputeCreateParamsEvidenceMerchandiseNotAsDescribed" + ] + """ + Evidence provided when `reason` is 'merchandise_not_as_described'. + """ + no_valid_authorization: NotRequired[ + "Literal['']|DisputeCreateParamsEvidenceNoValidAuthorization" + ] + """ + Evidence provided when `reason` is 'no_valid_authorization'. + """ + not_received: NotRequired[ + "Literal['']|DisputeCreateParamsEvidenceNotReceived" + ] + """ + Evidence provided when `reason` is 'not_received'. + """ + other: NotRequired["Literal['']|DisputeCreateParamsEvidenceOther"] + """ + Evidence provided when `reason` is 'other'. + """ + reason: NotRequired[ + Literal[ + "canceled", + "duplicate", + "fraudulent", + "merchandise_not_as_described", + "no_valid_authorization", + "not_received", + "other", + "service_not_as_described", + ] + ] + """ + The reason for filing the dispute. The evidence should be submitted in the field of the same name. + """ + service_not_as_described: NotRequired[ + "Literal['']|DisputeCreateParamsEvidenceServiceNotAsDescribed" + ] + """ + Evidence provided when `reason` is 'service_not_as_described'. + """ + + +class DisputeCreateParamsEvidenceCanceled(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: NotRequired["Literal['']|int"] + """ + Date when order was canceled. + """ + cancellation_policy_provided: NotRequired["Literal['']|bool"] + """ + Whether the cardholder was provided with a cancellation policy. + """ + cancellation_reason: NotRequired["Literal['']|str"] + """ + Reason for canceling the order. + """ + expected_at: NotRequired["Literal['']|int"] + """ + Date when the cardholder expected to receive the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + return_status: NotRequired[ + "Literal['']|Literal['merchant_rejected', 'successful']" + ] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: NotRequired["Literal['']|int"] + """ + Date when the product was returned or attempted to be returned. + """ + + +class DisputeCreateParamsEvidenceDuplicate(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + card_statement: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the card statement showing that the product had already been paid for. + """ + cash_receipt: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the receipt showing that the product had been paid for in cash. + """ + check_image: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Image of the front and back of the check that was used to pay for the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + original_transaction: NotRequired[str] + """ + Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one. + """ + + +class DisputeCreateParamsEvidenceFraudulent(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + +class DisputeCreateParamsEvidenceMerchandiseNotAsDescribed(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: NotRequired["Literal['']|int"] + """ + Date when the product was received. + """ + return_description: NotRequired["Literal['']|str"] + """ + Description of the cardholder's attempt to return the product. + """ + return_status: NotRequired[ + "Literal['']|Literal['merchant_rejected', 'successful']" + ] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: NotRequired["Literal['']|int"] + """ + Date when the product was returned or attempted to be returned. + """ + + +class DisputeCreateParamsEvidenceNoValidAuthorization(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + +class DisputeCreateParamsEvidenceNotReceived(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + expected_at: NotRequired["Literal['']|int"] + """ + Date when the cardholder expected to receive the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + + +class DisputeCreateParamsEvidenceOther(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + + +class DisputeCreateParamsEvidenceServiceNotAsDescribed(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: NotRequired["Literal['']|int"] + """ + Date when order was canceled. + """ + cancellation_reason: NotRequired["Literal['']|str"] + """ + Reason for canceling the order. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: NotRequired["Literal['']|int"] + """ + Date when the product was received. + """ + + +class DisputeCreateParamsTreasury(TypedDict): + received_debit: str + """ + The ID of the ReceivedDebit to initiate an Issuings dispute for. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_list_params.py new file mode 100644 index 00000000..f613beba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_list_params.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class DisputeListParams(RequestOptions): + created: NotRequired["DisputeListParamsCreated|int"] + """ + Only return Issuing disputes that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[ + Literal["expired", "lost", "submitted", "unsubmitted", "won"] + ] + """ + Select Issuing disputes with the given status. + """ + transaction: NotRequired[str] + """ + Select the Issuing dispute for the given transaction. + """ + + +class DisputeListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_modify_params.py new file mode 100644 index 00000000..2843be9c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_modify_params.py @@ -0,0 +1,272 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class DisputeModifyParams(RequestOptions): + amount: NotRequired[int] + """ + The dispute amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + evidence: NotRequired["DisputeModifyParamsEvidence"] + """ + Evidence provided for the dispute. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + + +class DisputeModifyParamsEvidence(TypedDict): + canceled: NotRequired["Literal['']|DisputeModifyParamsEvidenceCanceled"] + """ + Evidence provided when `reason` is 'canceled'. + """ + duplicate: NotRequired["Literal['']|DisputeModifyParamsEvidenceDuplicate"] + """ + Evidence provided when `reason` is 'duplicate'. + """ + fraudulent: NotRequired[ + "Literal['']|DisputeModifyParamsEvidenceFraudulent" + ] + """ + Evidence provided when `reason` is 'fraudulent'. + """ + merchandise_not_as_described: NotRequired[ + "Literal['']|DisputeModifyParamsEvidenceMerchandiseNotAsDescribed" + ] + """ + Evidence provided when `reason` is 'merchandise_not_as_described'. + """ + no_valid_authorization: NotRequired[ + "Literal['']|DisputeModifyParamsEvidenceNoValidAuthorization" + ] + """ + Evidence provided when `reason` is 'no_valid_authorization'. + """ + not_received: NotRequired[ + "Literal['']|DisputeModifyParamsEvidenceNotReceived" + ] + """ + Evidence provided when `reason` is 'not_received'. + """ + other: NotRequired["Literal['']|DisputeModifyParamsEvidenceOther"] + """ + Evidence provided when `reason` is 'other'. + """ + reason: NotRequired[ + Literal[ + "canceled", + "duplicate", + "fraudulent", + "merchandise_not_as_described", + "no_valid_authorization", + "not_received", + "other", + "service_not_as_described", + ] + ] + """ + The reason for filing the dispute. The evidence should be submitted in the field of the same name. + """ + service_not_as_described: NotRequired[ + "Literal['']|DisputeModifyParamsEvidenceServiceNotAsDescribed" + ] + """ + Evidence provided when `reason` is 'service_not_as_described'. + """ + + +class DisputeModifyParamsEvidenceCanceled(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: NotRequired["Literal['']|int"] + """ + Date when order was canceled. + """ + cancellation_policy_provided: NotRequired["Literal['']|bool"] + """ + Whether the cardholder was provided with a cancellation policy. + """ + cancellation_reason: NotRequired["Literal['']|str"] + """ + Reason for canceling the order. + """ + expected_at: NotRequired["Literal['']|int"] + """ + Date when the cardholder expected to receive the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + return_status: NotRequired[ + "Literal['']|Literal['merchant_rejected', 'successful']" + ] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: NotRequired["Literal['']|int"] + """ + Date when the product was returned or attempted to be returned. + """ + + +class DisputeModifyParamsEvidenceDuplicate(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + card_statement: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the card statement showing that the product had already been paid for. + """ + cash_receipt: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the receipt showing that the product had been paid for in cash. + """ + check_image: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Image of the front and back of the check that was used to pay for the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + original_transaction: NotRequired[str] + """ + Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one. + """ + + +class DisputeModifyParamsEvidenceFraudulent(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + +class DisputeModifyParamsEvidenceMerchandiseNotAsDescribed(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: NotRequired["Literal['']|int"] + """ + Date when the product was received. + """ + return_description: NotRequired["Literal['']|str"] + """ + Description of the cardholder's attempt to return the product. + """ + return_status: NotRequired[ + "Literal['']|Literal['merchant_rejected', 'successful']" + ] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: NotRequired["Literal['']|int"] + """ + Date when the product was returned or attempted to be returned. + """ + + +class DisputeModifyParamsEvidenceNoValidAuthorization(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + +class DisputeModifyParamsEvidenceNotReceived(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + expected_at: NotRequired["Literal['']|int"] + """ + Date when the cardholder expected to receive the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + + +class DisputeModifyParamsEvidenceOther(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + + +class DisputeModifyParamsEvidenceServiceNotAsDescribed(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: NotRequired["Literal['']|int"] + """ + Date when order was canceled. + """ + cancellation_reason: NotRequired["Literal['']|str"] + """ + Reason for canceling the order. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: NotRequired["Literal['']|int"] + """ + Date when the product was received. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_retrieve_params.py new file mode 100644 index 00000000..5d350dc8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class DisputeRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_submit_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_submit_params.py new file mode 100644 index 00000000..3f504f2d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_submit_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class DisputeSubmitParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_update_params.py new file mode 100644 index 00000000..3a7d3318 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_dispute_update_params.py @@ -0,0 +1,271 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class DisputeUpdateParams(TypedDict): + amount: NotRequired[int] + """ + The dispute amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + evidence: NotRequired["DisputeUpdateParamsEvidence"] + """ + Evidence provided for the dispute. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + + +class DisputeUpdateParamsEvidence(TypedDict): + canceled: NotRequired["Literal['']|DisputeUpdateParamsEvidenceCanceled"] + """ + Evidence provided when `reason` is 'canceled'. + """ + duplicate: NotRequired["Literal['']|DisputeUpdateParamsEvidenceDuplicate"] + """ + Evidence provided when `reason` is 'duplicate'. + """ + fraudulent: NotRequired[ + "Literal['']|DisputeUpdateParamsEvidenceFraudulent" + ] + """ + Evidence provided when `reason` is 'fraudulent'. + """ + merchandise_not_as_described: NotRequired[ + "Literal['']|DisputeUpdateParamsEvidenceMerchandiseNotAsDescribed" + ] + """ + Evidence provided when `reason` is 'merchandise_not_as_described'. + """ + no_valid_authorization: NotRequired[ + "Literal['']|DisputeUpdateParamsEvidenceNoValidAuthorization" + ] + """ + Evidence provided when `reason` is 'no_valid_authorization'. + """ + not_received: NotRequired[ + "Literal['']|DisputeUpdateParamsEvidenceNotReceived" + ] + """ + Evidence provided when `reason` is 'not_received'. + """ + other: NotRequired["Literal['']|DisputeUpdateParamsEvidenceOther"] + """ + Evidence provided when `reason` is 'other'. + """ + reason: NotRequired[ + Literal[ + "canceled", + "duplicate", + "fraudulent", + "merchandise_not_as_described", + "no_valid_authorization", + "not_received", + "other", + "service_not_as_described", + ] + ] + """ + The reason for filing the dispute. The evidence should be submitted in the field of the same name. + """ + service_not_as_described: NotRequired[ + "Literal['']|DisputeUpdateParamsEvidenceServiceNotAsDescribed" + ] + """ + Evidence provided when `reason` is 'service_not_as_described'. + """ + + +class DisputeUpdateParamsEvidenceCanceled(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: NotRequired["Literal['']|int"] + """ + Date when order was canceled. + """ + cancellation_policy_provided: NotRequired["Literal['']|bool"] + """ + Whether the cardholder was provided with a cancellation policy. + """ + cancellation_reason: NotRequired["Literal['']|str"] + """ + Reason for canceling the order. + """ + expected_at: NotRequired["Literal['']|int"] + """ + Date when the cardholder expected to receive the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + return_status: NotRequired[ + "Literal['']|Literal['merchant_rejected', 'successful']" + ] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: NotRequired["Literal['']|int"] + """ + Date when the product was returned or attempted to be returned. + """ + + +class DisputeUpdateParamsEvidenceDuplicate(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + card_statement: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the card statement showing that the product had already been paid for. + """ + cash_receipt: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the receipt showing that the product had been paid for in cash. + """ + check_image: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Image of the front and back of the check that was used to pay for the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + original_transaction: NotRequired[str] + """ + Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one. + """ + + +class DisputeUpdateParamsEvidenceFraudulent(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + +class DisputeUpdateParamsEvidenceMerchandiseNotAsDescribed(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: NotRequired["Literal['']|int"] + """ + Date when the product was received. + """ + return_description: NotRequired["Literal['']|str"] + """ + Description of the cardholder's attempt to return the product. + """ + return_status: NotRequired[ + "Literal['']|Literal['merchant_rejected', 'successful']" + ] + """ + Result of cardholder's attempt to return the product. + """ + returned_at: NotRequired["Literal['']|int"] + """ + Date when the product was returned or attempted to be returned. + """ + + +class DisputeUpdateParamsEvidenceNoValidAuthorization(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + + +class DisputeUpdateParamsEvidenceNotReceived(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + expected_at: NotRequired["Literal['']|int"] + """ + Date when the cardholder expected to receive the product. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + + +class DisputeUpdateParamsEvidenceOther(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + product_description: NotRequired["Literal['']|str"] + """ + Description of the merchandise or service that was purchased. + """ + product_type: NotRequired["Literal['']|Literal['merchandise', 'service']"] + """ + Whether the product was a merchandise or service. + """ + + +class DisputeUpdateParamsEvidenceServiceNotAsDescribed(TypedDict): + additional_documentation: NotRequired["Literal['']|str"] + """ + (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute. + """ + canceled_at: NotRequired["Literal['']|int"] + """ + Date when order was canceled. + """ + cancellation_reason: NotRequired["Literal['']|str"] + """ + Reason for canceling the order. + """ + explanation: NotRequired["Literal['']|str"] + """ + Explanation of why the cardholder is disputing this transaction. + """ + received_at: NotRequired["Literal['']|int"] + """ + Date when the product was received. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_activate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_activate_params.py new file mode 100644 index 00000000..90467a01 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_activate_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PersonalizationDesignActivateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_create_params.py new file mode 100644 index 00000000..39fd7191 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_create_params.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PersonalizationDesignCreateParams(RequestOptions): + card_logo: NotRequired[str] + """ + The file for the card logo, for use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo`. + """ + carrier_text: NotRequired["PersonalizationDesignCreateParamsCarrierText"] + """ + Hash containing carrier text, for use with physical bundles that support carrier text. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + lookup_key: NotRequired[str] + """ + A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + Friendly display name. + """ + physical_bundle: str + """ + The physical bundle object belonging to this personalization design. + """ + preferences: NotRequired["PersonalizationDesignCreateParamsPreferences"] + """ + Information on whether this personalization design is used to create cards when one is not specified. + """ + transfer_lookup_key: NotRequired[bool] + """ + If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design. + """ + + +class PersonalizationDesignCreateParamsCarrierText(TypedDict): + footer_body: NotRequired["Literal['']|str"] + """ + The footer body text of the carrier letter. + """ + footer_title: NotRequired["Literal['']|str"] + """ + The footer title text of the carrier letter. + """ + header_body: NotRequired["Literal['']|str"] + """ + The header body text of the carrier letter. + """ + header_title: NotRequired["Literal['']|str"] + """ + The header title text of the carrier letter. + """ + + +class PersonalizationDesignCreateParamsPreferences(TypedDict): + is_default: bool + """ + Whether we use this personalization design to create cards when one isn't specified. A connected account uses the Connect platform's default design if no personalization design is set as the default design. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_deactivate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_deactivate_params.py new file mode 100644 index 00000000..8871eb27 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_deactivate_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PersonalizationDesignDeactivateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_list_params.py new file mode 100644 index 00000000..a212083f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_list_params.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PersonalizationDesignListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + lookup_keys: NotRequired[List[str]] + """ + Only return personalization designs with the given lookup keys. + """ + preferences: NotRequired["PersonalizationDesignListParamsPreferences"] + """ + Only return personalization designs with the given preferences. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "inactive", "rejected", "review"]] + """ + Only return personalization designs with the given status. + """ + + +class PersonalizationDesignListParamsPreferences(TypedDict): + is_default: NotRequired[bool] + """ + Only return the personalization design that's set as the default. A connected account uses the Connect platform's default design if no personalization design is set as the default. + """ + is_platform_default: NotRequired[bool] + """ + Only return the personalization design that is set as the Connect platform's default. This parameter is only applicable to connected accounts. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_modify_params.py new file mode 100644 index 00000000..1c57a9df --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_modify_params.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PersonalizationDesignModifyParams(RequestOptions): + card_logo: NotRequired["Literal['']|str"] + """ + The file for the card logo, for use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo`. + """ + carrier_text: NotRequired[ + "Literal['']|PersonalizationDesignModifyParamsCarrierText" + ] + """ + Hash containing carrier text, for use with physical bundles that support carrier text. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + lookup_key: NotRequired["Literal['']|str"] + """ + A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired["Literal['']|str"] + """ + Friendly display name. Providing an empty string will set the field to null. + """ + physical_bundle: NotRequired[str] + """ + The physical bundle object belonging to this personalization design. + """ + preferences: NotRequired["PersonalizationDesignModifyParamsPreferences"] + """ + Information on whether this personalization design is used to create cards when one is not specified. + """ + transfer_lookup_key: NotRequired[bool] + """ + If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design. + """ + + +class PersonalizationDesignModifyParamsCarrierText(TypedDict): + footer_body: NotRequired["Literal['']|str"] + """ + The footer body text of the carrier letter. + """ + footer_title: NotRequired["Literal['']|str"] + """ + The footer title text of the carrier letter. + """ + header_body: NotRequired["Literal['']|str"] + """ + The header body text of the carrier letter. + """ + header_title: NotRequired["Literal['']|str"] + """ + The header title text of the carrier letter. + """ + + +class PersonalizationDesignModifyParamsPreferences(TypedDict): + is_default: bool + """ + Whether we use this personalization design to create cards when one isn't specified. A connected account uses the Connect platform's default design if no personalization design is set as the default design. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_reject_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_reject_params.py new file mode 100644 index 00000000..ced5adae --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_reject_params.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PersonalizationDesignRejectParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + rejection_reasons: "PersonalizationDesignRejectParamsRejectionReasons" + """ + The reason(s) the personalization design was rejected. + """ + + +class PersonalizationDesignRejectParamsRejectionReasons(TypedDict): + card_logo: NotRequired[ + List[ + Literal[ + "geographic_location", + "inappropriate", + "network_name", + "non_binary_image", + "non_fiat_currency", + "other", + "other_entity", + "promotional_material", + ] + ] + ] + """ + The reason(s) the card logo was rejected. + """ + carrier_text: NotRequired[ + List[ + Literal[ + "geographic_location", + "inappropriate", + "network_name", + "non_fiat_currency", + "other", + "other_entity", + "promotional_material", + ] + ] + ] + """ + The reason(s) the carrier text was rejected. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_retrieve_params.py new file mode 100644 index 00000000..02e8577f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PersonalizationDesignRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_update_params.py new file mode 100644 index 00000000..d5f3f57b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_personalization_design_update_params.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PersonalizationDesignUpdateParams(TypedDict): + card_logo: NotRequired["Literal['']|str"] + """ + The file for the card logo, for use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo`. + """ + carrier_text: NotRequired[ + "Literal['']|PersonalizationDesignUpdateParamsCarrierText" + ] + """ + Hash containing carrier text, for use with physical bundles that support carrier text. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + lookup_key: NotRequired["Literal['']|str"] + """ + A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired["Literal['']|str"] + """ + Friendly display name. Providing an empty string will set the field to null. + """ + physical_bundle: NotRequired[str] + """ + The physical bundle object belonging to this personalization design. + """ + preferences: NotRequired["PersonalizationDesignUpdateParamsPreferences"] + """ + Information on whether this personalization design is used to create cards when one is not specified. + """ + transfer_lookup_key: NotRequired[bool] + """ + If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design. + """ + + +class PersonalizationDesignUpdateParamsCarrierText(TypedDict): + footer_body: NotRequired["Literal['']|str"] + """ + The footer body text of the carrier letter. + """ + footer_title: NotRequired["Literal['']|str"] + """ + The footer title text of the carrier letter. + """ + header_body: NotRequired["Literal['']|str"] + """ + The header body text of the carrier letter. + """ + header_title: NotRequired["Literal['']|str"] + """ + The header title text of the carrier letter. + """ + + +class PersonalizationDesignUpdateParamsPreferences(TypedDict): + is_default: bool + """ + Whether we use this personalization design to create cards when one isn't specified. A connected account uses the Connect platform's default design if no personalization design is set as the default design. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_physical_bundle_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_physical_bundle_list_params.py new file mode 100644 index 00000000..5193d487 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_physical_bundle_list_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class PhysicalBundleListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "inactive", "review"]] + """ + Only return physical bundles with the given status. + """ + type: NotRequired[Literal["custom", "standard"]] + """ + Only return physical bundles with the given type. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_physical_bundle_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_physical_bundle_retrieve_params.py new file mode 100644 index 00000000..9a21a41d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_physical_bundle_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class PhysicalBundleRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_list_params.py new file mode 100644 index 00000000..fa43b1dd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TokenListParams(RequestOptions): + card: str + """ + The Issuing card identifier to list tokens for. + """ + created: NotRequired["TokenListParamsCreated|int"] + """ + Only return Issuing tokens that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "deleted", "requested", "suspended"]] + """ + Select Issuing tokens with the given status. + """ + + +class TokenListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_modify_params.py new file mode 100644 index 00000000..d8cbd4b2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_modify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class TokenModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + status: Literal["active", "deleted", "suspended"] + """ + Specifies which status the token should be updated to. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_retrieve_params.py new file mode 100644 index 00000000..a8e659fc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TokenRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_update_params.py new file mode 100644 index 00000000..3b78cc08 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_token_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TokenUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + status: Literal["active", "deleted", "suspended"] + """ + Specifies which status the token should be updated to. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_create_force_capture_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_create_force_capture_params.py new file mode 100644 index 00000000..d9f6709a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_create_force_capture_params.py @@ -0,0 +1,629 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionCreateForceCaptureParams(RequestOptions): + amount: int + """ + The total amount to attempt to capture. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + card: str + """ + Card associated with this transaction. + """ + currency: NotRequired[str] + """ + The currency of the capture. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + merchant_data: NotRequired[ + "TransactionCreateForceCaptureParamsMerchantData" + ] + """ + Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened. + """ + purchase_details: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetails" + ] + """ + Additional purchase information that is optionally provided by the merchant. + """ + + +class TransactionCreateForceCaptureParamsMerchantData(TypedDict): + category: NotRequired[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + city: NotRequired[str] + """ + City where the seller is located + """ + country: NotRequired[str] + """ + Country where the seller is located + """ + name: NotRequired[str] + """ + Name of the seller + """ + network_id: NotRequired[str] + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: NotRequired[str] + """ + Postal code where the seller is located + """ + state: NotRequired[str] + """ + State where the seller is located + """ + terminal_id: NotRequired[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: NotRequired[str] + """ + URL provided by the merchant on a 3DS request + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetails(TypedDict): + fleet: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleet" + ] + """ + Fleet-specific information for transactions using Fleet cards. + """ + flight: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFlight" + ] + """ + Information about the flight that was purchased with this transaction. + """ + fuel: NotRequired["TransactionCreateForceCaptureParamsPurchaseDetailsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + lodging: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsLodging" + ] + """ + Information about lodging that was purchased with this transaction. + """ + receipt: NotRequired[ + List["TransactionCreateForceCaptureParamsPurchaseDetailsReceipt"] + ] + """ + The line items in the purchase. + """ + reference: NotRequired[str] + """ + A merchant-specific order number. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData( + TypedDict, +): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown( + TypedDict, +): + fuel: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax( + TypedDict, +): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFlight(TypedDict): + departure_at: NotRequired[int] + """ + The time that the flight departed. + """ + passenger_name: NotRequired[str] + """ + The name of the passenger. + """ + refundable: NotRequired[bool] + """ + Whether the ticket is refundable. + """ + segments: NotRequired[ + List["TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment"] + ] + """ + The legs of the trip. + """ + travel_agency: NotRequired[str] + """ + The travel agency that issued the ticket. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment( + TypedDict, +): + arrival_airport_code: NotRequired[str] + """ + The three-letter IATA airport code of the flight's destination. + """ + carrier: NotRequired[str] + """ + The airline carrier code. + """ + departure_airport_code: NotRequired[str] + """ + The three-letter IATA airport code that the flight departed from. + """ + flight_number: NotRequired[str] + """ + The flight number. + """ + service_class: NotRequired[str] + """ + The flight's service class. + """ + stopover_allowed: NotRequired[bool] + """ + Whether a stopover is allowed on this flight. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsLodging(TypedDict): + check_in_at: NotRequired[int] + """ + The time of checking into the lodging. + """ + nights: NotRequired[int] + """ + The number of nights stayed at the lodging. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsReceipt(TypedDict): + description: NotRequired[str] + quantity: NotRequired[str] + total: NotRequired[int] + unit_cost: NotRequired[int] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_create_unlinked_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_create_unlinked_refund_params.py new file mode 100644 index 00000000..8a0d378f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_create_unlinked_refund_params.py @@ -0,0 +1,633 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionCreateUnlinkedRefundParams(RequestOptions): + amount: int + """ + The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + card: str + """ + Card associated with this unlinked refund transaction. + """ + currency: NotRequired[str] + """ + The currency of the unlinked refund. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + merchant_data: NotRequired[ + "TransactionCreateUnlinkedRefundParamsMerchantData" + ] + """ + Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened. + """ + purchase_details: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetails" + ] + """ + Additional purchase information that is optionally provided by the merchant. + """ + + +class TransactionCreateUnlinkedRefundParamsMerchantData(TypedDict): + category: NotRequired[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + city: NotRequired[str] + """ + City where the seller is located + """ + country: NotRequired[str] + """ + Country where the seller is located + """ + name: NotRequired[str] + """ + Name of the seller + """ + network_id: NotRequired[str] + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: NotRequired[str] + """ + Postal code where the seller is located + """ + state: NotRequired[str] + """ + State where the seller is located + """ + terminal_id: NotRequired[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: NotRequired[str] + """ + URL provided by the merchant on a 3DS request + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetails(TypedDict): + fleet: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet" + ] + """ + Fleet-specific information for transactions using Fleet cards. + """ + flight: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight" + ] + """ + Information about the flight that was purchased with this transaction. + """ + fuel: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel" + ] + """ + Information about fuel that was purchased with this transaction. + """ + lodging: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging" + ] + """ + Information about lodging that was purchased with this transaction. + """ + receipt: NotRequired[ + List["TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt"] + ] + """ + The line items in the purchase. + """ + reference: NotRequired[str] + """ + A merchant-specific order number. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData( + TypedDict, +): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown( + TypedDict, +): + fuel: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax( + TypedDict, +): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight(TypedDict): + departure_at: NotRequired[int] + """ + The time that the flight departed. + """ + passenger_name: NotRequired[str] + """ + The name of the passenger. + """ + refundable: NotRequired[bool] + """ + Whether the ticket is refundable. + """ + segments: NotRequired[ + List[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment" + ] + ] + """ + The legs of the trip. + """ + travel_agency: NotRequired[str] + """ + The travel agency that issued the ticket. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment( + TypedDict, +): + arrival_airport_code: NotRequired[str] + """ + The three-letter IATA airport code of the flight's destination. + """ + carrier: NotRequired[str] + """ + The airline carrier code. + """ + departure_airport_code: NotRequired[str] + """ + The three-letter IATA airport code that the flight departed from. + """ + flight_number: NotRequired[str] + """ + The flight number. + """ + service_class: NotRequired[str] + """ + The flight's service class. + """ + stopover_allowed: NotRequired[bool] + """ + Whether a stopover is allowed on this flight. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging(TypedDict): + check_in_at: NotRequired[int] + """ + The time of checking into the lodging. + """ + nights: NotRequired[int] + """ + The number of nights stayed at the lodging. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt(TypedDict): + description: NotRequired[str] + quantity: NotRequired[str] + total: NotRequired[int] + unit_cost: NotRequired[int] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_list_params.py new file mode 100644 index 00000000..41595dd5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_list_params.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionListParams(RequestOptions): + card: NotRequired[str] + """ + Only return transactions that belong to the given card. + """ + cardholder: NotRequired[str] + """ + Only return transactions that belong to the given cardholder. + """ + created: NotRequired["TransactionListParamsCreated|int"] + """ + Only return transactions that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + type: NotRequired[Literal["capture", "refund"]] + """ + Only return transactions that have the given type. One of `capture` or `refund`. + """ + + +class TransactionListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_modify_params.py new file mode 100644 index 00000000..ba255b79 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_modify_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class TransactionModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_refund_params.py new file mode 100644 index 00000000..0953e1ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_refund_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransactionRefundParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + refund_amount: NotRequired[int] + """ + The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_retrieve_params.py new file mode 100644 index 00000000..07744dd9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransactionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_update_params.py new file mode 100644 index 00000000..8cb955c5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/issuing/_transaction_update_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__init__.py new file mode 100644 index 00000000..92577d44 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__init__.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.radar._early_fraud_warning_list_params import ( + EarlyFraudWarningListParams as EarlyFraudWarningListParams, + EarlyFraudWarningListParamsCreated as EarlyFraudWarningListParamsCreated, + ) + from stripe.params.radar._early_fraud_warning_retrieve_params import ( + EarlyFraudWarningRetrieveParams as EarlyFraudWarningRetrieveParams, + ) + from stripe.params.radar._value_list_create_params import ( + ValueListCreateParams as ValueListCreateParams, + ) + from stripe.params.radar._value_list_delete_params import ( + ValueListDeleteParams as ValueListDeleteParams, + ) + from stripe.params.radar._value_list_item_create_params import ( + ValueListItemCreateParams as ValueListItemCreateParams, + ) + from stripe.params.radar._value_list_item_delete_params import ( + ValueListItemDeleteParams as ValueListItemDeleteParams, + ) + from stripe.params.radar._value_list_item_list_params import ( + ValueListItemListParams as ValueListItemListParams, + ValueListItemListParamsCreated as ValueListItemListParamsCreated, + ) + from stripe.params.radar._value_list_item_retrieve_params import ( + ValueListItemRetrieveParams as ValueListItemRetrieveParams, + ) + from stripe.params.radar._value_list_list_params import ( + ValueListListParams as ValueListListParams, + ValueListListParamsCreated as ValueListListParamsCreated, + ) + from stripe.params.radar._value_list_modify_params import ( + ValueListModifyParams as ValueListModifyParams, + ) + from stripe.params.radar._value_list_retrieve_params import ( + ValueListRetrieveParams as ValueListRetrieveParams, + ) + from stripe.params.radar._value_list_update_params import ( + ValueListUpdateParams as ValueListUpdateParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "EarlyFraudWarningListParams": ( + "stripe.params.radar._early_fraud_warning_list_params", + False, + ), + "EarlyFraudWarningListParamsCreated": ( + "stripe.params.radar._early_fraud_warning_list_params", + False, + ), + "EarlyFraudWarningRetrieveParams": ( + "stripe.params.radar._early_fraud_warning_retrieve_params", + False, + ), + "ValueListCreateParams": ( + "stripe.params.radar._value_list_create_params", + False, + ), + "ValueListDeleteParams": ( + "stripe.params.radar._value_list_delete_params", + False, + ), + "ValueListItemCreateParams": ( + "stripe.params.radar._value_list_item_create_params", + False, + ), + "ValueListItemDeleteParams": ( + "stripe.params.radar._value_list_item_delete_params", + False, + ), + "ValueListItemListParams": ( + "stripe.params.radar._value_list_item_list_params", + False, + ), + "ValueListItemListParamsCreated": ( + "stripe.params.radar._value_list_item_list_params", + False, + ), + "ValueListItemRetrieveParams": ( + "stripe.params.radar._value_list_item_retrieve_params", + False, + ), + "ValueListListParams": ( + "stripe.params.radar._value_list_list_params", + False, + ), + "ValueListListParamsCreated": ( + "stripe.params.radar._value_list_list_params", + False, + ), + "ValueListModifyParams": ( + "stripe.params.radar._value_list_modify_params", + False, + ), + "ValueListRetrieveParams": ( + "stripe.params.radar._value_list_retrieve_params", + False, + ), + "ValueListUpdateParams": ( + "stripe.params.radar._value_list_update_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..bd0b3b01 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_early_fraud_warning_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_early_fraud_warning_list_params.cpython-312.pyc new file mode 100644 index 00000000..9284c62d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_early_fraud_warning_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_early_fraud_warning_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_early_fraud_warning_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f651ea72 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_early_fraud_warning_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_create_params.cpython-312.pyc new file mode 100644 index 00000000..7d7b2bc9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_delete_params.cpython-312.pyc new file mode 100644 index 00000000..3a93c5d0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_create_params.cpython-312.pyc new file mode 100644 index 00000000..38daa16c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_delete_params.cpython-312.pyc new file mode 100644 index 00000000..f6ef30f2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..3eedba81 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..eb6142be Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_item_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_list_params.cpython-312.pyc new file mode 100644 index 00000000..ca1bb2c9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_modify_params.cpython-312.pyc new file mode 100644 index 00000000..71b159db Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..3d52ebfb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_update_params.cpython-312.pyc new file mode 100644 index 00000000..909de2d4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/__pycache__/_value_list_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_early_fraud_warning_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_early_fraud_warning_list_params.py new file mode 100644 index 00000000..9a16bf6c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_early_fraud_warning_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class EarlyFraudWarningListParams(RequestOptions): + charge: NotRequired[str] + """ + Only return early fraud warnings for the charge specified by this charge ID. + """ + created: NotRequired["EarlyFraudWarningListParamsCreated|int"] + """ + Only return early fraud warnings that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + payment_intent: NotRequired[str] + """ + Only return early fraud warnings for charges that were created by the PaymentIntent specified by this PaymentIntent ID. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class EarlyFraudWarningListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_early_fraud_warning_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_early_fraud_warning_retrieve_params.py new file mode 100644 index 00000000..b218981e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_early_fraud_warning_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class EarlyFraudWarningRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_create_params.py new file mode 100644 index 00000000..1299e35d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_create_params.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class ValueListCreateParams(RequestOptions): + alias: str + """ + The name of the value list for use in rules. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + item_type: NotRequired[ + Literal[ + "card_bin", + "card_fingerprint", + "case_sensitive_string", + "country", + "customer_id", + "email", + "ip_address", + "sepa_debit_fingerprint", + "string", + "us_bank_account_fingerprint", + ] + ] + """ + Type of the items in the value list. One of `card_fingerprint`, `card_bin`, `email`, `ip_address`, `country`, `string`, `case_sensitive_string`, `customer_id`, `sepa_debit_fingerprint`, or `us_bank_account_fingerprint`. Use `string` if the item type is unknown or mixed. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: str + """ + The human-readable name of the value list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_delete_params.py new file mode 100644 index 00000000..448eeaa3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class ValueListDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_create_params.py new file mode 100644 index 00000000..d9be1d85 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_create_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ValueListItemCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + value: str + """ + The value of the item (whose type must match the type of the parent value list). + """ + value_list: str + """ + The identifier of the value list which the created item will be added to. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_delete_params.py new file mode 100644 index 00000000..6f7b8a6b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class ValueListItemDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_list_params.py new file mode 100644 index 00000000..5a76612d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ValueListItemListParams(RequestOptions): + created: NotRequired["ValueListItemListParamsCreated|int"] + """ + Only return items that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + value: NotRequired[str] + """ + Return items belonging to the parent list whose value matches the specified value (using an "is like" match). + """ + value_list: str + """ + Identifier for the parent value list this item belongs to. + """ + + +class ValueListItemListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_retrieve_params.py new file mode 100644 index 00000000..746958c6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_item_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ValueListItemRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_list_params.py new file mode 100644 index 00000000..911490ef --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_list_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ValueListListParams(RequestOptions): + alias: NotRequired[str] + """ + The alias used to reference the value list when writing rules. + """ + contains: NotRequired[str] + """ + A value contained within a value list - returns all value lists containing this value. + """ + created: NotRequired["ValueListListParamsCreated|int"] + """ + Only return value lists that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class ValueListListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_modify_params.py new file mode 100644 index 00000000..31a60cbc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_modify_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class ValueListModifyParams(RequestOptions): + alias: NotRequired[str] + """ + The name of the value list for use in rules. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + The human-readable name of the value list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_retrieve_params.py new file mode 100644 index 00000000..f7b2434f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ValueListRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_update_params.py new file mode 100644 index 00000000..e8cbd9f1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/radar/_value_list_update_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import NotRequired, TypedDict + + +class ValueListUpdateParams(TypedDict): + alias: NotRequired[str] + """ + The name of the value list for use in rules. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + name: NotRequired[str] + """ + The human-readable name of the value list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__init__.py new file mode 100644 index 00000000..5e72faca --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__init__.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.reporting._report_run_create_params import ( + ReportRunCreateParams as ReportRunCreateParams, + ReportRunCreateParamsParameters as ReportRunCreateParamsParameters, + ) + from stripe.params.reporting._report_run_list_params import ( + ReportRunListParams as ReportRunListParams, + ReportRunListParamsCreated as ReportRunListParamsCreated, + ) + from stripe.params.reporting._report_run_retrieve_params import ( + ReportRunRetrieveParams as ReportRunRetrieveParams, + ) + from stripe.params.reporting._report_type_list_params import ( + ReportTypeListParams as ReportTypeListParams, + ) + from stripe.params.reporting._report_type_retrieve_params import ( + ReportTypeRetrieveParams as ReportTypeRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ReportRunCreateParams": ( + "stripe.params.reporting._report_run_create_params", + False, + ), + "ReportRunCreateParamsParameters": ( + "stripe.params.reporting._report_run_create_params", + False, + ), + "ReportRunListParams": ( + "stripe.params.reporting._report_run_list_params", + False, + ), + "ReportRunListParamsCreated": ( + "stripe.params.reporting._report_run_list_params", + False, + ), + "ReportRunRetrieveParams": ( + "stripe.params.reporting._report_run_retrieve_params", + False, + ), + "ReportTypeListParams": ( + "stripe.params.reporting._report_type_list_params", + False, + ), + "ReportTypeRetrieveParams": ( + "stripe.params.reporting._report_type_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..b07d7e67 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_create_params.cpython-312.pyc new file mode 100644 index 00000000..f7913cbe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_list_params.cpython-312.pyc new file mode 100644 index 00000000..ab79ee48 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..e5bd93f4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_run_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_type_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_type_list_params.cpython-312.pyc new file mode 100644 index 00000000..aa2809f6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_type_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_type_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_type_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..255a6b84 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/__pycache__/_report_type_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_create_params.py new file mode 100644 index 00000000..d3f0dabb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_create_params.py @@ -0,0 +1,697 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReportRunCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + parameters: NotRequired["ReportRunCreateParamsParameters"] + """ + Parameters specifying how the report should be run. Different Report Types have different required and optional parameters, listed in the [API Access to Reports](https://stripe.com/docs/reporting/statements/api) documentation. + """ + report_type: str + """ + The ID of the [report type](https://stripe.com/docs/reporting/statements/api#report-types) to run, such as `"balance.summary.1"`. + """ + + +class ReportRunCreateParamsParameters(TypedDict): + columns: NotRequired[List[str]] + """ + The set of report columns to include in the report output. If omitted, the Report Type is run with its default column set. + """ + connected_account: NotRequired[str] + """ + Connected account ID to filter for in the report run. + """ + currency: NotRequired[str] + """ + Currency of objects to be included in the report run. + """ + interval_end: NotRequired[int] + """ + Ending timestamp of data to be included in the report run (exclusive). + """ + interval_start: NotRequired[int] + """ + Starting timestamp of data to be included in the report run. + """ + payout: NotRequired[str] + """ + Payout ID by which to filter the report run. + """ + reporting_category: NotRequired[ + Literal[ + "advance", + "advance_funding", + "anticipation_repayment", + "charge", + "charge_failure", + "climate_order_purchase", + "climate_order_refund", + "connect_collection_transfer", + "connect_reserved_funds", + "contribution", + "dispute", + "dispute_reversal", + "fee", + "financing_paydown", + "financing_paydown_reversal", + "financing_payout", + "financing_payout_reversal", + "issuing_authorization_hold", + "issuing_authorization_release", + "issuing_dispute", + "issuing_transaction", + "network_cost", + "other_adjustment", + "partial_capture_reversal", + "payout", + "payout_reversal", + "platform_earning", + "platform_earning_refund", + "refund", + "refund_failure", + "risk_reserved_funds", + "tax", + "topup", + "topup_reversal", + "transfer", + "transfer_reversal", + "unreconciled_customer_funds", + ] + ] + """ + Category of balance transactions to be included in the report run. + """ + timezone: NotRequired[ + Literal[ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Asmera", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Timbuktu", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/ComodRivadavia", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Atka", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Buenos_Aires", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Catamarca", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Ciudad_Juarez", + "America/Coral_Harbour", + "America/Cordoba", + "America/Costa_Rica", + "America/Coyhaique", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Ensenada", + "America/Fort_Nelson", + "America/Fort_Wayne", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Indianapolis", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Jujuy", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Knox_IN", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Louisville", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Mendoza", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montreal", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Acre", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Rosario", + "America/Santa_Isabel", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Shiprock", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Virgin", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/South_Pole", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Ashkhabad", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Calcutta", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Chongqing", + "Asia/Chungking", + "Asia/Colombo", + "Asia/Dacca", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Harbin", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kashgar", + "Asia/Kathmandu", + "Asia/Katmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macao", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Rangoon", + "Asia/Riyadh", + "Asia/Saigon", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Tel_Aviv", + "Asia/Thimbu", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ujung_Pandang", + "Asia/Ulaanbaatar", + "Asia/Ulan_Bator", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faeroe", + "Atlantic/Faroe", + "Atlantic/Jan_Mayen", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/ACT", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Canberra", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/LHI", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/NSW", + "Australia/North", + "Australia/Perth", + "Australia/Queensland", + "Australia/South", + "Australia/Sydney", + "Australia/Tasmania", + "Australia/Victoria", + "Australia/West", + "Australia/Yancowinna", + "Brazil/Acre", + "Brazil/DeNoronha", + "Brazil/East", + "Brazil/West", + "CET", + "CST6CDT", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Canada/Saskatchewan", + "Canada/Yukon", + "Chile/Continental", + "Chile/EasterIsland", + "Cuba", + "EET", + "EST", + "EST5EDT", + "Egypt", + "Eire", + "Etc/GMT", + "Etc/GMT+0", + "Etc/GMT+1", + "Etc/GMT+10", + "Etc/GMT+11", + "Etc/GMT+12", + "Etc/GMT+2", + "Etc/GMT+3", + "Etc/GMT+4", + "Etc/GMT+5", + "Etc/GMT+6", + "Etc/GMT+7", + "Etc/GMT+8", + "Etc/GMT+9", + "Etc/GMT-0", + "Etc/GMT-1", + "Etc/GMT-10", + "Etc/GMT-11", + "Etc/GMT-12", + "Etc/GMT-13", + "Etc/GMT-14", + "Etc/GMT-2", + "Etc/GMT-3", + "Etc/GMT-4", + "Etc/GMT-5", + "Etc/GMT-6", + "Etc/GMT-7", + "Etc/GMT-8", + "Etc/GMT-9", + "Etc/GMT0", + "Etc/Greenwich", + "Etc/UCT", + "Etc/UTC", + "Etc/Universal", + "Etc/Zulu", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belfast", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Kyiv", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Nicosia", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Tiraspol", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "Factory", + "GB", + "GB-Eire", + "GMT", + "GMT+0", + "GMT-0", + "GMT0", + "Greenwich", + "HST", + "Hongkong", + "Iceland", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Iran", + "Israel", + "Jamaica", + "Japan", + "Kwajalein", + "Libya", + "MET", + "MST", + "MST7MDT", + "Mexico/BajaNorte", + "Mexico/BajaSur", + "Mexico/General", + "NZ", + "NZ-CHAT", + "Navajo", + "PRC", + "PST8PDT", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Johnston", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Ponape", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Samoa", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Truk", + "Pacific/Wake", + "Pacific/Wallis", + "Pacific/Yap", + "Poland", + "Portugal", + "ROC", + "ROK", + "Singapore", + "Turkey", + "UCT", + "US/Alaska", + "US/Aleutian", + "US/Arizona", + "US/Central", + "US/East-Indiana", + "US/Eastern", + "US/Hawaii", + "US/Indiana-Starke", + "US/Michigan", + "US/Mountain", + "US/Pacific", + "US/Pacific-New", + "US/Samoa", + "UTC", + "Universal", + "W-SU", + "WET", + "Zulu", + ] + ] + """ + Defaults to `Etc/UTC`. The output timezone for all timestamps in the report. A list of possible time zone values is maintained at the [IANA Time Zone Database](http://www.iana.org/time-zones). Has no effect on `interval_start` or `interval_end`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_list_params.py new file mode 100644 index 00000000..befc905e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_list_params.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ReportRunListParams(RequestOptions): + created: NotRequired["ReportRunListParamsCreated|int"] + """ + Only return Report Runs that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + + +class ReportRunListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_retrieve_params.py new file mode 100644 index 00000000..f17591ac --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_run_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReportRunRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_type_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_type_list_params.py new file mode 100644 index 00000000..ebfb226f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_type_list_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReportTypeListParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_type_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_type_retrieve_params.py new file mode 100644 index 00000000..e35a36ba --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/reporting/_report_type_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReportTypeRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__init__.py new file mode 100644 index 00000000..320b08e0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__init__.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.sigma._scheduled_query_run_list_params import ( + ScheduledQueryRunListParams as ScheduledQueryRunListParams, + ) + from stripe.params.sigma._scheduled_query_run_retrieve_params import ( + ScheduledQueryRunRetrieveParams as ScheduledQueryRunRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ScheduledQueryRunListParams": ( + "stripe.params.sigma._scheduled_query_run_list_params", + False, + ), + "ScheduledQueryRunRetrieveParams": ( + "stripe.params.sigma._scheduled_query_run_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..b1cbafd1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/_scheduled_query_run_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/_scheduled_query_run_list_params.cpython-312.pyc new file mode 100644 index 00000000..b0de44b6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/_scheduled_query_run_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/_scheduled_query_run_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/_scheduled_query_run_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..ddc3db2b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/__pycache__/_scheduled_query_run_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/_scheduled_query_run_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/_scheduled_query_run_list_params.py new file mode 100644 index 00000000..22dc4fc2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/_scheduled_query_run_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ScheduledQueryRunListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/_scheduled_query_run_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/_scheduled_query_run_retrieve_params.py new file mode 100644 index 00000000..439adc13 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/sigma/_scheduled_query_run_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ScheduledQueryRunRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__init__.py new file mode 100644 index 00000000..96b4f9f2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__init__.py @@ -0,0 +1,1034 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.tax._calculation_create_params import ( + CalculationCreateParams as CalculationCreateParams, + CalculationCreateParamsCustomerDetails as CalculationCreateParamsCustomerDetails, + CalculationCreateParamsCustomerDetailsAddress as CalculationCreateParamsCustomerDetailsAddress, + CalculationCreateParamsCustomerDetailsTaxId as CalculationCreateParamsCustomerDetailsTaxId, + CalculationCreateParamsLineItem as CalculationCreateParamsLineItem, + CalculationCreateParamsShipFromDetails as CalculationCreateParamsShipFromDetails, + CalculationCreateParamsShipFromDetailsAddress as CalculationCreateParamsShipFromDetailsAddress, + CalculationCreateParamsShippingCost as CalculationCreateParamsShippingCost, + ) + from stripe.params.tax._calculation_line_item_list_params import ( + CalculationLineItemListParams as CalculationLineItemListParams, + ) + from stripe.params.tax._calculation_list_line_items_params import ( + CalculationListLineItemsParams as CalculationListLineItemsParams, + ) + from stripe.params.tax._calculation_retrieve_params import ( + CalculationRetrieveParams as CalculationRetrieveParams, + ) + from stripe.params.tax._registration_create_params import ( + RegistrationCreateParams as RegistrationCreateParams, + RegistrationCreateParamsCountryOptions as RegistrationCreateParamsCountryOptions, + RegistrationCreateParamsCountryOptionsAe as RegistrationCreateParamsCountryOptionsAe, + RegistrationCreateParamsCountryOptionsAeStandard as RegistrationCreateParamsCountryOptionsAeStandard, + RegistrationCreateParamsCountryOptionsAl as RegistrationCreateParamsCountryOptionsAl, + RegistrationCreateParamsCountryOptionsAlStandard as RegistrationCreateParamsCountryOptionsAlStandard, + RegistrationCreateParamsCountryOptionsAm as RegistrationCreateParamsCountryOptionsAm, + RegistrationCreateParamsCountryOptionsAo as RegistrationCreateParamsCountryOptionsAo, + RegistrationCreateParamsCountryOptionsAoStandard as RegistrationCreateParamsCountryOptionsAoStandard, + RegistrationCreateParamsCountryOptionsAt as RegistrationCreateParamsCountryOptionsAt, + RegistrationCreateParamsCountryOptionsAtStandard as RegistrationCreateParamsCountryOptionsAtStandard, + RegistrationCreateParamsCountryOptionsAu as RegistrationCreateParamsCountryOptionsAu, + RegistrationCreateParamsCountryOptionsAuStandard as RegistrationCreateParamsCountryOptionsAuStandard, + RegistrationCreateParamsCountryOptionsAw as RegistrationCreateParamsCountryOptionsAw, + RegistrationCreateParamsCountryOptionsAwStandard as RegistrationCreateParamsCountryOptionsAwStandard, + RegistrationCreateParamsCountryOptionsAz as RegistrationCreateParamsCountryOptionsAz, + RegistrationCreateParamsCountryOptionsBa as RegistrationCreateParamsCountryOptionsBa, + RegistrationCreateParamsCountryOptionsBaStandard as RegistrationCreateParamsCountryOptionsBaStandard, + RegistrationCreateParamsCountryOptionsBb as RegistrationCreateParamsCountryOptionsBb, + RegistrationCreateParamsCountryOptionsBbStandard as RegistrationCreateParamsCountryOptionsBbStandard, + RegistrationCreateParamsCountryOptionsBd as RegistrationCreateParamsCountryOptionsBd, + RegistrationCreateParamsCountryOptionsBdStandard as RegistrationCreateParamsCountryOptionsBdStandard, + RegistrationCreateParamsCountryOptionsBe as RegistrationCreateParamsCountryOptionsBe, + RegistrationCreateParamsCountryOptionsBeStandard as RegistrationCreateParamsCountryOptionsBeStandard, + RegistrationCreateParamsCountryOptionsBf as RegistrationCreateParamsCountryOptionsBf, + RegistrationCreateParamsCountryOptionsBfStandard as RegistrationCreateParamsCountryOptionsBfStandard, + RegistrationCreateParamsCountryOptionsBg as RegistrationCreateParamsCountryOptionsBg, + RegistrationCreateParamsCountryOptionsBgStandard as RegistrationCreateParamsCountryOptionsBgStandard, + RegistrationCreateParamsCountryOptionsBh as RegistrationCreateParamsCountryOptionsBh, + RegistrationCreateParamsCountryOptionsBhStandard as RegistrationCreateParamsCountryOptionsBhStandard, + RegistrationCreateParamsCountryOptionsBj as RegistrationCreateParamsCountryOptionsBj, + RegistrationCreateParamsCountryOptionsBs as RegistrationCreateParamsCountryOptionsBs, + RegistrationCreateParamsCountryOptionsBsStandard as RegistrationCreateParamsCountryOptionsBsStandard, + RegistrationCreateParamsCountryOptionsBy as RegistrationCreateParamsCountryOptionsBy, + RegistrationCreateParamsCountryOptionsCa as RegistrationCreateParamsCountryOptionsCa, + RegistrationCreateParamsCountryOptionsCaProvinceStandard as RegistrationCreateParamsCountryOptionsCaProvinceStandard, + RegistrationCreateParamsCountryOptionsCd as RegistrationCreateParamsCountryOptionsCd, + RegistrationCreateParamsCountryOptionsCdStandard as RegistrationCreateParamsCountryOptionsCdStandard, + RegistrationCreateParamsCountryOptionsCh as RegistrationCreateParamsCountryOptionsCh, + RegistrationCreateParamsCountryOptionsChStandard as RegistrationCreateParamsCountryOptionsChStandard, + RegistrationCreateParamsCountryOptionsCl as RegistrationCreateParamsCountryOptionsCl, + RegistrationCreateParamsCountryOptionsCm as RegistrationCreateParamsCountryOptionsCm, + RegistrationCreateParamsCountryOptionsCo as RegistrationCreateParamsCountryOptionsCo, + RegistrationCreateParamsCountryOptionsCr as RegistrationCreateParamsCountryOptionsCr, + RegistrationCreateParamsCountryOptionsCv as RegistrationCreateParamsCountryOptionsCv, + RegistrationCreateParamsCountryOptionsCy as RegistrationCreateParamsCountryOptionsCy, + RegistrationCreateParamsCountryOptionsCyStandard as RegistrationCreateParamsCountryOptionsCyStandard, + RegistrationCreateParamsCountryOptionsCz as RegistrationCreateParamsCountryOptionsCz, + RegistrationCreateParamsCountryOptionsCzStandard as RegistrationCreateParamsCountryOptionsCzStandard, + RegistrationCreateParamsCountryOptionsDe as RegistrationCreateParamsCountryOptionsDe, + RegistrationCreateParamsCountryOptionsDeStandard as RegistrationCreateParamsCountryOptionsDeStandard, + RegistrationCreateParamsCountryOptionsDk as RegistrationCreateParamsCountryOptionsDk, + RegistrationCreateParamsCountryOptionsDkStandard as RegistrationCreateParamsCountryOptionsDkStandard, + RegistrationCreateParamsCountryOptionsEc as RegistrationCreateParamsCountryOptionsEc, + RegistrationCreateParamsCountryOptionsEe as RegistrationCreateParamsCountryOptionsEe, + RegistrationCreateParamsCountryOptionsEeStandard as RegistrationCreateParamsCountryOptionsEeStandard, + RegistrationCreateParamsCountryOptionsEg as RegistrationCreateParamsCountryOptionsEg, + RegistrationCreateParamsCountryOptionsEs as RegistrationCreateParamsCountryOptionsEs, + RegistrationCreateParamsCountryOptionsEsStandard as RegistrationCreateParamsCountryOptionsEsStandard, + RegistrationCreateParamsCountryOptionsEt as RegistrationCreateParamsCountryOptionsEt, + RegistrationCreateParamsCountryOptionsEtStandard as RegistrationCreateParamsCountryOptionsEtStandard, + RegistrationCreateParamsCountryOptionsFi as RegistrationCreateParamsCountryOptionsFi, + RegistrationCreateParamsCountryOptionsFiStandard as RegistrationCreateParamsCountryOptionsFiStandard, + RegistrationCreateParamsCountryOptionsFr as RegistrationCreateParamsCountryOptionsFr, + RegistrationCreateParamsCountryOptionsFrStandard as RegistrationCreateParamsCountryOptionsFrStandard, + RegistrationCreateParamsCountryOptionsGb as RegistrationCreateParamsCountryOptionsGb, + RegistrationCreateParamsCountryOptionsGbStandard as RegistrationCreateParamsCountryOptionsGbStandard, + RegistrationCreateParamsCountryOptionsGe as RegistrationCreateParamsCountryOptionsGe, + RegistrationCreateParamsCountryOptionsGn as RegistrationCreateParamsCountryOptionsGn, + RegistrationCreateParamsCountryOptionsGnStandard as RegistrationCreateParamsCountryOptionsGnStandard, + RegistrationCreateParamsCountryOptionsGr as RegistrationCreateParamsCountryOptionsGr, + RegistrationCreateParamsCountryOptionsGrStandard as RegistrationCreateParamsCountryOptionsGrStandard, + RegistrationCreateParamsCountryOptionsHr as RegistrationCreateParamsCountryOptionsHr, + RegistrationCreateParamsCountryOptionsHrStandard as RegistrationCreateParamsCountryOptionsHrStandard, + RegistrationCreateParamsCountryOptionsHu as RegistrationCreateParamsCountryOptionsHu, + RegistrationCreateParamsCountryOptionsHuStandard as RegistrationCreateParamsCountryOptionsHuStandard, + RegistrationCreateParamsCountryOptionsId as RegistrationCreateParamsCountryOptionsId, + RegistrationCreateParamsCountryOptionsIe as RegistrationCreateParamsCountryOptionsIe, + RegistrationCreateParamsCountryOptionsIeStandard as RegistrationCreateParamsCountryOptionsIeStandard, + RegistrationCreateParamsCountryOptionsIn as RegistrationCreateParamsCountryOptionsIn, + RegistrationCreateParamsCountryOptionsIs as RegistrationCreateParamsCountryOptionsIs, + RegistrationCreateParamsCountryOptionsIsStandard as RegistrationCreateParamsCountryOptionsIsStandard, + RegistrationCreateParamsCountryOptionsIt as RegistrationCreateParamsCountryOptionsIt, + RegistrationCreateParamsCountryOptionsItStandard as RegistrationCreateParamsCountryOptionsItStandard, + RegistrationCreateParamsCountryOptionsJp as RegistrationCreateParamsCountryOptionsJp, + RegistrationCreateParamsCountryOptionsJpStandard as RegistrationCreateParamsCountryOptionsJpStandard, + RegistrationCreateParamsCountryOptionsKe as RegistrationCreateParamsCountryOptionsKe, + RegistrationCreateParamsCountryOptionsKg as RegistrationCreateParamsCountryOptionsKg, + RegistrationCreateParamsCountryOptionsKh as RegistrationCreateParamsCountryOptionsKh, + RegistrationCreateParamsCountryOptionsKr as RegistrationCreateParamsCountryOptionsKr, + RegistrationCreateParamsCountryOptionsKz as RegistrationCreateParamsCountryOptionsKz, + RegistrationCreateParamsCountryOptionsLa as RegistrationCreateParamsCountryOptionsLa, + RegistrationCreateParamsCountryOptionsLt as RegistrationCreateParamsCountryOptionsLt, + RegistrationCreateParamsCountryOptionsLtStandard as RegistrationCreateParamsCountryOptionsLtStandard, + RegistrationCreateParamsCountryOptionsLu as RegistrationCreateParamsCountryOptionsLu, + RegistrationCreateParamsCountryOptionsLuStandard as RegistrationCreateParamsCountryOptionsLuStandard, + RegistrationCreateParamsCountryOptionsLv as RegistrationCreateParamsCountryOptionsLv, + RegistrationCreateParamsCountryOptionsLvStandard as RegistrationCreateParamsCountryOptionsLvStandard, + RegistrationCreateParamsCountryOptionsMa as RegistrationCreateParamsCountryOptionsMa, + RegistrationCreateParamsCountryOptionsMd as RegistrationCreateParamsCountryOptionsMd, + RegistrationCreateParamsCountryOptionsMe as RegistrationCreateParamsCountryOptionsMe, + RegistrationCreateParamsCountryOptionsMeStandard as RegistrationCreateParamsCountryOptionsMeStandard, + RegistrationCreateParamsCountryOptionsMk as RegistrationCreateParamsCountryOptionsMk, + RegistrationCreateParamsCountryOptionsMkStandard as RegistrationCreateParamsCountryOptionsMkStandard, + RegistrationCreateParamsCountryOptionsMr as RegistrationCreateParamsCountryOptionsMr, + RegistrationCreateParamsCountryOptionsMrStandard as RegistrationCreateParamsCountryOptionsMrStandard, + RegistrationCreateParamsCountryOptionsMt as RegistrationCreateParamsCountryOptionsMt, + RegistrationCreateParamsCountryOptionsMtStandard as RegistrationCreateParamsCountryOptionsMtStandard, + RegistrationCreateParamsCountryOptionsMx as RegistrationCreateParamsCountryOptionsMx, + RegistrationCreateParamsCountryOptionsMy as RegistrationCreateParamsCountryOptionsMy, + RegistrationCreateParamsCountryOptionsNg as RegistrationCreateParamsCountryOptionsNg, + RegistrationCreateParamsCountryOptionsNl as RegistrationCreateParamsCountryOptionsNl, + RegistrationCreateParamsCountryOptionsNlStandard as RegistrationCreateParamsCountryOptionsNlStandard, + RegistrationCreateParamsCountryOptionsNo as RegistrationCreateParamsCountryOptionsNo, + RegistrationCreateParamsCountryOptionsNoStandard as RegistrationCreateParamsCountryOptionsNoStandard, + RegistrationCreateParamsCountryOptionsNp as RegistrationCreateParamsCountryOptionsNp, + RegistrationCreateParamsCountryOptionsNz as RegistrationCreateParamsCountryOptionsNz, + RegistrationCreateParamsCountryOptionsNzStandard as RegistrationCreateParamsCountryOptionsNzStandard, + RegistrationCreateParamsCountryOptionsOm as RegistrationCreateParamsCountryOptionsOm, + RegistrationCreateParamsCountryOptionsOmStandard as RegistrationCreateParamsCountryOptionsOmStandard, + RegistrationCreateParamsCountryOptionsPe as RegistrationCreateParamsCountryOptionsPe, + RegistrationCreateParamsCountryOptionsPh as RegistrationCreateParamsCountryOptionsPh, + RegistrationCreateParamsCountryOptionsPl as RegistrationCreateParamsCountryOptionsPl, + RegistrationCreateParamsCountryOptionsPlStandard as RegistrationCreateParamsCountryOptionsPlStandard, + RegistrationCreateParamsCountryOptionsPt as RegistrationCreateParamsCountryOptionsPt, + RegistrationCreateParamsCountryOptionsPtStandard as RegistrationCreateParamsCountryOptionsPtStandard, + RegistrationCreateParamsCountryOptionsRo as RegistrationCreateParamsCountryOptionsRo, + RegistrationCreateParamsCountryOptionsRoStandard as RegistrationCreateParamsCountryOptionsRoStandard, + RegistrationCreateParamsCountryOptionsRs as RegistrationCreateParamsCountryOptionsRs, + RegistrationCreateParamsCountryOptionsRsStandard as RegistrationCreateParamsCountryOptionsRsStandard, + RegistrationCreateParamsCountryOptionsRu as RegistrationCreateParamsCountryOptionsRu, + RegistrationCreateParamsCountryOptionsSa as RegistrationCreateParamsCountryOptionsSa, + RegistrationCreateParamsCountryOptionsSe as RegistrationCreateParamsCountryOptionsSe, + RegistrationCreateParamsCountryOptionsSeStandard as RegistrationCreateParamsCountryOptionsSeStandard, + RegistrationCreateParamsCountryOptionsSg as RegistrationCreateParamsCountryOptionsSg, + RegistrationCreateParamsCountryOptionsSgStandard as RegistrationCreateParamsCountryOptionsSgStandard, + RegistrationCreateParamsCountryOptionsSi as RegistrationCreateParamsCountryOptionsSi, + RegistrationCreateParamsCountryOptionsSiStandard as RegistrationCreateParamsCountryOptionsSiStandard, + RegistrationCreateParamsCountryOptionsSk as RegistrationCreateParamsCountryOptionsSk, + RegistrationCreateParamsCountryOptionsSkStandard as RegistrationCreateParamsCountryOptionsSkStandard, + RegistrationCreateParamsCountryOptionsSn as RegistrationCreateParamsCountryOptionsSn, + RegistrationCreateParamsCountryOptionsSr as RegistrationCreateParamsCountryOptionsSr, + RegistrationCreateParamsCountryOptionsSrStandard as RegistrationCreateParamsCountryOptionsSrStandard, + RegistrationCreateParamsCountryOptionsTh as RegistrationCreateParamsCountryOptionsTh, + RegistrationCreateParamsCountryOptionsTj as RegistrationCreateParamsCountryOptionsTj, + RegistrationCreateParamsCountryOptionsTr as RegistrationCreateParamsCountryOptionsTr, + RegistrationCreateParamsCountryOptionsTw as RegistrationCreateParamsCountryOptionsTw, + RegistrationCreateParamsCountryOptionsTz as RegistrationCreateParamsCountryOptionsTz, + RegistrationCreateParamsCountryOptionsUa as RegistrationCreateParamsCountryOptionsUa, + RegistrationCreateParamsCountryOptionsUg as RegistrationCreateParamsCountryOptionsUg, + RegistrationCreateParamsCountryOptionsUs as RegistrationCreateParamsCountryOptionsUs, + RegistrationCreateParamsCountryOptionsUsLocalAmusementTax as RegistrationCreateParamsCountryOptionsUsLocalAmusementTax, + RegistrationCreateParamsCountryOptionsUsLocalLeaseTax as RegistrationCreateParamsCountryOptionsUsLocalLeaseTax, + RegistrationCreateParamsCountryOptionsUsStateSalesTax as RegistrationCreateParamsCountryOptionsUsStateSalesTax, + RegistrationCreateParamsCountryOptionsUsStateSalesTaxElection as RegistrationCreateParamsCountryOptionsUsStateSalesTaxElection, + RegistrationCreateParamsCountryOptionsUy as RegistrationCreateParamsCountryOptionsUy, + RegistrationCreateParamsCountryOptionsUyStandard as RegistrationCreateParamsCountryOptionsUyStandard, + RegistrationCreateParamsCountryOptionsUz as RegistrationCreateParamsCountryOptionsUz, + RegistrationCreateParamsCountryOptionsVn as RegistrationCreateParamsCountryOptionsVn, + RegistrationCreateParamsCountryOptionsZa as RegistrationCreateParamsCountryOptionsZa, + RegistrationCreateParamsCountryOptionsZaStandard as RegistrationCreateParamsCountryOptionsZaStandard, + RegistrationCreateParamsCountryOptionsZm as RegistrationCreateParamsCountryOptionsZm, + RegistrationCreateParamsCountryOptionsZw as RegistrationCreateParamsCountryOptionsZw, + RegistrationCreateParamsCountryOptionsZwStandard as RegistrationCreateParamsCountryOptionsZwStandard, + ) + from stripe.params.tax._registration_list_params import ( + RegistrationListParams as RegistrationListParams, + ) + from stripe.params.tax._registration_modify_params import ( + RegistrationModifyParams as RegistrationModifyParams, + ) + from stripe.params.tax._registration_retrieve_params import ( + RegistrationRetrieveParams as RegistrationRetrieveParams, + ) + from stripe.params.tax._registration_update_params import ( + RegistrationUpdateParams as RegistrationUpdateParams, + ) + from stripe.params.tax._settings_modify_params import ( + SettingsModifyParams as SettingsModifyParams, + SettingsModifyParamsDefaults as SettingsModifyParamsDefaults, + SettingsModifyParamsHeadOffice as SettingsModifyParamsHeadOffice, + SettingsModifyParamsHeadOfficeAddress as SettingsModifyParamsHeadOfficeAddress, + ) + from stripe.params.tax._settings_retrieve_params import ( + SettingsRetrieveParams as SettingsRetrieveParams, + ) + from stripe.params.tax._settings_update_params import ( + SettingsUpdateParams as SettingsUpdateParams, + SettingsUpdateParamsDefaults as SettingsUpdateParamsDefaults, + SettingsUpdateParamsHeadOffice as SettingsUpdateParamsHeadOffice, + SettingsUpdateParamsHeadOfficeAddress as SettingsUpdateParamsHeadOfficeAddress, + ) + from stripe.params.tax._transaction_create_from_calculation_params import ( + TransactionCreateFromCalculationParams as TransactionCreateFromCalculationParams, + ) + from stripe.params.tax._transaction_create_reversal_params import ( + TransactionCreateReversalParams as TransactionCreateReversalParams, + TransactionCreateReversalParamsLineItem as TransactionCreateReversalParamsLineItem, + TransactionCreateReversalParamsShippingCost as TransactionCreateReversalParamsShippingCost, + ) + from stripe.params.tax._transaction_line_item_list_params import ( + TransactionLineItemListParams as TransactionLineItemListParams, + ) + from stripe.params.tax._transaction_list_line_items_params import ( + TransactionListLineItemsParams as TransactionListLineItemsParams, + ) + from stripe.params.tax._transaction_retrieve_params import ( + TransactionRetrieveParams as TransactionRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "CalculationCreateParams": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationCreateParamsCustomerDetails": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationCreateParamsCustomerDetailsAddress": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationCreateParamsCustomerDetailsTaxId": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationCreateParamsLineItem": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationCreateParamsShipFromDetails": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationCreateParamsShipFromDetailsAddress": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationCreateParamsShippingCost": ( + "stripe.params.tax._calculation_create_params", + False, + ), + "CalculationLineItemListParams": ( + "stripe.params.tax._calculation_line_item_list_params", + False, + ), + "CalculationListLineItemsParams": ( + "stripe.params.tax._calculation_list_line_items_params", + False, + ), + "CalculationRetrieveParams": ( + "stripe.params.tax._calculation_retrieve_params", + False, + ), + "RegistrationCreateParams": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptions": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAeStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAl": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAlStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAm": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAo": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAoStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAt": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAtStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAu": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAuStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAw": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAwStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsAz": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBa": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBaStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBb": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBbStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBd": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBdStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBeStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBf": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBfStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBg": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBgStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBh": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBhStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBj": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBs": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBsStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsBy": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCa": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCaProvinceStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCd": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCdStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCh": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsChStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCl": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCm": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCo": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCv": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCy": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCyStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCz": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsCzStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsDe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsDeStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsDk": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsDkStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEc": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEeStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEg": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEs": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEsStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEt": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsEtStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsFi": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsFiStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsFr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsFrStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsGb": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsGbStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsGe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsGn": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsGnStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsGr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsGrStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsHr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsHrStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsHu": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsHuStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsId": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsIe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsIeStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsIn": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsIs": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsIsStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsIt": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsItStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsJp": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsJpStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsKe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsKg": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsKh": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsKr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsKz": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsLa": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsLt": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsLtStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsLu": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsLuStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsLv": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsLvStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMa": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMd": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMeStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMk": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMkStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMrStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMt": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMtStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMx": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsMy": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNg": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNl": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNlStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNo": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNoStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNp": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNz": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsNzStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsOm": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsOmStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsPe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsPh": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsPl": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsPlStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsPt": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsPtStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsRo": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsRoStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsRs": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsRsStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsRu": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSa": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSe": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSeStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSg": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSgStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSi": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSiStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSk": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSkStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSn": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsSrStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsTh": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsTj": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsTr": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsTw": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsTz": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUa": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUg": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUs": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUsLocalAmusementTax": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUsLocalLeaseTax": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUsStateSalesTax": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUsStateSalesTaxElection": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUy": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUyStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsUz": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsVn": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsZa": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsZaStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsZm": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsZw": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationCreateParamsCountryOptionsZwStandard": ( + "stripe.params.tax._registration_create_params", + False, + ), + "RegistrationListParams": ( + "stripe.params.tax._registration_list_params", + False, + ), + "RegistrationModifyParams": ( + "stripe.params.tax._registration_modify_params", + False, + ), + "RegistrationRetrieveParams": ( + "stripe.params.tax._registration_retrieve_params", + False, + ), + "RegistrationUpdateParams": ( + "stripe.params.tax._registration_update_params", + False, + ), + "SettingsModifyParams": ( + "stripe.params.tax._settings_modify_params", + False, + ), + "SettingsModifyParamsDefaults": ( + "stripe.params.tax._settings_modify_params", + False, + ), + "SettingsModifyParamsHeadOffice": ( + "stripe.params.tax._settings_modify_params", + False, + ), + "SettingsModifyParamsHeadOfficeAddress": ( + "stripe.params.tax._settings_modify_params", + False, + ), + "SettingsRetrieveParams": ( + "stripe.params.tax._settings_retrieve_params", + False, + ), + "SettingsUpdateParams": ( + "stripe.params.tax._settings_update_params", + False, + ), + "SettingsUpdateParamsDefaults": ( + "stripe.params.tax._settings_update_params", + False, + ), + "SettingsUpdateParamsHeadOffice": ( + "stripe.params.tax._settings_update_params", + False, + ), + "SettingsUpdateParamsHeadOfficeAddress": ( + "stripe.params.tax._settings_update_params", + False, + ), + "TransactionCreateFromCalculationParams": ( + "stripe.params.tax._transaction_create_from_calculation_params", + False, + ), + "TransactionCreateReversalParams": ( + "stripe.params.tax._transaction_create_reversal_params", + False, + ), + "TransactionCreateReversalParamsLineItem": ( + "stripe.params.tax._transaction_create_reversal_params", + False, + ), + "TransactionCreateReversalParamsShippingCost": ( + "stripe.params.tax._transaction_create_reversal_params", + False, + ), + "TransactionLineItemListParams": ( + "stripe.params.tax._transaction_line_item_list_params", + False, + ), + "TransactionListLineItemsParams": ( + "stripe.params.tax._transaction_list_line_items_params", + False, + ), + "TransactionRetrieveParams": ( + "stripe.params.tax._transaction_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..a8b88fa7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_create_params.cpython-312.pyc new file mode 100644 index 00000000..c53cc3ab Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..7bf11dbd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_list_line_items_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_list_line_items_params.cpython-312.pyc new file mode 100644 index 00000000..98ac615f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_list_line_items_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..02e270db Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_calculation_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_create_params.cpython-312.pyc new file mode 100644 index 00000000..6f2c5837 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_list_params.cpython-312.pyc new file mode 100644 index 00000000..39140f08 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_modify_params.cpython-312.pyc new file mode 100644 index 00000000..c17950d8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..774b798b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_update_params.cpython-312.pyc new file mode 100644 index 00000000..32ae7f4d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_registration_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_modify_params.cpython-312.pyc new file mode 100644 index 00000000..6f3ce223 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..6b9a16de Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_update_params.cpython-312.pyc new file mode 100644 index 00000000..0edebe58 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_settings_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_create_from_calculation_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_create_from_calculation_params.cpython-312.pyc new file mode 100644 index 00000000..6d7c383c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_create_from_calculation_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_create_reversal_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_create_reversal_params.cpython-312.pyc new file mode 100644 index 00000000..fc03f081 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_create_reversal_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_line_item_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_line_item_list_params.cpython-312.pyc new file mode 100644 index 00000000..f93cbfa0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_line_item_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_list_line_items_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_list_line_items_params.cpython-312.pyc new file mode 100644 index 00000000..e9781f2c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_list_line_items_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..85274894 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/__pycache__/_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_create_params.py new file mode 100644 index 00000000..f1815268 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_create_params.py @@ -0,0 +1,299 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class CalculationCreateParams(RequestOptions): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: NotRequired[str] + """ + The ID of an existing customer to use for this calculation. If provided, the customer's address and tax IDs are copied to `customer_details`. + """ + customer_details: NotRequired["CalculationCreateParamsCustomerDetails"] + """ + Details about the customer, including address and tax IDs. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + line_items: List["CalculationCreateParamsLineItem"] + """ + A list of items the customer is purchasing. + """ + ship_from_details: NotRequired["CalculationCreateParamsShipFromDetails"] + """ + Details about the address from which the goods are being shipped. + """ + shipping_cost: NotRequired["CalculationCreateParamsShippingCost"] + """ + Shipping cost details to be used for the calculation. + """ + tax_date: NotRequired[int] + """ + Timestamp of date at which the tax rules and rates in effect applies for the calculation. Measured in seconds since the Unix epoch. Can be up to 48 hours in the past, and up to 48 hours in the future. + """ + + +class CalculationCreateParamsCustomerDetails(TypedDict): + address: NotRequired["CalculationCreateParamsCustomerDetailsAddress"] + """ + The customer's postal address (for example, home or business location). + """ + address_source: NotRequired[Literal["billing", "shipping"]] + """ + The type of customer address provided. + """ + ip_address: NotRequired[str] + """ + The customer's IP address (IPv4 or IPv6). + """ + tax_ids: NotRequired[List["CalculationCreateParamsCustomerDetailsTaxId"]] + """ + The customer's tax IDs. Stripe Tax might consider a transaction with applicable tax IDs to be B2B, which might affect the tax calculation result. Stripe Tax doesn't validate tax IDs for correctness. + """ + taxability_override: NotRequired[ + Literal["customer_exempt", "none", "reverse_charge"] + ] + """ + Overrides the tax calculation result to allow you to not collect tax from your customer. Use this if you've manually checked your customer's tax exemptions. Prefer providing the customer's `tax_ids` where possible, which automatically determines whether `reverse_charge` applies. + """ + + +class CalculationCreateParamsCustomerDetailsAddress(TypedDict): + city: NotRequired["Literal['']|str"] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired["Literal['']|str"] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired["Literal['']|str"] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired["Literal['']|str"] + """ + ZIP or postal code. + """ + state: NotRequired["Literal['']|str"] + """ + State, county, province, or region. We recommend sending [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code value when possible. + """ + + +class CalculationCreateParamsCustomerDetailsTaxId(TypedDict): + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin` + """ + value: str + """ + Value of the tax ID. + """ + + +class CalculationCreateParamsLineItem(TypedDict): + amount: int + """ + A positive integer representing the line item's total price in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes are calculated on top of this amount. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + product: NotRequired[str] + """ + If provided, the product's `tax_code` will be used as the line item's `tax_code`. + """ + quantity: NotRequired[int] + """ + The number of units of the item being purchased. Used to calculate the per-unit price from the total `amount` for the line. For example, if `amount=100` and `quantity=4`, the calculated unit price is 25. + """ + reference: NotRequired[str] + """ + A custom identifier for this line item, which must be unique across the line items in the calculation. The reference helps identify each line item in exported [tax reports](https://stripe.com/docs/tax/reports). + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive"]] + """ + Specifies whether the `amount` includes taxes. Defaults to `exclusive`. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID to use for this line item. If not provided, we will use the tax code from the provided `product` param. If neither `tax_code` nor `product` is provided, we will use the default tax code from your Tax Settings. + """ + + +class CalculationCreateParamsShipFromDetails(TypedDict): + address: "CalculationCreateParamsShipFromDetailsAddress" + """ + The address from which the goods are being shipped from. + """ + + +class CalculationCreateParamsShipFromDetailsAddress(TypedDict): + city: NotRequired["Literal['']|str"] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired["Literal['']|str"] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired["Literal['']|str"] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired["Literal['']|str"] + """ + ZIP or postal code. + """ + state: NotRequired["Literal['']|str"] + """ + State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX". + """ + + +class CalculationCreateParamsShippingCost(TypedDict): + amount: NotRequired[int] + """ + A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) representing the shipping charge. If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes are calculated on top of this amount. + """ + shipping_rate: NotRequired[str] + """ + If provided, the [shipping rate](https://stripe.com/docs/api/shipping_rates/object)'s `amount`, `tax_code` and `tax_behavior` are used. If you provide a shipping rate, then you cannot pass the `amount`, `tax_code`, or `tax_behavior` parameters. + """ + tax_behavior: NotRequired[Literal["exclusive", "inclusive"]] + """ + Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes. Defaults to `exclusive`. + """ + tax_code: NotRequired[str] + """ + The [tax code](https://stripe.com/docs/tax/tax-categories) used to calculate tax on shipping. If not provided, the default shipping tax code from your [Tax Settings](https://dashboard.stripe.com/settings/tax) is used. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_line_item_list_params.py new file mode 100644 index 00000000..8c988d49 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CalculationLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_list_line_items_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_list_line_items_params.py new file mode 100644 index 00000000..f2f7ea58 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_list_line_items_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CalculationListLineItemsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_retrieve_params.py new file mode 100644 index 00000000..ac247ea4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_calculation_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CalculationRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_create_params.py new file mode 100644 index 00000000..cca7d5c2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_create_params.py @@ -0,0 +1,1892 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List, Union +from typing_extensions import Literal, NotRequired, TypedDict + + +class RegistrationCreateParams(RequestOptions): + active_from: Union[Literal["now"], int] + """ + Time at which the Tax Registration becomes active. It can be either `now` to indicate the current time, or a future timestamp measured in seconds since the Unix epoch. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + country_options: "RegistrationCreateParamsCountryOptions" + """ + Specific options for a registration in the specified `country`. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired[int] + """ + If set, the Tax Registration stops being active at this time. If not set, the Tax Registration will be active indefinitely. Timestamp measured in seconds since the Unix epoch. + """ + + +_RegistrationCreateParamsCountryOptionsBase = TypedDict( + "RegistrationCreateParamsCountryOptions", + { + "in": NotRequired["RegistrationCreateParamsCountryOptionsIn"], + "is": NotRequired["RegistrationCreateParamsCountryOptionsIs"], + }, +) + + +class RegistrationCreateParamsCountryOptions( + _RegistrationCreateParamsCountryOptionsBase, +): + ae: NotRequired["RegistrationCreateParamsCountryOptionsAe"] + """ + Options for the registration in AE. + """ + al: NotRequired["RegistrationCreateParamsCountryOptionsAl"] + """ + Options for the registration in AL. + """ + am: NotRequired["RegistrationCreateParamsCountryOptionsAm"] + """ + Options for the registration in AM. + """ + ao: NotRequired["RegistrationCreateParamsCountryOptionsAo"] + """ + Options for the registration in AO. + """ + at: NotRequired["RegistrationCreateParamsCountryOptionsAt"] + """ + Options for the registration in AT. + """ + au: NotRequired["RegistrationCreateParamsCountryOptionsAu"] + """ + Options for the registration in AU. + """ + aw: NotRequired["RegistrationCreateParamsCountryOptionsAw"] + """ + Options for the registration in AW. + """ + az: NotRequired["RegistrationCreateParamsCountryOptionsAz"] + """ + Options for the registration in AZ. + """ + ba: NotRequired["RegistrationCreateParamsCountryOptionsBa"] + """ + Options for the registration in BA. + """ + bb: NotRequired["RegistrationCreateParamsCountryOptionsBb"] + """ + Options for the registration in BB. + """ + bd: NotRequired["RegistrationCreateParamsCountryOptionsBd"] + """ + Options for the registration in BD. + """ + be: NotRequired["RegistrationCreateParamsCountryOptionsBe"] + """ + Options for the registration in BE. + """ + bf: NotRequired["RegistrationCreateParamsCountryOptionsBf"] + """ + Options for the registration in BF. + """ + bg: NotRequired["RegistrationCreateParamsCountryOptionsBg"] + """ + Options for the registration in BG. + """ + bh: NotRequired["RegistrationCreateParamsCountryOptionsBh"] + """ + Options for the registration in BH. + """ + bj: NotRequired["RegistrationCreateParamsCountryOptionsBj"] + """ + Options for the registration in BJ. + """ + bs: NotRequired["RegistrationCreateParamsCountryOptionsBs"] + """ + Options for the registration in BS. + """ + by: NotRequired["RegistrationCreateParamsCountryOptionsBy"] + """ + Options for the registration in BY. + """ + ca: NotRequired["RegistrationCreateParamsCountryOptionsCa"] + """ + Options for the registration in CA. + """ + cd: NotRequired["RegistrationCreateParamsCountryOptionsCd"] + """ + Options for the registration in CD. + """ + ch: NotRequired["RegistrationCreateParamsCountryOptionsCh"] + """ + Options for the registration in CH. + """ + cl: NotRequired["RegistrationCreateParamsCountryOptionsCl"] + """ + Options for the registration in CL. + """ + cm: NotRequired["RegistrationCreateParamsCountryOptionsCm"] + """ + Options for the registration in CM. + """ + co: NotRequired["RegistrationCreateParamsCountryOptionsCo"] + """ + Options for the registration in CO. + """ + cr: NotRequired["RegistrationCreateParamsCountryOptionsCr"] + """ + Options for the registration in CR. + """ + cv: NotRequired["RegistrationCreateParamsCountryOptionsCv"] + """ + Options for the registration in CV. + """ + cy: NotRequired["RegistrationCreateParamsCountryOptionsCy"] + """ + Options for the registration in CY. + """ + cz: NotRequired["RegistrationCreateParamsCountryOptionsCz"] + """ + Options for the registration in CZ. + """ + de: NotRequired["RegistrationCreateParamsCountryOptionsDe"] + """ + Options for the registration in DE. + """ + dk: NotRequired["RegistrationCreateParamsCountryOptionsDk"] + """ + Options for the registration in DK. + """ + ec: NotRequired["RegistrationCreateParamsCountryOptionsEc"] + """ + Options for the registration in EC. + """ + ee: NotRequired["RegistrationCreateParamsCountryOptionsEe"] + """ + Options for the registration in EE. + """ + eg: NotRequired["RegistrationCreateParamsCountryOptionsEg"] + """ + Options for the registration in EG. + """ + es: NotRequired["RegistrationCreateParamsCountryOptionsEs"] + """ + Options for the registration in ES. + """ + et: NotRequired["RegistrationCreateParamsCountryOptionsEt"] + """ + Options for the registration in ET. + """ + fi: NotRequired["RegistrationCreateParamsCountryOptionsFi"] + """ + Options for the registration in FI. + """ + fr: NotRequired["RegistrationCreateParamsCountryOptionsFr"] + """ + Options for the registration in FR. + """ + gb: NotRequired["RegistrationCreateParamsCountryOptionsGb"] + """ + Options for the registration in GB. + """ + ge: NotRequired["RegistrationCreateParamsCountryOptionsGe"] + """ + Options for the registration in GE. + """ + gn: NotRequired["RegistrationCreateParamsCountryOptionsGn"] + """ + Options for the registration in GN. + """ + gr: NotRequired["RegistrationCreateParamsCountryOptionsGr"] + """ + Options for the registration in GR. + """ + hr: NotRequired["RegistrationCreateParamsCountryOptionsHr"] + """ + Options for the registration in HR. + """ + hu: NotRequired["RegistrationCreateParamsCountryOptionsHu"] + """ + Options for the registration in HU. + """ + id: NotRequired["RegistrationCreateParamsCountryOptionsId"] + """ + Options for the registration in ID. + """ + ie: NotRequired["RegistrationCreateParamsCountryOptionsIe"] + """ + Options for the registration in IE. + """ + it: NotRequired["RegistrationCreateParamsCountryOptionsIt"] + """ + Options for the registration in IT. + """ + jp: NotRequired["RegistrationCreateParamsCountryOptionsJp"] + """ + Options for the registration in JP. + """ + ke: NotRequired["RegistrationCreateParamsCountryOptionsKe"] + """ + Options for the registration in KE. + """ + kg: NotRequired["RegistrationCreateParamsCountryOptionsKg"] + """ + Options for the registration in KG. + """ + kh: NotRequired["RegistrationCreateParamsCountryOptionsKh"] + """ + Options for the registration in KH. + """ + kr: NotRequired["RegistrationCreateParamsCountryOptionsKr"] + """ + Options for the registration in KR. + """ + kz: NotRequired["RegistrationCreateParamsCountryOptionsKz"] + """ + Options for the registration in KZ. + """ + la: NotRequired["RegistrationCreateParamsCountryOptionsLa"] + """ + Options for the registration in LA. + """ + lt: NotRequired["RegistrationCreateParamsCountryOptionsLt"] + """ + Options for the registration in LT. + """ + lu: NotRequired["RegistrationCreateParamsCountryOptionsLu"] + """ + Options for the registration in LU. + """ + lv: NotRequired["RegistrationCreateParamsCountryOptionsLv"] + """ + Options for the registration in LV. + """ + ma: NotRequired["RegistrationCreateParamsCountryOptionsMa"] + """ + Options for the registration in MA. + """ + md: NotRequired["RegistrationCreateParamsCountryOptionsMd"] + """ + Options for the registration in MD. + """ + me: NotRequired["RegistrationCreateParamsCountryOptionsMe"] + """ + Options for the registration in ME. + """ + mk: NotRequired["RegistrationCreateParamsCountryOptionsMk"] + """ + Options for the registration in MK. + """ + mr: NotRequired["RegistrationCreateParamsCountryOptionsMr"] + """ + Options for the registration in MR. + """ + mt: NotRequired["RegistrationCreateParamsCountryOptionsMt"] + """ + Options for the registration in MT. + """ + mx: NotRequired["RegistrationCreateParamsCountryOptionsMx"] + """ + Options for the registration in MX. + """ + my: NotRequired["RegistrationCreateParamsCountryOptionsMy"] + """ + Options for the registration in MY. + """ + ng: NotRequired["RegistrationCreateParamsCountryOptionsNg"] + """ + Options for the registration in NG. + """ + nl: NotRequired["RegistrationCreateParamsCountryOptionsNl"] + """ + Options for the registration in NL. + """ + no: NotRequired["RegistrationCreateParamsCountryOptionsNo"] + """ + Options for the registration in NO. + """ + np: NotRequired["RegistrationCreateParamsCountryOptionsNp"] + """ + Options for the registration in NP. + """ + nz: NotRequired["RegistrationCreateParamsCountryOptionsNz"] + """ + Options for the registration in NZ. + """ + om: NotRequired["RegistrationCreateParamsCountryOptionsOm"] + """ + Options for the registration in OM. + """ + pe: NotRequired["RegistrationCreateParamsCountryOptionsPe"] + """ + Options for the registration in PE. + """ + ph: NotRequired["RegistrationCreateParamsCountryOptionsPh"] + """ + Options for the registration in PH. + """ + pl: NotRequired["RegistrationCreateParamsCountryOptionsPl"] + """ + Options for the registration in PL. + """ + pt: NotRequired["RegistrationCreateParamsCountryOptionsPt"] + """ + Options for the registration in PT. + """ + ro: NotRequired["RegistrationCreateParamsCountryOptionsRo"] + """ + Options for the registration in RO. + """ + rs: NotRequired["RegistrationCreateParamsCountryOptionsRs"] + """ + Options for the registration in RS. + """ + ru: NotRequired["RegistrationCreateParamsCountryOptionsRu"] + """ + Options for the registration in RU. + """ + sa: NotRequired["RegistrationCreateParamsCountryOptionsSa"] + """ + Options for the registration in SA. + """ + se: NotRequired["RegistrationCreateParamsCountryOptionsSe"] + """ + Options for the registration in SE. + """ + sg: NotRequired["RegistrationCreateParamsCountryOptionsSg"] + """ + Options for the registration in SG. + """ + si: NotRequired["RegistrationCreateParamsCountryOptionsSi"] + """ + Options for the registration in SI. + """ + sk: NotRequired["RegistrationCreateParamsCountryOptionsSk"] + """ + Options for the registration in SK. + """ + sn: NotRequired["RegistrationCreateParamsCountryOptionsSn"] + """ + Options for the registration in SN. + """ + sr: NotRequired["RegistrationCreateParamsCountryOptionsSr"] + """ + Options for the registration in SR. + """ + th: NotRequired["RegistrationCreateParamsCountryOptionsTh"] + """ + Options for the registration in TH. + """ + tj: NotRequired["RegistrationCreateParamsCountryOptionsTj"] + """ + Options for the registration in TJ. + """ + tr: NotRequired["RegistrationCreateParamsCountryOptionsTr"] + """ + Options for the registration in TR. + """ + tw: NotRequired["RegistrationCreateParamsCountryOptionsTw"] + """ + Options for the registration in TW. + """ + tz: NotRequired["RegistrationCreateParamsCountryOptionsTz"] + """ + Options for the registration in TZ. + """ + ua: NotRequired["RegistrationCreateParamsCountryOptionsUa"] + """ + Options for the registration in UA. + """ + ug: NotRequired["RegistrationCreateParamsCountryOptionsUg"] + """ + Options for the registration in UG. + """ + us: NotRequired["RegistrationCreateParamsCountryOptionsUs"] + """ + Options for the registration in US. + """ + uy: NotRequired["RegistrationCreateParamsCountryOptionsUy"] + """ + Options for the registration in UY. + """ + uz: NotRequired["RegistrationCreateParamsCountryOptionsUz"] + """ + Options for the registration in UZ. + """ + vn: NotRequired["RegistrationCreateParamsCountryOptionsVn"] + """ + Options for the registration in VN. + """ + za: NotRequired["RegistrationCreateParamsCountryOptionsZa"] + """ + Options for the registration in ZA. + """ + zm: NotRequired["RegistrationCreateParamsCountryOptionsZm"] + """ + Options for the registration in ZM. + """ + zw: NotRequired["RegistrationCreateParamsCountryOptionsZw"] + """ + Options for the registration in ZW. + """ + + +class RegistrationCreateParamsCountryOptionsAe(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsAeStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsAeStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsAl(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsAlStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsAlStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsAm(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsAo(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsAoStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsAoStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsAt(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsAtStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsAtStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsAu(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsAuStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsAuStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsAw(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsAwStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsAwStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsAz(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBa(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBaStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBaStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBb(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBbStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBbStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBd(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBdStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBdStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBe(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBeStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsBeStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBf(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBfStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBfStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBg(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBgStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsBgStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBh(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBhStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBhStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBj(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBs(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsBsStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsBsStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsBy(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsCa(TypedDict): + province_standard: NotRequired[ + "RegistrationCreateParamsCountryOptionsCaProvinceStandard" + ] + """ + Options for the provincial tax registration. + """ + type: Literal["province_standard", "simplified", "standard"] + """ + Type of registration to be created in Canada. + """ + + +class RegistrationCreateParamsCountryOptionsCaProvinceStandard(TypedDict): + province: str + """ + Two-letter CA province code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). + """ + + +class RegistrationCreateParamsCountryOptionsCd(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsCdStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsCdStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsCh(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsChStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsChStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsCl(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsCm(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsCo(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsCr(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsCv(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsCy(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsCyStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsCyStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsCz(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsCzStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsCzStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsDe(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsDeStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsDeStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsDk(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsDkStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsDkStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsEc(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsEe(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsEeStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsEeStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsEg(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsEs(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsEsStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsEsStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsEt(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsEtStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsEtStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsFi(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsFiStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsFiStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsFr(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsFrStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsFrStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsGb(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsGbStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsGbStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsGe(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsGn(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsGnStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsGnStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsGr(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsGrStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsGrStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsHr(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsHrStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsHrStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsHu(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsHuStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsHuStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsId(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsIe(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsIeStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsIeStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsIn(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsIs(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsIsStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsIsStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsIt(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsItStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsItStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsJp(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsJpStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsJpStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsKe(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsKg(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsKh(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsKr(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsKz(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsLa(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsLt(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsLtStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsLtStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsLu(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsLuStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsLuStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsLv(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsLvStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsLvStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsMa(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsMd(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsMe(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsMeStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsMeStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsMk(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsMkStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsMkStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsMr(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsMrStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsMrStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsMt(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsMtStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsMtStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsMx(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsMy(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsNg(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsNl(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsNlStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsNlStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsNo(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsNoStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsNoStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsNp(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsNz(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsNzStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsNzStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsOm(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsOmStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsOmStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsPe(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsPh(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsPl(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsPlStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsPlStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsPt(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsPtStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsPtStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsRo(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsRoStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsRoStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsRs(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsRsStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsRsStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsRu(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsSa(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsSe(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsSeStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsSeStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsSg(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsSgStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsSgStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsSi(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsSiStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsSiStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsSk(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsSkStandard"] + """ + Options for the standard registration. + """ + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration to be created in an EU country. + """ + + +class RegistrationCreateParamsCountryOptionsSkStandard(TypedDict): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsSn(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsSr(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsSrStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsSrStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsTh(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsTj(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsTr(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsTw(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsTz(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsUa(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsUg(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsUs(TypedDict): + local_amusement_tax: NotRequired[ + "RegistrationCreateParamsCountryOptionsUsLocalAmusementTax" + ] + """ + Options for the local amusement tax registration. + """ + local_lease_tax: NotRequired[ + "RegistrationCreateParamsCountryOptionsUsLocalLeaseTax" + ] + """ + Options for the local lease tax registration. + """ + state: str + """ + Two-letter US state code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). + """ + state_sales_tax: NotRequired[ + "RegistrationCreateParamsCountryOptionsUsStateSalesTax" + ] + """ + Options for the state sales tax registration. + """ + type: Literal[ + "local_amusement_tax", + "local_lease_tax", + "state_communications_tax", + "state_retail_delivery_fee", + "state_sales_tax", + ] + """ + Type of registration to be created in the US. + """ + + +class RegistrationCreateParamsCountryOptionsUsLocalAmusementTax(TypedDict): + jurisdiction: str + """ + A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. Supported FIPS codes are: `14000` (Chicago), `06613` (Bloomington), `21696` (East Dundee), `24582` (Evanston), `45421` (Lynwood), `48892` (Midlothian), `64343` (River Grove), and `68081` (Schiller Park). + """ + + +class RegistrationCreateParamsCountryOptionsUsLocalLeaseTax(TypedDict): + jurisdiction: str + """ + A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. Supported FIPS codes are: `14000` (Chicago). + """ + + +class RegistrationCreateParamsCountryOptionsUsStateSalesTax(TypedDict): + elections: List[ + "RegistrationCreateParamsCountryOptionsUsStateSalesTaxElection" + ] + """ + Elections for the state sales tax registration. + """ + + +class RegistrationCreateParamsCountryOptionsUsStateSalesTaxElection(TypedDict): + jurisdiction: NotRequired[str] + """ + A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. Supported FIPS codes are: `003` (Allegheny County) and `60000` (Philadelphia City). + """ + type: Literal[ + "local_use_tax", "simplified_sellers_use_tax", "single_local_use_tax" + ] + """ + The type of the election for the state sales tax registration. + """ + + +class RegistrationCreateParamsCountryOptionsUy(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsUyStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsUyStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsUz(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsVn(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsZa(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsZaStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsZaStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ + + +class RegistrationCreateParamsCountryOptionsZm(TypedDict): + type: Literal["simplified"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsZw(TypedDict): + standard: NotRequired["RegistrationCreateParamsCountryOptionsZwStandard"] + """ + Options for the standard registration. + """ + type: Literal["standard"] + """ + Type of registration to be created in `country`. + """ + + +class RegistrationCreateParamsCountryOptionsZwStandard(TypedDict): + place_of_supply_scheme: NotRequired[Literal["inbound_goods", "standard"]] + """ + Place of supply scheme used in an standard registration. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_list_params.py new file mode 100644 index 00000000..7573e1e6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class RegistrationListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["active", "all", "expired", "scheduled"]] + """ + The status of the Tax Registration. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_modify_params.py new file mode 100644 index 00000000..30bbc04f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_modify_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class RegistrationModifyParams(RequestOptions): + active_from: NotRequired["Literal['now']|int"] + """ + Time at which the registration becomes active. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired["Literal['']|Literal['now']|int"] + """ + If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_retrieve_params.py new file mode 100644 index 00000000..63ce7607 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class RegistrationRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_update_params.py new file mode 100644 index 00000000..4d824007 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_registration_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class RegistrationUpdateParams(TypedDict): + active_from: NotRequired["Literal['now']|int"] + """ + Time at which the registration becomes active. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + expires_at: NotRequired["Literal['']|Literal['now']|int"] + """ + If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_modify_params.py new file mode 100644 index 00000000..52f9780f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_modify_params.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SettingsModifyParams(RequestOptions): + defaults: NotRequired["SettingsModifyParamsDefaults"] + """ + Default configuration to be used on Stripe Tax calculations. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + head_office: NotRequired["SettingsModifyParamsHeadOffice"] + """ + The place where your business is located. + """ + + +class SettingsModifyParamsDefaults(TypedDict): + tax_behavior: NotRequired[ + Literal["exclusive", "inclusive", "inferred_by_currency"] + ] + """ + Specifies the default [tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#tax-behavior) to be used when the item's price has unspecified tax behavior. One of inclusive, exclusive, or inferred_by_currency. Once specified, it cannot be changed back to null. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + + +class SettingsModifyParamsHeadOffice(TypedDict): + address: "SettingsModifyParamsHeadOfficeAddress" + """ + The location of the business for tax purposes. + """ + + +class SettingsModifyParamsHeadOfficeAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX". + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_retrieve_params.py new file mode 100644 index 00000000..2d136233 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class SettingsRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_update_params.py new file mode 100644 index 00000000..1d0bb94a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_settings_update_params.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class SettingsUpdateParams(TypedDict): + defaults: NotRequired["SettingsUpdateParamsDefaults"] + """ + Default configuration to be used on Stripe Tax calculations. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + head_office: NotRequired["SettingsUpdateParamsHeadOffice"] + """ + The place where your business is located. + """ + + +class SettingsUpdateParamsDefaults(TypedDict): + tax_behavior: NotRequired[ + Literal["exclusive", "inclusive", "inferred_by_currency"] + ] + """ + Specifies the default [tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#tax-behavior) to be used when the item's price has unspecified tax behavior. One of inclusive, exclusive, or inferred_by_currency. Once specified, it cannot be changed back to null. + """ + tax_code: NotRequired[str] + """ + A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + """ + + +class SettingsUpdateParamsHeadOffice(TypedDict): + address: "SettingsUpdateParamsHeadOfficeAddress" + """ + The location of the business for tax purposes. + """ + + +class SettingsUpdateParamsHeadOfficeAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX". + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_create_from_calculation_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_create_from_calculation_params.py new file mode 100644 index 00000000..233bb0f0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_create_from_calculation_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class TransactionCreateFromCalculationParams(RequestOptions): + calculation: str + """ + Tax Calculation ID to be used as input when creating the transaction. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + posted_at: NotRequired[int] + """ + The Unix timestamp representing when the tax liability is assumed or reduced, which determines the liability posting period and handling in tax liability reports. The timestamp must fall within the `tax_date` and the current time, unless the `tax_date` is scheduled in advance. Defaults to the current time. + """ + reference: str + """ + A custom order or sale identifier, such as 'myOrder_123'. Must be unique across all transactions, including reversals. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_create_reversal_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_create_reversal_params.py new file mode 100644 index 00000000..a86a4b2c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_create_reversal_params.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionCreateReversalParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + flat_amount: NotRequired[int] + """ + A flat amount to reverse across the entire transaction, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) in negative. This value represents the total amount to refund from the transaction, including taxes. + """ + line_items: NotRequired[List["TransactionCreateReversalParamsLineItem"]] + """ + The line item amounts to reverse. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mode: Literal["full", "partial"] + """ + If `partial`, the provided line item or shipping cost amounts are reversed. If `full`, the original transaction is fully reversed. + """ + original_transaction: str + """ + The ID of the Transaction to partially or fully reverse. + """ + reference: str + """ + A custom identifier for this reversal, such as `myOrder_123-refund_1`, which must be unique across all transactions. The reference helps identify this reversal transaction in exported [tax reports](https://stripe.com/docs/tax/reports). + """ + shipping_cost: NotRequired["TransactionCreateReversalParamsShippingCost"] + """ + The shipping cost to reverse. + """ + + +class TransactionCreateReversalParamsLineItem(TypedDict): + amount: int + """ + The amount to reverse, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) in negative. + """ + amount_tax: int + """ + The amount of tax to reverse, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) in negative. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + original_line_item: str + """ + The `id` of the line item to reverse in the original transaction. + """ + quantity: NotRequired[int] + """ + The quantity reversed. Appears in [tax exports](https://stripe.com/docs/tax/reports), but does not affect the amount of tax reversed. + """ + reference: str + """ + A custom identifier for this line item in the reversal transaction, such as 'L1-refund'. + """ + + +class TransactionCreateReversalParamsShippingCost(TypedDict): + amount: int + """ + The amount to reverse, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) in negative. + """ + amount_tax: int + """ + The amount of tax to reverse, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) in negative. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_line_item_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_line_item_list_params.py new file mode 100644 index 00000000..03900a6e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_line_item_list_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class TransactionLineItemListParams(TypedDict): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_list_line_items_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_list_line_items_params.py new file mode 100644 index 00000000..bd1d9ab6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_list_line_items_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransactionListLineItemsParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_retrieve_params.py new file mode 100644 index 00000000..07744dd9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/tax/_transaction_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransactionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__init__.py new file mode 100644 index 00000000..45d47198 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__init__.py @@ -0,0 +1,857 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.terminal._configuration_create_params import ( + ConfigurationCreateParams as ConfigurationCreateParams, + ConfigurationCreateParamsBbposWisepad3 as ConfigurationCreateParamsBbposWisepad3, + ConfigurationCreateParamsBbposWiseposE as ConfigurationCreateParamsBbposWiseposE, + ConfigurationCreateParamsOffline as ConfigurationCreateParamsOffline, + ConfigurationCreateParamsRebootWindow as ConfigurationCreateParamsRebootWindow, + ConfigurationCreateParamsStripeS700 as ConfigurationCreateParamsStripeS700, + ConfigurationCreateParamsTipping as ConfigurationCreateParamsTipping, + ConfigurationCreateParamsTippingAed as ConfigurationCreateParamsTippingAed, + ConfigurationCreateParamsTippingAud as ConfigurationCreateParamsTippingAud, + ConfigurationCreateParamsTippingBgn as ConfigurationCreateParamsTippingBgn, + ConfigurationCreateParamsTippingCad as ConfigurationCreateParamsTippingCad, + ConfigurationCreateParamsTippingChf as ConfigurationCreateParamsTippingChf, + ConfigurationCreateParamsTippingCzk as ConfigurationCreateParamsTippingCzk, + ConfigurationCreateParamsTippingDkk as ConfigurationCreateParamsTippingDkk, + ConfigurationCreateParamsTippingEur as ConfigurationCreateParamsTippingEur, + ConfigurationCreateParamsTippingGbp as ConfigurationCreateParamsTippingGbp, + ConfigurationCreateParamsTippingGip as ConfigurationCreateParamsTippingGip, + ConfigurationCreateParamsTippingHkd as ConfigurationCreateParamsTippingHkd, + ConfigurationCreateParamsTippingHuf as ConfigurationCreateParamsTippingHuf, + ConfigurationCreateParamsTippingJpy as ConfigurationCreateParamsTippingJpy, + ConfigurationCreateParamsTippingMxn as ConfigurationCreateParamsTippingMxn, + ConfigurationCreateParamsTippingMyr as ConfigurationCreateParamsTippingMyr, + ConfigurationCreateParamsTippingNok as ConfigurationCreateParamsTippingNok, + ConfigurationCreateParamsTippingNzd as ConfigurationCreateParamsTippingNzd, + ConfigurationCreateParamsTippingPln as ConfigurationCreateParamsTippingPln, + ConfigurationCreateParamsTippingRon as ConfigurationCreateParamsTippingRon, + ConfigurationCreateParamsTippingSek as ConfigurationCreateParamsTippingSek, + ConfigurationCreateParamsTippingSgd as ConfigurationCreateParamsTippingSgd, + ConfigurationCreateParamsTippingUsd as ConfigurationCreateParamsTippingUsd, + ConfigurationCreateParamsVerifoneP400 as ConfigurationCreateParamsVerifoneP400, + ConfigurationCreateParamsWifi as ConfigurationCreateParamsWifi, + ConfigurationCreateParamsWifiEnterpriseEapPeap as ConfigurationCreateParamsWifiEnterpriseEapPeap, + ConfigurationCreateParamsWifiEnterpriseEapTls as ConfigurationCreateParamsWifiEnterpriseEapTls, + ConfigurationCreateParamsWifiPersonalPsk as ConfigurationCreateParamsWifiPersonalPsk, + ) + from stripe.params.terminal._configuration_delete_params import ( + ConfigurationDeleteParams as ConfigurationDeleteParams, + ) + from stripe.params.terminal._configuration_list_params import ( + ConfigurationListParams as ConfigurationListParams, + ) + from stripe.params.terminal._configuration_modify_params import ( + ConfigurationModifyParams as ConfigurationModifyParams, + ConfigurationModifyParamsBbposWisepad3 as ConfigurationModifyParamsBbposWisepad3, + ConfigurationModifyParamsBbposWiseposE as ConfigurationModifyParamsBbposWiseposE, + ConfigurationModifyParamsOffline as ConfigurationModifyParamsOffline, + ConfigurationModifyParamsRebootWindow as ConfigurationModifyParamsRebootWindow, + ConfigurationModifyParamsStripeS700 as ConfigurationModifyParamsStripeS700, + ConfigurationModifyParamsTipping as ConfigurationModifyParamsTipping, + ConfigurationModifyParamsTippingAed as ConfigurationModifyParamsTippingAed, + ConfigurationModifyParamsTippingAud as ConfigurationModifyParamsTippingAud, + ConfigurationModifyParamsTippingBgn as ConfigurationModifyParamsTippingBgn, + ConfigurationModifyParamsTippingCad as ConfigurationModifyParamsTippingCad, + ConfigurationModifyParamsTippingChf as ConfigurationModifyParamsTippingChf, + ConfigurationModifyParamsTippingCzk as ConfigurationModifyParamsTippingCzk, + ConfigurationModifyParamsTippingDkk as ConfigurationModifyParamsTippingDkk, + ConfigurationModifyParamsTippingEur as ConfigurationModifyParamsTippingEur, + ConfigurationModifyParamsTippingGbp as ConfigurationModifyParamsTippingGbp, + ConfigurationModifyParamsTippingGip as ConfigurationModifyParamsTippingGip, + ConfigurationModifyParamsTippingHkd as ConfigurationModifyParamsTippingHkd, + ConfigurationModifyParamsTippingHuf as ConfigurationModifyParamsTippingHuf, + ConfigurationModifyParamsTippingJpy as ConfigurationModifyParamsTippingJpy, + ConfigurationModifyParamsTippingMxn as ConfigurationModifyParamsTippingMxn, + ConfigurationModifyParamsTippingMyr as ConfigurationModifyParamsTippingMyr, + ConfigurationModifyParamsTippingNok as ConfigurationModifyParamsTippingNok, + ConfigurationModifyParamsTippingNzd as ConfigurationModifyParamsTippingNzd, + ConfigurationModifyParamsTippingPln as ConfigurationModifyParamsTippingPln, + ConfigurationModifyParamsTippingRon as ConfigurationModifyParamsTippingRon, + ConfigurationModifyParamsTippingSek as ConfigurationModifyParamsTippingSek, + ConfigurationModifyParamsTippingSgd as ConfigurationModifyParamsTippingSgd, + ConfigurationModifyParamsTippingUsd as ConfigurationModifyParamsTippingUsd, + ConfigurationModifyParamsVerifoneP400 as ConfigurationModifyParamsVerifoneP400, + ConfigurationModifyParamsWifi as ConfigurationModifyParamsWifi, + ConfigurationModifyParamsWifiEnterpriseEapPeap as ConfigurationModifyParamsWifiEnterpriseEapPeap, + ConfigurationModifyParamsWifiEnterpriseEapTls as ConfigurationModifyParamsWifiEnterpriseEapTls, + ConfigurationModifyParamsWifiPersonalPsk as ConfigurationModifyParamsWifiPersonalPsk, + ) + from stripe.params.terminal._configuration_retrieve_params import ( + ConfigurationRetrieveParams as ConfigurationRetrieveParams, + ) + from stripe.params.terminal._configuration_update_params import ( + ConfigurationUpdateParams as ConfigurationUpdateParams, + ConfigurationUpdateParamsBbposWisepad3 as ConfigurationUpdateParamsBbposWisepad3, + ConfigurationUpdateParamsBbposWiseposE as ConfigurationUpdateParamsBbposWiseposE, + ConfigurationUpdateParamsOffline as ConfigurationUpdateParamsOffline, + ConfigurationUpdateParamsRebootWindow as ConfigurationUpdateParamsRebootWindow, + ConfigurationUpdateParamsStripeS700 as ConfigurationUpdateParamsStripeS700, + ConfigurationUpdateParamsTipping as ConfigurationUpdateParamsTipping, + ConfigurationUpdateParamsTippingAed as ConfigurationUpdateParamsTippingAed, + ConfigurationUpdateParamsTippingAud as ConfigurationUpdateParamsTippingAud, + ConfigurationUpdateParamsTippingBgn as ConfigurationUpdateParamsTippingBgn, + ConfigurationUpdateParamsTippingCad as ConfigurationUpdateParamsTippingCad, + ConfigurationUpdateParamsTippingChf as ConfigurationUpdateParamsTippingChf, + ConfigurationUpdateParamsTippingCzk as ConfigurationUpdateParamsTippingCzk, + ConfigurationUpdateParamsTippingDkk as ConfigurationUpdateParamsTippingDkk, + ConfigurationUpdateParamsTippingEur as ConfigurationUpdateParamsTippingEur, + ConfigurationUpdateParamsTippingGbp as ConfigurationUpdateParamsTippingGbp, + ConfigurationUpdateParamsTippingGip as ConfigurationUpdateParamsTippingGip, + ConfigurationUpdateParamsTippingHkd as ConfigurationUpdateParamsTippingHkd, + ConfigurationUpdateParamsTippingHuf as ConfigurationUpdateParamsTippingHuf, + ConfigurationUpdateParamsTippingJpy as ConfigurationUpdateParamsTippingJpy, + ConfigurationUpdateParamsTippingMxn as ConfigurationUpdateParamsTippingMxn, + ConfigurationUpdateParamsTippingMyr as ConfigurationUpdateParamsTippingMyr, + ConfigurationUpdateParamsTippingNok as ConfigurationUpdateParamsTippingNok, + ConfigurationUpdateParamsTippingNzd as ConfigurationUpdateParamsTippingNzd, + ConfigurationUpdateParamsTippingPln as ConfigurationUpdateParamsTippingPln, + ConfigurationUpdateParamsTippingRon as ConfigurationUpdateParamsTippingRon, + ConfigurationUpdateParamsTippingSek as ConfigurationUpdateParamsTippingSek, + ConfigurationUpdateParamsTippingSgd as ConfigurationUpdateParamsTippingSgd, + ConfigurationUpdateParamsTippingUsd as ConfigurationUpdateParamsTippingUsd, + ConfigurationUpdateParamsVerifoneP400 as ConfigurationUpdateParamsVerifoneP400, + ConfigurationUpdateParamsWifi as ConfigurationUpdateParamsWifi, + ConfigurationUpdateParamsWifiEnterpriseEapPeap as ConfigurationUpdateParamsWifiEnterpriseEapPeap, + ConfigurationUpdateParamsWifiEnterpriseEapTls as ConfigurationUpdateParamsWifiEnterpriseEapTls, + ConfigurationUpdateParamsWifiPersonalPsk as ConfigurationUpdateParamsWifiPersonalPsk, + ) + from stripe.params.terminal._connection_token_create_params import ( + ConnectionTokenCreateParams as ConnectionTokenCreateParams, + ) + from stripe.params.terminal._location_create_params import ( + LocationCreateParams as LocationCreateParams, + LocationCreateParamsAddress as LocationCreateParamsAddress, + LocationCreateParamsAddressKana as LocationCreateParamsAddressKana, + LocationCreateParamsAddressKanji as LocationCreateParamsAddressKanji, + ) + from stripe.params.terminal._location_delete_params import ( + LocationDeleteParams as LocationDeleteParams, + ) + from stripe.params.terminal._location_list_params import ( + LocationListParams as LocationListParams, + ) + from stripe.params.terminal._location_modify_params import ( + LocationModifyParams as LocationModifyParams, + LocationModifyParamsAddress as LocationModifyParamsAddress, + LocationModifyParamsAddressKana as LocationModifyParamsAddressKana, + LocationModifyParamsAddressKanji as LocationModifyParamsAddressKanji, + ) + from stripe.params.terminal._location_retrieve_params import ( + LocationRetrieveParams as LocationRetrieveParams, + ) + from stripe.params.terminal._location_update_params import ( + LocationUpdateParams as LocationUpdateParams, + LocationUpdateParamsAddress as LocationUpdateParamsAddress, + LocationUpdateParamsAddressKana as LocationUpdateParamsAddressKana, + LocationUpdateParamsAddressKanji as LocationUpdateParamsAddressKanji, + ) + from stripe.params.terminal._reader_cancel_action_params import ( + ReaderCancelActionParams as ReaderCancelActionParams, + ) + from stripe.params.terminal._reader_collect_inputs_params import ( + ReaderCollectInputsParams as ReaderCollectInputsParams, + ReaderCollectInputsParamsInput as ReaderCollectInputsParamsInput, + ReaderCollectInputsParamsInputCustomText as ReaderCollectInputsParamsInputCustomText, + ReaderCollectInputsParamsInputSelection as ReaderCollectInputsParamsInputSelection, + ReaderCollectInputsParamsInputSelectionChoice as ReaderCollectInputsParamsInputSelectionChoice, + ReaderCollectInputsParamsInputToggle as ReaderCollectInputsParamsInputToggle, + ) + from stripe.params.terminal._reader_collect_payment_method_params import ( + ReaderCollectPaymentMethodParams as ReaderCollectPaymentMethodParams, + ReaderCollectPaymentMethodParamsCollectConfig as ReaderCollectPaymentMethodParamsCollectConfig, + ReaderCollectPaymentMethodParamsCollectConfigTipping as ReaderCollectPaymentMethodParamsCollectConfigTipping, + ) + from stripe.params.terminal._reader_confirm_payment_intent_params import ( + ReaderConfirmPaymentIntentParams as ReaderConfirmPaymentIntentParams, + ReaderConfirmPaymentIntentParamsConfirmConfig as ReaderConfirmPaymentIntentParamsConfirmConfig, + ) + from stripe.params.terminal._reader_create_params import ( + ReaderCreateParams as ReaderCreateParams, + ) + from stripe.params.terminal._reader_delete_params import ( + ReaderDeleteParams as ReaderDeleteParams, + ) + from stripe.params.terminal._reader_list_params import ( + ReaderListParams as ReaderListParams, + ) + from stripe.params.terminal._reader_modify_params import ( + ReaderModifyParams as ReaderModifyParams, + ) + from stripe.params.terminal._reader_present_payment_method_params import ( + ReaderPresentPaymentMethodParams as ReaderPresentPaymentMethodParams, + ReaderPresentPaymentMethodParamsCard as ReaderPresentPaymentMethodParamsCard, + ReaderPresentPaymentMethodParamsCardPresent as ReaderPresentPaymentMethodParamsCardPresent, + ReaderPresentPaymentMethodParamsInteracPresent as ReaderPresentPaymentMethodParamsInteracPresent, + ) + from stripe.params.terminal._reader_process_payment_intent_params import ( + ReaderProcessPaymentIntentParams as ReaderProcessPaymentIntentParams, + ReaderProcessPaymentIntentParamsProcessConfig as ReaderProcessPaymentIntentParamsProcessConfig, + ReaderProcessPaymentIntentParamsProcessConfigTipping as ReaderProcessPaymentIntentParamsProcessConfigTipping, + ) + from stripe.params.terminal._reader_process_setup_intent_params import ( + ReaderProcessSetupIntentParams as ReaderProcessSetupIntentParams, + ReaderProcessSetupIntentParamsProcessConfig as ReaderProcessSetupIntentParamsProcessConfig, + ) + from stripe.params.terminal._reader_refund_payment_params import ( + ReaderRefundPaymentParams as ReaderRefundPaymentParams, + ReaderRefundPaymentParamsRefundPaymentConfig as ReaderRefundPaymentParamsRefundPaymentConfig, + ) + from stripe.params.terminal._reader_retrieve_params import ( + ReaderRetrieveParams as ReaderRetrieveParams, + ) + from stripe.params.terminal._reader_set_reader_display_params import ( + ReaderSetReaderDisplayParams as ReaderSetReaderDisplayParams, + ReaderSetReaderDisplayParamsCart as ReaderSetReaderDisplayParamsCart, + ReaderSetReaderDisplayParamsCartLineItem as ReaderSetReaderDisplayParamsCartLineItem, + ) + from stripe.params.terminal._reader_succeed_input_collection_params import ( + ReaderSucceedInputCollectionParams as ReaderSucceedInputCollectionParams, + ) + from stripe.params.terminal._reader_timeout_input_collection_params import ( + ReaderTimeoutInputCollectionParams as ReaderTimeoutInputCollectionParams, + ) + from stripe.params.terminal._reader_update_params import ( + ReaderUpdateParams as ReaderUpdateParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ConfigurationCreateParams": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsBbposWisepad3": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsBbposWiseposE": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsOffline": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsRebootWindow": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsStripeS700": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTipping": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingAed": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingAud": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingBgn": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingCad": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingChf": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingCzk": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingDkk": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingEur": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingGbp": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingGip": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingHkd": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingHuf": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingJpy": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingMxn": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingMyr": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingNok": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingNzd": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingPln": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingRon": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingSek": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingSgd": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsTippingUsd": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsVerifoneP400": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsWifi": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsWifiEnterpriseEapPeap": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsWifiEnterpriseEapTls": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationCreateParamsWifiPersonalPsk": ( + "stripe.params.terminal._configuration_create_params", + False, + ), + "ConfigurationDeleteParams": ( + "stripe.params.terminal._configuration_delete_params", + False, + ), + "ConfigurationListParams": ( + "stripe.params.terminal._configuration_list_params", + False, + ), + "ConfigurationModifyParams": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsBbposWisepad3": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsBbposWiseposE": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsOffline": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsRebootWindow": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsStripeS700": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTipping": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingAed": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingAud": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingBgn": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingCad": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingChf": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingCzk": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingDkk": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingEur": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingGbp": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingGip": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingHkd": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingHuf": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingJpy": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingMxn": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingMyr": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingNok": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingNzd": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingPln": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingRon": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingSek": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingSgd": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsTippingUsd": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsVerifoneP400": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsWifi": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsWifiEnterpriseEapPeap": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsWifiEnterpriseEapTls": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationModifyParamsWifiPersonalPsk": ( + "stripe.params.terminal._configuration_modify_params", + False, + ), + "ConfigurationRetrieveParams": ( + "stripe.params.terminal._configuration_retrieve_params", + False, + ), + "ConfigurationUpdateParams": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsBbposWisepad3": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsBbposWiseposE": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsOffline": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsRebootWindow": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsStripeS700": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTipping": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingAed": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingAud": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingBgn": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingCad": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingChf": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingCzk": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingDkk": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingEur": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingGbp": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingGip": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingHkd": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingHuf": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingJpy": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingMxn": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingMyr": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingNok": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingNzd": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingPln": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingRon": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingSek": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingSgd": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsTippingUsd": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsVerifoneP400": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsWifi": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsWifiEnterpriseEapPeap": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsWifiEnterpriseEapTls": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConfigurationUpdateParamsWifiPersonalPsk": ( + "stripe.params.terminal._configuration_update_params", + False, + ), + "ConnectionTokenCreateParams": ( + "stripe.params.terminal._connection_token_create_params", + False, + ), + "LocationCreateParams": ( + "stripe.params.terminal._location_create_params", + False, + ), + "LocationCreateParamsAddress": ( + "stripe.params.terminal._location_create_params", + False, + ), + "LocationCreateParamsAddressKana": ( + "stripe.params.terminal._location_create_params", + False, + ), + "LocationCreateParamsAddressKanji": ( + "stripe.params.terminal._location_create_params", + False, + ), + "LocationDeleteParams": ( + "stripe.params.terminal._location_delete_params", + False, + ), + "LocationListParams": ( + "stripe.params.terminal._location_list_params", + False, + ), + "LocationModifyParams": ( + "stripe.params.terminal._location_modify_params", + False, + ), + "LocationModifyParamsAddress": ( + "stripe.params.terminal._location_modify_params", + False, + ), + "LocationModifyParamsAddressKana": ( + "stripe.params.terminal._location_modify_params", + False, + ), + "LocationModifyParamsAddressKanji": ( + "stripe.params.terminal._location_modify_params", + False, + ), + "LocationRetrieveParams": ( + "stripe.params.terminal._location_retrieve_params", + False, + ), + "LocationUpdateParams": ( + "stripe.params.terminal._location_update_params", + False, + ), + "LocationUpdateParamsAddress": ( + "stripe.params.terminal._location_update_params", + False, + ), + "LocationUpdateParamsAddressKana": ( + "stripe.params.terminal._location_update_params", + False, + ), + "LocationUpdateParamsAddressKanji": ( + "stripe.params.terminal._location_update_params", + False, + ), + "ReaderCancelActionParams": ( + "stripe.params.terminal._reader_cancel_action_params", + False, + ), + "ReaderCollectInputsParams": ( + "stripe.params.terminal._reader_collect_inputs_params", + False, + ), + "ReaderCollectInputsParamsInput": ( + "stripe.params.terminal._reader_collect_inputs_params", + False, + ), + "ReaderCollectInputsParamsInputCustomText": ( + "stripe.params.terminal._reader_collect_inputs_params", + False, + ), + "ReaderCollectInputsParamsInputSelection": ( + "stripe.params.terminal._reader_collect_inputs_params", + False, + ), + "ReaderCollectInputsParamsInputSelectionChoice": ( + "stripe.params.terminal._reader_collect_inputs_params", + False, + ), + "ReaderCollectInputsParamsInputToggle": ( + "stripe.params.terminal._reader_collect_inputs_params", + False, + ), + "ReaderCollectPaymentMethodParams": ( + "stripe.params.terminal._reader_collect_payment_method_params", + False, + ), + "ReaderCollectPaymentMethodParamsCollectConfig": ( + "stripe.params.terminal._reader_collect_payment_method_params", + False, + ), + "ReaderCollectPaymentMethodParamsCollectConfigTipping": ( + "stripe.params.terminal._reader_collect_payment_method_params", + False, + ), + "ReaderConfirmPaymentIntentParams": ( + "stripe.params.terminal._reader_confirm_payment_intent_params", + False, + ), + "ReaderConfirmPaymentIntentParamsConfirmConfig": ( + "stripe.params.terminal._reader_confirm_payment_intent_params", + False, + ), + "ReaderCreateParams": ( + "stripe.params.terminal._reader_create_params", + False, + ), + "ReaderDeleteParams": ( + "stripe.params.terminal._reader_delete_params", + False, + ), + "ReaderListParams": ("stripe.params.terminal._reader_list_params", False), + "ReaderModifyParams": ( + "stripe.params.terminal._reader_modify_params", + False, + ), + "ReaderPresentPaymentMethodParams": ( + "stripe.params.terminal._reader_present_payment_method_params", + False, + ), + "ReaderPresentPaymentMethodParamsCard": ( + "stripe.params.terminal._reader_present_payment_method_params", + False, + ), + "ReaderPresentPaymentMethodParamsCardPresent": ( + "stripe.params.terminal._reader_present_payment_method_params", + False, + ), + "ReaderPresentPaymentMethodParamsInteracPresent": ( + "stripe.params.terminal._reader_present_payment_method_params", + False, + ), + "ReaderProcessPaymentIntentParams": ( + "stripe.params.terminal._reader_process_payment_intent_params", + False, + ), + "ReaderProcessPaymentIntentParamsProcessConfig": ( + "stripe.params.terminal._reader_process_payment_intent_params", + False, + ), + "ReaderProcessPaymentIntentParamsProcessConfigTipping": ( + "stripe.params.terminal._reader_process_payment_intent_params", + False, + ), + "ReaderProcessSetupIntentParams": ( + "stripe.params.terminal._reader_process_setup_intent_params", + False, + ), + "ReaderProcessSetupIntentParamsProcessConfig": ( + "stripe.params.terminal._reader_process_setup_intent_params", + False, + ), + "ReaderRefundPaymentParams": ( + "stripe.params.terminal._reader_refund_payment_params", + False, + ), + "ReaderRefundPaymentParamsRefundPaymentConfig": ( + "stripe.params.terminal._reader_refund_payment_params", + False, + ), + "ReaderRetrieveParams": ( + "stripe.params.terminal._reader_retrieve_params", + False, + ), + "ReaderSetReaderDisplayParams": ( + "stripe.params.terminal._reader_set_reader_display_params", + False, + ), + "ReaderSetReaderDisplayParamsCart": ( + "stripe.params.terminal._reader_set_reader_display_params", + False, + ), + "ReaderSetReaderDisplayParamsCartLineItem": ( + "stripe.params.terminal._reader_set_reader_display_params", + False, + ), + "ReaderSucceedInputCollectionParams": ( + "stripe.params.terminal._reader_succeed_input_collection_params", + False, + ), + "ReaderTimeoutInputCollectionParams": ( + "stripe.params.terminal._reader_timeout_input_collection_params", + False, + ), + "ReaderUpdateParams": ( + "stripe.params.terminal._reader_update_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..6dac71f2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_create_params.cpython-312.pyc new file mode 100644 index 00000000..9c7a119c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_delete_params.cpython-312.pyc new file mode 100644 index 00000000..069340d1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_list_params.cpython-312.pyc new file mode 100644 index 00000000..2e9bc40e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_modify_params.cpython-312.pyc new file mode 100644 index 00000000..a741ed13 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..cb6a1000 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_update_params.cpython-312.pyc new file mode 100644 index 00000000..650f2439 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_configuration_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_connection_token_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_connection_token_create_params.cpython-312.pyc new file mode 100644 index 00000000..522df206 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_connection_token_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_create_params.cpython-312.pyc new file mode 100644 index 00000000..d220345f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_delete_params.cpython-312.pyc new file mode 100644 index 00000000..683f0e72 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_list_params.cpython-312.pyc new file mode 100644 index 00000000..ef22219e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_modify_params.cpython-312.pyc new file mode 100644 index 00000000..266a893d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..11da3c72 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_update_params.cpython-312.pyc new file mode 100644 index 00000000..1c4a81ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_location_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_cancel_action_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_cancel_action_params.cpython-312.pyc new file mode 100644 index 00000000..78eab624 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_cancel_action_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_collect_inputs_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_collect_inputs_params.cpython-312.pyc new file mode 100644 index 00000000..2251e41a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_collect_inputs_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_collect_payment_method_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_collect_payment_method_params.cpython-312.pyc new file mode 100644 index 00000000..e17acc32 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_collect_payment_method_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_confirm_payment_intent_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_confirm_payment_intent_params.cpython-312.pyc new file mode 100644 index 00000000..5dbc13a5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_confirm_payment_intent_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_create_params.cpython-312.pyc new file mode 100644 index 00000000..28174f52 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_delete_params.cpython-312.pyc new file mode 100644 index 00000000..f5b0a732 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_list_params.cpython-312.pyc new file mode 100644 index 00000000..c17baa20 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_modify_params.cpython-312.pyc new file mode 100644 index 00000000..12b6cdd7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc new file mode 100644 index 00000000..76afa762 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_process_payment_intent_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_process_payment_intent_params.cpython-312.pyc new file mode 100644 index 00000000..4e3e925c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_process_payment_intent_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_process_setup_intent_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_process_setup_intent_params.cpython-312.pyc new file mode 100644 index 00000000..70846eea Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_process_setup_intent_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_refund_payment_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_refund_payment_params.cpython-312.pyc new file mode 100644 index 00000000..6f6809d9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_refund_payment_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..0fd21c22 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_set_reader_display_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_set_reader_display_params.cpython-312.pyc new file mode 100644 index 00000000..8b1c158e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_set_reader_display_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc new file mode 100644 index 00000000..45fea348 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc new file mode 100644 index 00000000..fdb913e5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_update_params.cpython-312.pyc new file mode 100644 index 00000000..26ab5605 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/__pycache__/_reader_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_create_params.py new file mode 100644 index 00000000..4172b802 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_create_params.py @@ -0,0 +1,591 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfigurationCreateParams(RequestOptions): + bbpos_wisepad3: NotRequired["ConfigurationCreateParamsBbposWisepad3"] + """ + An object containing device type specific settings for BBPOS WisePad 3 readers. + """ + bbpos_wisepos_e: NotRequired["ConfigurationCreateParamsBbposWiseposE"] + """ + An object containing device type specific settings for BBPOS WisePOS E readers. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + name: NotRequired[str] + """ + Name of the configuration + """ + offline: NotRequired["Literal['']|ConfigurationCreateParamsOffline"] + """ + Configurations for collecting transactions offline. + """ + reboot_window: NotRequired["ConfigurationCreateParamsRebootWindow"] + """ + Reboot time settings for readers. that support customized reboot time configuration. + """ + stripe_s700: NotRequired["ConfigurationCreateParamsStripeS700"] + """ + An object containing device type specific settings for Stripe S700 readers. + """ + tipping: NotRequired["Literal['']|ConfigurationCreateParamsTipping"] + """ + Tipping configurations for readers. supporting on-reader tips + """ + verifone_p400: NotRequired["ConfigurationCreateParamsVerifoneP400"] + """ + An object containing device type specific settings for Verifone P400 readers. + """ + wifi: NotRequired["Literal['']|ConfigurationCreateParamsWifi"] + """ + Configurations for connecting to a WiFi network. + """ + + +class ConfigurationCreateParamsBbposWisepad3(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationCreateParamsBbposWiseposE(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image to display on the reader + """ + + +class ConfigurationCreateParamsOffline(TypedDict): + enabled: bool + """ + Determines whether to allow transactions to be collected while reader is offline. Defaults to false. + """ + + +class ConfigurationCreateParamsRebootWindow(TypedDict): + end_hour: int + """ + Integer between 0 to 23 that represents the end hour of the reboot time window. The value must be different than the start_hour. + """ + start_hour: int + """ + Integer between 0 to 23 that represents the start hour of the reboot time window. + """ + + +class ConfigurationCreateParamsStripeS700(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationCreateParamsTipping(TypedDict): + aed: NotRequired["ConfigurationCreateParamsTippingAed"] + """ + Tipping configuration for AED + """ + aud: NotRequired["ConfigurationCreateParamsTippingAud"] + """ + Tipping configuration for AUD + """ + bgn: NotRequired["ConfigurationCreateParamsTippingBgn"] + """ + Tipping configuration for BGN + """ + cad: NotRequired["ConfigurationCreateParamsTippingCad"] + """ + Tipping configuration for CAD + """ + chf: NotRequired["ConfigurationCreateParamsTippingChf"] + """ + Tipping configuration for CHF + """ + czk: NotRequired["ConfigurationCreateParamsTippingCzk"] + """ + Tipping configuration for CZK + """ + dkk: NotRequired["ConfigurationCreateParamsTippingDkk"] + """ + Tipping configuration for DKK + """ + eur: NotRequired["ConfigurationCreateParamsTippingEur"] + """ + Tipping configuration for EUR + """ + gbp: NotRequired["ConfigurationCreateParamsTippingGbp"] + """ + Tipping configuration for GBP + """ + gip: NotRequired["ConfigurationCreateParamsTippingGip"] + """ + Tipping configuration for GIP + """ + hkd: NotRequired["ConfigurationCreateParamsTippingHkd"] + """ + Tipping configuration for HKD + """ + huf: NotRequired["ConfigurationCreateParamsTippingHuf"] + """ + Tipping configuration for HUF + """ + jpy: NotRequired["ConfigurationCreateParamsTippingJpy"] + """ + Tipping configuration for JPY + """ + mxn: NotRequired["ConfigurationCreateParamsTippingMxn"] + """ + Tipping configuration for MXN + """ + myr: NotRequired["ConfigurationCreateParamsTippingMyr"] + """ + Tipping configuration for MYR + """ + nok: NotRequired["ConfigurationCreateParamsTippingNok"] + """ + Tipping configuration for NOK + """ + nzd: NotRequired["ConfigurationCreateParamsTippingNzd"] + """ + Tipping configuration for NZD + """ + pln: NotRequired["ConfigurationCreateParamsTippingPln"] + """ + Tipping configuration for PLN + """ + ron: NotRequired["ConfigurationCreateParamsTippingRon"] + """ + Tipping configuration for RON + """ + sek: NotRequired["ConfigurationCreateParamsTippingSek"] + """ + Tipping configuration for SEK + """ + sgd: NotRequired["ConfigurationCreateParamsTippingSgd"] + """ + Tipping configuration for SGD + """ + usd: NotRequired["ConfigurationCreateParamsTippingUsd"] + """ + Tipping configuration for USD + """ + + +class ConfigurationCreateParamsTippingAed(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingAud(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingBgn(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingCad(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingChf(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingCzk(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingDkk(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingEur(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingGbp(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingGip(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingHkd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingHuf(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingJpy(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingMxn(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingMyr(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingNok(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingNzd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingPln(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingRon(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingSek(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingSgd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsTippingUsd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationCreateParamsVerifoneP400(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationCreateParamsWifi(TypedDict): + enterprise_eap_peap: NotRequired[ + "ConfigurationCreateParamsWifiEnterpriseEapPeap" + ] + """ + Credentials for a WPA-Enterprise WiFi network using the EAP-PEAP authentication method. + """ + enterprise_eap_tls: NotRequired[ + "ConfigurationCreateParamsWifiEnterpriseEapTls" + ] + """ + Credentials for a WPA-Enterprise WiFi network using the EAP-TLS authentication method. + """ + personal_psk: NotRequired["ConfigurationCreateParamsWifiPersonalPsk"] + """ + Credentials for a WPA-Personal WiFi network. + """ + type: Literal["enterprise_eap_peap", "enterprise_eap_tls", "personal_psk"] + """ + Security type of the WiFi network. Fill out the hash with the corresponding name to provide the set of credentials for this security type. + """ + + +class ConfigurationCreateParamsWifiEnterpriseEapPeap(TypedDict): + ca_certificate_file: NotRequired[str] + """ + A File ID representing a PEM file containing the server certificate + """ + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ + username: str + """ + Username for connecting to the WiFi network + """ + + +class ConfigurationCreateParamsWifiEnterpriseEapTls(TypedDict): + ca_certificate_file: NotRequired[str] + """ + A File ID representing a PEM file containing the server certificate + """ + client_certificate_file: str + """ + A File ID representing a PEM file containing the client certificate + """ + private_key_file: str + """ + A File ID representing a PEM file containing the client RSA private key + """ + private_key_file_password: NotRequired[str] + """ + Password for the private key file + """ + ssid: str + """ + Name of the WiFi network + """ + + +class ConfigurationCreateParamsWifiPersonalPsk(TypedDict): + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_delete_params.py new file mode 100644 index 00000000..e9d95e0b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class ConfigurationDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_list_params.py new file mode 100644 index 00000000..c9e68efc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_list_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ConfigurationListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + is_account_default: NotRequired[bool] + """ + if present, only return the account default or non-default configurations. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_modify_params.py new file mode 100644 index 00000000..0c7d6ca3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_modify_params.py @@ -0,0 +1,599 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfigurationModifyParams(RequestOptions): + bbpos_wisepad3: NotRequired[ + "Literal['']|ConfigurationModifyParamsBbposWisepad3" + ] + """ + An object containing device type specific settings for BBPOS WisePad 3 readers. + """ + bbpos_wisepos_e: NotRequired[ + "Literal['']|ConfigurationModifyParamsBbposWiseposE" + ] + """ + An object containing device type specific settings for BBPOS WisePOS E readers. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + name: NotRequired[str] + """ + Name of the configuration + """ + offline: NotRequired["Literal['']|ConfigurationModifyParamsOffline"] + """ + Configurations for collecting transactions offline. + """ + reboot_window: NotRequired[ + "Literal['']|ConfigurationModifyParamsRebootWindow" + ] + """ + Reboot time settings for readers. that support customized reboot time configuration. + """ + stripe_s700: NotRequired["Literal['']|ConfigurationModifyParamsStripeS700"] + """ + An object containing device type specific settings for Stripe S700 readers. + """ + tipping: NotRequired["Literal['']|ConfigurationModifyParamsTipping"] + """ + Tipping configurations for readers. supporting on-reader tips + """ + verifone_p400: NotRequired[ + "Literal['']|ConfigurationModifyParamsVerifoneP400" + ] + """ + An object containing device type specific settings for Verifone P400 readers. + """ + wifi: NotRequired["Literal['']|ConfigurationModifyParamsWifi"] + """ + Configurations for connecting to a WiFi network. + """ + + +class ConfigurationModifyParamsBbposWisepad3(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationModifyParamsBbposWiseposE(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image to display on the reader + """ + + +class ConfigurationModifyParamsOffline(TypedDict): + enabled: bool + """ + Determines whether to allow transactions to be collected while reader is offline. Defaults to false. + """ + + +class ConfigurationModifyParamsRebootWindow(TypedDict): + end_hour: int + """ + Integer between 0 to 23 that represents the end hour of the reboot time window. The value must be different than the start_hour. + """ + start_hour: int + """ + Integer between 0 to 23 that represents the start hour of the reboot time window. + """ + + +class ConfigurationModifyParamsStripeS700(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationModifyParamsTipping(TypedDict): + aed: NotRequired["ConfigurationModifyParamsTippingAed"] + """ + Tipping configuration for AED + """ + aud: NotRequired["ConfigurationModifyParamsTippingAud"] + """ + Tipping configuration for AUD + """ + bgn: NotRequired["ConfigurationModifyParamsTippingBgn"] + """ + Tipping configuration for BGN + """ + cad: NotRequired["ConfigurationModifyParamsTippingCad"] + """ + Tipping configuration for CAD + """ + chf: NotRequired["ConfigurationModifyParamsTippingChf"] + """ + Tipping configuration for CHF + """ + czk: NotRequired["ConfigurationModifyParamsTippingCzk"] + """ + Tipping configuration for CZK + """ + dkk: NotRequired["ConfigurationModifyParamsTippingDkk"] + """ + Tipping configuration for DKK + """ + eur: NotRequired["ConfigurationModifyParamsTippingEur"] + """ + Tipping configuration for EUR + """ + gbp: NotRequired["ConfigurationModifyParamsTippingGbp"] + """ + Tipping configuration for GBP + """ + gip: NotRequired["ConfigurationModifyParamsTippingGip"] + """ + Tipping configuration for GIP + """ + hkd: NotRequired["ConfigurationModifyParamsTippingHkd"] + """ + Tipping configuration for HKD + """ + huf: NotRequired["ConfigurationModifyParamsTippingHuf"] + """ + Tipping configuration for HUF + """ + jpy: NotRequired["ConfigurationModifyParamsTippingJpy"] + """ + Tipping configuration for JPY + """ + mxn: NotRequired["ConfigurationModifyParamsTippingMxn"] + """ + Tipping configuration for MXN + """ + myr: NotRequired["ConfigurationModifyParamsTippingMyr"] + """ + Tipping configuration for MYR + """ + nok: NotRequired["ConfigurationModifyParamsTippingNok"] + """ + Tipping configuration for NOK + """ + nzd: NotRequired["ConfigurationModifyParamsTippingNzd"] + """ + Tipping configuration for NZD + """ + pln: NotRequired["ConfigurationModifyParamsTippingPln"] + """ + Tipping configuration for PLN + """ + ron: NotRequired["ConfigurationModifyParamsTippingRon"] + """ + Tipping configuration for RON + """ + sek: NotRequired["ConfigurationModifyParamsTippingSek"] + """ + Tipping configuration for SEK + """ + sgd: NotRequired["ConfigurationModifyParamsTippingSgd"] + """ + Tipping configuration for SGD + """ + usd: NotRequired["ConfigurationModifyParamsTippingUsd"] + """ + Tipping configuration for USD + """ + + +class ConfigurationModifyParamsTippingAed(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingAud(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingBgn(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingCad(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingChf(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingCzk(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingDkk(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingEur(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingGbp(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingGip(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingHkd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingHuf(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingJpy(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingMxn(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingMyr(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingNok(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingNzd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingPln(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingRon(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingSek(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingSgd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsTippingUsd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationModifyParamsVerifoneP400(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationModifyParamsWifi(TypedDict): + enterprise_eap_peap: NotRequired[ + "ConfigurationModifyParamsWifiEnterpriseEapPeap" + ] + """ + Credentials for a WPA-Enterprise WiFi network using the EAP-PEAP authentication method. + """ + enterprise_eap_tls: NotRequired[ + "ConfigurationModifyParamsWifiEnterpriseEapTls" + ] + """ + Credentials for a WPA-Enterprise WiFi network using the EAP-TLS authentication method. + """ + personal_psk: NotRequired["ConfigurationModifyParamsWifiPersonalPsk"] + """ + Credentials for a WPA-Personal WiFi network. + """ + type: Literal["enterprise_eap_peap", "enterprise_eap_tls", "personal_psk"] + """ + Security type of the WiFi network. Fill out the hash with the corresponding name to provide the set of credentials for this security type. + """ + + +class ConfigurationModifyParamsWifiEnterpriseEapPeap(TypedDict): + ca_certificate_file: NotRequired[str] + """ + A File ID representing a PEM file containing the server certificate + """ + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ + username: str + """ + Username for connecting to the WiFi network + """ + + +class ConfigurationModifyParamsWifiEnterpriseEapTls(TypedDict): + ca_certificate_file: NotRequired[str] + """ + A File ID representing a PEM file containing the server certificate + """ + client_certificate_file: str + """ + A File ID representing a PEM file containing the client certificate + """ + private_key_file: str + """ + A File ID representing a PEM file containing the client RSA private key + """ + private_key_file_password: NotRequired[str] + """ + Password for the private key file + """ + ssid: str + """ + Name of the WiFi network + """ + + +class ConfigurationModifyParamsWifiPersonalPsk(TypedDict): + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_retrieve_params.py new file mode 100644 index 00000000..95f024ac --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ConfigurationRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_update_params.py new file mode 100644 index 00000000..d7891bf1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_configuration_update_params.py @@ -0,0 +1,598 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfigurationUpdateParams(TypedDict): + bbpos_wisepad3: NotRequired[ + "Literal['']|ConfigurationUpdateParamsBbposWisepad3" + ] + """ + An object containing device type specific settings for BBPOS WisePad 3 readers. + """ + bbpos_wisepos_e: NotRequired[ + "Literal['']|ConfigurationUpdateParamsBbposWiseposE" + ] + """ + An object containing device type specific settings for BBPOS WisePOS E readers. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + name: NotRequired[str] + """ + Name of the configuration + """ + offline: NotRequired["Literal['']|ConfigurationUpdateParamsOffline"] + """ + Configurations for collecting transactions offline. + """ + reboot_window: NotRequired[ + "Literal['']|ConfigurationUpdateParamsRebootWindow" + ] + """ + Reboot time settings for readers. that support customized reboot time configuration. + """ + stripe_s700: NotRequired["Literal['']|ConfigurationUpdateParamsStripeS700"] + """ + An object containing device type specific settings for Stripe S700 readers. + """ + tipping: NotRequired["Literal['']|ConfigurationUpdateParamsTipping"] + """ + Tipping configurations for readers. supporting on-reader tips + """ + verifone_p400: NotRequired[ + "Literal['']|ConfigurationUpdateParamsVerifoneP400" + ] + """ + An object containing device type specific settings for Verifone P400 readers. + """ + wifi: NotRequired["Literal['']|ConfigurationUpdateParamsWifi"] + """ + Configurations for connecting to a WiFi network. + """ + + +class ConfigurationUpdateParamsBbposWisepad3(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationUpdateParamsBbposWiseposE(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image to display on the reader + """ + + +class ConfigurationUpdateParamsOffline(TypedDict): + enabled: bool + """ + Determines whether to allow transactions to be collected while reader is offline. Defaults to false. + """ + + +class ConfigurationUpdateParamsRebootWindow(TypedDict): + end_hour: int + """ + Integer between 0 to 23 that represents the end hour of the reboot time window. The value must be different than the start_hour. + """ + start_hour: int + """ + Integer between 0 to 23 that represents the start hour of the reboot time window. + """ + + +class ConfigurationUpdateParamsStripeS700(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationUpdateParamsTipping(TypedDict): + aed: NotRequired["ConfigurationUpdateParamsTippingAed"] + """ + Tipping configuration for AED + """ + aud: NotRequired["ConfigurationUpdateParamsTippingAud"] + """ + Tipping configuration for AUD + """ + bgn: NotRequired["ConfigurationUpdateParamsTippingBgn"] + """ + Tipping configuration for BGN + """ + cad: NotRequired["ConfigurationUpdateParamsTippingCad"] + """ + Tipping configuration for CAD + """ + chf: NotRequired["ConfigurationUpdateParamsTippingChf"] + """ + Tipping configuration for CHF + """ + czk: NotRequired["ConfigurationUpdateParamsTippingCzk"] + """ + Tipping configuration for CZK + """ + dkk: NotRequired["ConfigurationUpdateParamsTippingDkk"] + """ + Tipping configuration for DKK + """ + eur: NotRequired["ConfigurationUpdateParamsTippingEur"] + """ + Tipping configuration for EUR + """ + gbp: NotRequired["ConfigurationUpdateParamsTippingGbp"] + """ + Tipping configuration for GBP + """ + gip: NotRequired["ConfigurationUpdateParamsTippingGip"] + """ + Tipping configuration for GIP + """ + hkd: NotRequired["ConfigurationUpdateParamsTippingHkd"] + """ + Tipping configuration for HKD + """ + huf: NotRequired["ConfigurationUpdateParamsTippingHuf"] + """ + Tipping configuration for HUF + """ + jpy: NotRequired["ConfigurationUpdateParamsTippingJpy"] + """ + Tipping configuration for JPY + """ + mxn: NotRequired["ConfigurationUpdateParamsTippingMxn"] + """ + Tipping configuration for MXN + """ + myr: NotRequired["ConfigurationUpdateParamsTippingMyr"] + """ + Tipping configuration for MYR + """ + nok: NotRequired["ConfigurationUpdateParamsTippingNok"] + """ + Tipping configuration for NOK + """ + nzd: NotRequired["ConfigurationUpdateParamsTippingNzd"] + """ + Tipping configuration for NZD + """ + pln: NotRequired["ConfigurationUpdateParamsTippingPln"] + """ + Tipping configuration for PLN + """ + ron: NotRequired["ConfigurationUpdateParamsTippingRon"] + """ + Tipping configuration for RON + """ + sek: NotRequired["ConfigurationUpdateParamsTippingSek"] + """ + Tipping configuration for SEK + """ + sgd: NotRequired["ConfigurationUpdateParamsTippingSgd"] + """ + Tipping configuration for SGD + """ + usd: NotRequired["ConfigurationUpdateParamsTippingUsd"] + """ + Tipping configuration for USD + """ + + +class ConfigurationUpdateParamsTippingAed(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingAud(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingBgn(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingCad(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingChf(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingCzk(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingDkk(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingEur(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingGbp(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingGip(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingHkd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingHuf(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingJpy(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingMxn(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingMyr(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingNok(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingNzd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingPln(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingRon(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingSek(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingSgd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsTippingUsd(TypedDict): + fixed_amounts: NotRequired[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: NotRequired[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: NotRequired[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + +class ConfigurationUpdateParamsVerifoneP400(TypedDict): + splashscreen: NotRequired["Literal['']|str"] + """ + A File ID representing an image you want to display on the reader. + """ + + +class ConfigurationUpdateParamsWifi(TypedDict): + enterprise_eap_peap: NotRequired[ + "ConfigurationUpdateParamsWifiEnterpriseEapPeap" + ] + """ + Credentials for a WPA-Enterprise WiFi network using the EAP-PEAP authentication method. + """ + enterprise_eap_tls: NotRequired[ + "ConfigurationUpdateParamsWifiEnterpriseEapTls" + ] + """ + Credentials for a WPA-Enterprise WiFi network using the EAP-TLS authentication method. + """ + personal_psk: NotRequired["ConfigurationUpdateParamsWifiPersonalPsk"] + """ + Credentials for a WPA-Personal WiFi network. + """ + type: Literal["enterprise_eap_peap", "enterprise_eap_tls", "personal_psk"] + """ + Security type of the WiFi network. Fill out the hash with the corresponding name to provide the set of credentials for this security type. + """ + + +class ConfigurationUpdateParamsWifiEnterpriseEapPeap(TypedDict): + ca_certificate_file: NotRequired[str] + """ + A File ID representing a PEM file containing the server certificate + """ + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ + username: str + """ + Username for connecting to the WiFi network + """ + + +class ConfigurationUpdateParamsWifiEnterpriseEapTls(TypedDict): + ca_certificate_file: NotRequired[str] + """ + A File ID representing a PEM file containing the server certificate + """ + client_certificate_file: str + """ + A File ID representing a PEM file containing the client certificate + """ + private_key_file: str + """ + A File ID representing a PEM file containing the client RSA private key + """ + private_key_file_password: NotRequired[str] + """ + Password for the private key file + """ + ssid: str + """ + Name of the WiFi network + """ + + +class ConfigurationUpdateParamsWifiPersonalPsk(TypedDict): + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_connection_token_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_connection_token_create_params.py new file mode 100644 index 00000000..5035f7e4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_connection_token_create_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ConnectionTokenCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + location: NotRequired[str] + """ + The id of the location that this connection token is scoped to. If specified the connection token will only be usable with readers assigned to that location, otherwise the connection token will be usable with all readers. Note that location scoping only applies to internet-connected readers. For more details, see [the docs on scoping connection tokens](https://docs.stripe.com/terminal/fleet/locations-and-zones?dashboard-or-api=api#connection-tokens). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_create_params.py new file mode 100644 index 00000000..72a48400 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_create_params.py @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class LocationCreateParams(RequestOptions): + address: NotRequired["LocationCreateParamsAddress"] + """ + The full address of the location. + """ + address_kana: NotRequired["LocationCreateParamsAddressKana"] + """ + The Kana variation of the full address of the location (Japan only). + """ + address_kanji: NotRequired["LocationCreateParamsAddressKanji"] + """ + The Kanji variation of the full address of the location (Japan only). + """ + configuration_overrides: NotRequired[str] + """ + The ID of a configuration that will be used to customize all readers in this location. + """ + display_name: NotRequired[str] + """ + A name for the location. Maximum length is 1000 characters. + """ + display_name_kana: NotRequired[str] + """ + The Kana variation of the name for the location (Japan only). Maximum length is 1000 characters. + """ + display_name_kanji: NotRequired[str] + """ + The Kanji variation of the name for the location (Japan only). Maximum length is 1000 characters. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone: NotRequired[str] + """ + The phone number for the location. + """ + + +class LocationCreateParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class LocationCreateParamsAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class LocationCreateParamsAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_delete_params.py new file mode 100644 index 00000000..d7f8582c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class LocationDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_list_params.py new file mode 100644 index 00000000..44de1fd8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class LocationListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_modify_params.py new file mode 100644 index 00000000..f4c76e27 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_modify_params.py @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class LocationModifyParams(RequestOptions): + address: NotRequired["LocationModifyParamsAddress"] + """ + The full address of the location. You can't change the location's `country`. If you need to modify the `country` field, create a new `Location` object and re-register any existing readers to that location. + """ + address_kana: NotRequired["LocationModifyParamsAddressKana"] + """ + The Kana variation of the full address of the location (Japan only). + """ + address_kanji: NotRequired["LocationModifyParamsAddressKanji"] + """ + The Kanji variation of the full address of the location (Japan only). + """ + configuration_overrides: NotRequired["Literal['']|str"] + """ + The ID of a configuration that will be used to customize all readers in this location. + """ + display_name: NotRequired["Literal['']|str"] + """ + A name for the location. + """ + display_name_kana: NotRequired["Literal['']|str"] + """ + The Kana variation of the name for the location (Japan only). + """ + display_name_kanji: NotRequired["Literal['']|str"] + """ + The Kanji variation of the name for the location (Japan only). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone: NotRequired["Literal['']|str"] + """ + The phone number for the location. + """ + + +class LocationModifyParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class LocationModifyParamsAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class LocationModifyParamsAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_retrieve_params.py new file mode 100644 index 00000000..107563bb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class LocationRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_update_params.py new file mode 100644 index 00000000..bd0083cb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_location_update_params.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class LocationUpdateParams(TypedDict): + address: NotRequired["LocationUpdateParamsAddress"] + """ + The full address of the location. You can't change the location's `country`. If you need to modify the `country` field, create a new `Location` object and re-register any existing readers to that location. + """ + address_kana: NotRequired["LocationUpdateParamsAddressKana"] + """ + The Kana variation of the full address of the location (Japan only). + """ + address_kanji: NotRequired["LocationUpdateParamsAddressKanji"] + """ + The Kanji variation of the full address of the location (Japan only). + """ + configuration_overrides: NotRequired["Literal['']|str"] + """ + The ID of a configuration that will be used to customize all readers in this location. + """ + display_name: NotRequired["Literal['']|str"] + """ + A name for the location. + """ + display_name_kana: NotRequired["Literal['']|str"] + """ + The Kana variation of the name for the location (Japan only). + """ + display_name_kanji: NotRequired["Literal['']|str"] + """ + The Kanji variation of the name for the location (Japan only). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + phone: NotRequired["Literal['']|str"] + """ + The phone number for the location. + """ + + +class LocationUpdateParamsAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class LocationUpdateParamsAddressKana(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ + + +class LocationUpdateParamsAddressKanji(TypedDict): + city: NotRequired[str] + """ + City or ward. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Block or building number. + """ + line2: NotRequired[str] + """ + Building details. + """ + postal_code: NotRequired[str] + """ + Postal code. + """ + state: NotRequired[str] + """ + Prefecture. + """ + town: NotRequired[str] + """ + Town or cho-me. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_cancel_action_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_cancel_action_params.py new file mode 100644 index 00000000..13541d52 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_cancel_action_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReaderCancelActionParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_collect_inputs_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_collect_inputs_params.py new file mode 100644 index 00000000..e66b3c06 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_collect_inputs_params.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderCollectInputsParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + inputs: List["ReaderCollectInputsParamsInput"] + """ + List of inputs to be collected from the customer using the Reader. Maximum 5 inputs. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + + +class ReaderCollectInputsParamsInput(TypedDict): + custom_text: "ReaderCollectInputsParamsInputCustomText" + """ + Customize the text which will be displayed while collecting this input + """ + required: NotRequired[bool] + """ + Indicate that this input is required, disabling the skip button + """ + selection: NotRequired["ReaderCollectInputsParamsInputSelection"] + """ + Options for the `selection` input + """ + toggles: NotRequired[List["ReaderCollectInputsParamsInputToggle"]] + """ + List of toggles to be displayed and customization for the toggles + """ + type: Literal[ + "email", "numeric", "phone", "selection", "signature", "text" + ] + """ + The type of input to collect + """ + + +class ReaderCollectInputsParamsInputCustomText(TypedDict): + description: NotRequired[str] + """ + The description which will be displayed when collecting this input + """ + skip_button: NotRequired[str] + """ + Custom text for the skip button. Maximum 14 characters. + """ + submit_button: NotRequired[str] + """ + Custom text for the submit button. Maximum 30 characters. + """ + title: str + """ + The title which will be displayed when collecting this input + """ + + +class ReaderCollectInputsParamsInputSelection(TypedDict): + choices: List["ReaderCollectInputsParamsInputSelectionChoice"] + """ + List of choices for the `selection` input + """ + + +class ReaderCollectInputsParamsInputSelectionChoice(TypedDict): + id: str + """ + The unique identifier for this choice + """ + style: NotRequired[Literal["primary", "secondary"]] + """ + The style of the button which will be shown for this choice. Can be `primary` or `secondary`. + """ + text: str + """ + The text which will be shown on the button for this choice + """ + + +class ReaderCollectInputsParamsInputToggle(TypedDict): + default_value: NotRequired[Literal["disabled", "enabled"]] + """ + The default value of the toggle. Can be `enabled` or `disabled`. + """ + description: NotRequired[str] + """ + The description which will be displayed for the toggle. Maximum 50 characters. At least one of title or description must be provided. + """ + title: NotRequired[str] + """ + The title which will be displayed for the toggle. Maximum 50 characters. At least one of title or description must be provided. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_collect_payment_method_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_collect_payment_method_params.py new file mode 100644 index 00000000..f402dc90 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_collect_payment_method_params.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderCollectPaymentMethodParams(RequestOptions): + collect_config: NotRequired[ + "ReaderCollectPaymentMethodParamsCollectConfig" + ] + """ + Configuration overrides for this collection, such as tipping, surcharging, and customer cancellation settings. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payment_intent: str + """ + The ID of the PaymentIntent to collect a payment method for. + """ + + +class ReaderCollectPaymentMethodParamsCollectConfig(TypedDict): + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. + """ + enable_customer_cancellation: NotRequired[bool] + """ + Enables cancel button on transaction screens. + """ + skip_tipping: NotRequired[bool] + """ + Override showing a tipping selection screen on this transaction. + """ + tipping: NotRequired[ + "ReaderCollectPaymentMethodParamsCollectConfigTipping" + ] + """ + Tipping configuration for this transaction. + """ + + +class ReaderCollectPaymentMethodParamsCollectConfigTipping(TypedDict): + amount_eligible: NotRequired[int] + """ + Amount used to calculate tip suggestions on tipping selection screen for this transaction. Must be a positive integer in the smallest currency unit (e.g., 100 cents to represent $1.00 or 100 to represent ¥100, a zero-decimal currency). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_confirm_payment_intent_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_confirm_payment_intent_params.py new file mode 100644 index 00000000..e7bdba44 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_confirm_payment_intent_params.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ReaderConfirmPaymentIntentParams(RequestOptions): + confirm_config: NotRequired[ + "ReaderConfirmPaymentIntentParamsConfirmConfig" + ] + """ + Configuration overrides for this confirmation, such as surcharge settings and return URL. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payment_intent: str + """ + The ID of the PaymentIntent to confirm. + """ + + +class ReaderConfirmPaymentIntentParamsConfirmConfig(TypedDict): + return_url: NotRequired[str] + """ + The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_create_params.py new file mode 100644 index 00000000..6e6d550d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_create_params.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class ReaderCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + label: NotRequired[str] + """ + Custom label given to the reader for easier identification. If no label is specified, the registration code will be used. + """ + location: NotRequired[str] + """ + The location to assign the reader to. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + registration_code: str + """ + A code generated by the reader used for registering to an account. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_delete_params.py new file mode 100644 index 00000000..a9ac7242 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class ReaderDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_list_params.py new file mode 100644 index 00000000..6f77b07a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_list_params.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class ReaderListParams(RequestOptions): + device_type: NotRequired[ + Literal[ + "bbpos_chipper2x", + "bbpos_wisepad3", + "bbpos_wisepos_e", + "mobile_phone_reader", + "simulated_stripe_s700", + "simulated_wisepos_e", + "stripe_m2", + "stripe_s700", + "verifone_P400", + ] + ] + """ + Filters readers by device type + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + location: NotRequired[str] + """ + A location ID to filter the response list to only readers at the specific location + """ + serial_number: NotRequired[str] + """ + Filters readers by serial number + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["offline", "online"]] + """ + A status filter to filter readers to only offline or online readers + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_modify_params.py new file mode 100644 index 00000000..da2d79c9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_modify_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired + + +class ReaderModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + label: NotRequired["Literal['']|str"] + """ + The new label of the reader. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_present_payment_method_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_present_payment_method_params.py new file mode 100644 index 00000000..000061f7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_present_payment_method_params.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderPresentPaymentMethodParams(RequestOptions): + amount_tip: NotRequired[int] + """ + Simulated on-reader tip amount. + """ + card: NotRequired["ReaderPresentPaymentMethodParamsCard"] + """ + Simulated data for the card payment method. + """ + card_present: NotRequired["ReaderPresentPaymentMethodParamsCardPresent"] + """ + Simulated data for the card_present payment method. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + interac_present: NotRequired[ + "ReaderPresentPaymentMethodParamsInteracPresent" + ] + """ + Simulated data for the interac_present payment method. + """ + type: NotRequired[Literal["card", "card_present", "interac_present"]] + """ + Simulated payment type. + """ + + +class ReaderPresentPaymentMethodParamsCard(TypedDict): + cvc: NotRequired[str] + """ + Card security code. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Two- or four-digit number representing the card's expiration year. + """ + number: str + """ + The card number, as a string without any separators. + """ + + +class ReaderPresentPaymentMethodParamsCardPresent(TypedDict): + number: NotRequired[str] + """ + The card number, as a string without any separators. + """ + + +class ReaderPresentPaymentMethodParamsInteracPresent(TypedDict): + number: NotRequired[str] + """ + The Interac card number. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_process_payment_intent_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_process_payment_intent_params.py new file mode 100644 index 00000000..267333ce --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_process_payment_intent_params.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderProcessPaymentIntentParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payment_intent: str + """ + The ID of the PaymentIntent to process on the reader. + """ + process_config: NotRequired[ + "ReaderProcessPaymentIntentParamsProcessConfig" + ] + """ + Configuration overrides for this transaction, such as tipping and customer cancellation settings. + """ + + +class ReaderProcessPaymentIntentParamsProcessConfig(TypedDict): + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. + """ + enable_customer_cancellation: NotRequired[bool] + """ + Enables cancel button on transaction screens. + """ + return_url: NotRequired[str] + """ + The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. + """ + skip_tipping: NotRequired[bool] + """ + Override showing a tipping selection screen on this transaction. + """ + tipping: NotRequired[ + "ReaderProcessPaymentIntentParamsProcessConfigTipping" + ] + """ + Tipping configuration for this transaction. + """ + + +class ReaderProcessPaymentIntentParamsProcessConfigTipping(TypedDict): + amount_eligible: NotRequired[int] + """ + Amount used to calculate tip suggestions on tipping selection screen for this transaction. Must be a positive integer in the smallest currency unit (e.g., 100 cents to represent $1.00 or 100 to represent ¥100, a zero-decimal currency). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_process_setup_intent_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_process_setup_intent_params.py new file mode 100644 index 00000000..373e2ec0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_process_setup_intent_params.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderProcessSetupIntentParams(RequestOptions): + allow_redisplay: Literal["always", "limited", "unspecified"] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + process_config: NotRequired["ReaderProcessSetupIntentParamsProcessConfig"] + """ + Configuration overrides for this setup, such as MOTO and customer cancellation settings. + """ + setup_intent: str + """ + The ID of the SetupIntent to process on the reader. + """ + + +class ReaderProcessSetupIntentParamsProcessConfig(TypedDict): + enable_customer_cancellation: NotRequired[bool] + """ + Enables cancel button on transaction screens. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_refund_payment_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_refund_payment_params.py new file mode 100644 index 00000000..9d1a0297 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_refund_payment_params.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired, TypedDict + + +class ReaderRefundPaymentParams(RequestOptions): + amount: NotRequired[int] + """ + A positive integer in __cents__ representing how much of this charge to refund. + """ + charge: NotRequired[str] + """ + ID of the Charge to refund. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + payment_intent: NotRequired[str] + """ + ID of the PaymentIntent to refund. + """ + refund_application_fee: NotRequired[bool] + """ + Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge. + """ + refund_payment_config: NotRequired[ + "ReaderRefundPaymentParamsRefundPaymentConfig" + ] + """ + Configuration overrides for this refund, such as customer cancellation settings. + """ + reverse_transfer: NotRequired[bool] + """ + Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount). A transfer can be reversed only by the application that created the charge. + """ + + +class ReaderRefundPaymentParamsRefundPaymentConfig(TypedDict): + enable_customer_cancellation: NotRequired[bool] + """ + Enables cancel button on transaction screens. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_retrieve_params.py new file mode 100644 index 00000000..172fa8d8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReaderRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_set_reader_display_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_set_reader_display_params.py new file mode 100644 index 00000000..448aa891 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_set_reader_display_params.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderSetReaderDisplayParams(RequestOptions): + cart: NotRequired["ReaderSetReaderDisplayParamsCart"] + """ + Cart details to display on the reader screen, including line items, amounts, and currency. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + type: Literal["cart"] + """ + Type of information to display. Only `cart` is currently supported. + """ + + +class ReaderSetReaderDisplayParamsCart(TypedDict): + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + line_items: List["ReaderSetReaderDisplayParamsCartLineItem"] + """ + Array of line items to display. + """ + tax: NotRequired[int] + """ + The amount of tax in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + total: int + """ + Total balance of cart due in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + + +class ReaderSetReaderDisplayParamsCartLineItem(TypedDict): + amount: int + """ + The price of the item in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + description: str + """ + The description or name of the item. + """ + quantity: int + """ + The quantity of the line item being purchased. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_succeed_input_collection_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_succeed_input_collection_params.py new file mode 100644 index 00000000..0872d72a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_succeed_input_collection_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class ReaderSucceedInputCollectionParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + skip_non_required_inputs: NotRequired[Literal["all", "none"]] + """ + This parameter defines the skip behavior for input collection. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_timeout_input_collection_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_timeout_input_collection_params.py new file mode 100644 index 00000000..4a25a66b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_timeout_input_collection_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReaderTimeoutInputCollectionParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_update_params.py new file mode 100644 index 00000000..25b94dc2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/terminal/_reader_update_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + label: NotRequired["Literal['']|str"] + """ + The new label of the reader. + """ + metadata: NotRequired["Literal['']|Dict[str, str]"] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__init__.py new file mode 100644 index 00000000..475021d1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__init__.py @@ -0,0 +1,389 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.test_helpers import ( + issuing as issuing, + terminal as terminal, + treasury as treasury, + ) + from stripe.params.test_helpers._confirmation_token_create_params import ( + ConfirmationTokenCreateParams as ConfirmationTokenCreateParams, + ConfirmationTokenCreateParamsPaymentMethodData as ConfirmationTokenCreateParamsPaymentMethodData, + ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit as ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit, + ConfirmationTokenCreateParamsPaymentMethodDataAffirm as ConfirmationTokenCreateParamsPaymentMethodDataAffirm, + ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay as ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay, + ConfirmationTokenCreateParamsPaymentMethodDataAlipay as ConfirmationTokenCreateParamsPaymentMethodDataAlipay, + ConfirmationTokenCreateParamsPaymentMethodDataAlma as ConfirmationTokenCreateParamsPaymentMethodDataAlma, + ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay as ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay, + ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit as ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit, + ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit as ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit, + ConfirmationTokenCreateParamsPaymentMethodDataBancontact as ConfirmationTokenCreateParamsPaymentMethodDataBancontact, + ConfirmationTokenCreateParamsPaymentMethodDataBillie as ConfirmationTokenCreateParamsPaymentMethodDataBillie, + ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails as ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails, + ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress as ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress, + ConfirmationTokenCreateParamsPaymentMethodDataBlik as ConfirmationTokenCreateParamsPaymentMethodDataBlik, + ConfirmationTokenCreateParamsPaymentMethodDataBoleto as ConfirmationTokenCreateParamsPaymentMethodDataBoleto, + ConfirmationTokenCreateParamsPaymentMethodDataCashapp as ConfirmationTokenCreateParamsPaymentMethodDataCashapp, + ConfirmationTokenCreateParamsPaymentMethodDataCrypto as ConfirmationTokenCreateParamsPaymentMethodDataCrypto, + ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance as ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance, + ConfirmationTokenCreateParamsPaymentMethodDataEps as ConfirmationTokenCreateParamsPaymentMethodDataEps, + ConfirmationTokenCreateParamsPaymentMethodDataFpx as ConfirmationTokenCreateParamsPaymentMethodDataFpx, + ConfirmationTokenCreateParamsPaymentMethodDataGiropay as ConfirmationTokenCreateParamsPaymentMethodDataGiropay, + ConfirmationTokenCreateParamsPaymentMethodDataGrabpay as ConfirmationTokenCreateParamsPaymentMethodDataGrabpay, + ConfirmationTokenCreateParamsPaymentMethodDataIdeal as ConfirmationTokenCreateParamsPaymentMethodDataIdeal, + ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent as ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent, + ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay as ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay, + ConfirmationTokenCreateParamsPaymentMethodDataKlarna as ConfirmationTokenCreateParamsPaymentMethodDataKlarna, + ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob as ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob, + ConfirmationTokenCreateParamsPaymentMethodDataKonbini as ConfirmationTokenCreateParamsPaymentMethodDataKonbini, + ConfirmationTokenCreateParamsPaymentMethodDataKrCard as ConfirmationTokenCreateParamsPaymentMethodDataKrCard, + ConfirmationTokenCreateParamsPaymentMethodDataLink as ConfirmationTokenCreateParamsPaymentMethodDataLink, + ConfirmationTokenCreateParamsPaymentMethodDataMbWay as ConfirmationTokenCreateParamsPaymentMethodDataMbWay, + ConfirmationTokenCreateParamsPaymentMethodDataMobilepay as ConfirmationTokenCreateParamsPaymentMethodDataMobilepay, + ConfirmationTokenCreateParamsPaymentMethodDataMultibanco as ConfirmationTokenCreateParamsPaymentMethodDataMultibanco, + ConfirmationTokenCreateParamsPaymentMethodDataNaverPay as ConfirmationTokenCreateParamsPaymentMethodDataNaverPay, + ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount as ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount, + ConfirmationTokenCreateParamsPaymentMethodDataOxxo as ConfirmationTokenCreateParamsPaymentMethodDataOxxo, + ConfirmationTokenCreateParamsPaymentMethodDataP24 as ConfirmationTokenCreateParamsPaymentMethodDataP24, + ConfirmationTokenCreateParamsPaymentMethodDataPayByBank as ConfirmationTokenCreateParamsPaymentMethodDataPayByBank, + ConfirmationTokenCreateParamsPaymentMethodDataPayco as ConfirmationTokenCreateParamsPaymentMethodDataPayco, + ConfirmationTokenCreateParamsPaymentMethodDataPaynow as ConfirmationTokenCreateParamsPaymentMethodDataPaynow, + ConfirmationTokenCreateParamsPaymentMethodDataPaypal as ConfirmationTokenCreateParamsPaymentMethodDataPaypal, + ConfirmationTokenCreateParamsPaymentMethodDataPix as ConfirmationTokenCreateParamsPaymentMethodDataPix, + ConfirmationTokenCreateParamsPaymentMethodDataPromptpay as ConfirmationTokenCreateParamsPaymentMethodDataPromptpay, + ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions as ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions, + ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay as ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay, + ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay as ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay, + ConfirmationTokenCreateParamsPaymentMethodDataSatispay as ConfirmationTokenCreateParamsPaymentMethodDataSatispay, + ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit as ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit, + ConfirmationTokenCreateParamsPaymentMethodDataSofort as ConfirmationTokenCreateParamsPaymentMethodDataSofort, + ConfirmationTokenCreateParamsPaymentMethodDataSwish as ConfirmationTokenCreateParamsPaymentMethodDataSwish, + ConfirmationTokenCreateParamsPaymentMethodDataTwint as ConfirmationTokenCreateParamsPaymentMethodDataTwint, + ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount as ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount, + ConfirmationTokenCreateParamsPaymentMethodDataWechatPay as ConfirmationTokenCreateParamsPaymentMethodDataWechatPay, + ConfirmationTokenCreateParamsPaymentMethodDataZip as ConfirmationTokenCreateParamsPaymentMethodDataZip, + ConfirmationTokenCreateParamsPaymentMethodOptions as ConfirmationTokenCreateParamsPaymentMethodOptions, + ConfirmationTokenCreateParamsPaymentMethodOptionsCard as ConfirmationTokenCreateParamsPaymentMethodOptionsCard, + ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments as ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments, + ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan as ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan, + ConfirmationTokenCreateParamsShipping as ConfirmationTokenCreateParamsShipping, + ConfirmationTokenCreateParamsShippingAddress as ConfirmationTokenCreateParamsShippingAddress, + ) + from stripe.params.test_helpers._customer_fund_cash_balance_params import ( + CustomerFundCashBalanceParams as CustomerFundCashBalanceParams, + ) + from stripe.params.test_helpers._refund_expire_params import ( + RefundExpireParams as RefundExpireParams, + ) + from stripe.params.test_helpers._test_clock_advance_params import ( + TestClockAdvanceParams as TestClockAdvanceParams, + ) + from stripe.params.test_helpers._test_clock_create_params import ( + TestClockCreateParams as TestClockCreateParams, + ) + from stripe.params.test_helpers._test_clock_delete_params import ( + TestClockDeleteParams as TestClockDeleteParams, + ) + from stripe.params.test_helpers._test_clock_list_params import ( + TestClockListParams as TestClockListParams, + ) + from stripe.params.test_helpers._test_clock_retrieve_params import ( + TestClockRetrieveParams as TestClockRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "issuing": ("stripe.params.test_helpers.issuing", True), + "terminal": ("stripe.params.test_helpers.terminal", True), + "treasury": ("stripe.params.test_helpers.treasury", True), + "ConfirmationTokenCreateParams": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodData": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAffirm": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAlipay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAlma": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBancontact": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBillie": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBlik": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataBoleto": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataCashapp": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataCrypto": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataEps": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataFpx": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataGiropay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataGrabpay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataIdeal": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKlarna": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKonbini": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataKrCard": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataLink": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataMbWay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataMobilepay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataMultibanco": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataNaverPay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataOxxo": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataP24": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPayByBank": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPayco": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPaynow": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPaypal": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPix": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataPromptpay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSatispay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSofort": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataSwish": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataTwint": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataWechatPay": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodDataZip": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptions": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptionsCard": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsShipping": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "ConfirmationTokenCreateParamsShippingAddress": ( + "stripe.params.test_helpers._confirmation_token_create_params", + False, + ), + "CustomerFundCashBalanceParams": ( + "stripe.params.test_helpers._customer_fund_cash_balance_params", + False, + ), + "RefundExpireParams": ( + "stripe.params.test_helpers._refund_expire_params", + False, + ), + "TestClockAdvanceParams": ( + "stripe.params.test_helpers._test_clock_advance_params", + False, + ), + "TestClockCreateParams": ( + "stripe.params.test_helpers._test_clock_create_params", + False, + ), + "TestClockDeleteParams": ( + "stripe.params.test_helpers._test_clock_delete_params", + False, + ), + "TestClockListParams": ( + "stripe.params.test_helpers._test_clock_list_params", + False, + ), + "TestClockRetrieveParams": ( + "stripe.params.test_helpers._test_clock_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..bb1cfd43 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_confirmation_token_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_confirmation_token_create_params.cpython-312.pyc new file mode 100644 index 00000000..16f9fa67 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_confirmation_token_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc new file mode 100644 index 00000000..606c75a7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_customer_fund_cash_balance_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_refund_expire_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_refund_expire_params.cpython-312.pyc new file mode 100644 index 00000000..557f5e72 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_refund_expire_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_advance_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_advance_params.cpython-312.pyc new file mode 100644 index 00000000..fa3b7b22 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_advance_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_create_params.cpython-312.pyc new file mode 100644 index 00000000..cd9d0fb9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_delete_params.cpython-312.pyc new file mode 100644 index 00000000..5801b293 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_list_params.cpython-312.pyc new file mode 100644 index 00000000..d241ddf8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..25ba2409 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/__pycache__/_test_clock_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_confirmation_token_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_confirmation_token_create_params.py new file mode 100644 index 00000000..b3069075 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_confirmation_token_create_params.py @@ -0,0 +1,925 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ConfirmationTokenCreateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + payment_method: NotRequired[str] + """ + ID of an existing PaymentMethod. + """ + payment_method_data: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodData" + ] + """ + If provided, this hash will be used to create a PaymentMethod. + """ + payment_method_options: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodOptions" + ] + """ + Payment-method-specific configuration for this ConfirmationToken. + """ + return_url: NotRequired[str] + """ + Return URL used to confirm the Intent. + """ + setup_future_usage: NotRequired[Literal["off_session", "on_session"]] + """ + Indicates that you intend to make future payments with this ConfirmationToken's payment method. + + The presence of this property will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. + """ + shipping: NotRequired["ConfirmationTokenCreateParamsShipping"] + """ + Shipping information for this ConfirmationToken. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodData(TypedDict): + acss_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit" + ] + """ + If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. + """ + affirm: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataAffirm"] + """ + If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. + """ + afterpay_clearpay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay" + ] + """ + If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. + """ + alipay: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataAlipay"] + """ + If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. + """ + allow_redisplay: NotRequired[Literal["always", "limited", "unspecified"]] + """ + This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. + """ + alma: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataAlma"] + """ + If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. + """ + amazon_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay" + ] + """ + If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. + """ + au_becs_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit" + ] + """ + If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. + """ + bacs_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit" + ] + """ + If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. + """ + bancontact: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataBancontact" + ] + """ + If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. + """ + billie: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataBillie"] + """ + If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method. + """ + billing_details: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + blik: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataBlik"] + """ + If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. + """ + boleto: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataBoleto"] + """ + If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. + """ + cashapp: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataCashapp" + ] + """ + If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. + """ + crypto: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataCrypto"] + """ + If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method. + """ + customer_balance: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance" + ] + """ + If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. + """ + eps: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataEps"] + """ + If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. + """ + fpx: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataFpx"] + """ + If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. + """ + giropay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataGiropay" + ] + """ + If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. + """ + grabpay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataGrabpay" + ] + """ + If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. + """ + ideal: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataIdeal"] + """ + If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. + """ + interac_present: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent" + ] + """ + If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. + """ + kakao_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay" + ] + """ + If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. + """ + klarna: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataKlarna"] + """ + If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. + """ + konbini: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataKonbini" + ] + """ + If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. + """ + kr_card: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataKrCard" + ] + """ + If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. + """ + link: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataLink"] + """ + If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. + """ + mb_way: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataMbWay"] + """ + If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + mobilepay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataMobilepay" + ] + """ + If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. + """ + multibanco: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataMultibanco" + ] + """ + If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. + """ + naver_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataNaverPay" + ] + """ + If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. + """ + nz_bank_account: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount" + ] + """ + If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. + """ + oxxo: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataOxxo"] + """ + If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. + """ + p24: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataP24"] + """ + If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. + """ + pay_by_bank: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataPayByBank" + ] + """ + If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. + """ + payco: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPayco"] + """ + If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. + """ + paynow: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPaynow"] + """ + If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. + """ + paypal: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPaypal"] + """ + If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. + """ + pix: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataPix"] + """ + If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. + """ + promptpay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataPromptpay" + ] + """ + If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. + """ + radar_options: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions" + ] + """ + Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. + """ + revolut_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay" + ] + """ + If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. + """ + samsung_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay" + ] + """ + If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. + """ + satispay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataSatispay" + ] + """ + If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method. + """ + sepa_debit: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit" + ] + """ + If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. + """ + sofort: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataSofort"] + """ + If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. + """ + swish: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataSwish"] + """ + If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. + """ + twint: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataTwint"] + """ + If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. + """ + type: Literal[ + "acss_debit", + "affirm", + "afterpay_clearpay", + "alipay", + "alma", + "amazon_pay", + "au_becs_debit", + "bacs_debit", + "bancontact", + "billie", + "blik", + "boleto", + "cashapp", + "crypto", + "customer_balance", + "eps", + "fpx", + "giropay", + "grabpay", + "ideal", + "kakao_pay", + "klarna", + "konbini", + "kr_card", + "link", + "mb_way", + "mobilepay", + "multibanco", + "naver_pay", + "nz_bank_account", + "oxxo", + "p24", + "pay_by_bank", + "payco", + "paynow", + "paypal", + "pix", + "promptpay", + "revolut_pay", + "samsung_pay", + "satispay", + "sepa_debit", + "sofort", + "swish", + "twint", + "us_bank_account", + "wechat_pay", + "zip", + ] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount" + ] + """ + If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. + """ + wechat_pay: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodDataWechatPay" + ] + """ + If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. + """ + zip: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataZip"] + """ + If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataAcssDebit(TypedDict): + account_number: str + """ + Customer's bank account number. + """ + institution_number: str + """ + Institution number of the customer's bank. + """ + transit_number: str + """ + Transit number of the customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataAffirm(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAfterpayClearpay( + TypedDict +): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAlipay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAlma(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAmazonPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataAuBecsDebit(TypedDict): + account_number: str + """ + The account number for the bank account. + """ + bsb_number: str + """ + Bank-State-Branch number of the bank account. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBacsDebit(TypedDict): + account_number: NotRequired[str] + """ + Account number of the bank account that the funds will be debited from. + """ + sort_code: NotRequired[str] + """ + Sort code of the bank account. (e.g., `10-20-30`) + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBancontact(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataBillie(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataBillingDetails(TypedDict): + address: NotRequired[ + "Literal['']|ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + tax_id: NotRequired[str] + """ + Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataBlik(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataBoleto(TypedDict): + tax_id: str + """ + The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataCashapp(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataCrypto(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataCustomerBalance(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataEps(TypedDict): + bank: NotRequired[ + Literal[ + "arzte_und_apotheker_bank", + "austrian_anadi_bank_ag", + "bank_austria", + "bankhaus_carl_spangler", + "bankhaus_schelhammer_und_schattera_ag", + "bawag_psk_ag", + "bks_bank_ag", + "brull_kallmus_bank_ag", + "btv_vier_lander_bank", + "capital_bank_grawe_gruppe_ag", + "deutsche_bank_ag", + "dolomitenbank", + "easybank_ag", + "erste_bank_und_sparkassen", + "hypo_alpeadriabank_international_ag", + "hypo_bank_burgenland_aktiengesellschaft", + "hypo_noe_lb_fur_niederosterreich_u_wien", + "hypo_oberosterreich_salzburg_steiermark", + "hypo_tirol_bank_ag", + "hypo_vorarlberg_bank_ag", + "marchfelder_bank", + "oberbank_ag", + "raiffeisen_bankengruppe_osterreich", + "schoellerbank_ag", + "sparda_bank_wien", + "volksbank_gruppe", + "volkskreditbank_ag", + "vr_bank_braunau", + ] + ] + """ + The customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataFpx(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type for FPX transaction + """ + bank: Literal[ + "affin_bank", + "agrobank", + "alliance_bank", + "ambank", + "bank_islam", + "bank_muamalat", + "bank_of_china", + "bank_rakyat", + "bsn", + "cimb", + "deutsche_bank", + "hong_leong_bank", + "hsbc", + "kfh", + "maybank2e", + "maybank2u", + "ocbc", + "pb_enterprise", + "public_bank", + "rhb", + "standard_chartered", + "uob", + ] + """ + The customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataGiropay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataGrabpay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataIdeal(TypedDict): + bank: NotRequired[ + Literal[ + "abn_amro", + "asn_bank", + "bunq", + "buut", + "handelsbanken", + "ing", + "knab", + "moneyou", + "n26", + "nn", + "rabobank", + "regiobank", + "revolut", + "sns_bank", + "triodos_bank", + "van_lanschot", + "yoursafe", + ] + ] + """ + The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataInteracPresent(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataKakaoPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataKlarna(TypedDict): + dob: NotRequired["ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob"] + """ + Customer's date of birth + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataKlarnaDob(TypedDict): + day: int + """ + The day of birth, between 1 and 31. + """ + month: int + """ + The month of birth, between 1 and 12. + """ + year: int + """ + The four-digit year of birth. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataKonbini(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataKrCard(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataLink(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataMbWay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataMobilepay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataMultibanco(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataNaverPay(TypedDict): + funding: NotRequired[Literal["card", "points"]] + """ + Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataNzBankAccount(TypedDict): + account_holder_name: NotRequired[str] + """ + The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod's billing details. + """ + account_number: str + """ + The account number for the bank account. + """ + bank_code: str + """ + The numeric code for the bank account's bank. + """ + branch_code: str + """ + The numeric code for the bank account's bank branch. + """ + reference: NotRequired[str] + suffix: str + """ + The suffix of the bank account number. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataOxxo(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataP24(TypedDict): + bank: NotRequired[ + Literal[ + "alior_bank", + "bank_millennium", + "bank_nowy_bfg_sa", + "bank_pekao_sa", + "banki_spbdzielcze", + "blik", + "bnp_paribas", + "boz", + "citi_handlowy", + "credit_agricole", + "envelobank", + "etransfer_pocztowy24", + "getin_bank", + "ideabank", + "ing", + "inteligo", + "mbank_mtransfer", + "nest_przelew", + "noble_pay", + "pbac_z_ipko", + "plus_bank", + "santander_przelew24", + "tmobile_usbugi_bankowe", + "toyota_bank", + "velobank", + "volkswagen_bank", + ] + ] + """ + The customer's bank. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataPayByBank(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPayco(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPaynow(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPaypal(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPix(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataPromptpay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataRadarOptions(TypedDict): + session: NotRequired[str] + """ + A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataRevolutPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataSamsungPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataSatispay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataSepaDebit(TypedDict): + iban: str + """ + IBAN of the bank account. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataSofort(TypedDict): + country: Literal["AT", "BE", "DE", "ES", "IT", "NL"] + """ + Two-letter ISO code representing the country the bank account is located in. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataSwish(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataTwint(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataUsBankAccount(TypedDict): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodDataWechatPay(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodDataZip(TypedDict): + pass + + +class ConfirmationTokenCreateParamsPaymentMethodOptions(TypedDict): + card: NotRequired["ConfirmationTokenCreateParamsPaymentMethodOptionsCard"] + """ + Configuration for any card payments confirmed using this ConfirmationToken. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodOptionsCard(TypedDict): + installments: NotRequired[ + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments" + ] + """ + Installment configuration for payments confirmed using this ConfirmationToken. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallments( + TypedDict, +): + plan: ( + "ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan" + ) + """ + The selected installment plan to use for this payment attempt. + This parameter can only be provided during confirmation. + """ + + +class ConfirmationTokenCreateParamsPaymentMethodOptionsCardInstallmentsPlan( + TypedDict, +): + count: NotRequired[int] + """ + For `fixed_count` installment plans, this is required. It represents the number of installment payments your customer will make to their credit card. + """ + interval: NotRequired[Literal["month"]] + """ + For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card. + One of `month`. + """ + type: Literal["bonus", "fixed_count", "revolving"] + """ + Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`. + """ + + +class ConfirmationTokenCreateParamsShipping(TypedDict): + address: "ConfirmationTokenCreateParamsShippingAddress" + """ + Shipping address + """ + name: str + """ + Recipient name. + """ + phone: NotRequired["Literal['']|str"] + """ + Recipient phone (including extension) + """ + + +class ConfirmationTokenCreateParamsShippingAddress(TypedDict): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_customer_fund_cash_balance_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_customer_fund_cash_balance_params.py new file mode 100644 index 00000000..dde8f3e4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_customer_fund_cash_balance_params.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CustomerFundCashBalanceParams(TypedDict): + amount: int + """ + Amount to be used for this test cash balance transaction. A positive integer representing how much to fund in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to fund $1.00 or 100 to fund ¥100, a zero-decimal currency). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + reference: NotRequired[str] + """ + A description of the test funding. This simulates free-text references supplied by customers when making bank transfers to their cash balance. You can use this to test how Stripe's [reconciliation algorithm](https://stripe.com/docs/payments/customer-balance/reconciliation) applies to different user inputs. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_refund_expire_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_refund_expire_params.py new file mode 100644 index 00000000..4aa86146 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_refund_expire_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class RefundExpireParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_advance_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_advance_params.py new file mode 100644 index 00000000..94bf0dc1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_advance_params.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TestClockAdvanceParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + frozen_time: int + """ + The time to advance the test clock. Must be after the test clock's current frozen time. Cannot be more than two intervals in the future from the shortest subscription in this test clock. If there are no subscriptions in this test clock, it cannot be more than two years in the future. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_create_params.py new file mode 100644 index 00000000..9375ca50 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_create_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TestClockCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + frozen_time: int + """ + The initial frozen time for this test clock. + """ + name: NotRequired[str] + """ + The name for this test clock. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_delete_params.py new file mode 100644 index 00000000..f8e96c11 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions + + +class TestClockDeleteParams(RequestOptions): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_list_params.py new file mode 100644 index 00000000..666d2be2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_list_params.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TestClockListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_retrieve_params.py new file mode 100644 index 00000000..d87ea3ce --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/_test_clock_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TestClockRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__init__.py new file mode 100644 index 00000000..2fb6b352 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__init__.py @@ -0,0 +1,461 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.test_helpers.issuing._authorization_capture_params import ( + AuthorizationCaptureParams as AuthorizationCaptureParams, + AuthorizationCaptureParamsPurchaseDetails as AuthorizationCaptureParamsPurchaseDetails, + AuthorizationCaptureParamsPurchaseDetailsFleet as AuthorizationCaptureParamsPurchaseDetailsFleet, + AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData as AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel, + AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax as AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax, + AuthorizationCaptureParamsPurchaseDetailsFlight as AuthorizationCaptureParamsPurchaseDetailsFlight, + AuthorizationCaptureParamsPurchaseDetailsFlightSegment as AuthorizationCaptureParamsPurchaseDetailsFlightSegment, + AuthorizationCaptureParamsPurchaseDetailsFuel as AuthorizationCaptureParamsPurchaseDetailsFuel, + AuthorizationCaptureParamsPurchaseDetailsLodging as AuthorizationCaptureParamsPurchaseDetailsLodging, + AuthorizationCaptureParamsPurchaseDetailsReceipt as AuthorizationCaptureParamsPurchaseDetailsReceipt, + ) + from stripe.params.test_helpers.issuing._authorization_create_params import ( + AuthorizationCreateParams as AuthorizationCreateParams, + AuthorizationCreateParamsAmountDetails as AuthorizationCreateParamsAmountDetails, + AuthorizationCreateParamsFleet as AuthorizationCreateParamsFleet, + AuthorizationCreateParamsFleetCardholderPromptData as AuthorizationCreateParamsFleetCardholderPromptData, + AuthorizationCreateParamsFleetReportedBreakdown as AuthorizationCreateParamsFleetReportedBreakdown, + AuthorizationCreateParamsFleetReportedBreakdownFuel as AuthorizationCreateParamsFleetReportedBreakdownFuel, + AuthorizationCreateParamsFleetReportedBreakdownNonFuel as AuthorizationCreateParamsFleetReportedBreakdownNonFuel, + AuthorizationCreateParamsFleetReportedBreakdownTax as AuthorizationCreateParamsFleetReportedBreakdownTax, + AuthorizationCreateParamsFuel as AuthorizationCreateParamsFuel, + AuthorizationCreateParamsMerchantData as AuthorizationCreateParamsMerchantData, + AuthorizationCreateParamsNetworkData as AuthorizationCreateParamsNetworkData, + AuthorizationCreateParamsRiskAssessment as AuthorizationCreateParamsRiskAssessment, + AuthorizationCreateParamsRiskAssessmentCardTestingRisk as AuthorizationCreateParamsRiskAssessmentCardTestingRisk, + AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk as AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk, + AuthorizationCreateParamsVerificationData as AuthorizationCreateParamsVerificationData, + AuthorizationCreateParamsVerificationDataAuthenticationExemption as AuthorizationCreateParamsVerificationDataAuthenticationExemption, + AuthorizationCreateParamsVerificationDataThreeDSecure as AuthorizationCreateParamsVerificationDataThreeDSecure, + ) + from stripe.params.test_helpers.issuing._authorization_expire_params import ( + AuthorizationExpireParams as AuthorizationExpireParams, + ) + from stripe.params.test_helpers.issuing._authorization_finalize_amount_params import ( + AuthorizationFinalizeAmountParams as AuthorizationFinalizeAmountParams, + AuthorizationFinalizeAmountParamsFleet as AuthorizationFinalizeAmountParamsFleet, + AuthorizationFinalizeAmountParamsFleetCardholderPromptData as AuthorizationFinalizeAmountParamsFleetCardholderPromptData, + AuthorizationFinalizeAmountParamsFleetReportedBreakdown as AuthorizationFinalizeAmountParamsFleetReportedBreakdown, + AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel as AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel, + AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel as AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel, + AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax as AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax, + AuthorizationFinalizeAmountParamsFuel as AuthorizationFinalizeAmountParamsFuel, + ) + from stripe.params.test_helpers.issuing._authorization_increment_params import ( + AuthorizationIncrementParams as AuthorizationIncrementParams, + ) + from stripe.params.test_helpers.issuing._authorization_respond_params import ( + AuthorizationRespondParams as AuthorizationRespondParams, + ) + from stripe.params.test_helpers.issuing._authorization_reverse_params import ( + AuthorizationReverseParams as AuthorizationReverseParams, + ) + from stripe.params.test_helpers.issuing._card_deliver_card_params import ( + CardDeliverCardParams as CardDeliverCardParams, + ) + from stripe.params.test_helpers.issuing._card_fail_card_params import ( + CardFailCardParams as CardFailCardParams, + ) + from stripe.params.test_helpers.issuing._card_return_card_params import ( + CardReturnCardParams as CardReturnCardParams, + ) + from stripe.params.test_helpers.issuing._card_ship_card_params import ( + CardShipCardParams as CardShipCardParams, + ) + from stripe.params.test_helpers.issuing._card_submit_card_params import ( + CardSubmitCardParams as CardSubmitCardParams, + ) + from stripe.params.test_helpers.issuing._personalization_design_activate_params import ( + PersonalizationDesignActivateParams as PersonalizationDesignActivateParams, + ) + from stripe.params.test_helpers.issuing._personalization_design_deactivate_params import ( + PersonalizationDesignDeactivateParams as PersonalizationDesignDeactivateParams, + ) + from stripe.params.test_helpers.issuing._personalization_design_reject_params import ( + PersonalizationDesignRejectParams as PersonalizationDesignRejectParams, + PersonalizationDesignRejectParamsRejectionReasons as PersonalizationDesignRejectParamsRejectionReasons, + ) + from stripe.params.test_helpers.issuing._transaction_create_force_capture_params import ( + TransactionCreateForceCaptureParams as TransactionCreateForceCaptureParams, + TransactionCreateForceCaptureParamsMerchantData as TransactionCreateForceCaptureParamsMerchantData, + TransactionCreateForceCaptureParamsPurchaseDetails as TransactionCreateForceCaptureParamsPurchaseDetails, + TransactionCreateForceCaptureParamsPurchaseDetailsFleet as TransactionCreateForceCaptureParamsPurchaseDetailsFleet, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData as TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel, + TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax as TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax, + TransactionCreateForceCaptureParamsPurchaseDetailsFlight as TransactionCreateForceCaptureParamsPurchaseDetailsFlight, + TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment as TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment, + TransactionCreateForceCaptureParamsPurchaseDetailsFuel as TransactionCreateForceCaptureParamsPurchaseDetailsFuel, + TransactionCreateForceCaptureParamsPurchaseDetailsLodging as TransactionCreateForceCaptureParamsPurchaseDetailsLodging, + TransactionCreateForceCaptureParamsPurchaseDetailsReceipt as TransactionCreateForceCaptureParamsPurchaseDetailsReceipt, + ) + from stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params import ( + TransactionCreateUnlinkedRefundParams as TransactionCreateUnlinkedRefundParams, + TransactionCreateUnlinkedRefundParamsMerchantData as TransactionCreateUnlinkedRefundParamsMerchantData, + TransactionCreateUnlinkedRefundParamsPurchaseDetails as TransactionCreateUnlinkedRefundParamsPurchaseDetails, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel as TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging as TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging, + TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt as TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt, + ) + from stripe.params.test_helpers.issuing._transaction_refund_params import ( + TransactionRefundParams as TransactionRefundParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "AuthorizationCaptureParams": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetails": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleet": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFlight": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFlightSegment": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsFuel": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsLodging": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCaptureParamsPurchaseDetailsReceipt": ( + "stripe.params.test_helpers.issuing._authorization_capture_params", + False, + ), + "AuthorizationCreateParams": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsAmountDetails": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleet": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetCardholderPromptData": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdown": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdownFuel": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdownNonFuel": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFleetReportedBreakdownTax": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsFuel": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsMerchantData": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsNetworkData": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsRiskAssessment": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsRiskAssessmentCardTestingRisk": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsVerificationData": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsVerificationDataAuthenticationExemption": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationCreateParamsVerificationDataThreeDSecure": ( + "stripe.params.test_helpers.issuing._authorization_create_params", + False, + ), + "AuthorizationExpireParams": ( + "stripe.params.test_helpers.issuing._authorization_expire_params", + False, + ), + "AuthorizationFinalizeAmountParams": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleet": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetCardholderPromptData": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdown": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationFinalizeAmountParamsFuel": ( + "stripe.params.test_helpers.issuing._authorization_finalize_amount_params", + False, + ), + "AuthorizationIncrementParams": ( + "stripe.params.test_helpers.issuing._authorization_increment_params", + False, + ), + "AuthorizationRespondParams": ( + "stripe.params.test_helpers.issuing._authorization_respond_params", + False, + ), + "AuthorizationReverseParams": ( + "stripe.params.test_helpers.issuing._authorization_reverse_params", + False, + ), + "CardDeliverCardParams": ( + "stripe.params.test_helpers.issuing._card_deliver_card_params", + False, + ), + "CardFailCardParams": ( + "stripe.params.test_helpers.issuing._card_fail_card_params", + False, + ), + "CardReturnCardParams": ( + "stripe.params.test_helpers.issuing._card_return_card_params", + False, + ), + "CardShipCardParams": ( + "stripe.params.test_helpers.issuing._card_ship_card_params", + False, + ), + "CardSubmitCardParams": ( + "stripe.params.test_helpers.issuing._card_submit_card_params", + False, + ), + "PersonalizationDesignActivateParams": ( + "stripe.params.test_helpers.issuing._personalization_design_activate_params", + False, + ), + "PersonalizationDesignDeactivateParams": ( + "stripe.params.test_helpers.issuing._personalization_design_deactivate_params", + False, + ), + "PersonalizationDesignRejectParams": ( + "stripe.params.test_helpers.issuing._personalization_design_reject_params", + False, + ), + "PersonalizationDesignRejectParamsRejectionReasons": ( + "stripe.params.test_helpers.issuing._personalization_design_reject_params", + False, + ), + "TransactionCreateForceCaptureParams": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsMerchantData": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetails": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleet": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFlight": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsFuel": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsLodging": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateForceCaptureParamsPurchaseDetailsReceipt": ( + "stripe.params.test_helpers.issuing._transaction_create_force_capture_params", + False, + ), + "TransactionCreateUnlinkedRefundParams": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsMerchantData": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetails": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt": ( + "stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params", + False, + ), + "TransactionRefundParams": ( + "stripe.params.test_helpers.issuing._transaction_refund_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..290ec0c7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc new file mode 100644 index 00000000..11178c91 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_capture_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_create_params.cpython-312.pyc new file mode 100644 index 00000000..d836e774 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc new file mode 100644 index 00000000..e710a8c0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_expire_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc new file mode 100644 index 00000000..2fa59179 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_finalize_amount_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc new file mode 100644 index 00000000..30c4a90b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_increment_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc new file mode 100644 index 00000000..ecf72e65 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_respond_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc new file mode 100644 index 00000000..e5087afb Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_authorization_reverse_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc new file mode 100644 index 00000000..08864e67 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_deliver_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc new file mode 100644 index 00000000..49168a84 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_fail_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_return_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_return_card_params.cpython-312.pyc new file mode 100644 index 00000000..4474d67a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_return_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc new file mode 100644 index 00000000..9523d140 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_ship_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc new file mode 100644 index 00000000..0d08f8b3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_card_submit_card_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc new file mode 100644 index 00000000..ff7b8c7f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_activate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc new file mode 100644 index 00000000..e45210d0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_deactivate_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc new file mode 100644 index 00000000..e27913b7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_personalization_design_reject_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc new file mode 100644 index 00000000..8e34165b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_create_force_capture_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc new file mode 100644 index 00000000..cd06a630 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_create_unlinked_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc new file mode 100644 index 00000000..ae14bace Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/__pycache__/_transaction_refund_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_capture_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_capture_params.py new file mode 100644 index 00000000..a1836506 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_capture_params.py @@ -0,0 +1,272 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationCaptureParams(TypedDict): + capture_amount: NotRequired[int] + """ + The amount to capture from the authorization. If not provided, the full amount of the authorization will be captured. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + close_authorization: NotRequired[bool] + """ + Whether to close the authorization after capture. Defaults to true. Set to false to enable multi-capture flows. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + purchase_details: NotRequired["AuthorizationCaptureParamsPurchaseDetails"] + """ + Additional purchase information that is optionally provided by the merchant. + """ + + +class AuthorizationCaptureParamsPurchaseDetails(TypedDict): + fleet: NotRequired["AuthorizationCaptureParamsPurchaseDetailsFleet"] + """ + Fleet-specific information for transactions using Fleet cards. + """ + flight: NotRequired["AuthorizationCaptureParamsPurchaseDetailsFlight"] + """ + Information about the flight that was purchased with this transaction. + """ + fuel: NotRequired["AuthorizationCaptureParamsPurchaseDetailsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + lodging: NotRequired["AuthorizationCaptureParamsPurchaseDetailsLodging"] + """ + Information about lodging that was purchased with this transaction. + """ + receipt: NotRequired[ + List["AuthorizationCaptureParamsPurchaseDetailsReceipt"] + ] + """ + The line items in the purchase. + """ + reference: NotRequired[str] + """ + A merchant-specific order number. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetCardholderPromptData( + TypedDict, +): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdown( + TypedDict, +): + fuel: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFleetReportedBreakdownTax( + TypedDict, +): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFlight(TypedDict): + departure_at: NotRequired[int] + """ + The time that the flight departed. + """ + passenger_name: NotRequired[str] + """ + The name of the passenger. + """ + refundable: NotRequired[bool] + """ + Whether the ticket is refundable. + """ + segments: NotRequired[ + List["AuthorizationCaptureParamsPurchaseDetailsFlightSegment"] + ] + """ + The legs of the trip. + """ + travel_agency: NotRequired[str] + """ + The travel agency that issued the ticket. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFlightSegment(TypedDict): + arrival_airport_code: NotRequired[str] + """ + The three-letter IATA airport code of the flight's destination. + """ + carrier: NotRequired[str] + """ + The airline carrier code. + """ + departure_airport_code: NotRequired[str] + """ + The three-letter IATA airport code that the flight departed from. + """ + flight_number: NotRequired[str] + """ + The flight number. + """ + service_class: NotRequired[str] + """ + The flight's service class. + """ + stopover_allowed: NotRequired[bool] + """ + Whether a stopover is allowed on this flight. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsLodging(TypedDict): + check_in_at: NotRequired[int] + """ + The time of checking into the lodging. + """ + nights: NotRequired[int] + """ + The number of nights stayed at the lodging. + """ + + +class AuthorizationCaptureParamsPurchaseDetailsReceipt(TypedDict): + description: NotRequired[str] + quantity: NotRequired[str] + total: NotRequired[int] + unit_cost: NotRequired[int] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_create_params.py new file mode 100644 index 00000000..42e6321a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_create_params.py @@ -0,0 +1,673 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationCreateParams(TypedDict): + amount: NotRequired[int] + """ + The total amount to attempt to authorize. This amount is in the provided currency, or defaults to the card's currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + amount_details: NotRequired["AuthorizationCreateParamsAmountDetails"] + """ + Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + authorization_method: NotRequired[ + Literal["chip", "contactless", "keyed_in", "online", "swipe"] + ] + """ + How the card details were provided. Defaults to online. + """ + card: str + """ + Card associated with this authorization. + """ + currency: NotRequired[str] + """ + The currency of the authorization. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + fleet: NotRequired["AuthorizationCreateParamsFleet"] + """ + Fleet-specific information for authorizations using Fleet cards. + """ + fraud_disputability_likelihood: NotRequired[ + Literal["neutral", "unknown", "very_likely", "very_unlikely"] + ] + """ + Probability that this transaction can be disputed in the event of fraud. Assessed by comparing the characteristics of the authorization to card network rules. + """ + fuel: NotRequired["AuthorizationCreateParamsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + is_amount_controllable: NotRequired[bool] + """ + If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization. + """ + merchant_amount: NotRequired[int] + """ + The total amount to attempt to authorize. This amount is in the provided merchant currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + merchant_currency: NotRequired[str] + """ + The currency of the authorization. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + merchant_data: NotRequired["AuthorizationCreateParamsMerchantData"] + """ + Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened. + """ + network_data: NotRequired["AuthorizationCreateParamsNetworkData"] + """ + Details about the authorization, such as identifiers, set by the card network. + """ + risk_assessment: NotRequired["AuthorizationCreateParamsRiskAssessment"] + """ + Stripe's assessment of the fraud risk for this authorization. + """ + verification_data: NotRequired["AuthorizationCreateParamsVerificationData"] + """ + Verifications that Stripe performed on information that the cardholder provided to the merchant. + """ + wallet: NotRequired[Literal["apple_pay", "google_pay", "samsung_pay"]] + """ + The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized. + """ + + +class AuthorizationCreateParamsAmountDetails(TypedDict): + atm_fee: NotRequired[int] + """ + The ATM withdrawal fee. + """ + cashback_amount: NotRequired[int] + """ + The amount of cash requested by the cardholder. + """ + + +class AuthorizationCreateParamsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "AuthorizationCreateParamsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "AuthorizationCreateParamsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class AuthorizationCreateParamsFleetCardholderPromptData(TypedDict): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdown(TypedDict): + fuel: NotRequired["AuthorizationCreateParamsFleetReportedBreakdownFuel"] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "AuthorizationCreateParamsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired["AuthorizationCreateParamsFleetReportedBreakdownTax"] + """ + Information about tax included in this transaction. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdownFuel(TypedDict): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdownNonFuel(TypedDict): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class AuthorizationCreateParamsFleetReportedBreakdownTax(TypedDict): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class AuthorizationCreateParamsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class AuthorizationCreateParamsMerchantData(TypedDict): + category: NotRequired[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + city: NotRequired[str] + """ + City where the seller is located + """ + country: NotRequired[str] + """ + Country where the seller is located + """ + name: NotRequired[str] + """ + Name of the seller + """ + network_id: NotRequired[str] + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: NotRequired[str] + """ + Postal code where the seller is located + """ + state: NotRequired[str] + """ + State where the seller is located + """ + terminal_id: NotRequired[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: NotRequired[str] + """ + URL provided by the merchant on a 3DS request + """ + + +class AuthorizationCreateParamsNetworkData(TypedDict): + acquiring_institution_id: NotRequired[str] + """ + Identifier assigned to the acquirer by the card network. + """ + + +class AuthorizationCreateParamsRiskAssessment(TypedDict): + card_testing_risk: NotRequired[ + "AuthorizationCreateParamsRiskAssessmentCardTestingRisk" + ] + """ + Stripe's assessment of this authorization's likelihood of being card testing activity. + """ + merchant_dispute_risk: NotRequired[ + "AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk" + ] + """ + The dispute risk of the merchant (the seller on a purchase) on an authorization based on all Stripe Issuing activity. + """ + + +class AuthorizationCreateParamsRiskAssessmentCardTestingRisk(TypedDict): + invalid_account_number_decline_rate_past_hour: NotRequired[int] + """ + The % of declines due to a card number not existing in the past hour, taking place at the same merchant. Higher rates correspond to a greater probability of card testing activity, meaning bad actors may be attempting different card number combinations to guess a correct one. Takes on values between 0 and 100. + """ + invalid_credentials_decline_rate_past_hour: NotRequired[int] + """ + The % of declines due to incorrect verification data (like CVV or expiry) in the past hour, taking place at the same merchant. Higher rates correspond to a greater probability of bad actors attempting to utilize valid card credentials at merchants with verification requirements. Takes on values between 0 and 100. + """ + risk_level: Literal[ + "elevated", "highest", "low", "normal", "not_assessed", "unknown" + ] + """ + The likelihood that this authorization is associated with card testing activity. This is assessed by evaluating decline activity over the last hour. + """ + + +class AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk(TypedDict): + dispute_rate: NotRequired[int] + """ + The dispute rate observed across all Stripe Issuing authorizations for this merchant. For example, a value of 50 means 50% of authorizations from this merchant on Stripe Issuing have resulted in a dispute. Higher values mean a higher likelihood the authorization is disputed. Takes on values between 0 and 100. + """ + risk_level: Literal[ + "elevated", "highest", "low", "normal", "not_assessed", "unknown" + ] + """ + The likelihood that authorizations from this merchant will result in a dispute based on their history on Stripe Issuing. + """ + + +class AuthorizationCreateParamsVerificationData(TypedDict): + address_line1_check: NotRequired[ + Literal["match", "mismatch", "not_provided"] + ] + """ + Whether the cardholder provided an address first line and if it matched the cardholder's `billing.address.line1`. + """ + address_postal_code_check: NotRequired[ + Literal["match", "mismatch", "not_provided"] + ] + """ + Whether the cardholder provided a postal code and if it matched the cardholder's `billing.address.postal_code`. + """ + authentication_exemption: NotRequired[ + "AuthorizationCreateParamsVerificationDataAuthenticationExemption" + ] + """ + The exemption applied to this authorization. + """ + cvc_check: NotRequired[Literal["match", "mismatch", "not_provided"]] + """ + Whether the cardholder provided a CVC and if it matched Stripe's record. + """ + expiry_check: NotRequired[Literal["match", "mismatch", "not_provided"]] + """ + Whether the cardholder provided an expiry date and if it matched Stripe's record. + """ + three_d_secure: NotRequired[ + "AuthorizationCreateParamsVerificationDataThreeDSecure" + ] + """ + 3D Secure details. + """ + + +class AuthorizationCreateParamsVerificationDataAuthenticationExemption( + TypedDict, +): + claimed_by: Literal["acquirer", "issuer"] + """ + The entity that requested the exemption, either the acquiring merchant or the Issuing user. + """ + type: Literal[ + "low_value_transaction", "transaction_risk_analysis", "unknown" + ] + """ + The specific exemption claimed for this authorization. + """ + + +class AuthorizationCreateParamsVerificationDataThreeDSecure(TypedDict): + result: Literal[ + "attempt_acknowledged", "authenticated", "failed", "required" + ] + """ + The outcome of the 3D Secure authentication request. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_expire_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_expire_params.py new file mode 100644 index 00000000..cd6f2a85 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_expire_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AuthorizationExpireParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_finalize_amount_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_finalize_amount_params.py new file mode 100644 index 00000000..233ee6b2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_finalize_amount_params.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class AuthorizationFinalizeAmountParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + final_amount: int + """ + The final authorization amount that will be captured by the merchant. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + fleet: NotRequired["AuthorizationFinalizeAmountParamsFleet"] + """ + Fleet-specific information for authorizations using Fleet cards. + """ + fuel: NotRequired["AuthorizationFinalizeAmountParamsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + + +class AuthorizationFinalizeAmountParamsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class AuthorizationFinalizeAmountParamsFleetCardholderPromptData(TypedDict): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdown(TypedDict): + fuel: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdownFuel(TypedDict): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdownNonFuel( + TypedDict +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class AuthorizationFinalizeAmountParamsFleetReportedBreakdownTax(TypedDict): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class AuthorizationFinalizeAmountParamsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_increment_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_increment_params.py new file mode 100644 index 00000000..6190a139 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_increment_params.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AuthorizationIncrementParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + increment_amount: int + """ + The amount to increment the authorization by. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + is_amount_controllable: NotRequired[bool] + """ + If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_respond_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_respond_params.py new file mode 100644 index 00000000..e3a9b0b7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_respond_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AuthorizationRespondParams(TypedDict): + confirmed: bool + """ + Whether to simulate the user confirming that the transaction was legitimate (true) or telling Stripe that it was fraudulent (false). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_reverse_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_reverse_params.py new file mode 100644 index 00000000..34241359 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_authorization_reverse_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class AuthorizationReverseParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + reverse_amount: NotRequired[int] + """ + The amount to reverse from the authorization. If not provided, the full amount of the authorization will be reversed. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_deliver_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_deliver_card_params.py new file mode 100644 index 00000000..7d3c7cee --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_deliver_card_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CardDeliverCardParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_fail_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_fail_card_params.py new file mode 100644 index 00000000..b93b5e4f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_fail_card_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CardFailCardParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_return_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_return_card_params.py new file mode 100644 index 00000000..795890f5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_return_card_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CardReturnCardParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_ship_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_ship_card_params.py new file mode 100644 index 00000000..f4fa20be --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_ship_card_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CardShipCardParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_submit_card_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_submit_card_params.py new file mode 100644 index 00000000..4497eaa9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_card_submit_card_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class CardSubmitCardParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_activate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_activate_params.py new file mode 100644 index 00000000..7ec37762 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_activate_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PersonalizationDesignActivateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_deactivate_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_deactivate_params.py new file mode 100644 index 00000000..93367722 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_deactivate_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class PersonalizationDesignDeactivateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_reject_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_reject_params.py new file mode 100644 index 00000000..36e4cad3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_personalization_design_reject_params.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class PersonalizationDesignRejectParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + rejection_reasons: "PersonalizationDesignRejectParamsRejectionReasons" + """ + The reason(s) the personalization design was rejected. + """ + + +class PersonalizationDesignRejectParamsRejectionReasons(TypedDict): + card_logo: NotRequired[ + List[ + Literal[ + "geographic_location", + "inappropriate", + "network_name", + "non_binary_image", + "non_fiat_currency", + "other", + "other_entity", + "promotional_material", + ] + ] + ] + """ + The reason(s) the card logo was rejected. + """ + carrier_text: NotRequired[ + List[ + Literal[ + "geographic_location", + "inappropriate", + "network_name", + "non_fiat_currency", + "other", + "other_entity", + "promotional_material", + ] + ] + ] + """ + The reason(s) the carrier text was rejected. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_create_force_capture_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_create_force_capture_params.py new file mode 100644 index 00000000..e2818f72 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_create_force_capture_params.py @@ -0,0 +1,628 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionCreateForceCaptureParams(TypedDict): + amount: int + """ + The total amount to attempt to capture. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + card: str + """ + Card associated with this transaction. + """ + currency: NotRequired[str] + """ + The currency of the capture. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + merchant_data: NotRequired[ + "TransactionCreateForceCaptureParamsMerchantData" + ] + """ + Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened. + """ + purchase_details: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetails" + ] + """ + Additional purchase information that is optionally provided by the merchant. + """ + + +class TransactionCreateForceCaptureParamsMerchantData(TypedDict): + category: NotRequired[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + city: NotRequired[str] + """ + City where the seller is located + """ + country: NotRequired[str] + """ + Country where the seller is located + """ + name: NotRequired[str] + """ + Name of the seller + """ + network_id: NotRequired[str] + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: NotRequired[str] + """ + Postal code where the seller is located + """ + state: NotRequired[str] + """ + State where the seller is located + """ + terminal_id: NotRequired[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: NotRequired[str] + """ + URL provided by the merchant on a 3DS request + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetails(TypedDict): + fleet: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleet" + ] + """ + Fleet-specific information for transactions using Fleet cards. + """ + flight: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFlight" + ] + """ + Information about the flight that was purchased with this transaction. + """ + fuel: NotRequired["TransactionCreateForceCaptureParamsPurchaseDetailsFuel"] + """ + Information about fuel that was purchased with this transaction. + """ + lodging: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsLodging" + ] + """ + Information about lodging that was purchased with this transaction. + """ + receipt: NotRequired[ + List["TransactionCreateForceCaptureParamsPurchaseDetailsReceipt"] + ] + """ + The line items in the purchase. + """ + reference: NotRequired[str] + """ + A merchant-specific order number. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetCardholderPromptData( + TypedDict, +): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdown( + TypedDict, +): + fuel: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownNonFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFleetReportedBreakdownTax( + TypedDict, +): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFlight(TypedDict): + departure_at: NotRequired[int] + """ + The time that the flight departed. + """ + passenger_name: NotRequired[str] + """ + The name of the passenger. + """ + refundable: NotRequired[bool] + """ + Whether the ticket is refundable. + """ + segments: NotRequired[ + List["TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment"] + ] + """ + The legs of the trip. + """ + travel_agency: NotRequired[str] + """ + The travel agency that issued the ticket. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFlightSegment( + TypedDict, +): + arrival_airport_code: NotRequired[str] + """ + The three-letter IATA airport code of the flight's destination. + """ + carrier: NotRequired[str] + """ + The airline carrier code. + """ + departure_airport_code: NotRequired[str] + """ + The three-letter IATA airport code that the flight departed from. + """ + flight_number: NotRequired[str] + """ + The flight number. + """ + service_class: NotRequired[str] + """ + The flight's service class. + """ + stopover_allowed: NotRequired[bool] + """ + Whether a stopover is allowed on this flight. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsLodging(TypedDict): + check_in_at: NotRequired[int] + """ + The time of checking into the lodging. + """ + nights: NotRequired[int] + """ + The number of nights stayed at the lodging. + """ + + +class TransactionCreateForceCaptureParamsPurchaseDetailsReceipt(TypedDict): + description: NotRequired[str] + quantity: NotRequired[str] + total: NotRequired[int] + unit_cost: NotRequired[int] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_create_unlinked_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_create_unlinked_refund_params.py new file mode 100644 index 00000000..1fa13fae --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_create_unlinked_refund_params.py @@ -0,0 +1,632 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionCreateUnlinkedRefundParams(TypedDict): + amount: int + """ + The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + card: str + """ + Card associated with this unlinked refund transaction. + """ + currency: NotRequired[str] + """ + The currency of the unlinked refund. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + merchant_data: NotRequired[ + "TransactionCreateUnlinkedRefundParamsMerchantData" + ] + """ + Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened. + """ + purchase_details: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetails" + ] + """ + Additional purchase information that is optionally provided by the merchant. + """ + + +class TransactionCreateUnlinkedRefundParamsMerchantData(TypedDict): + category: NotRequired[ + Literal[ + "ac_refrigeration_repair", + "accounting_bookkeeping_services", + "advertising_services", + "agricultural_cooperative", + "airlines_air_carriers", + "airports_flying_fields", + "ambulance_services", + "amusement_parks_carnivals", + "antique_reproductions", + "antique_shops", + "aquariums", + "architectural_surveying_services", + "art_dealers_and_galleries", + "artists_supply_and_craft_shops", + "auto_and_home_supply_stores", + "auto_body_repair_shops", + "auto_paint_shops", + "auto_service_shops", + "automated_cash_disburse", + "automated_fuel_dispensers", + "automobile_associations", + "automotive_parts_and_accessories_stores", + "automotive_tire_stores", + "bail_and_bond_payments", + "bakeries", + "bands_orchestras", + "barber_and_beauty_shops", + "betting_casino_gambling", + "bicycle_shops", + "billiard_pool_establishments", + "boat_dealers", + "boat_rentals_and_leases", + "book_stores", + "books_periodicals_and_newspapers", + "bowling_alleys", + "bus_lines", + "business_secretarial_schools", + "buying_shopping_services", + "cable_satellite_and_other_pay_television_and_radio", + "camera_and_photographic_supply_stores", + "candy_nut_and_confectionery_stores", + "car_and_truck_dealers_new_used", + "car_and_truck_dealers_used_only", + "car_rental_agencies", + "car_washes", + "carpentry_services", + "carpet_upholstery_cleaning", + "caterers", + "charitable_and_social_service_organizations_fundraising", + "chemicals_and_allied_products", + "child_care_services", + "childrens_and_infants_wear_stores", + "chiropodists_podiatrists", + "chiropractors", + "cigar_stores_and_stands", + "civic_social_fraternal_associations", + "cleaning_and_maintenance", + "clothing_rental", + "colleges_universities", + "commercial_equipment", + "commercial_footwear", + "commercial_photography_art_and_graphics", + "commuter_transport_and_ferries", + "computer_network_services", + "computer_programming", + "computer_repair", + "computer_software_stores", + "computers_peripherals_and_software", + "concrete_work_services", + "construction_materials", + "consulting_public_relations", + "correspondence_schools", + "cosmetic_stores", + "counseling_services", + "country_clubs", + "courier_services", + "court_costs", + "credit_reporting_agencies", + "cruise_lines", + "dairy_products_stores", + "dance_hall_studios_schools", + "dating_escort_services", + "dentists_orthodontists", + "department_stores", + "detective_agencies", + "digital_goods_applications", + "digital_goods_games", + "digital_goods_large_volume", + "digital_goods_media", + "direct_marketing_catalog_merchant", + "direct_marketing_combination_catalog_and_retail_merchant", + "direct_marketing_inbound_telemarketing", + "direct_marketing_insurance_services", + "direct_marketing_other", + "direct_marketing_outbound_telemarketing", + "direct_marketing_subscription", + "direct_marketing_travel", + "discount_stores", + "doctors", + "door_to_door_sales", + "drapery_window_covering_and_upholstery_stores", + "drinking_places", + "drug_stores_and_pharmacies", + "drugs_drug_proprietaries_and_druggist_sundries", + "dry_cleaners", + "durable_goods", + "duty_free_stores", + "eating_places_restaurants", + "educational_services", + "electric_razor_stores", + "electric_vehicle_charging", + "electrical_parts_and_equipment", + "electrical_services", + "electronics_repair_shops", + "electronics_stores", + "elementary_secondary_schools", + "emergency_services_gcas_visa_use_only", + "employment_temp_agencies", + "equipment_rental", + "exterminating_services", + "family_clothing_stores", + "fast_food_restaurants", + "financial_institutions", + "fines_government_administrative_entities", + "fireplace_fireplace_screens_and_accessories_stores", + "floor_covering_stores", + "florists", + "florists_supplies_nursery_stock_and_flowers", + "freezer_and_locker_meat_provisioners", + "fuel_dealers_non_automotive", + "funeral_services_crematories", + "furniture_home_furnishings_and_equipment_stores_except_appliances", + "furniture_repair_refinishing", + "furriers_and_fur_shops", + "general_services", + "gift_card_novelty_and_souvenir_shops", + "glass_paint_and_wallpaper_stores", + "glassware_crystal_stores", + "golf_courses_public", + "government_licensed_horse_dog_racing_us_region_only", + "government_licensed_online_casions_online_gambling_us_region_only", + "government_owned_lotteries_non_us_region", + "government_owned_lotteries_us_region_only", + "government_services", + "grocery_stores_supermarkets", + "hardware_equipment_and_supplies", + "hardware_stores", + "health_and_beauty_spas", + "hearing_aids_sales_and_supplies", + "heating_plumbing_a_c", + "hobby_toy_and_game_shops", + "home_supply_warehouse_stores", + "hospitals", + "hotels_motels_and_resorts", + "household_appliance_stores", + "industrial_supplies", + "information_retrieval_services", + "insurance_default", + "insurance_underwriting_premiums", + "intra_company_purchases", + "jewelry_stores_watches_clocks_and_silverware_stores", + "landscaping_services", + "laundries", + "laundry_cleaning_services", + "legal_services_attorneys", + "luggage_and_leather_goods_stores", + "lumber_building_materials_stores", + "manual_cash_disburse", + "marinas_service_and_supplies", + "marketplaces", + "masonry_stonework_and_plaster", + "massage_parlors", + "medical_and_dental_labs", + "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", + "medical_services", + "membership_organizations", + "mens_and_boys_clothing_and_accessories_stores", + "mens_womens_clothing_stores", + "metal_service_centers", + "miscellaneous_apparel_and_accessory_shops", + "miscellaneous_auto_dealers", + "miscellaneous_business_services", + "miscellaneous_food_stores", + "miscellaneous_general_merchandise", + "miscellaneous_general_services", + "miscellaneous_home_furnishing_specialty_stores", + "miscellaneous_publishing_and_printing", + "miscellaneous_recreation_services", + "miscellaneous_repair_shops", + "miscellaneous_specialty_retail", + "mobile_home_dealers", + "motion_picture_theaters", + "motor_freight_carriers_and_trucking", + "motor_homes_dealers", + "motor_vehicle_supplies_and_new_parts", + "motorcycle_shops_and_dealers", + "motorcycle_shops_dealers", + "music_stores_musical_instruments_pianos_and_sheet_music", + "news_dealers_and_newsstands", + "non_fi_money_orders", + "non_fi_stored_value_card_purchase_load", + "nondurable_goods", + "nurseries_lawn_and_garden_supply_stores", + "nursing_personal_care", + "office_and_commercial_furniture", + "opticians_eyeglasses", + "optometrists_ophthalmologist", + "orthopedic_goods_prosthetic_devices", + "osteopaths", + "package_stores_beer_wine_and_liquor", + "paints_varnishes_and_supplies", + "parking_lots_garages", + "passenger_railways", + "pawn_shops", + "pet_shops_pet_food_and_supplies", + "petroleum_and_petroleum_products", + "photo_developing", + "photographic_photocopy_microfilm_equipment_and_supplies", + "photographic_studios", + "picture_video_production", + "piece_goods_notions_and_other_dry_goods", + "plumbing_heating_equipment_and_supplies", + "political_organizations", + "postal_services_government_only", + "precious_stones_and_metals_watches_and_jewelry", + "professional_services", + "public_warehousing_and_storage", + "quick_copy_repro_and_blueprint", + "railroads", + "real_estate_agents_and_managers_rentals", + "record_stores", + "recreational_vehicle_rentals", + "religious_goods_stores", + "religious_organizations", + "roofing_siding_sheet_metal", + "secretarial_support_services", + "security_brokers_dealers", + "service_stations", + "sewing_needlework_fabric_and_piece_goods_stores", + "shoe_repair_hat_cleaning", + "shoe_stores", + "small_appliance_repair", + "snowmobile_dealers", + "special_trade_services", + "specialty_cleaning", + "sporting_goods_stores", + "sporting_recreation_camps", + "sports_and_riding_apparel_stores", + "sports_clubs_fields", + "stamp_and_coin_stores", + "stationary_office_supplies_printing_and_writing_paper", + "stationery_stores_office_and_school_supply_stores", + "swimming_pools_sales", + "t_ui_travel_germany", + "tailors_alterations", + "tax_payments_government_agencies", + "tax_preparation_services", + "taxicabs_limousines", + "telecommunication_equipment_and_telephone_sales", + "telecommunication_services", + "telegraph_services", + "tent_and_awning_shops", + "testing_laboratories", + "theatrical_ticket_agencies", + "timeshares", + "tire_retreading_and_repair", + "tolls_bridge_fees", + "tourist_attractions_and_exhibits", + "towing_services", + "trailer_parks_campgrounds", + "transportation_services", + "travel_agencies_tour_operators", + "truck_stop_iteration", + "truck_utility_trailer_rentals", + "typesetting_plate_making_and_related_services", + "typewriter_stores", + "u_s_federal_government_agencies_or_departments", + "uniforms_commercial_clothing", + "used_merchandise_and_secondhand_stores", + "utilities", + "variety_stores", + "veterinary_services", + "video_amusement_game_supplies", + "video_game_arcades", + "video_tape_rental_stores", + "vocational_trade_schools", + "watch_jewelry_repair", + "welding_repair", + "wholesale_clubs", + "wig_and_toupee_stores", + "wires_money_orders", + "womens_accessory_and_specialty_shops", + "womens_ready_to_wear_stores", + "wrecking_and_salvage_yards", + ] + ] + """ + A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values. + """ + city: NotRequired[str] + """ + City where the seller is located + """ + country: NotRequired[str] + """ + Country where the seller is located + """ + name: NotRequired[str] + """ + Name of the seller + """ + network_id: NotRequired[str] + """ + Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant. + """ + postal_code: NotRequired[str] + """ + Postal code where the seller is located + """ + state: NotRequired[str] + """ + State where the seller is located + """ + terminal_id: NotRequired[str] + """ + An ID assigned by the seller to the location of the sale. + """ + url: NotRequired[str] + """ + URL provided by the merchant on a 3DS request + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetails(TypedDict): + fleet: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet" + ] + """ + Fleet-specific information for transactions using Fleet cards. + """ + flight: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight" + ] + """ + Information about the flight that was purchased with this transaction. + """ + fuel: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel" + ] + """ + Information about fuel that was purchased with this transaction. + """ + lodging: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging" + ] + """ + Information about lodging that was purchased with this transaction. + """ + receipt: NotRequired[ + List["TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt"] + ] + """ + The line items in the purchase. + """ + reference: NotRequired[str] + """ + A merchant-specific order number. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleet(TypedDict): + cardholder_prompt_data: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData" + ] + """ + Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry. + """ + purchase_type: NotRequired[ + Literal[ + "fuel_and_non_fuel_purchase", "fuel_purchase", "non_fuel_purchase" + ] + ] + """ + The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`. + """ + reported_breakdown: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown" + ] + """ + More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data. + """ + service_type: NotRequired[ + Literal["full_service", "non_fuel_transaction", "self_service"] + ] + """ + The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetCardholderPromptData( + TypedDict, +): + driver_id: NotRequired[str] + """ + Driver ID. + """ + odometer: NotRequired[int] + """ + Odometer reading. + """ + unspecified_id: NotRequired[str] + """ + An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type. + """ + user_id: NotRequired[str] + """ + User ID. + """ + vehicle_number: NotRequired[str] + """ + Vehicle number. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdown( + TypedDict, +): + fuel: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel" + ] + """ + Breakdown of fuel portion of the purchase. + """ + non_fuel: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel" + ] + """ + Breakdown of non-fuel portion of the purchase. + """ + tax: NotRequired[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax" + ] + """ + Information about tax included in this transaction. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownNonFuel( + TypedDict, +): + gross_amount_decimal: NotRequired[str] + """ + Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFleetReportedBreakdownTax( + TypedDict, +): + local_amount_decimal: NotRequired[str] + """ + Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + national_amount_decimal: NotRequired[str] + """ + Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlight(TypedDict): + departure_at: NotRequired[int] + """ + The time that the flight departed. + """ + passenger_name: NotRequired[str] + """ + The name of the passenger. + """ + refundable: NotRequired[bool] + """ + Whether the ticket is refundable. + """ + segments: NotRequired[ + List[ + "TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment" + ] + ] + """ + The legs of the trip. + """ + travel_agency: NotRequired[str] + """ + The travel agency that issued the ticket. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFlightSegment( + TypedDict, +): + arrival_airport_code: NotRequired[str] + """ + The three-letter IATA airport code of the flight's destination. + """ + carrier: NotRequired[str] + """ + The airline carrier code. + """ + departure_airport_code: NotRequired[str] + """ + The three-letter IATA airport code that the flight departed from. + """ + flight_number: NotRequired[str] + """ + The flight number. + """ + service_class: NotRequired[str] + """ + The flight's service class. + """ + stopover_allowed: NotRequired[bool] + """ + Whether a stopover is allowed on this flight. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsFuel(TypedDict): + industry_product_code: NotRequired[str] + """ + [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased. + """ + quantity_decimal: NotRequired[str] + """ + The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places. + """ + type: NotRequired[ + Literal[ + "diesel", + "other", + "unleaded_plus", + "unleaded_regular", + "unleaded_super", + ] + ] + """ + The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`. + """ + unit: NotRequired[ + Literal[ + "charging_minute", + "imperial_gallon", + "kilogram", + "kilowatt_hour", + "liter", + "other", + "pound", + "us_gallon", + ] + ] + """ + The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`. + """ + unit_cost_decimal: NotRequired[str] + """ + The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsLodging(TypedDict): + check_in_at: NotRequired[int] + """ + The time of checking into the lodging. + """ + nights: NotRequired[int] + """ + The number of nights stayed at the lodging. + """ + + +class TransactionCreateUnlinkedRefundParamsPurchaseDetailsReceipt(TypedDict): + description: NotRequired[str] + quantity: NotRequired[str] + total: NotRequired[int] + unit_cost: NotRequired[int] diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_refund_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_refund_params.py new file mode 100644 index 00000000..d488f1d6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/issuing/_transaction_refund_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class TransactionRefundParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + refund_amount: NotRequired[int] + """ + The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__init__.py new file mode 100644 index 00000000..cc208d07 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__init__.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.test_helpers.terminal._reader_present_payment_method_params import ( + ReaderPresentPaymentMethodParams as ReaderPresentPaymentMethodParams, + ReaderPresentPaymentMethodParamsCard as ReaderPresentPaymentMethodParamsCard, + ReaderPresentPaymentMethodParamsCardPresent as ReaderPresentPaymentMethodParamsCardPresent, + ReaderPresentPaymentMethodParamsInteracPresent as ReaderPresentPaymentMethodParamsInteracPresent, + ) + from stripe.params.test_helpers.terminal._reader_succeed_input_collection_params import ( + ReaderSucceedInputCollectionParams as ReaderSucceedInputCollectionParams, + ) + from stripe.params.test_helpers.terminal._reader_timeout_input_collection_params import ( + ReaderTimeoutInputCollectionParams as ReaderTimeoutInputCollectionParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ReaderPresentPaymentMethodParams": ( + "stripe.params.test_helpers.terminal._reader_present_payment_method_params", + False, + ), + "ReaderPresentPaymentMethodParamsCard": ( + "stripe.params.test_helpers.terminal._reader_present_payment_method_params", + False, + ), + "ReaderPresentPaymentMethodParamsCardPresent": ( + "stripe.params.test_helpers.terminal._reader_present_payment_method_params", + False, + ), + "ReaderPresentPaymentMethodParamsInteracPresent": ( + "stripe.params.test_helpers.terminal._reader_present_payment_method_params", + False, + ), + "ReaderSucceedInputCollectionParams": ( + "stripe.params.test_helpers.terminal._reader_succeed_input_collection_params", + False, + ), + "ReaderTimeoutInputCollectionParams": ( + "stripe.params.test_helpers.terminal._reader_timeout_input_collection_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..2e82e0bf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc new file mode 100644 index 00000000..9f4005c1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_present_payment_method_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc new file mode 100644 index 00000000..17fa51b8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_succeed_input_collection_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc new file mode 100644 index 00000000..6820ca5e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/__pycache__/_reader_timeout_input_collection_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_present_payment_method_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_present_payment_method_params.py new file mode 100644 index 00000000..74561c82 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_present_payment_method_params.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderPresentPaymentMethodParams(TypedDict): + amount_tip: NotRequired[int] + """ + Simulated on-reader tip amount. + """ + card: NotRequired["ReaderPresentPaymentMethodParamsCard"] + """ + Simulated data for the card payment method. + """ + card_present: NotRequired["ReaderPresentPaymentMethodParamsCardPresent"] + """ + Simulated data for the card_present payment method. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + interac_present: NotRequired[ + "ReaderPresentPaymentMethodParamsInteracPresent" + ] + """ + Simulated data for the interac_present payment method. + """ + type: NotRequired[Literal["card", "card_present", "interac_present"]] + """ + Simulated payment type. + """ + + +class ReaderPresentPaymentMethodParamsCard(TypedDict): + cvc: NotRequired[str] + """ + Card security code. + """ + exp_month: int + """ + Two-digit number representing the card's expiration month. + """ + exp_year: int + """ + Two- or four-digit number representing the card's expiration year. + """ + number: str + """ + The card number, as a string without any separators. + """ + + +class ReaderPresentPaymentMethodParamsCardPresent(TypedDict): + number: NotRequired[str] + """ + The card number, as a string without any separators. + """ + + +class ReaderPresentPaymentMethodParamsInteracPresent(TypedDict): + number: NotRequired[str] + """ + The Interac card number. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_succeed_input_collection_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_succeed_input_collection_params.py new file mode 100644 index 00000000..8d3fd43d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_succeed_input_collection_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReaderSucceedInputCollectionParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + skip_non_required_inputs: NotRequired[Literal["all", "none"]] + """ + This parameter defines the skip behavior for input collection. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_timeout_input_collection_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_timeout_input_collection_params.py new file mode 100644 index 00000000..8fbd7604 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/terminal/_reader_timeout_input_collection_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class ReaderTimeoutInputCollectionParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__init__.py new file mode 100644 index 00000000..30b270ea --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__init__.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.test_helpers.treasury._inbound_transfer_fail_params import ( + InboundTransferFailParams as InboundTransferFailParams, + InboundTransferFailParamsFailureDetails as InboundTransferFailParamsFailureDetails, + ) + from stripe.params.test_helpers.treasury._inbound_transfer_return_inbound_transfer_params import ( + InboundTransferReturnInboundTransferParams as InboundTransferReturnInboundTransferParams, + ) + from stripe.params.test_helpers.treasury._inbound_transfer_succeed_params import ( + InboundTransferSucceedParams as InboundTransferSucceedParams, + ) + from stripe.params.test_helpers.treasury._outbound_payment_fail_params import ( + OutboundPaymentFailParams as OutboundPaymentFailParams, + ) + from stripe.params.test_helpers.treasury._outbound_payment_post_params import ( + OutboundPaymentPostParams as OutboundPaymentPostParams, + ) + from stripe.params.test_helpers.treasury._outbound_payment_return_outbound_payment_params import ( + OutboundPaymentReturnOutboundPaymentParams as OutboundPaymentReturnOutboundPaymentParams, + OutboundPaymentReturnOutboundPaymentParamsReturnedDetails as OutboundPaymentReturnOutboundPaymentParamsReturnedDetails, + ) + from stripe.params.test_helpers.treasury._outbound_payment_update_params import ( + OutboundPaymentUpdateParams as OutboundPaymentUpdateParams, + OutboundPaymentUpdateParamsTrackingDetails as OutboundPaymentUpdateParamsTrackingDetails, + OutboundPaymentUpdateParamsTrackingDetailsAch as OutboundPaymentUpdateParamsTrackingDetailsAch, + OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire as OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire, + ) + from stripe.params.test_helpers.treasury._outbound_transfer_fail_params import ( + OutboundTransferFailParams as OutboundTransferFailParams, + ) + from stripe.params.test_helpers.treasury._outbound_transfer_post_params import ( + OutboundTransferPostParams as OutboundTransferPostParams, + ) + from stripe.params.test_helpers.treasury._outbound_transfer_return_outbound_transfer_params import ( + OutboundTransferReturnOutboundTransferParams as OutboundTransferReturnOutboundTransferParams, + OutboundTransferReturnOutboundTransferParamsReturnedDetails as OutboundTransferReturnOutboundTransferParamsReturnedDetails, + ) + from stripe.params.test_helpers.treasury._outbound_transfer_update_params import ( + OutboundTransferUpdateParams as OutboundTransferUpdateParams, + OutboundTransferUpdateParamsTrackingDetails as OutboundTransferUpdateParamsTrackingDetails, + OutboundTransferUpdateParamsTrackingDetailsAch as OutboundTransferUpdateParamsTrackingDetailsAch, + OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire as OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire, + ) + from stripe.params.test_helpers.treasury._received_credit_create_params import ( + ReceivedCreditCreateParams as ReceivedCreditCreateParams, + ReceivedCreditCreateParamsInitiatingPaymentMethodDetails as ReceivedCreditCreateParamsInitiatingPaymentMethodDetails, + ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount as ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount, + ) + from stripe.params.test_helpers.treasury._received_debit_create_params import ( + ReceivedDebitCreateParams as ReceivedDebitCreateParams, + ReceivedDebitCreateParamsInitiatingPaymentMethodDetails as ReceivedDebitCreateParamsInitiatingPaymentMethodDetails, + ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount as ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "InboundTransferFailParams": ( + "stripe.params.test_helpers.treasury._inbound_transfer_fail_params", + False, + ), + "InboundTransferFailParamsFailureDetails": ( + "stripe.params.test_helpers.treasury._inbound_transfer_fail_params", + False, + ), + "InboundTransferReturnInboundTransferParams": ( + "stripe.params.test_helpers.treasury._inbound_transfer_return_inbound_transfer_params", + False, + ), + "InboundTransferSucceedParams": ( + "stripe.params.test_helpers.treasury._inbound_transfer_succeed_params", + False, + ), + "OutboundPaymentFailParams": ( + "stripe.params.test_helpers.treasury._outbound_payment_fail_params", + False, + ), + "OutboundPaymentPostParams": ( + "stripe.params.test_helpers.treasury._outbound_payment_post_params", + False, + ), + "OutboundPaymentReturnOutboundPaymentParams": ( + "stripe.params.test_helpers.treasury._outbound_payment_return_outbound_payment_params", + False, + ), + "OutboundPaymentReturnOutboundPaymentParamsReturnedDetails": ( + "stripe.params.test_helpers.treasury._outbound_payment_return_outbound_payment_params", + False, + ), + "OutboundPaymentUpdateParams": ( + "stripe.params.test_helpers.treasury._outbound_payment_update_params", + False, + ), + "OutboundPaymentUpdateParamsTrackingDetails": ( + "stripe.params.test_helpers.treasury._outbound_payment_update_params", + False, + ), + "OutboundPaymentUpdateParamsTrackingDetailsAch": ( + "stripe.params.test_helpers.treasury._outbound_payment_update_params", + False, + ), + "OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire": ( + "stripe.params.test_helpers.treasury._outbound_payment_update_params", + False, + ), + "OutboundTransferFailParams": ( + "stripe.params.test_helpers.treasury._outbound_transfer_fail_params", + False, + ), + "OutboundTransferPostParams": ( + "stripe.params.test_helpers.treasury._outbound_transfer_post_params", + False, + ), + "OutboundTransferReturnOutboundTransferParams": ( + "stripe.params.test_helpers.treasury._outbound_transfer_return_outbound_transfer_params", + False, + ), + "OutboundTransferReturnOutboundTransferParamsReturnedDetails": ( + "stripe.params.test_helpers.treasury._outbound_transfer_return_outbound_transfer_params", + False, + ), + "OutboundTransferUpdateParams": ( + "stripe.params.test_helpers.treasury._outbound_transfer_update_params", + False, + ), + "OutboundTransferUpdateParamsTrackingDetails": ( + "stripe.params.test_helpers.treasury._outbound_transfer_update_params", + False, + ), + "OutboundTransferUpdateParamsTrackingDetailsAch": ( + "stripe.params.test_helpers.treasury._outbound_transfer_update_params", + False, + ), + "OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire": ( + "stripe.params.test_helpers.treasury._outbound_transfer_update_params", + False, + ), + "ReceivedCreditCreateParams": ( + "stripe.params.test_helpers.treasury._received_credit_create_params", + False, + ), + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetails": ( + "stripe.params.test_helpers.treasury._received_credit_create_params", + False, + ), + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount": ( + "stripe.params.test_helpers.treasury._received_credit_create_params", + False, + ), + "ReceivedDebitCreateParams": ( + "stripe.params.test_helpers.treasury._received_debit_create_params", + False, + ), + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetails": ( + "stripe.params.test_helpers.treasury._received_debit_create_params", + False, + ), + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount": ( + "stripe.params.test_helpers.treasury._received_debit_create_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..07c42c8f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc new file mode 100644 index 00000000..4a638d97 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc new file mode 100644 index 00000000..9fb7ed7e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc new file mode 100644 index 00000000..d21ea417 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc new file mode 100644 index 00000000..bd7898ad Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc new file mode 100644 index 00000000..0e7c060a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc new file mode 100644 index 00000000..9bb4ff6d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc new file mode 100644 index 00000000..c19bb83d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc new file mode 100644 index 00000000..80618b0e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc new file mode 100644 index 00000000..c8a6d26a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc new file mode 100644 index 00000000..7e02949a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc new file mode 100644 index 00000000..5f98d6da Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc new file mode 100644 index 00000000..19a3ade7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc new file mode 100644 index 00000000..95bf7666 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_fail_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_fail_params.py new file mode 100644 index 00000000..5e5877d4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_fail_params.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InboundTransferFailParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + failure_details: NotRequired["InboundTransferFailParamsFailureDetails"] + """ + Details about a failed InboundTransfer. + """ + + +class InboundTransferFailParamsFailureDetails(TypedDict): + code: NotRequired[ + Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "debit_not_authorized", + "incorrect_account_holder_address", + "incorrect_account_holder_name", + "incorrect_account_holder_tax_id", + "insufficient_funds", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + ] + """ + Reason for the failure. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_return_inbound_transfer_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_return_inbound_transfer_params.py new file mode 100644 index 00000000..1a61dde9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_return_inbound_transfer_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class InboundTransferReturnInboundTransferParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_succeed_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_succeed_params.py new file mode 100644 index 00000000..08a9bd06 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_inbound_transfer_succeed_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class InboundTransferSucceedParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_fail_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_fail_params.py new file mode 100644 index 00000000..62e1640f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_fail_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class OutboundPaymentFailParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_post_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_post_params.py new file mode 100644 index 00000000..290792b2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_post_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class OutboundPaymentPostParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_return_outbound_payment_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_return_outbound_payment_params.py new file mode 100644 index 00000000..1c3a426e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_return_outbound_payment_params.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundPaymentReturnOutboundPaymentParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + returned_details: NotRequired[ + "OutboundPaymentReturnOutboundPaymentParamsReturnedDetails" + ] + """ + Optional hash to set the return code. + """ + + +class OutboundPaymentReturnOutboundPaymentParamsReturnedDetails(TypedDict): + code: NotRequired[ + Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "declined", + "incorrect_account_holder_name", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + ] + """ + The return code to be set on the OutboundPayment object. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_update_params.py new file mode 100644 index 00000000..53de8373 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_payment_update_params.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundPaymentUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + tracking_details: "OutboundPaymentUpdateParamsTrackingDetails" + """ + Details about network-specific tracking information. + """ + + +class OutboundPaymentUpdateParamsTrackingDetails(TypedDict): + ach: NotRequired["OutboundPaymentUpdateParamsTrackingDetailsAch"] + """ + ACH network tracking details. + """ + type: Literal["ach", "us_domestic_wire"] + """ + The US bank account network used to send funds. + """ + us_domestic_wire: NotRequired[ + "OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire" + ] + """ + US domestic wire network tracking details. + """ + + +class OutboundPaymentUpdateParamsTrackingDetailsAch(TypedDict): + trace_id: str + """ + ACH trace ID for funds sent over the `ach` network. + """ + + +class OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire(TypedDict): + chips: NotRequired[str] + """ + CHIPS System Sequence Number (SSN) for funds sent over the `us_domestic_wire` network. + """ + imad: NotRequired[str] + """ + IMAD for funds sent over the `us_domestic_wire` network. + """ + omad: NotRequired[str] + """ + OMAD for funds sent over the `us_domestic_wire` network. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_fail_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_fail_params.py new file mode 100644 index 00000000..b8561188 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_fail_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class OutboundTransferFailParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_post_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_post_params.py new file mode 100644 index 00000000..f432ec9c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_post_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class OutboundTransferPostParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_return_outbound_transfer_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_return_outbound_transfer_params.py new file mode 100644 index 00000000..ba555bef --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_return_outbound_transfer_params.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundTransferReturnOutboundTransferParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + returned_details: NotRequired[ + "OutboundTransferReturnOutboundTransferParamsReturnedDetails" + ] + """ + Details about a returned OutboundTransfer. + """ + + +class OutboundTransferReturnOutboundTransferParamsReturnedDetails(TypedDict): + code: NotRequired[ + Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "declined", + "incorrect_account_holder_name", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + ] + """ + Reason for the return. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_update_params.py new file mode 100644 index 00000000..69a268fe --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_outbound_transfer_update_params.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundTransferUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + tracking_details: "OutboundTransferUpdateParamsTrackingDetails" + """ + Details about network-specific tracking information. + """ + + +class OutboundTransferUpdateParamsTrackingDetails(TypedDict): + ach: NotRequired["OutboundTransferUpdateParamsTrackingDetailsAch"] + """ + ACH network tracking details. + """ + type: Literal["ach", "us_domestic_wire"] + """ + The US bank account network used to send funds. + """ + us_domestic_wire: NotRequired[ + "OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire" + ] + """ + US domestic wire network tracking details. + """ + + +class OutboundTransferUpdateParamsTrackingDetailsAch(TypedDict): + trace_id: str + """ + ACH trace ID for funds sent over the `ach` network. + """ + + +class OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire(TypedDict): + chips: NotRequired[str] + """ + CHIPS System Sequence Number (SSN) for funds sent over the `us_domestic_wire` network. + """ + imad: NotRequired[str] + """ + IMAD for funds sent over the `us_domestic_wire` network. + """ + omad: NotRequired[str] + """ + OMAD for funds sent over the `us_domestic_wire` network. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_received_credit_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_received_credit_create_params.py new file mode 100644 index 00000000..674ef687 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_received_credit_create_params.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReceivedCreditCreateParams(TypedDict): + amount: int + """ + Amount (in cents) to be transferred. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount to send funds to. + """ + initiating_payment_method_details: NotRequired[ + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetails" + ] + """ + Initiating payment method details for the object. + """ + network: Literal["ach", "us_domestic_wire"] + """ + Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + + +class ReceivedCreditCreateParamsInitiatingPaymentMethodDetails(TypedDict): + type: Literal["us_bank_account"] + """ + The source type. + """ + us_bank_account: NotRequired[ + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount" + ] + """ + Optional fields for `us_bank_account`. + """ + + +class ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount( + TypedDict, +): + account_holder_name: NotRequired[str] + """ + The bank account holder's name. + """ + account_number: NotRequired[str] + """ + The bank account number. + """ + routing_number: NotRequired[str] + """ + The bank account's routing number. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_received_debit_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_received_debit_create_params.py new file mode 100644 index 00000000..c7b13823 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/test_helpers/treasury/_received_debit_create_params.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReceivedDebitCreateParams(TypedDict): + amount: int + """ + Amount (in cents) to be transferred. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount to pull funds from. + """ + initiating_payment_method_details: NotRequired[ + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetails" + ] + """ + Initiating payment method details for the object. + """ + network: Literal["ach"] + """ + Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + + +class ReceivedDebitCreateParamsInitiatingPaymentMethodDetails(TypedDict): + type: Literal["us_bank_account"] + """ + The source type. + """ + us_bank_account: NotRequired[ + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount" + ] + """ + Optional fields for `us_bank_account`. + """ + + +class ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount( + TypedDict, +): + account_holder_name: NotRequired[str] + """ + The bank account holder's name. + """ + account_number: NotRequired[str] + """ + The bank account number. + """ + routing_number: NotRequired[str] + """ + The bank account's routing number. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__init__.py new file mode 100644 index 00000000..dbb43094 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__init__.py @@ -0,0 +1,893 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.treasury._credit_reversal_create_params import ( + CreditReversalCreateParams as CreditReversalCreateParams, + ) + from stripe.params.treasury._credit_reversal_list_params import ( + CreditReversalListParams as CreditReversalListParams, + ) + from stripe.params.treasury._credit_reversal_retrieve_params import ( + CreditReversalRetrieveParams as CreditReversalRetrieveParams, + ) + from stripe.params.treasury._debit_reversal_create_params import ( + DebitReversalCreateParams as DebitReversalCreateParams, + ) + from stripe.params.treasury._debit_reversal_list_params import ( + DebitReversalListParams as DebitReversalListParams, + ) + from stripe.params.treasury._debit_reversal_retrieve_params import ( + DebitReversalRetrieveParams as DebitReversalRetrieveParams, + ) + from stripe.params.treasury._financial_account_close_params import ( + FinancialAccountCloseParams as FinancialAccountCloseParams, + FinancialAccountCloseParamsForwardingSettings as FinancialAccountCloseParamsForwardingSettings, + ) + from stripe.params.treasury._financial_account_create_params import ( + FinancialAccountCreateParams as FinancialAccountCreateParams, + FinancialAccountCreateParamsFeatures as FinancialAccountCreateParamsFeatures, + FinancialAccountCreateParamsFeaturesCardIssuing as FinancialAccountCreateParamsFeaturesCardIssuing, + FinancialAccountCreateParamsFeaturesDepositInsurance as FinancialAccountCreateParamsFeaturesDepositInsurance, + FinancialAccountCreateParamsFeaturesFinancialAddresses as FinancialAccountCreateParamsFeaturesFinancialAddresses, + FinancialAccountCreateParamsFeaturesFinancialAddressesAba as FinancialAccountCreateParamsFeaturesFinancialAddressesAba, + FinancialAccountCreateParamsFeaturesInboundTransfers as FinancialAccountCreateParamsFeaturesInboundTransfers, + FinancialAccountCreateParamsFeaturesInboundTransfersAch as FinancialAccountCreateParamsFeaturesInboundTransfersAch, + FinancialAccountCreateParamsFeaturesIntraStripeFlows as FinancialAccountCreateParamsFeaturesIntraStripeFlows, + FinancialAccountCreateParamsFeaturesOutboundPayments as FinancialAccountCreateParamsFeaturesOutboundPayments, + FinancialAccountCreateParamsFeaturesOutboundPaymentsAch as FinancialAccountCreateParamsFeaturesOutboundPaymentsAch, + FinancialAccountCreateParamsFeaturesOutboundPaymentsUsDomesticWire as FinancialAccountCreateParamsFeaturesOutboundPaymentsUsDomesticWire, + FinancialAccountCreateParamsFeaturesOutboundTransfers as FinancialAccountCreateParamsFeaturesOutboundTransfers, + FinancialAccountCreateParamsFeaturesOutboundTransfersAch as FinancialAccountCreateParamsFeaturesOutboundTransfersAch, + FinancialAccountCreateParamsFeaturesOutboundTransfersUsDomesticWire as FinancialAccountCreateParamsFeaturesOutboundTransfersUsDomesticWire, + FinancialAccountCreateParamsPlatformRestrictions as FinancialAccountCreateParamsPlatformRestrictions, + ) + from stripe.params.treasury._financial_account_features_retrieve_params import ( + FinancialAccountFeaturesRetrieveParams as FinancialAccountFeaturesRetrieveParams, + ) + from stripe.params.treasury._financial_account_features_update_params import ( + FinancialAccountFeaturesUpdateParams as FinancialAccountFeaturesUpdateParams, + FinancialAccountFeaturesUpdateParamsCardIssuing as FinancialAccountFeaturesUpdateParamsCardIssuing, + FinancialAccountFeaturesUpdateParamsDepositInsurance as FinancialAccountFeaturesUpdateParamsDepositInsurance, + FinancialAccountFeaturesUpdateParamsFinancialAddresses as FinancialAccountFeaturesUpdateParamsFinancialAddresses, + FinancialAccountFeaturesUpdateParamsFinancialAddressesAba as FinancialAccountFeaturesUpdateParamsFinancialAddressesAba, + FinancialAccountFeaturesUpdateParamsInboundTransfers as FinancialAccountFeaturesUpdateParamsInboundTransfers, + FinancialAccountFeaturesUpdateParamsInboundTransfersAch as FinancialAccountFeaturesUpdateParamsInboundTransfersAch, + FinancialAccountFeaturesUpdateParamsIntraStripeFlows as FinancialAccountFeaturesUpdateParamsIntraStripeFlows, + FinancialAccountFeaturesUpdateParamsOutboundPayments as FinancialAccountFeaturesUpdateParamsOutboundPayments, + FinancialAccountFeaturesUpdateParamsOutboundPaymentsAch as FinancialAccountFeaturesUpdateParamsOutboundPaymentsAch, + FinancialAccountFeaturesUpdateParamsOutboundPaymentsUsDomesticWire as FinancialAccountFeaturesUpdateParamsOutboundPaymentsUsDomesticWire, + FinancialAccountFeaturesUpdateParamsOutboundTransfers as FinancialAccountFeaturesUpdateParamsOutboundTransfers, + FinancialAccountFeaturesUpdateParamsOutboundTransfersAch as FinancialAccountFeaturesUpdateParamsOutboundTransfersAch, + FinancialAccountFeaturesUpdateParamsOutboundTransfersUsDomesticWire as FinancialAccountFeaturesUpdateParamsOutboundTransfersUsDomesticWire, + ) + from stripe.params.treasury._financial_account_list_params import ( + FinancialAccountListParams as FinancialAccountListParams, + FinancialAccountListParamsCreated as FinancialAccountListParamsCreated, + ) + from stripe.params.treasury._financial_account_modify_params import ( + FinancialAccountModifyParams as FinancialAccountModifyParams, + FinancialAccountModifyParamsFeatures as FinancialAccountModifyParamsFeatures, + FinancialAccountModifyParamsFeaturesCardIssuing as FinancialAccountModifyParamsFeaturesCardIssuing, + FinancialAccountModifyParamsFeaturesDepositInsurance as FinancialAccountModifyParamsFeaturesDepositInsurance, + FinancialAccountModifyParamsFeaturesFinancialAddresses as FinancialAccountModifyParamsFeaturesFinancialAddresses, + FinancialAccountModifyParamsFeaturesFinancialAddressesAba as FinancialAccountModifyParamsFeaturesFinancialAddressesAba, + FinancialAccountModifyParamsFeaturesInboundTransfers as FinancialAccountModifyParamsFeaturesInboundTransfers, + FinancialAccountModifyParamsFeaturesInboundTransfersAch as FinancialAccountModifyParamsFeaturesInboundTransfersAch, + FinancialAccountModifyParamsFeaturesIntraStripeFlows as FinancialAccountModifyParamsFeaturesIntraStripeFlows, + FinancialAccountModifyParamsFeaturesOutboundPayments as FinancialAccountModifyParamsFeaturesOutboundPayments, + FinancialAccountModifyParamsFeaturesOutboundPaymentsAch as FinancialAccountModifyParamsFeaturesOutboundPaymentsAch, + FinancialAccountModifyParamsFeaturesOutboundPaymentsUsDomesticWire as FinancialAccountModifyParamsFeaturesOutboundPaymentsUsDomesticWire, + FinancialAccountModifyParamsFeaturesOutboundTransfers as FinancialAccountModifyParamsFeaturesOutboundTransfers, + FinancialAccountModifyParamsFeaturesOutboundTransfersAch as FinancialAccountModifyParamsFeaturesOutboundTransfersAch, + FinancialAccountModifyParamsFeaturesOutboundTransfersUsDomesticWire as FinancialAccountModifyParamsFeaturesOutboundTransfersUsDomesticWire, + FinancialAccountModifyParamsForwardingSettings as FinancialAccountModifyParamsForwardingSettings, + FinancialAccountModifyParamsPlatformRestrictions as FinancialAccountModifyParamsPlatformRestrictions, + ) + from stripe.params.treasury._financial_account_retrieve_features_params import ( + FinancialAccountRetrieveFeaturesParams as FinancialAccountRetrieveFeaturesParams, + ) + from stripe.params.treasury._financial_account_retrieve_params import ( + FinancialAccountRetrieveParams as FinancialAccountRetrieveParams, + ) + from stripe.params.treasury._financial_account_update_features_params import ( + FinancialAccountUpdateFeaturesParams as FinancialAccountUpdateFeaturesParams, + FinancialAccountUpdateFeaturesParamsCardIssuing as FinancialAccountUpdateFeaturesParamsCardIssuing, + FinancialAccountUpdateFeaturesParamsDepositInsurance as FinancialAccountUpdateFeaturesParamsDepositInsurance, + FinancialAccountUpdateFeaturesParamsFinancialAddresses as FinancialAccountUpdateFeaturesParamsFinancialAddresses, + FinancialAccountUpdateFeaturesParamsFinancialAddressesAba as FinancialAccountUpdateFeaturesParamsFinancialAddressesAba, + FinancialAccountUpdateFeaturesParamsInboundTransfers as FinancialAccountUpdateFeaturesParamsInboundTransfers, + FinancialAccountUpdateFeaturesParamsInboundTransfersAch as FinancialAccountUpdateFeaturesParamsInboundTransfersAch, + FinancialAccountUpdateFeaturesParamsIntraStripeFlows as FinancialAccountUpdateFeaturesParamsIntraStripeFlows, + FinancialAccountUpdateFeaturesParamsOutboundPayments as FinancialAccountUpdateFeaturesParamsOutboundPayments, + FinancialAccountUpdateFeaturesParamsOutboundPaymentsAch as FinancialAccountUpdateFeaturesParamsOutboundPaymentsAch, + FinancialAccountUpdateFeaturesParamsOutboundPaymentsUsDomesticWire as FinancialAccountUpdateFeaturesParamsOutboundPaymentsUsDomesticWire, + FinancialAccountUpdateFeaturesParamsOutboundTransfers as FinancialAccountUpdateFeaturesParamsOutboundTransfers, + FinancialAccountUpdateFeaturesParamsOutboundTransfersAch as FinancialAccountUpdateFeaturesParamsOutboundTransfersAch, + FinancialAccountUpdateFeaturesParamsOutboundTransfersUsDomesticWire as FinancialAccountUpdateFeaturesParamsOutboundTransfersUsDomesticWire, + ) + from stripe.params.treasury._financial_account_update_params import ( + FinancialAccountUpdateParams as FinancialAccountUpdateParams, + FinancialAccountUpdateParamsFeatures as FinancialAccountUpdateParamsFeatures, + FinancialAccountUpdateParamsFeaturesCardIssuing as FinancialAccountUpdateParamsFeaturesCardIssuing, + FinancialAccountUpdateParamsFeaturesDepositInsurance as FinancialAccountUpdateParamsFeaturesDepositInsurance, + FinancialAccountUpdateParamsFeaturesFinancialAddresses as FinancialAccountUpdateParamsFeaturesFinancialAddresses, + FinancialAccountUpdateParamsFeaturesFinancialAddressesAba as FinancialAccountUpdateParamsFeaturesFinancialAddressesAba, + FinancialAccountUpdateParamsFeaturesInboundTransfers as FinancialAccountUpdateParamsFeaturesInboundTransfers, + FinancialAccountUpdateParamsFeaturesInboundTransfersAch as FinancialAccountUpdateParamsFeaturesInboundTransfersAch, + FinancialAccountUpdateParamsFeaturesIntraStripeFlows as FinancialAccountUpdateParamsFeaturesIntraStripeFlows, + FinancialAccountUpdateParamsFeaturesOutboundPayments as FinancialAccountUpdateParamsFeaturesOutboundPayments, + FinancialAccountUpdateParamsFeaturesOutboundPaymentsAch as FinancialAccountUpdateParamsFeaturesOutboundPaymentsAch, + FinancialAccountUpdateParamsFeaturesOutboundPaymentsUsDomesticWire as FinancialAccountUpdateParamsFeaturesOutboundPaymentsUsDomesticWire, + FinancialAccountUpdateParamsFeaturesOutboundTransfers as FinancialAccountUpdateParamsFeaturesOutboundTransfers, + FinancialAccountUpdateParamsFeaturesOutboundTransfersAch as FinancialAccountUpdateParamsFeaturesOutboundTransfersAch, + FinancialAccountUpdateParamsFeaturesOutboundTransfersUsDomesticWire as FinancialAccountUpdateParamsFeaturesOutboundTransfersUsDomesticWire, + FinancialAccountUpdateParamsForwardingSettings as FinancialAccountUpdateParamsForwardingSettings, + FinancialAccountUpdateParamsPlatformRestrictions as FinancialAccountUpdateParamsPlatformRestrictions, + ) + from stripe.params.treasury._inbound_transfer_cancel_params import ( + InboundTransferCancelParams as InboundTransferCancelParams, + ) + from stripe.params.treasury._inbound_transfer_create_params import ( + InboundTransferCreateParams as InboundTransferCreateParams, + ) + from stripe.params.treasury._inbound_transfer_fail_params import ( + InboundTransferFailParams as InboundTransferFailParams, + InboundTransferFailParamsFailureDetails as InboundTransferFailParamsFailureDetails, + ) + from stripe.params.treasury._inbound_transfer_list_params import ( + InboundTransferListParams as InboundTransferListParams, + ) + from stripe.params.treasury._inbound_transfer_retrieve_params import ( + InboundTransferRetrieveParams as InboundTransferRetrieveParams, + ) + from stripe.params.treasury._inbound_transfer_return_inbound_transfer_params import ( + InboundTransferReturnInboundTransferParams as InboundTransferReturnInboundTransferParams, + ) + from stripe.params.treasury._inbound_transfer_succeed_params import ( + InboundTransferSucceedParams as InboundTransferSucceedParams, + ) + from stripe.params.treasury._outbound_payment_cancel_params import ( + OutboundPaymentCancelParams as OutboundPaymentCancelParams, + ) + from stripe.params.treasury._outbound_payment_create_params import ( + OutboundPaymentCreateParams as OutboundPaymentCreateParams, + OutboundPaymentCreateParamsDestinationPaymentMethodData as OutboundPaymentCreateParamsDestinationPaymentMethodData, + OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetails as OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetails, + OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetailsAddress as OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetailsAddress, + OutboundPaymentCreateParamsDestinationPaymentMethodDataUsBankAccount as OutboundPaymentCreateParamsDestinationPaymentMethodDataUsBankAccount, + OutboundPaymentCreateParamsDestinationPaymentMethodOptions as OutboundPaymentCreateParamsDestinationPaymentMethodOptions, + OutboundPaymentCreateParamsDestinationPaymentMethodOptionsUsBankAccount as OutboundPaymentCreateParamsDestinationPaymentMethodOptionsUsBankAccount, + OutboundPaymentCreateParamsEndUserDetails as OutboundPaymentCreateParamsEndUserDetails, + ) + from stripe.params.treasury._outbound_payment_fail_params import ( + OutboundPaymentFailParams as OutboundPaymentFailParams, + ) + from stripe.params.treasury._outbound_payment_list_params import ( + OutboundPaymentListParams as OutboundPaymentListParams, + OutboundPaymentListParamsCreated as OutboundPaymentListParamsCreated, + ) + from stripe.params.treasury._outbound_payment_post_params import ( + OutboundPaymentPostParams as OutboundPaymentPostParams, + ) + from stripe.params.treasury._outbound_payment_retrieve_params import ( + OutboundPaymentRetrieveParams as OutboundPaymentRetrieveParams, + ) + from stripe.params.treasury._outbound_payment_return_outbound_payment_params import ( + OutboundPaymentReturnOutboundPaymentParams as OutboundPaymentReturnOutboundPaymentParams, + OutboundPaymentReturnOutboundPaymentParamsReturnedDetails as OutboundPaymentReturnOutboundPaymentParamsReturnedDetails, + ) + from stripe.params.treasury._outbound_payment_update_params import ( + OutboundPaymentUpdateParams as OutboundPaymentUpdateParams, + OutboundPaymentUpdateParamsTrackingDetails as OutboundPaymentUpdateParamsTrackingDetails, + OutboundPaymentUpdateParamsTrackingDetailsAch as OutboundPaymentUpdateParamsTrackingDetailsAch, + OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire as OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire, + ) + from stripe.params.treasury._outbound_transfer_cancel_params import ( + OutboundTransferCancelParams as OutboundTransferCancelParams, + ) + from stripe.params.treasury._outbound_transfer_create_params import ( + OutboundTransferCreateParams as OutboundTransferCreateParams, + OutboundTransferCreateParamsDestinationPaymentMethodData as OutboundTransferCreateParamsDestinationPaymentMethodData, + OutboundTransferCreateParamsDestinationPaymentMethodOptions as OutboundTransferCreateParamsDestinationPaymentMethodOptions, + OutboundTransferCreateParamsDestinationPaymentMethodOptionsUsBankAccount as OutboundTransferCreateParamsDestinationPaymentMethodOptionsUsBankAccount, + ) + from stripe.params.treasury._outbound_transfer_fail_params import ( + OutboundTransferFailParams as OutboundTransferFailParams, + ) + from stripe.params.treasury._outbound_transfer_list_params import ( + OutboundTransferListParams as OutboundTransferListParams, + ) + from stripe.params.treasury._outbound_transfer_post_params import ( + OutboundTransferPostParams as OutboundTransferPostParams, + ) + from stripe.params.treasury._outbound_transfer_retrieve_params import ( + OutboundTransferRetrieveParams as OutboundTransferRetrieveParams, + ) + from stripe.params.treasury._outbound_transfer_return_outbound_transfer_params import ( + OutboundTransferReturnOutboundTransferParams as OutboundTransferReturnOutboundTransferParams, + OutboundTransferReturnOutboundTransferParamsReturnedDetails as OutboundTransferReturnOutboundTransferParamsReturnedDetails, + ) + from stripe.params.treasury._outbound_transfer_update_params import ( + OutboundTransferUpdateParams as OutboundTransferUpdateParams, + OutboundTransferUpdateParamsTrackingDetails as OutboundTransferUpdateParamsTrackingDetails, + OutboundTransferUpdateParamsTrackingDetailsAch as OutboundTransferUpdateParamsTrackingDetailsAch, + OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire as OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire, + ) + from stripe.params.treasury._received_credit_create_params import ( + ReceivedCreditCreateParams as ReceivedCreditCreateParams, + ReceivedCreditCreateParamsInitiatingPaymentMethodDetails as ReceivedCreditCreateParamsInitiatingPaymentMethodDetails, + ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount as ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount, + ) + from stripe.params.treasury._received_credit_list_params import ( + ReceivedCreditListParams as ReceivedCreditListParams, + ReceivedCreditListParamsLinkedFlows as ReceivedCreditListParamsLinkedFlows, + ) + from stripe.params.treasury._received_credit_retrieve_params import ( + ReceivedCreditRetrieveParams as ReceivedCreditRetrieveParams, + ) + from stripe.params.treasury._received_debit_create_params import ( + ReceivedDebitCreateParams as ReceivedDebitCreateParams, + ReceivedDebitCreateParamsInitiatingPaymentMethodDetails as ReceivedDebitCreateParamsInitiatingPaymentMethodDetails, + ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount as ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount, + ) + from stripe.params.treasury._received_debit_list_params import ( + ReceivedDebitListParams as ReceivedDebitListParams, + ) + from stripe.params.treasury._received_debit_retrieve_params import ( + ReceivedDebitRetrieveParams as ReceivedDebitRetrieveParams, + ) + from stripe.params.treasury._transaction_entry_list_params import ( + TransactionEntryListParams as TransactionEntryListParams, + TransactionEntryListParamsCreated as TransactionEntryListParamsCreated, + TransactionEntryListParamsEffectiveAt as TransactionEntryListParamsEffectiveAt, + ) + from stripe.params.treasury._transaction_entry_retrieve_params import ( + TransactionEntryRetrieveParams as TransactionEntryRetrieveParams, + ) + from stripe.params.treasury._transaction_list_params import ( + TransactionListParams as TransactionListParams, + TransactionListParamsCreated as TransactionListParamsCreated, + TransactionListParamsStatusTransitions as TransactionListParamsStatusTransitions, + TransactionListParamsStatusTransitionsPostedAt as TransactionListParamsStatusTransitionsPostedAt, + ) + from stripe.params.treasury._transaction_retrieve_params import ( + TransactionRetrieveParams as TransactionRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "CreditReversalCreateParams": ( + "stripe.params.treasury._credit_reversal_create_params", + False, + ), + "CreditReversalListParams": ( + "stripe.params.treasury._credit_reversal_list_params", + False, + ), + "CreditReversalRetrieveParams": ( + "stripe.params.treasury._credit_reversal_retrieve_params", + False, + ), + "DebitReversalCreateParams": ( + "stripe.params.treasury._debit_reversal_create_params", + False, + ), + "DebitReversalListParams": ( + "stripe.params.treasury._debit_reversal_list_params", + False, + ), + "DebitReversalRetrieveParams": ( + "stripe.params.treasury._debit_reversal_retrieve_params", + False, + ), + "FinancialAccountCloseParams": ( + "stripe.params.treasury._financial_account_close_params", + False, + ), + "FinancialAccountCloseParamsForwardingSettings": ( + "stripe.params.treasury._financial_account_close_params", + False, + ), + "FinancialAccountCreateParams": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeatures": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesCardIssuing": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesDepositInsurance": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesFinancialAddresses": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesFinancialAddressesAba": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesInboundTransfers": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesInboundTransfersAch": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesIntraStripeFlows": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesOutboundPayments": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesOutboundPaymentsAch": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesOutboundPaymentsUsDomesticWire": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesOutboundTransfers": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesOutboundTransfersAch": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsFeaturesOutboundTransfersUsDomesticWire": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountCreateParamsPlatformRestrictions": ( + "stripe.params.treasury._financial_account_create_params", + False, + ), + "FinancialAccountFeaturesRetrieveParams": ( + "stripe.params.treasury._financial_account_features_retrieve_params", + False, + ), + "FinancialAccountFeaturesUpdateParams": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsCardIssuing": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsDepositInsurance": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsFinancialAddresses": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsFinancialAddressesAba": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsInboundTransfers": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsInboundTransfersAch": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsIntraStripeFlows": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsOutboundPayments": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsOutboundPaymentsAch": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsOutboundPaymentsUsDomesticWire": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsOutboundTransfers": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsOutboundTransfersAch": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountFeaturesUpdateParamsOutboundTransfersUsDomesticWire": ( + "stripe.params.treasury._financial_account_features_update_params", + False, + ), + "FinancialAccountListParams": ( + "stripe.params.treasury._financial_account_list_params", + False, + ), + "FinancialAccountListParamsCreated": ( + "stripe.params.treasury._financial_account_list_params", + False, + ), + "FinancialAccountModifyParams": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeatures": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesCardIssuing": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesDepositInsurance": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesFinancialAddresses": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesFinancialAddressesAba": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesInboundTransfers": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesInboundTransfersAch": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesIntraStripeFlows": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesOutboundPayments": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesOutboundPaymentsAch": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesOutboundPaymentsUsDomesticWire": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesOutboundTransfers": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesOutboundTransfersAch": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsFeaturesOutboundTransfersUsDomesticWire": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsForwardingSettings": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountModifyParamsPlatformRestrictions": ( + "stripe.params.treasury._financial_account_modify_params", + False, + ), + "FinancialAccountRetrieveFeaturesParams": ( + "stripe.params.treasury._financial_account_retrieve_features_params", + False, + ), + "FinancialAccountRetrieveParams": ( + "stripe.params.treasury._financial_account_retrieve_params", + False, + ), + "FinancialAccountUpdateFeaturesParams": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsCardIssuing": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsDepositInsurance": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsFinancialAddresses": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsFinancialAddressesAba": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsInboundTransfers": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsInboundTransfersAch": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsIntraStripeFlows": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsOutboundPayments": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsOutboundPaymentsAch": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsOutboundPaymentsUsDomesticWire": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsOutboundTransfers": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsOutboundTransfersAch": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateFeaturesParamsOutboundTransfersUsDomesticWire": ( + "stripe.params.treasury._financial_account_update_features_params", + False, + ), + "FinancialAccountUpdateParams": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeatures": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesCardIssuing": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesDepositInsurance": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesFinancialAddresses": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesFinancialAddressesAba": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesInboundTransfers": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesInboundTransfersAch": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesIntraStripeFlows": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesOutboundPayments": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesOutboundPaymentsAch": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesOutboundPaymentsUsDomesticWire": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesOutboundTransfers": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesOutboundTransfersAch": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsFeaturesOutboundTransfersUsDomesticWire": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsForwardingSettings": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "FinancialAccountUpdateParamsPlatformRestrictions": ( + "stripe.params.treasury._financial_account_update_params", + False, + ), + "InboundTransferCancelParams": ( + "stripe.params.treasury._inbound_transfer_cancel_params", + False, + ), + "InboundTransferCreateParams": ( + "stripe.params.treasury._inbound_transfer_create_params", + False, + ), + "InboundTransferFailParams": ( + "stripe.params.treasury._inbound_transfer_fail_params", + False, + ), + "InboundTransferFailParamsFailureDetails": ( + "stripe.params.treasury._inbound_transfer_fail_params", + False, + ), + "InboundTransferListParams": ( + "stripe.params.treasury._inbound_transfer_list_params", + False, + ), + "InboundTransferRetrieveParams": ( + "stripe.params.treasury._inbound_transfer_retrieve_params", + False, + ), + "InboundTransferReturnInboundTransferParams": ( + "stripe.params.treasury._inbound_transfer_return_inbound_transfer_params", + False, + ), + "InboundTransferSucceedParams": ( + "stripe.params.treasury._inbound_transfer_succeed_params", + False, + ), + "OutboundPaymentCancelParams": ( + "stripe.params.treasury._outbound_payment_cancel_params", + False, + ), + "OutboundPaymentCreateParams": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentCreateParamsDestinationPaymentMethodData": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetails": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetailsAddress": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentCreateParamsDestinationPaymentMethodDataUsBankAccount": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentCreateParamsDestinationPaymentMethodOptions": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentCreateParamsDestinationPaymentMethodOptionsUsBankAccount": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentCreateParamsEndUserDetails": ( + "stripe.params.treasury._outbound_payment_create_params", + False, + ), + "OutboundPaymentFailParams": ( + "stripe.params.treasury._outbound_payment_fail_params", + False, + ), + "OutboundPaymentListParams": ( + "stripe.params.treasury._outbound_payment_list_params", + False, + ), + "OutboundPaymentListParamsCreated": ( + "stripe.params.treasury._outbound_payment_list_params", + False, + ), + "OutboundPaymentPostParams": ( + "stripe.params.treasury._outbound_payment_post_params", + False, + ), + "OutboundPaymentRetrieveParams": ( + "stripe.params.treasury._outbound_payment_retrieve_params", + False, + ), + "OutboundPaymentReturnOutboundPaymentParams": ( + "stripe.params.treasury._outbound_payment_return_outbound_payment_params", + False, + ), + "OutboundPaymentReturnOutboundPaymentParamsReturnedDetails": ( + "stripe.params.treasury._outbound_payment_return_outbound_payment_params", + False, + ), + "OutboundPaymentUpdateParams": ( + "stripe.params.treasury._outbound_payment_update_params", + False, + ), + "OutboundPaymentUpdateParamsTrackingDetails": ( + "stripe.params.treasury._outbound_payment_update_params", + False, + ), + "OutboundPaymentUpdateParamsTrackingDetailsAch": ( + "stripe.params.treasury._outbound_payment_update_params", + False, + ), + "OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire": ( + "stripe.params.treasury._outbound_payment_update_params", + False, + ), + "OutboundTransferCancelParams": ( + "stripe.params.treasury._outbound_transfer_cancel_params", + False, + ), + "OutboundTransferCreateParams": ( + "stripe.params.treasury._outbound_transfer_create_params", + False, + ), + "OutboundTransferCreateParamsDestinationPaymentMethodData": ( + "stripe.params.treasury._outbound_transfer_create_params", + False, + ), + "OutboundTransferCreateParamsDestinationPaymentMethodOptions": ( + "stripe.params.treasury._outbound_transfer_create_params", + False, + ), + "OutboundTransferCreateParamsDestinationPaymentMethodOptionsUsBankAccount": ( + "stripe.params.treasury._outbound_transfer_create_params", + False, + ), + "OutboundTransferFailParams": ( + "stripe.params.treasury._outbound_transfer_fail_params", + False, + ), + "OutboundTransferListParams": ( + "stripe.params.treasury._outbound_transfer_list_params", + False, + ), + "OutboundTransferPostParams": ( + "stripe.params.treasury._outbound_transfer_post_params", + False, + ), + "OutboundTransferRetrieveParams": ( + "stripe.params.treasury._outbound_transfer_retrieve_params", + False, + ), + "OutboundTransferReturnOutboundTransferParams": ( + "stripe.params.treasury._outbound_transfer_return_outbound_transfer_params", + False, + ), + "OutboundTransferReturnOutboundTransferParamsReturnedDetails": ( + "stripe.params.treasury._outbound_transfer_return_outbound_transfer_params", + False, + ), + "OutboundTransferUpdateParams": ( + "stripe.params.treasury._outbound_transfer_update_params", + False, + ), + "OutboundTransferUpdateParamsTrackingDetails": ( + "stripe.params.treasury._outbound_transfer_update_params", + False, + ), + "OutboundTransferUpdateParamsTrackingDetailsAch": ( + "stripe.params.treasury._outbound_transfer_update_params", + False, + ), + "OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire": ( + "stripe.params.treasury._outbound_transfer_update_params", + False, + ), + "ReceivedCreditCreateParams": ( + "stripe.params.treasury._received_credit_create_params", + False, + ), + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetails": ( + "stripe.params.treasury._received_credit_create_params", + False, + ), + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount": ( + "stripe.params.treasury._received_credit_create_params", + False, + ), + "ReceivedCreditListParams": ( + "stripe.params.treasury._received_credit_list_params", + False, + ), + "ReceivedCreditListParamsLinkedFlows": ( + "stripe.params.treasury._received_credit_list_params", + False, + ), + "ReceivedCreditRetrieveParams": ( + "stripe.params.treasury._received_credit_retrieve_params", + False, + ), + "ReceivedDebitCreateParams": ( + "stripe.params.treasury._received_debit_create_params", + False, + ), + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetails": ( + "stripe.params.treasury._received_debit_create_params", + False, + ), + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount": ( + "stripe.params.treasury._received_debit_create_params", + False, + ), + "ReceivedDebitListParams": ( + "stripe.params.treasury._received_debit_list_params", + False, + ), + "ReceivedDebitRetrieveParams": ( + "stripe.params.treasury._received_debit_retrieve_params", + False, + ), + "TransactionEntryListParams": ( + "stripe.params.treasury._transaction_entry_list_params", + False, + ), + "TransactionEntryListParamsCreated": ( + "stripe.params.treasury._transaction_entry_list_params", + False, + ), + "TransactionEntryListParamsEffectiveAt": ( + "stripe.params.treasury._transaction_entry_list_params", + False, + ), + "TransactionEntryRetrieveParams": ( + "stripe.params.treasury._transaction_entry_retrieve_params", + False, + ), + "TransactionListParams": ( + "stripe.params.treasury._transaction_list_params", + False, + ), + "TransactionListParamsCreated": ( + "stripe.params.treasury._transaction_list_params", + False, + ), + "TransactionListParamsStatusTransitions": ( + "stripe.params.treasury._transaction_list_params", + False, + ), + "TransactionListParamsStatusTransitionsPostedAt": ( + "stripe.params.treasury._transaction_list_params", + False, + ), + "TransactionRetrieveParams": ( + "stripe.params.treasury._transaction_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..2bb4324a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_create_params.cpython-312.pyc new file mode 100644 index 00000000..9b361c42 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_list_params.cpython-312.pyc new file mode 100644 index 00000000..c4008ea8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..f2cbaa2a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_credit_reversal_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_create_params.cpython-312.pyc new file mode 100644 index 00000000..7aceb73d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_list_params.cpython-312.pyc new file mode 100644 index 00000000..836e4058 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..73f79109 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_debit_reversal_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_close_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_close_params.cpython-312.pyc new file mode 100644 index 00000000..369fa3f3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_close_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_create_params.cpython-312.pyc new file mode 100644 index 00000000..01f541d3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_features_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_features_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..7906f42e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_features_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_features_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_features_update_params.cpython-312.pyc new file mode 100644 index 00000000..55aff410 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_features_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_list_params.cpython-312.pyc new file mode 100644 index 00000000..f8768bcf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_modify_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_modify_params.cpython-312.pyc new file mode 100644 index 00000000..a1772d9d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_modify_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_retrieve_features_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_retrieve_features_params.cpython-312.pyc new file mode 100644 index 00000000..d59815ed Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_retrieve_features_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..b6eb0df4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_update_features_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_update_features_params.cpython-312.pyc new file mode 100644 index 00000000..45c33d30 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_update_features_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_update_params.cpython-312.pyc new file mode 100644 index 00000000..07cf7c93 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_financial_account_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..c85e300d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_create_params.cpython-312.pyc new file mode 100644 index 00000000..7a3ced06 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc new file mode 100644 index 00000000..4f03c4e7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_fail_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_list_params.cpython-312.pyc new file mode 100644 index 00000000..4626b435 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..0fc8cc4f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc new file mode 100644 index 00000000..6195a3ca Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_return_inbound_transfer_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc new file mode 100644 index 00000000..f5910744 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_inbound_transfer_succeed_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..49c1aeaa Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_create_params.cpython-312.pyc new file mode 100644 index 00000000..583d4782 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc new file mode 100644 index 00000000..2aa5938d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_fail_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_list_params.cpython-312.pyc new file mode 100644 index 00000000..15162846 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc new file mode 100644 index 00000000..d52c46d5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_post_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..fdbab365 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc new file mode 100644 index 00000000..45c889a7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_return_outbound_payment_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc new file mode 100644 index 00000000..b7bb48b6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_payment_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_cancel_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_cancel_params.cpython-312.pyc new file mode 100644 index 00000000..86ccb014 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_cancel_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_create_params.cpython-312.pyc new file mode 100644 index 00000000..936b7990 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc new file mode 100644 index 00000000..76943aff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_fail_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_list_params.cpython-312.pyc new file mode 100644 index 00000000..cf2467f0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc new file mode 100644 index 00000000..dea85801 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_post_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..e6131c8f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc new file mode 100644 index 00000000..94ab11ab Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_return_outbound_transfer_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc new file mode 100644 index 00000000..76b5b620 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_outbound_transfer_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc new file mode 100644 index 00000000..783d04d7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_list_params.cpython-312.pyc new file mode 100644 index 00000000..1e5970c7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..5af1a1bc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_credit_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc new file mode 100644 index 00000000..85edab8f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_list_params.cpython-312.pyc new file mode 100644 index 00000000..5b459724 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..8dc3420c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_received_debit_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_entry_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_entry_list_params.cpython-312.pyc new file mode 100644 index 00000000..1c902543 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_entry_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_entry_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_entry_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..a56b55ce Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_entry_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_list_params.cpython-312.pyc new file mode 100644 index 00000000..7a3468a5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..23b0083e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/__pycache__/_transaction_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_create_params.py new file mode 100644 index 00000000..96ad037e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_create_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class CreditReversalCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + received_credit: str + """ + The ReceivedCredit to reverse. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_list_params.py new file mode 100644 index 00000000..33b3b735 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_list_params.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class CreditReversalListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + Returns objects associated with this FinancialAccount. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + received_credit: NotRequired[str] + """ + Only return CreditReversals for the ReceivedCredit ID. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["canceled", "posted", "processing"]] + """ + Only return CreditReversals for a given status. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_retrieve_params.py new file mode 100644 index 00000000..5e0b9c2e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_credit_reversal_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class CreditReversalRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_create_params.py new file mode 100644 index 00000000..aa873103 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_create_params.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class DebitReversalCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + received_debit: str + """ + The ReceivedDebit to reverse. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_list_params.py new file mode 100644 index 00000000..66dad506 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_list_params.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class DebitReversalListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + Returns objects associated with this FinancialAccount. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + received_debit: NotRequired[str] + """ + Only return DebitReversals for the ReceivedDebit ID. + """ + resolution: NotRequired[Literal["lost", "won"]] + """ + Only return DebitReversals for a given resolution. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["canceled", "completed", "processing"]] + """ + Only return DebitReversals for a given status. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_retrieve_params.py new file mode 100644 index 00000000..c818ddc3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_debit_reversal_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class DebitReversalRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_close_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_close_params.py new file mode 100644 index 00000000..cff6fa7b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_close_params.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FinancialAccountCloseParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + forwarding_settings: NotRequired[ + "FinancialAccountCloseParamsForwardingSettings" + ] + """ + A different bank account where funds can be deposited/debited in order to get the closing FA's balance to $0 + """ + + +class FinancialAccountCloseParamsForwardingSettings(TypedDict): + financial_account: NotRequired[str] + """ + The financial_account id + """ + payment_method: NotRequired[str] + """ + The payment_method or bank account id. This needs to be a verified bank account. + """ + type: Literal["financial_account", "payment_method"] + """ + The type of the bank account provided. This can be either "financial_account" or "payment_method" + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_create_params.py new file mode 100644 index 00000000..f89af286 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_create_params.py @@ -0,0 +1,201 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FinancialAccountCreateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: NotRequired["FinancialAccountCreateParamsFeatures"] + """ + Encodes whether a FinancialAccount has access to a particular feature. Stripe or the platform can control features via the requested field. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired["Literal['']|str"] + """ + The nickname for the FinancialAccount. + """ + platform_restrictions: NotRequired[ + "FinancialAccountCreateParamsPlatformRestrictions" + ] + """ + The set of functionalities that the platform can restrict on the FinancialAccount. + """ + supported_currencies: List[str] + """ + The currencies the FinancialAccount can hold a balance in. + """ + + +class FinancialAccountCreateParamsFeatures(TypedDict): + card_issuing: NotRequired[ + "FinancialAccountCreateParamsFeaturesCardIssuing" + ] + """ + Encodes the FinancialAccount's ability to be used with the Issuing product, including attaching cards to and drawing funds from the FinancialAccount. + """ + deposit_insurance: NotRequired[ + "FinancialAccountCreateParamsFeaturesDepositInsurance" + ] + """ + Represents whether this FinancialAccount is eligible for deposit insurance. Various factors determine the insurance amount. + """ + financial_addresses: NotRequired[ + "FinancialAccountCreateParamsFeaturesFinancialAddresses" + ] + """ + Contains Features that add FinancialAddresses to the FinancialAccount. + """ + inbound_transfers: NotRequired[ + "FinancialAccountCreateParamsFeaturesInboundTransfers" + ] + """ + Contains settings related to adding funds to a FinancialAccount from another Account with the same owner. + """ + intra_stripe_flows: NotRequired[ + "FinancialAccountCreateParamsFeaturesIntraStripeFlows" + ] + """ + Represents the ability for the FinancialAccount to send money to, or receive money from other FinancialAccounts (for example, via OutboundPayment). + """ + outbound_payments: NotRequired[ + "FinancialAccountCreateParamsFeaturesOutboundPayments" + ] + """ + Includes Features related to initiating money movement out of the FinancialAccount to someone else's bucket of money. + """ + outbound_transfers: NotRequired[ + "FinancialAccountCreateParamsFeaturesOutboundTransfers" + ] + """ + Contains a Feature and settings related to moving money out of the FinancialAccount into another Account with the same owner. + """ + + +class FinancialAccountCreateParamsFeaturesCardIssuing(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesDepositInsurance(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesFinancialAddresses(TypedDict): + aba: NotRequired[ + "FinancialAccountCreateParamsFeaturesFinancialAddressesAba" + ] + """ + Adds an ABA FinancialAddress to the FinancialAccount. + """ + + +class FinancialAccountCreateParamsFeaturesFinancialAddressesAba(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesInboundTransfers(TypedDict): + ach: NotRequired["FinancialAccountCreateParamsFeaturesInboundTransfersAch"] + """ + Enables ACH Debits via the InboundTransfers API. + """ + + +class FinancialAccountCreateParamsFeaturesInboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesIntraStripeFlows(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesOutboundPayments(TypedDict): + ach: NotRequired["FinancialAccountCreateParamsFeaturesOutboundPaymentsAch"] + """ + Enables ACH transfers via the OutboundPayments API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountCreateParamsFeaturesOutboundPaymentsUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundPayments API. + """ + + +class FinancialAccountCreateParamsFeaturesOutboundPaymentsAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesOutboundPaymentsUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesOutboundTransfers(TypedDict): + ach: NotRequired[ + "FinancialAccountCreateParamsFeaturesOutboundTransfersAch" + ] + """ + Enables ACH transfers via the OutboundTransfers API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountCreateParamsFeaturesOutboundTransfersUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundTransfers API. + """ + + +class FinancialAccountCreateParamsFeaturesOutboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsFeaturesOutboundTransfersUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountCreateParamsPlatformRestrictions(TypedDict): + inbound_flows: NotRequired[Literal["restricted", "unrestricted"]] + """ + Restricts all inbound money movement. + """ + outbound_flows: NotRequired[Literal["restricted", "unrestricted"]] + """ + Restricts all outbound money movement. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_features_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_features_retrieve_params.py new file mode 100644 index 00000000..005ff499 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_features_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class FinancialAccountFeaturesRetrieveParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_features_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_features_update_params.py new file mode 100644 index 00000000..71344abf --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_features_update_params.py @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class FinancialAccountFeaturesUpdateParams(TypedDict): + card_issuing: NotRequired[ + "FinancialAccountFeaturesUpdateParamsCardIssuing" + ] + """ + Encodes the FinancialAccount's ability to be used with the Issuing product, including attaching cards to and drawing funds from the FinancialAccount. + """ + deposit_insurance: NotRequired[ + "FinancialAccountFeaturesUpdateParamsDepositInsurance" + ] + """ + Represents whether this FinancialAccount is eligible for deposit insurance. Various factors determine the insurance amount. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_addresses: NotRequired[ + "FinancialAccountFeaturesUpdateParamsFinancialAddresses" + ] + """ + Contains Features that add FinancialAddresses to the FinancialAccount. + """ + inbound_transfers: NotRequired[ + "FinancialAccountFeaturesUpdateParamsInboundTransfers" + ] + """ + Contains settings related to adding funds to a FinancialAccount from another Account with the same owner. + """ + intra_stripe_flows: NotRequired[ + "FinancialAccountFeaturesUpdateParamsIntraStripeFlows" + ] + """ + Represents the ability for the FinancialAccount to send money to, or receive money from other FinancialAccounts (for example, via OutboundPayment). + """ + outbound_payments: NotRequired[ + "FinancialAccountFeaturesUpdateParamsOutboundPayments" + ] + """ + Includes Features related to initiating money movement out of the FinancialAccount to someone else's bucket of money. + """ + outbound_transfers: NotRequired[ + "FinancialAccountFeaturesUpdateParamsOutboundTransfers" + ] + """ + Contains a Feature and settings related to moving money out of the FinancialAccount into another Account with the same owner. + """ + + +class FinancialAccountFeaturesUpdateParamsCardIssuing(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsDepositInsurance(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsFinancialAddresses(TypedDict): + aba: NotRequired[ + "FinancialAccountFeaturesUpdateParamsFinancialAddressesAba" + ] + """ + Adds an ABA FinancialAddress to the FinancialAccount. + """ + + +class FinancialAccountFeaturesUpdateParamsFinancialAddressesAba(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsInboundTransfers(TypedDict): + ach: NotRequired["FinancialAccountFeaturesUpdateParamsInboundTransfersAch"] + """ + Enables ACH Debits via the InboundTransfers API. + """ + + +class FinancialAccountFeaturesUpdateParamsInboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsIntraStripeFlows(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsOutboundPayments(TypedDict): + ach: NotRequired["FinancialAccountFeaturesUpdateParamsOutboundPaymentsAch"] + """ + Enables ACH transfers via the OutboundPayments API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountFeaturesUpdateParamsOutboundPaymentsUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundPayments API. + """ + + +class FinancialAccountFeaturesUpdateParamsOutboundPaymentsAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsOutboundPaymentsUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsOutboundTransfers(TypedDict): + ach: NotRequired[ + "FinancialAccountFeaturesUpdateParamsOutboundTransfersAch" + ] + """ + Enables ACH transfers via the OutboundTransfers API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountFeaturesUpdateParamsOutboundTransfersUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundTransfers API. + """ + + +class FinancialAccountFeaturesUpdateParamsOutboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountFeaturesUpdateParamsOutboundTransfersUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_list_params.py new file mode 100644 index 00000000..fdcc9de1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_list_params.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FinancialAccountListParams(RequestOptions): + created: NotRequired["FinancialAccountListParamsCreated|int"] + """ + Only return FinancialAccounts that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + An object ID cursor for use in pagination. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + limit: NotRequired[int] + """ + A limit ranging from 1 to 100 (defaults to 10). + """ + starting_after: NotRequired[str] + """ + An object ID cursor for use in pagination. + """ + status: NotRequired[Literal["closed", "open"]] + """ + Only return FinancialAccounts that have the given status: `open` or `closed` + """ + + +class FinancialAccountListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_modify_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_modify_params.py new file mode 100644 index 00000000..29257685 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_modify_params.py @@ -0,0 +1,218 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FinancialAccountModifyParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: NotRequired["FinancialAccountModifyParamsFeatures"] + """ + Encodes whether a FinancialAccount has access to a particular feature, with a status enum and associated `status_details`. Stripe or the platform may control features via the requested field. + """ + forwarding_settings: NotRequired[ + "FinancialAccountModifyParamsForwardingSettings" + ] + """ + A different bank account where funds can be deposited/debited in order to get the closing FA's balance to $0 + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired["Literal['']|str"] + """ + The nickname for the FinancialAccount. + """ + platform_restrictions: NotRequired[ + "FinancialAccountModifyParamsPlatformRestrictions" + ] + """ + The set of functionalities that the platform can restrict on the FinancialAccount. + """ + + +class FinancialAccountModifyParamsFeatures(TypedDict): + card_issuing: NotRequired[ + "FinancialAccountModifyParamsFeaturesCardIssuing" + ] + """ + Encodes the FinancialAccount's ability to be used with the Issuing product, including attaching cards to and drawing funds from the FinancialAccount. + """ + deposit_insurance: NotRequired[ + "FinancialAccountModifyParamsFeaturesDepositInsurance" + ] + """ + Represents whether this FinancialAccount is eligible for deposit insurance. Various factors determine the insurance amount. + """ + financial_addresses: NotRequired[ + "FinancialAccountModifyParamsFeaturesFinancialAddresses" + ] + """ + Contains Features that add FinancialAddresses to the FinancialAccount. + """ + inbound_transfers: NotRequired[ + "FinancialAccountModifyParamsFeaturesInboundTransfers" + ] + """ + Contains settings related to adding funds to a FinancialAccount from another Account with the same owner. + """ + intra_stripe_flows: NotRequired[ + "FinancialAccountModifyParamsFeaturesIntraStripeFlows" + ] + """ + Represents the ability for the FinancialAccount to send money to, or receive money from other FinancialAccounts (for example, via OutboundPayment). + """ + outbound_payments: NotRequired[ + "FinancialAccountModifyParamsFeaturesOutboundPayments" + ] + """ + Includes Features related to initiating money movement out of the FinancialAccount to someone else's bucket of money. + """ + outbound_transfers: NotRequired[ + "FinancialAccountModifyParamsFeaturesOutboundTransfers" + ] + """ + Contains a Feature and settings related to moving money out of the FinancialAccount into another Account with the same owner. + """ + + +class FinancialAccountModifyParamsFeaturesCardIssuing(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesDepositInsurance(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesFinancialAddresses(TypedDict): + aba: NotRequired[ + "FinancialAccountModifyParamsFeaturesFinancialAddressesAba" + ] + """ + Adds an ABA FinancialAddress to the FinancialAccount. + """ + + +class FinancialAccountModifyParamsFeaturesFinancialAddressesAba(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesInboundTransfers(TypedDict): + ach: NotRequired["FinancialAccountModifyParamsFeaturesInboundTransfersAch"] + """ + Enables ACH Debits via the InboundTransfers API. + """ + + +class FinancialAccountModifyParamsFeaturesInboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesIntraStripeFlows(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesOutboundPayments(TypedDict): + ach: NotRequired["FinancialAccountModifyParamsFeaturesOutboundPaymentsAch"] + """ + Enables ACH transfers via the OutboundPayments API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountModifyParamsFeaturesOutboundPaymentsUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundPayments API. + """ + + +class FinancialAccountModifyParamsFeaturesOutboundPaymentsAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesOutboundPaymentsUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesOutboundTransfers(TypedDict): + ach: NotRequired[ + "FinancialAccountModifyParamsFeaturesOutboundTransfersAch" + ] + """ + Enables ACH transfers via the OutboundTransfers API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountModifyParamsFeaturesOutboundTransfersUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundTransfers API. + """ + + +class FinancialAccountModifyParamsFeaturesOutboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsFeaturesOutboundTransfersUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountModifyParamsForwardingSettings(TypedDict): + financial_account: NotRequired[str] + """ + The financial_account id + """ + payment_method: NotRequired[str] + """ + The payment_method or bank account id. This needs to be a verified bank account. + """ + type: Literal["financial_account", "payment_method"] + """ + The type of the bank account provided. This can be either "financial_account" or "payment_method" + """ + + +class FinancialAccountModifyParamsPlatformRestrictions(TypedDict): + inbound_flows: NotRequired[Literal["restricted", "unrestricted"]] + """ + Restricts all inbound money movement. + """ + outbound_flows: NotRequired[Literal["restricted", "unrestricted"]] + """ + Restricts all outbound money movement. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_retrieve_features_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_retrieve_features_params.py new file mode 100644 index 00000000..0d65da2a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_retrieve_features_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class FinancialAccountRetrieveFeaturesParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_retrieve_params.py new file mode 100644 index 00000000..0f57a048 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class FinancialAccountRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_update_features_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_update_features_params.py new file mode 100644 index 00000000..59fcb725 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_update_features_params.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class FinancialAccountUpdateFeaturesParams(RequestOptions): + card_issuing: NotRequired[ + "FinancialAccountUpdateFeaturesParamsCardIssuing" + ] + """ + Encodes the FinancialAccount's ability to be used with the Issuing product, including attaching cards to and drawing funds from the FinancialAccount. + """ + deposit_insurance: NotRequired[ + "FinancialAccountUpdateFeaturesParamsDepositInsurance" + ] + """ + Represents whether this FinancialAccount is eligible for deposit insurance. Various factors determine the insurance amount. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_addresses: NotRequired[ + "FinancialAccountUpdateFeaturesParamsFinancialAddresses" + ] + """ + Contains Features that add FinancialAddresses to the FinancialAccount. + """ + inbound_transfers: NotRequired[ + "FinancialAccountUpdateFeaturesParamsInboundTransfers" + ] + """ + Contains settings related to adding funds to a FinancialAccount from another Account with the same owner. + """ + intra_stripe_flows: NotRequired[ + "FinancialAccountUpdateFeaturesParamsIntraStripeFlows" + ] + """ + Represents the ability for the FinancialAccount to send money to, or receive money from other FinancialAccounts (for example, via OutboundPayment). + """ + outbound_payments: NotRequired[ + "FinancialAccountUpdateFeaturesParamsOutboundPayments" + ] + """ + Includes Features related to initiating money movement out of the FinancialAccount to someone else's bucket of money. + """ + outbound_transfers: NotRequired[ + "FinancialAccountUpdateFeaturesParamsOutboundTransfers" + ] + """ + Contains a Feature and settings related to moving money out of the FinancialAccount into another Account with the same owner. + """ + + +class FinancialAccountUpdateFeaturesParamsCardIssuing(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsDepositInsurance(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsFinancialAddresses(TypedDict): + aba: NotRequired[ + "FinancialAccountUpdateFeaturesParamsFinancialAddressesAba" + ] + """ + Adds an ABA FinancialAddress to the FinancialAccount. + """ + + +class FinancialAccountUpdateFeaturesParamsFinancialAddressesAba(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsInboundTransfers(TypedDict): + ach: NotRequired["FinancialAccountUpdateFeaturesParamsInboundTransfersAch"] + """ + Enables ACH Debits via the InboundTransfers API. + """ + + +class FinancialAccountUpdateFeaturesParamsInboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsIntraStripeFlows(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsOutboundPayments(TypedDict): + ach: NotRequired["FinancialAccountUpdateFeaturesParamsOutboundPaymentsAch"] + """ + Enables ACH transfers via the OutboundPayments API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountUpdateFeaturesParamsOutboundPaymentsUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundPayments API. + """ + + +class FinancialAccountUpdateFeaturesParamsOutboundPaymentsAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsOutboundPaymentsUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsOutboundTransfers(TypedDict): + ach: NotRequired[ + "FinancialAccountUpdateFeaturesParamsOutboundTransfersAch" + ] + """ + Enables ACH transfers via the OutboundTransfers API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountUpdateFeaturesParamsOutboundTransfersUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundTransfers API. + """ + + +class FinancialAccountUpdateFeaturesParamsOutboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateFeaturesParamsOutboundTransfersUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_update_params.py new file mode 100644 index 00000000..49fa4276 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_financial_account_update_params.py @@ -0,0 +1,217 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class FinancialAccountUpdateParams(TypedDict): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + features: NotRequired["FinancialAccountUpdateParamsFeatures"] + """ + Encodes whether a FinancialAccount has access to a particular feature, with a status enum and associated `status_details`. Stripe or the platform may control features via the requested field. + """ + forwarding_settings: NotRequired[ + "FinancialAccountUpdateParamsForwardingSettings" + ] + """ + A different bank account where funds can be deposited/debited in order to get the closing FA's balance to $0 + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + nickname: NotRequired["Literal['']|str"] + """ + The nickname for the FinancialAccount. + """ + platform_restrictions: NotRequired[ + "FinancialAccountUpdateParamsPlatformRestrictions" + ] + """ + The set of functionalities that the platform can restrict on the FinancialAccount. + """ + + +class FinancialAccountUpdateParamsFeatures(TypedDict): + card_issuing: NotRequired[ + "FinancialAccountUpdateParamsFeaturesCardIssuing" + ] + """ + Encodes the FinancialAccount's ability to be used with the Issuing product, including attaching cards to and drawing funds from the FinancialAccount. + """ + deposit_insurance: NotRequired[ + "FinancialAccountUpdateParamsFeaturesDepositInsurance" + ] + """ + Represents whether this FinancialAccount is eligible for deposit insurance. Various factors determine the insurance amount. + """ + financial_addresses: NotRequired[ + "FinancialAccountUpdateParamsFeaturesFinancialAddresses" + ] + """ + Contains Features that add FinancialAddresses to the FinancialAccount. + """ + inbound_transfers: NotRequired[ + "FinancialAccountUpdateParamsFeaturesInboundTransfers" + ] + """ + Contains settings related to adding funds to a FinancialAccount from another Account with the same owner. + """ + intra_stripe_flows: NotRequired[ + "FinancialAccountUpdateParamsFeaturesIntraStripeFlows" + ] + """ + Represents the ability for the FinancialAccount to send money to, or receive money from other FinancialAccounts (for example, via OutboundPayment). + """ + outbound_payments: NotRequired[ + "FinancialAccountUpdateParamsFeaturesOutboundPayments" + ] + """ + Includes Features related to initiating money movement out of the FinancialAccount to someone else's bucket of money. + """ + outbound_transfers: NotRequired[ + "FinancialAccountUpdateParamsFeaturesOutboundTransfers" + ] + """ + Contains a Feature and settings related to moving money out of the FinancialAccount into another Account with the same owner. + """ + + +class FinancialAccountUpdateParamsFeaturesCardIssuing(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesDepositInsurance(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesFinancialAddresses(TypedDict): + aba: NotRequired[ + "FinancialAccountUpdateParamsFeaturesFinancialAddressesAba" + ] + """ + Adds an ABA FinancialAddress to the FinancialAccount. + """ + + +class FinancialAccountUpdateParamsFeaturesFinancialAddressesAba(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesInboundTransfers(TypedDict): + ach: NotRequired["FinancialAccountUpdateParamsFeaturesInboundTransfersAch"] + """ + Enables ACH Debits via the InboundTransfers API. + """ + + +class FinancialAccountUpdateParamsFeaturesInboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesIntraStripeFlows(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesOutboundPayments(TypedDict): + ach: NotRequired["FinancialAccountUpdateParamsFeaturesOutboundPaymentsAch"] + """ + Enables ACH transfers via the OutboundPayments API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountUpdateParamsFeaturesOutboundPaymentsUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundPayments API. + """ + + +class FinancialAccountUpdateParamsFeaturesOutboundPaymentsAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesOutboundPaymentsUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesOutboundTransfers(TypedDict): + ach: NotRequired[ + "FinancialAccountUpdateParamsFeaturesOutboundTransfersAch" + ] + """ + Enables ACH transfers via the OutboundTransfers API. + """ + us_domestic_wire: NotRequired[ + "FinancialAccountUpdateParamsFeaturesOutboundTransfersUsDomesticWire" + ] + """ + Enables US domestic wire transfers via the OutboundTransfers API. + """ + + +class FinancialAccountUpdateParamsFeaturesOutboundTransfersAch(TypedDict): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsFeaturesOutboundTransfersUsDomesticWire( + TypedDict, +): + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + + +class FinancialAccountUpdateParamsForwardingSettings(TypedDict): + financial_account: NotRequired[str] + """ + The financial_account id + """ + payment_method: NotRequired[str] + """ + The payment_method or bank account id. This needs to be a verified bank account. + """ + type: Literal["financial_account", "payment_method"] + """ + The type of the bank account provided. This can be either "financial_account" or "payment_method" + """ + + +class FinancialAccountUpdateParamsPlatformRestrictions(TypedDict): + inbound_flows: NotRequired[Literal["restricted", "unrestricted"]] + """ + Restricts all inbound money movement. + """ + outbound_flows: NotRequired[Literal["restricted", "unrestricted"]] + """ + Restricts all outbound money movement. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_cancel_params.py new file mode 100644 index 00000000..39ba9fca --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InboundTransferCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_create_params.py new file mode 100644 index 00000000..efc92248 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_create_params.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import NotRequired + + +class InboundTransferCreateParams(RequestOptions): + amount: int + """ + Amount (in cents) to be transferred. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount to send funds to. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + origin_payment_method: str + """ + The origin payment method to be debited for the InboundTransfer. + """ + statement_descriptor: NotRequired[str] + """ + The complete description that appears on your customers' statements. Maximum 10 characters. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_fail_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_fail_params.py new file mode 100644 index 00000000..8f220ed1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_fail_params.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class InboundTransferFailParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + failure_details: NotRequired["InboundTransferFailParamsFailureDetails"] + """ + Details about a failed InboundTransfer. + """ + + +class InboundTransferFailParamsFailureDetails(TypedDict): + code: NotRequired[ + Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "debit_not_authorized", + "incorrect_account_holder_address", + "incorrect_account_holder_name", + "incorrect_account_holder_tax_id", + "insufficient_funds", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + ] + """ + Reason for the failure. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_list_params.py new file mode 100644 index 00000000..709a6582 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_list_params.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class InboundTransferListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + Returns objects associated with this FinancialAccount. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[ + Literal["canceled", "failed", "processing", "succeeded"] + ] + """ + Only return InboundTransfers that have the given status: `processing`, `succeeded`, `failed` or `canceled`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_retrieve_params.py new file mode 100644 index 00000000..e588e70c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InboundTransferRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_return_inbound_transfer_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_return_inbound_transfer_params.py new file mode 100644 index 00000000..ada9cdfa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_return_inbound_transfer_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InboundTransferReturnInboundTransferParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_succeed_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_succeed_params.py new file mode 100644 index 00000000..e88a1730 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_inbound_transfer_succeed_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class InboundTransferSucceedParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_cancel_params.py new file mode 100644 index 00000000..e94e9d25 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundPaymentCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_create_params.py new file mode 100644 index 00000000..89cdf568 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_create_params.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundPaymentCreateParams(RequestOptions): + amount: int + """ + Amount (in cents) to be transferred. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: NotRequired[str] + """ + ID of the customer to whom the OutboundPayment is sent. Must match the Customer attached to the `destination_payment_method` passed in. + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination_payment_method: NotRequired[str] + """ + The PaymentMethod to use as the payment instrument for the OutboundPayment. Exclusive with `destination_payment_method_data`. + """ + destination_payment_method_data: NotRequired[ + "OutboundPaymentCreateParamsDestinationPaymentMethodData" + ] + """ + Hash used to generate the PaymentMethod to be used for this OutboundPayment. Exclusive with `destination_payment_method`. + """ + destination_payment_method_options: NotRequired[ + "OutboundPaymentCreateParamsDestinationPaymentMethodOptions" + ] + """ + Payment method-specific configuration for this OutboundPayment. + """ + end_user_details: NotRequired["OutboundPaymentCreateParamsEndUserDetails"] + """ + End user details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount to pull funds from. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + statement_descriptor: NotRequired[str] + """ + The description that appears on the receiving end for this OutboundPayment (for example, bank statement for external bank transfer). Maximum 10 characters for `ach` payments, 140 characters for `us_domestic_wire` payments, or 500 characters for `stripe` network transfers. The default value is "payment". + """ + + +class OutboundPaymentCreateParamsDestinationPaymentMethodData(TypedDict): + billing_details: NotRequired[ + "OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetails" + ] + """ + Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. + """ + financial_account: NotRequired[str] + """ + Required if type is set to `financial_account`. The FinancialAccount ID to send funds to. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + type: Literal["financial_account", "us_bank_account"] + """ + The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. + """ + us_bank_account: NotRequired[ + "OutboundPaymentCreateParamsDestinationPaymentMethodDataUsBankAccount" + ] + """ + Required hash if type is set to `us_bank_account`. + """ + + +class OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetails( + TypedDict, +): + address: NotRequired[ + "Literal['']|OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetailsAddress" + ] + """ + Billing address. + """ + email: NotRequired["Literal['']|str"] + """ + Email address. + """ + name: NotRequired["Literal['']|str"] + """ + Full name. + """ + phone: NotRequired["Literal['']|str"] + """ + Billing phone number (including extension). + """ + + +class OutboundPaymentCreateParamsDestinationPaymentMethodDataBillingDetailsAddress( + TypedDict, +): + city: NotRequired[str] + """ + City, district, suburb, town, or village. + """ + country: NotRequired[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: NotRequired[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: NotRequired[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: NotRequired[str] + """ + ZIP or postal code. + """ + state: NotRequired[str] + """ + State, county, province, or region. + """ + + +class OutboundPaymentCreateParamsDestinationPaymentMethodDataUsBankAccount( + TypedDict, +): + account_holder_type: NotRequired[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_number: NotRequired[str] + """ + Account number of the bank account. + """ + account_type: NotRequired[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + financial_connections_account: NotRequired[str] + """ + The ID of a Financial Connections Account to use as a payment method. + """ + routing_number: NotRequired[str] + """ + Routing number of the bank account. + """ + + +class OutboundPaymentCreateParamsDestinationPaymentMethodOptions(TypedDict): + us_bank_account: NotRequired[ + "Literal['']|OutboundPaymentCreateParamsDestinationPaymentMethodOptionsUsBankAccount" + ] + """ + Optional fields for `us_bank_account`. + """ + + +class OutboundPaymentCreateParamsDestinationPaymentMethodOptionsUsBankAccount( + TypedDict, +): + network: NotRequired[Literal["ach", "us_domestic_wire"]] + """ + Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + + +class OutboundPaymentCreateParamsEndUserDetails(TypedDict): + ip_address: NotRequired[str] + """ + IP address of the user initiating the OutboundPayment. Must be supplied if `present` is set to `true`. + """ + present: bool + """ + `True` if the OutboundPayment creation request is being made on behalf of an end user by a platform. Otherwise, `false`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_fail_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_fail_params.py new file mode 100644 index 00000000..ec3d79c7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_fail_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundPaymentFailParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_list_params.py new file mode 100644 index 00000000..6c663d07 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_list_params.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundPaymentListParams(RequestOptions): + created: NotRequired["OutboundPaymentListParamsCreated|int"] + """ + Only return OutboundPayments that were created during the given date interval. + """ + customer: NotRequired[str] + """ + Only return OutboundPayments sent to this customer. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + Returns objects associated with this FinancialAccount. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[ + Literal["canceled", "failed", "posted", "processing", "returned"] + ] + """ + Only return OutboundPayments that have the given status: `processing`, `failed`, `posted`, `returned`, or `canceled`. + """ + + +class OutboundPaymentListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_post_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_post_params.py new file mode 100644 index 00000000..308e0cf8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_post_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundPaymentPostParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_retrieve_params.py new file mode 100644 index 00000000..8fc79e2d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundPaymentRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_return_outbound_payment_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_return_outbound_payment_params.py new file mode 100644 index 00000000..b5bd8426 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_return_outbound_payment_params.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundPaymentReturnOutboundPaymentParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + returned_details: NotRequired[ + "OutboundPaymentReturnOutboundPaymentParamsReturnedDetails" + ] + """ + Optional hash to set the return code. + """ + + +class OutboundPaymentReturnOutboundPaymentParamsReturnedDetails(TypedDict): + code: NotRequired[ + Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "declined", + "incorrect_account_holder_name", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + ] + """ + The return code to be set on the OutboundPayment object. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_update_params.py new file mode 100644 index 00000000..301b4e96 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_payment_update_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundPaymentUpdateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + tracking_details: "OutboundPaymentUpdateParamsTrackingDetails" + """ + Details about network-specific tracking information. + """ + + +class OutboundPaymentUpdateParamsTrackingDetails(TypedDict): + ach: NotRequired["OutboundPaymentUpdateParamsTrackingDetailsAch"] + """ + ACH network tracking details. + """ + type: Literal["ach", "us_domestic_wire"] + """ + The US bank account network used to send funds. + """ + us_domestic_wire: NotRequired[ + "OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire" + ] + """ + US domestic wire network tracking details. + """ + + +class OutboundPaymentUpdateParamsTrackingDetailsAch(TypedDict): + trace_id: str + """ + ACH trace ID for funds sent over the `ach` network. + """ + + +class OutboundPaymentUpdateParamsTrackingDetailsUsDomesticWire(TypedDict): + chips: NotRequired[str] + """ + CHIPS System Sequence Number (SSN) for funds sent over the `us_domestic_wire` network. + """ + imad: NotRequired[str] + """ + IMAD for funds sent over the `us_domestic_wire` network. + """ + omad: NotRequired[str] + """ + OMAD for funds sent over the `us_domestic_wire` network. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_cancel_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_cancel_params.py new file mode 100644 index 00000000..d9e88a78 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_cancel_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundTransferCancelParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_create_params.py new file mode 100644 index 00000000..9a4728fa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_create_params.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundTransferCreateParams(RequestOptions): + amount: int + """ + Amount (in cents) to be transferred. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination_payment_method: NotRequired[str] + """ + The PaymentMethod to use as the payment instrument for the OutboundTransfer. + """ + destination_payment_method_data: NotRequired[ + "OutboundTransferCreateParamsDestinationPaymentMethodData" + ] + """ + Hash used to generate the PaymentMethod to be used for this OutboundTransfer. Exclusive with `destination_payment_method`. + """ + destination_payment_method_options: NotRequired[ + "OutboundTransferCreateParamsDestinationPaymentMethodOptions" + ] + """ + Hash describing payment method configuration details. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount to pull funds from. + """ + metadata: NotRequired[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + """ + statement_descriptor: NotRequired[str] + """ + Statement descriptor to be shown on the receiving end of an OutboundTransfer. Maximum 10 characters for `ach` transfers or 140 characters for `us_domestic_wire` transfers. The default value is "transfer". + """ + + +class OutboundTransferCreateParamsDestinationPaymentMethodData(TypedDict): + financial_account: NotRequired[str] + """ + Required if type is set to `financial_account`. The FinancialAccount ID to send funds to. + """ + type: Literal["financial_account"] + """ + The type of the destination. + """ + + +class OutboundTransferCreateParamsDestinationPaymentMethodOptions(TypedDict): + us_bank_account: NotRequired[ + "Literal['']|OutboundTransferCreateParamsDestinationPaymentMethodOptionsUsBankAccount" + ] + """ + Optional fields for `us_bank_account`. + """ + + +class OutboundTransferCreateParamsDestinationPaymentMethodOptionsUsBankAccount( + TypedDict, +): + network: NotRequired[Literal["ach", "us_domestic_wire"]] + """ + Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_fail_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_fail_params.py new file mode 100644 index 00000000..2da8070b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_fail_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundTransferFailParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_list_params.py new file mode 100644 index 00000000..6f9e2478 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_list_params.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class OutboundTransferListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + Returns objects associated with this FinancialAccount. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[ + Literal["canceled", "failed", "posted", "processing", "returned"] + ] + """ + Only return OutboundTransfers that have the given status: `processing`, `canceled`, `failed`, `posted`, or `returned`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_post_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_post_params.py new file mode 100644 index 00000000..f6372b08 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_post_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundTransferPostParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_retrieve_params.py new file mode 100644 index 00000000..cec27513 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class OutboundTransferRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_return_outbound_transfer_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_return_outbound_transfer_params.py new file mode 100644 index 00000000..dd73d7e8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_return_outbound_transfer_params.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundTransferReturnOutboundTransferParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + returned_details: NotRequired[ + "OutboundTransferReturnOutboundTransferParamsReturnedDetails" + ] + """ + Details about a returned OutboundTransfer. + """ + + +class OutboundTransferReturnOutboundTransferParamsReturnedDetails(TypedDict): + code: NotRequired[ + Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "declined", + "incorrect_account_holder_name", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + ] + """ + Reason for the return. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_update_params.py new file mode 100644 index 00000000..dcee9342 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_outbound_transfer_update_params.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class OutboundTransferUpdateParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + tracking_details: "OutboundTransferUpdateParamsTrackingDetails" + """ + Details about network-specific tracking information. + """ + + +class OutboundTransferUpdateParamsTrackingDetails(TypedDict): + ach: NotRequired["OutboundTransferUpdateParamsTrackingDetailsAch"] + """ + ACH network tracking details. + """ + type: Literal["ach", "us_domestic_wire"] + """ + The US bank account network used to send funds. + """ + us_domestic_wire: NotRequired[ + "OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire" + ] + """ + US domestic wire network tracking details. + """ + + +class OutboundTransferUpdateParamsTrackingDetailsAch(TypedDict): + trace_id: str + """ + ACH trace ID for funds sent over the `ach` network. + """ + + +class OutboundTransferUpdateParamsTrackingDetailsUsDomesticWire(TypedDict): + chips: NotRequired[str] + """ + CHIPS System Sequence Number (SSN) for funds sent over the `us_domestic_wire` network. + """ + imad: NotRequired[str] + """ + IMAD for funds sent over the `us_domestic_wire` network. + """ + omad: NotRequired[str] + """ + OMAD for funds sent over the `us_domestic_wire` network. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_create_params.py new file mode 100644 index 00000000..42911f15 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_create_params.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReceivedCreditCreateParams(RequestOptions): + amount: int + """ + Amount (in cents) to be transferred. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount to send funds to. + """ + initiating_payment_method_details: NotRequired[ + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetails" + ] + """ + Initiating payment method details for the object. + """ + network: Literal["ach", "us_domestic_wire"] + """ + Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + + +class ReceivedCreditCreateParamsInitiatingPaymentMethodDetails(TypedDict): + type: Literal["us_bank_account"] + """ + The source type. + """ + us_bank_account: NotRequired[ + "ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount" + ] + """ + Optional fields for `us_bank_account`. + """ + + +class ReceivedCreditCreateParamsInitiatingPaymentMethodDetailsUsBankAccount( + TypedDict, +): + account_holder_name: NotRequired[str] + """ + The bank account holder's name. + """ + account_number: NotRequired[str] + """ + The bank account number. + """ + routing_number: NotRequired[str] + """ + The bank account's routing number. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_list_params.py new file mode 100644 index 00000000..7f096546 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_list_params.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReceivedCreditListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount that received the funds. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + linked_flows: NotRequired["ReceivedCreditListParamsLinkedFlows"] + """ + Only return ReceivedCredits described by the flow. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["failed", "succeeded"]] + """ + Only return ReceivedCredits that have the given status: `succeeded` or `failed`. + """ + + +class ReceivedCreditListParamsLinkedFlows(TypedDict): + source_flow_type: Literal[ + "credit_reversal", + "other", + "outbound_payment", + "outbound_transfer", + "payout", + ] + """ + The source flow type. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_retrieve_params.py new file mode 100644 index 00000000..552cc933 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_credit_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReceivedCreditRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_create_params.py new file mode 100644 index 00000000..e5aad339 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_create_params.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class ReceivedDebitCreateParams(RequestOptions): + amount: int + """ + Amount (in cents) to be transferred. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: NotRequired[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount to pull funds from. + """ + initiating_payment_method_details: NotRequired[ + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetails" + ] + """ + Initiating payment method details for the object. + """ + network: Literal["ach"] + """ + Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + + +class ReceivedDebitCreateParamsInitiatingPaymentMethodDetails(TypedDict): + type: Literal["us_bank_account"] + """ + The source type. + """ + us_bank_account: NotRequired[ + "ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount" + ] + """ + Optional fields for `us_bank_account`. + """ + + +class ReceivedDebitCreateParamsInitiatingPaymentMethodDetailsUsBankAccount( + TypedDict, +): + account_holder_name: NotRequired[str] + """ + The bank account holder's name. + """ + account_number: NotRequired[str] + """ + The bank account number. + """ + routing_number: NotRequired[str] + """ + The bank account's routing number. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_list_params.py new file mode 100644 index 00000000..cd32d32f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_list_params.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired + + +class ReceivedDebitListParams(RequestOptions): + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + The FinancialAccount that funds were pulled from. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["failed", "succeeded"]] + """ + Only return ReceivedDebits that have the given status: `succeeded` or `failed`. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_retrieve_params.py new file mode 100644 index 00000000..88be7910 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_received_debit_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class ReceivedDebitRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_entry_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_entry_list_params.py new file mode 100644 index 00000000..c6b8d011 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_entry_list_params.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionEntryListParams(RequestOptions): + created: NotRequired["TransactionEntryListParamsCreated|int"] + """ + Only return TransactionEntries that were created during the given date interval. + """ + effective_at: NotRequired["TransactionEntryListParamsEffectiveAt|int"] + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + Returns objects associated with this FinancialAccount. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + order_by: NotRequired[Literal["created", "effective_at"]] + """ + The results are in reverse chronological order by `created` or `effective_at`. The default is `created`. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + transaction: NotRequired[str] + """ + Only return TransactionEntries associated with this Transaction. + """ + + +class TransactionEntryListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class TransactionEntryListParamsEffectiveAt(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_entry_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_entry_retrieve_params.py new file mode 100644 index 00000000..fb32213d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_entry_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransactionEntryRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_list_params.py new file mode 100644 index 00000000..6b5afe1e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_list_params.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class TransactionListParams(RequestOptions): + created: NotRequired["TransactionListParamsCreated|int"] + """ + Only return Transactions that were created during the given date interval. + """ + ending_before: NotRequired[str] + """ + A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. + """ + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ + financial_account: str + """ + Returns objects associated with this FinancialAccount. + """ + limit: NotRequired[int] + """ + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. + """ + order_by: NotRequired[Literal["created", "posted_at"]] + """ + The results are in reverse chronological order by `created` or `posted_at`. The default is `created`. + """ + starting_after: NotRequired[str] + """ + A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. + """ + status: NotRequired[Literal["open", "posted", "void"]] + """ + Only return Transactions that have the given status: `open`, `posted`, or `void`. + """ + status_transitions: NotRequired["TransactionListParamsStatusTransitions"] + """ + A filter for the `status_transitions.posted_at` timestamp. When using this filter, `status=posted` and `order_by=posted_at` must also be specified. + """ + + +class TransactionListParamsCreated(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ + + +class TransactionListParamsStatusTransitions(TypedDict): + posted_at: NotRequired[ + "TransactionListParamsStatusTransitionsPostedAt|int" + ] + """ + Returns Transactions with `posted_at` within the specified range. + """ + + +class TransactionListParamsStatusTransitionsPostedAt(TypedDict): + gt: NotRequired[int] + """ + Minimum value to filter by (exclusive) + """ + gte: NotRequired[int] + """ + Minimum value to filter by (inclusive) + """ + lt: NotRequired[int] + """ + Maximum value to filter by (exclusive) + """ + lte: NotRequired[int] + """ + Maximum value to filter by (inclusive) + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_retrieve_params.py new file mode 100644 index 00000000..07744dd9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/treasury/_transaction_retrieve_params.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._request_options import RequestOptions +from typing import List +from typing_extensions import NotRequired + + +class TransactionRetrieveParams(RequestOptions): + expand: NotRequired[List[str]] + """ + Specifies which fields in the response should be expanded. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/__init__.py new file mode 100644 index 00000000..73f3c99b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.v2 import billing as billing, core as core + +# name -> (import_target, is_submodule) +_import_map = { + "billing": ("stripe.params.v2.billing", True), + "core": ("stripe.params.v2.core", True), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..20370e11 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__init__.py new file mode 100644 index 00000000..e2d32e82 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__init__.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.v2.billing._meter_event_adjustment_create_params import ( + MeterEventAdjustmentCreateParams as MeterEventAdjustmentCreateParams, + MeterEventAdjustmentCreateParamsCancel as MeterEventAdjustmentCreateParamsCancel, + ) + from stripe.params.v2.billing._meter_event_create_params import ( + MeterEventCreateParams as MeterEventCreateParams, + ) + from stripe.params.v2.billing._meter_event_session_create_params import ( + MeterEventSessionCreateParams as MeterEventSessionCreateParams, + ) + from stripe.params.v2.billing._meter_event_stream_create_params import ( + MeterEventStreamCreateParams as MeterEventStreamCreateParams, + MeterEventStreamCreateParamsEvent as MeterEventStreamCreateParamsEvent, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "MeterEventAdjustmentCreateParams": ( + "stripe.params.v2.billing._meter_event_adjustment_create_params", + False, + ), + "MeterEventAdjustmentCreateParamsCancel": ( + "stripe.params.v2.billing._meter_event_adjustment_create_params", + False, + ), + "MeterEventCreateParams": ( + "stripe.params.v2.billing._meter_event_create_params", + False, + ), + "MeterEventSessionCreateParams": ( + "stripe.params.v2.billing._meter_event_session_create_params", + False, + ), + "MeterEventStreamCreateParams": ( + "stripe.params.v2.billing._meter_event_stream_create_params", + False, + ), + "MeterEventStreamCreateParamsEvent": ( + "stripe.params.v2.billing._meter_event_stream_create_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..700f6097 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc new file mode 100644 index 00000000..2f665ead Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_adjustment_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_create_params.cpython-312.pyc new file mode 100644 index 00000000..d56defc6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_session_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_session_create_params.cpython-312.pyc new file mode 100644 index 00000000..1eeedb2c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_session_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_stream_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_stream_create_params.cpython-312.pyc new file mode 100644 index 00000000..ab9f9f36 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/__pycache__/_meter_event_stream_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_adjustment_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_adjustment_create_params.py new file mode 100644 index 00000000..ee1dd55e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_adjustment_create_params.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import Literal, TypedDict + + +class MeterEventAdjustmentCreateParams(TypedDict): + cancel: "MeterEventAdjustmentCreateParamsCancel" + """ + Specifies which event to cancel. + """ + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + type: Literal["cancel"] + """ + Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet. + """ + + +class MeterEventAdjustmentCreateParamsCancel(TypedDict): + identifier: str + """ + Unique identifier for the event. You can only cancel events within 24 hours of Stripe receiving them. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_create_params.py new file mode 100644 index 00000000..1084d505 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_create_params.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict +from typing_extensions import NotRequired, TypedDict + + +class MeterEventCreateParams(TypedDict): + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + identifier: NotRequired[str] + """ + A unique identifier for the event. If not provided, one will be generated. + We recommend using a globally unique identifier for this. We'll enforce + uniqueness within a rolling 24 hour period. + """ + payload: Dict[str, str] + """ + The payload of the event. This must contain the fields corresponding to a meter's + `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and + `value_settings.event_payload_key` (default is `value`). Read more about + the + [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides). + """ + timestamp: NotRequired[str] + """ + The time of the event. Must be within the past 35 calendar days or up to + 5 minutes in the future. Defaults to current timestamp if not specified. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_session_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_session_create_params.py new file mode 100644 index 00000000..24bc63e9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_session_create_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class MeterEventSessionCreateParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_stream_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_stream_create_params.py new file mode 100644 index 00000000..6fbba915 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/billing/_meter_event_stream_create_params.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import NotRequired, TypedDict + + +class MeterEventStreamCreateParams(TypedDict): + events: List["MeterEventStreamCreateParamsEvent"] + """ + List of meter events to include in the request. Supports up to 100 events per request. + """ + + +class MeterEventStreamCreateParamsEvent(TypedDict): + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + identifier: NotRequired[str] + """ + A unique identifier for the event. If not provided, one will be generated. + We recommend using a globally unique identifier for this. We'll enforce + uniqueness within a rolling 24 hour period. + """ + payload: Dict[str, str] + """ + The payload of the event. This must contain the fields corresponding to a meter's + `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and + `value_settings.event_payload_key` (default is `value`). Read more about + the + [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides). + """ + timestamp: NotRequired[str] + """ + The time of the event. Must be within the past 35 calendar days or up to + 5 minutes in the future. Defaults to current timestamp if not specified. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__init__.py new file mode 100644 index 00000000..efc5098b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__init__.py @@ -0,0 +1,107 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.v2.core._event_destination_create_params import ( + EventDestinationCreateParams as EventDestinationCreateParams, + EventDestinationCreateParamsAmazonEventbridge as EventDestinationCreateParamsAmazonEventbridge, + EventDestinationCreateParamsWebhookEndpoint as EventDestinationCreateParamsWebhookEndpoint, + ) + from stripe.params.v2.core._event_destination_delete_params import ( + EventDestinationDeleteParams as EventDestinationDeleteParams, + ) + from stripe.params.v2.core._event_destination_disable_params import ( + EventDestinationDisableParams as EventDestinationDisableParams, + ) + from stripe.params.v2.core._event_destination_enable_params import ( + EventDestinationEnableParams as EventDestinationEnableParams, + ) + from stripe.params.v2.core._event_destination_list_params import ( + EventDestinationListParams as EventDestinationListParams, + ) + from stripe.params.v2.core._event_destination_ping_params import ( + EventDestinationPingParams as EventDestinationPingParams, + ) + from stripe.params.v2.core._event_destination_retrieve_params import ( + EventDestinationRetrieveParams as EventDestinationRetrieveParams, + ) + from stripe.params.v2.core._event_destination_update_params import ( + EventDestinationUpdateParams as EventDestinationUpdateParams, + EventDestinationUpdateParamsWebhookEndpoint as EventDestinationUpdateParamsWebhookEndpoint, + ) + from stripe.params.v2.core._event_list_params import ( + EventListParams as EventListParams, + ) + from stripe.params.v2.core._event_retrieve_params import ( + EventRetrieveParams as EventRetrieveParams, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "EventDestinationCreateParams": ( + "stripe.params.v2.core._event_destination_create_params", + False, + ), + "EventDestinationCreateParamsAmazonEventbridge": ( + "stripe.params.v2.core._event_destination_create_params", + False, + ), + "EventDestinationCreateParamsWebhookEndpoint": ( + "stripe.params.v2.core._event_destination_create_params", + False, + ), + "EventDestinationDeleteParams": ( + "stripe.params.v2.core._event_destination_delete_params", + False, + ), + "EventDestinationDisableParams": ( + "stripe.params.v2.core._event_destination_disable_params", + False, + ), + "EventDestinationEnableParams": ( + "stripe.params.v2.core._event_destination_enable_params", + False, + ), + "EventDestinationListParams": ( + "stripe.params.v2.core._event_destination_list_params", + False, + ), + "EventDestinationPingParams": ( + "stripe.params.v2.core._event_destination_ping_params", + False, + ), + "EventDestinationRetrieveParams": ( + "stripe.params.v2.core._event_destination_retrieve_params", + False, + ), + "EventDestinationUpdateParams": ( + "stripe.params.v2.core._event_destination_update_params", + False, + ), + "EventDestinationUpdateParamsWebhookEndpoint": ( + "stripe.params.v2.core._event_destination_update_params", + False, + ), + "EventListParams": ("stripe.params.v2.core._event_list_params", False), + "EventRetrieveParams": ( + "stripe.params.v2.core._event_retrieve_params", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..cd5add85 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_create_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_create_params.cpython-312.pyc new file mode 100644 index 00000000..f23bc71b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_create_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_delete_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_delete_params.cpython-312.pyc new file mode 100644 index 00000000..28579af3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_delete_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_disable_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_disable_params.cpython-312.pyc new file mode 100644 index 00000000..33382ec2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_disable_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_enable_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_enable_params.cpython-312.pyc new file mode 100644 index 00000000..e7d08700 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_enable_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_list_params.cpython-312.pyc new file mode 100644 index 00000000..91011300 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_ping_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_ping_params.cpython-312.pyc new file mode 100644 index 00000000..c2fe5b14 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_ping_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..cdb72ea3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_update_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_update_params.cpython-312.pyc new file mode 100644 index 00000000..2b9d2f63 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_destination_update_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_list_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_list_params.cpython-312.pyc new file mode 100644 index 00000000..23c15524 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_list_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_retrieve_params.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_retrieve_params.cpython-312.pyc new file mode 100644 index 00000000..7df4a308 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/__pycache__/_event_retrieve_params.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_create_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_create_params.py new file mode 100644 index 00000000..63aee13e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_create_params.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List +from typing_extensions import Literal, NotRequired, TypedDict + + +class EventDestinationCreateParams(TypedDict): + description: NotRequired[str] + """ + An optional description of what the event destination is used for. + """ + enabled_events: List[str] + """ + The list of events to enable for this endpoint. + """ + event_payload: Literal["snapshot", "thin"] + """ + Payload type of events being subscribed to. + """ + events_from: NotRequired[List[Literal["other_accounts", "self"]]] + """ + Where events should be routed from. + """ + include: NotRequired[ + List[ + Literal["webhook_endpoint.signing_secret", "webhook_endpoint.url"] + ] + ] + """ + Additional fields to include in the response. + """ + metadata: NotRequired[Dict[str, str]] + """ + Metadata. + """ + name: str + """ + Event destination name. + """ + snapshot_api_version: NotRequired[str] + """ + If using the snapshot event payload, the API version events are rendered as. + """ + type: Literal["amazon_eventbridge", "webhook_endpoint"] + """ + Event destination type. + """ + amazon_eventbridge: NotRequired[ + "EventDestinationCreateParamsAmazonEventbridge" + ] + """ + Amazon EventBridge configuration. + """ + webhook_endpoint: NotRequired[ + "EventDestinationCreateParamsWebhookEndpoint" + ] + """ + Webhook endpoint configuration. + """ + + +class EventDestinationCreateParamsAmazonEventbridge(TypedDict): + aws_account_id: str + """ + The AWS account ID. + """ + aws_region: str + """ + The region of the AWS event source. + """ + + +class EventDestinationCreateParamsWebhookEndpoint(TypedDict): + url: str + """ + The URL of the webhook endpoint. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_delete_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_delete_params.py new file mode 100644 index 00000000..d8393ade --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_delete_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class EventDestinationDeleteParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_disable_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_disable_params.py new file mode 100644 index 00000000..e5c8fd24 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_disable_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class EventDestinationDisableParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_enable_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_enable_params.py new file mode 100644 index 00000000..8da0fc3a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_enable_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class EventDestinationEnableParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_list_params.py new file mode 100644 index 00000000..c0320468 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_list_params.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class EventDestinationListParams(TypedDict): + include: NotRequired[List[Literal["webhook_endpoint.url"]]] + """ + Additional fields to include in the response. Currently supports `webhook_endpoint.url`. + """ + limit: NotRequired[int] + """ + The page size. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_ping_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_ping_params.py new file mode 100644 index 00000000..745aa1ec --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_ping_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class EventDestinationPingParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_retrieve_params.py new file mode 100644 index 00000000..d43606b1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_retrieve_params.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import Literal, NotRequired, TypedDict + + +class EventDestinationRetrieveParams(TypedDict): + include: NotRequired[List[Literal["webhook_endpoint.url"]]] + """ + Additional fields to include in the response. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_update_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_update_params.py new file mode 100644 index 00000000..6bd71e40 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_destination_update_params.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import Dict, List, Optional +from typing_extensions import Literal, NotRequired, TypedDict + + +class EventDestinationUpdateParams(TypedDict): + description: NotRequired[str] + """ + An optional description of what the event destination is used for. + """ + enabled_events: NotRequired[List[str]] + """ + The list of events to enable for this endpoint. + """ + include: NotRequired[List[Literal["webhook_endpoint.url"]]] + """ + Additional fields to include in the response. Currently supports `webhook_endpoint.url`. + """ + metadata: NotRequired[Dict[str, Optional[str]]] + """ + Metadata. + """ + name: NotRequired[str] + """ + Event destination name. + """ + webhook_endpoint: NotRequired[ + "EventDestinationUpdateParamsWebhookEndpoint" + ] + """ + Webhook endpoint configuration. + """ + + +class EventDestinationUpdateParamsWebhookEndpoint(TypedDict): + url: str + """ + The URL of the webhook endpoint. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_list_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_list_params.py new file mode 100644 index 00000000..da7f9604 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_list_params.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class EventListParams(TypedDict): + gt: NotRequired[str] + """ + Filter for events created after the specified timestamp. + """ + gte: NotRequired[str] + """ + Filter for events created at or after the specified timestamp. + """ + limit: NotRequired[int] + """ + The page size. + """ + lt: NotRequired[str] + """ + Filter for events created before the specified timestamp. + """ + lte: NotRequired[str] + """ + Filter for events created at or before the specified timestamp. + """ + object_id: NotRequired[str] + """ + Primary object ID used to retrieve related events. + """ + types: NotRequired[List[str]] + """ + An array of up to 20 strings containing specific event names. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_retrieve_params.py b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_retrieve_params.py new file mode 100644 index 00000000..4684f39b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/params/v2/core/_event_retrieve_params.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from typing_extensions import TypedDict + + +class EventRetrieveParams(TypedDict): + pass diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/py.typed b/Backend/venv/lib/python3.12/site-packages/stripe/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__init__.py new file mode 100644 index 00000000..836089ae --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__init__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.radar._early_fraud_warning import ( + EarlyFraudWarning as EarlyFraudWarning, + ) + from stripe.radar._early_fraud_warning_service import ( + EarlyFraudWarningService as EarlyFraudWarningService, + ) + from stripe.radar._value_list import ValueList as ValueList + from stripe.radar._value_list_item import ValueListItem as ValueListItem + from stripe.radar._value_list_item_service import ( + ValueListItemService as ValueListItemService, + ) + from stripe.radar._value_list_service import ( + ValueListService as ValueListService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "EarlyFraudWarning": ("stripe.radar._early_fraud_warning", False), + "EarlyFraudWarningService": ( + "stripe.radar._early_fraud_warning_service", + False, + ), + "ValueList": ("stripe.radar._value_list", False), + "ValueListItem": ("stripe.radar._value_list_item", False), + "ValueListItemService": ("stripe.radar._value_list_item_service", False), + "ValueListService": ("stripe.radar._value_list_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..b0279e0b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_early_fraud_warning.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_early_fraud_warning.cpython-312.pyc new file mode 100644 index 00000000..9a855956 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_early_fraud_warning.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_early_fraud_warning_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_early_fraud_warning_service.cpython-312.pyc new file mode 100644 index 00000000..1d8a9fc5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_early_fraud_warning_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list.cpython-312.pyc new file mode 100644 index 00000000..b27b7dd3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_item.cpython-312.pyc new file mode 100644 index 00000000..7a612d02 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_item_service.cpython-312.pyc new file mode 100644 index 00000000..f268a148 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_service.cpython-312.pyc new file mode 100644 index 00000000..c85b6f9a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/radar/__pycache__/_value_list_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/_early_fraud_warning.py b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_early_fraud_warning.py new file mode 100644 index 00000000..14d60429 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_early_fraud_warning.py @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from typing import ClassVar, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._charge import Charge + from stripe._payment_intent import PaymentIntent + from stripe.params.radar._early_fraud_warning_list_params import ( + EarlyFraudWarningListParams, + ) + from stripe.params.radar._early_fraud_warning_retrieve_params import ( + EarlyFraudWarningRetrieveParams, + ) + + +class EarlyFraudWarning(ListableAPIResource["EarlyFraudWarning"]): + """ + An early fraud warning indicates that the card issuer has notified us that a + charge may be fraudulent. + + Related guide: [Early fraud warnings](https://stripe.com/docs/disputes/measuring#early-fraud-warnings) + """ + + OBJECT_NAME: ClassVar[Literal["radar.early_fraud_warning"]] = ( + "radar.early_fraud_warning" + ) + actionable: bool + """ + An EFW is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an EFW, in order to avoid receiving a dispute later. + """ + charge: ExpandableField["Charge"] + """ + ID of the charge this early fraud warning is for, optionally expanded. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + fraud_type: str + """ + The type of fraud labelled by the issuer. One of `card_never_received`, `fraudulent_card_application`, `made_with_counterfeit_card`, `made_with_lost_card`, `made_with_stolen_card`, `misc`, `unauthorized_use_of_card`. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["radar.early_fraud_warning"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + ID of the Payment Intent this early fraud warning is for, optionally expanded. + """ + + @classmethod + def list( + cls, **params: Unpack["EarlyFraudWarningListParams"] + ) -> ListObject["EarlyFraudWarning"]: + """ + Returns a list of early fraud warnings. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["EarlyFraudWarningListParams"] + ) -> ListObject["EarlyFraudWarning"]: + """ + Returns a list of early fraud warnings. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["EarlyFraudWarningRetrieveParams"] + ) -> "EarlyFraudWarning": + """ + Retrieves the details of an early fraud warning that has previously been created. + + Please refer to the [early fraud warning](https://docs.stripe.com/api#early_fraud_warning_object) object reference for more details. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["EarlyFraudWarningRetrieveParams"] + ) -> "EarlyFraudWarning": + """ + Retrieves the details of an early fraud warning that has previously been created. + + Please refer to the [early fraud warning](https://docs.stripe.com/api#early_fraud_warning_object) object reference for more details. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/_early_fraud_warning_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_early_fraud_warning_service.py new file mode 100644 index 00000000..b5f909c0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_early_fraud_warning_service.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.radar._early_fraud_warning_list_params import ( + EarlyFraudWarningListParams, + ) + from stripe.params.radar._early_fraud_warning_retrieve_params import ( + EarlyFraudWarningRetrieveParams, + ) + from stripe.radar._early_fraud_warning import EarlyFraudWarning + + +class EarlyFraudWarningService(StripeService): + def list( + self, + params: Optional["EarlyFraudWarningListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[EarlyFraudWarning]": + """ + Returns a list of early fraud warnings. + """ + return cast( + "ListObject[EarlyFraudWarning]", + self._request( + "get", + "/v1/radar/early_fraud_warnings", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["EarlyFraudWarningListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[EarlyFraudWarning]": + """ + Returns a list of early fraud warnings. + """ + return cast( + "ListObject[EarlyFraudWarning]", + await self._request_async( + "get", + "/v1/radar/early_fraud_warnings", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + early_fraud_warning: str, + params: Optional["EarlyFraudWarningRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EarlyFraudWarning": + """ + Retrieves the details of an early fraud warning that has previously been created. + + Please refer to the [early fraud warning](https://docs.stripe.com/api#early_fraud_warning_object) object reference for more details. + """ + return cast( + "EarlyFraudWarning", + self._request( + "get", + "/v1/radar/early_fraud_warnings/{early_fraud_warning}".format( + early_fraud_warning=sanitize_id(early_fraud_warning), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + early_fraud_warning: str, + params: Optional["EarlyFraudWarningRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EarlyFraudWarning": + """ + Retrieves the details of an early fraud warning that has previously been created. + + Please refer to the [early fraud warning](https://docs.stripe.com/api#early_fraud_warning_object) object reference for more details. + """ + return cast( + "EarlyFraudWarning", + await self._request_async( + "get", + "/v1/radar/early_fraud_warnings/{early_fraud_warning}".format( + early_fraud_warning=sanitize_id(early_fraud_warning), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list.py b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list.py new file mode 100644 index 00000000..eb9623d1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list.py @@ -0,0 +1,318 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.radar._value_list_create_params import ( + ValueListCreateParams, + ) + from stripe.params.radar._value_list_delete_params import ( + ValueListDeleteParams, + ) + from stripe.params.radar._value_list_list_params import ValueListListParams + from stripe.params.radar._value_list_modify_params import ( + ValueListModifyParams, + ) + from stripe.params.radar._value_list_retrieve_params import ( + ValueListRetrieveParams, + ) + from stripe.radar._value_list_item import ValueListItem + + +class ValueList( + CreateableAPIResource["ValueList"], + DeletableAPIResource["ValueList"], + ListableAPIResource["ValueList"], + UpdateableAPIResource["ValueList"], +): + """ + Value lists allow you to group values together which can then be referenced in rules. + + Related guide: [Default Stripe lists](https://stripe.com/docs/radar/lists#managing-list-items) + """ + + OBJECT_NAME: ClassVar[Literal["radar.value_list"]] = "radar.value_list" + alias: str + """ + The name of the value list for use in rules. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + created_by: str + """ + The name or email address of the user who created this value list. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + id: str + """ + Unique identifier for the object. + """ + item_type: Literal[ + "card_bin", + "card_fingerprint", + "case_sensitive_string", + "country", + "customer_id", + "email", + "ip_address", + "sepa_debit_fingerprint", + "string", + "us_bank_account_fingerprint", + ] + """ + The type of items in the value list. One of `card_fingerprint`, `card_bin`, `email`, `ip_address`, `country`, `string`, `case_sensitive_string`, `customer_id`, `sepa_debit_fingerprint`, or `us_bank_account_fingerprint`. + """ + list_items: ListObject["ValueListItem"] + """ + List of items contained within this value list. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + name: str + """ + The name of the value list. + """ + object: Literal["radar.value_list"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + + @classmethod + def create(cls, **params: Unpack["ValueListCreateParams"]) -> "ValueList": + """ + Creates a new ValueList object, which can then be referenced in rules. + """ + return cast( + "ValueList", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ValueListCreateParams"] + ) -> "ValueList": + """ + Creates a new ValueList object, which can then be referenced in rules. + """ + return cast( + "ValueList", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["ValueListDeleteParams"] + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "ValueList", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["ValueListDeleteParams"] + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + ... + + @overload + def delete(self, **params: Unpack["ValueListDeleteParams"]) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ValueListDeleteParams"] + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["ValueListDeleteParams"] + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "ValueList", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["ValueListDeleteParams"] + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["ValueListDeleteParams"] + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ValueListDeleteParams"] + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["ValueListListParams"] + ) -> ListObject["ValueList"]: + """ + Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ValueListListParams"] + ) -> ListObject["ValueList"]: + """ + Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["ValueListModifyParams"] + ) -> "ValueList": + """ + Updates a ValueList object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Note that item_type is immutable. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "ValueList", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["ValueListModifyParams"] + ) -> "ValueList": + """ + Updates a ValueList object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Note that item_type is immutable. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "ValueList", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ValueListRetrieveParams"] + ) -> "ValueList": + """ + Retrieves a ValueList object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ValueListRetrieveParams"] + ) -> "ValueList": + """ + Retrieves a ValueList object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_item.py new file mode 100644 index 00000000..6ef11fe6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_item.py @@ -0,0 +1,263 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.radar._value_list_item_create_params import ( + ValueListItemCreateParams, + ) + from stripe.params.radar._value_list_item_delete_params import ( + ValueListItemDeleteParams, + ) + from stripe.params.radar._value_list_item_list_params import ( + ValueListItemListParams, + ) + from stripe.params.radar._value_list_item_retrieve_params import ( + ValueListItemRetrieveParams, + ) + + +class ValueListItem( + CreateableAPIResource["ValueListItem"], + DeletableAPIResource["ValueListItem"], + ListableAPIResource["ValueListItem"], +): + """ + Value list items allow you to add specific values to a given Radar value list, which can then be used in rules. + + Related guide: [Managing list items](https://stripe.com/docs/radar/lists#managing-list-items) + """ + + OBJECT_NAME: ClassVar[Literal["radar.value_list_item"]] = ( + "radar.value_list_item" + ) + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + created_by: str + """ + The name or email address of the user who added this item to the value list. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["radar.value_list_item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + value: str + """ + The value of the item. + """ + value_list: str + """ + The identifier of the value list this item belongs to. + """ + + @classmethod + def create( + cls, **params: Unpack["ValueListItemCreateParams"] + ) -> "ValueListItem": + """ + Creates a new ValueListItem object, which is added to the specified parent value list. + """ + return cast( + "ValueListItem", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ValueListItemCreateParams"] + ) -> "ValueListItem": + """ + Creates a new ValueListItem object, which is added to the specified parent value list. + """ + return cast( + "ValueListItem", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "ValueListItem", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + ... + + @overload + def delete( + self, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "ValueListItem", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ValueListItemDeleteParams"] + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["ValueListItemListParams"] + ) -> ListObject["ValueListItem"]: + """ + Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ValueListItemListParams"] + ) -> ListObject["ValueListItem"]: + """ + Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ValueListItemRetrieveParams"] + ) -> "ValueListItem": + """ + Retrieves a ValueListItem object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ValueListItemRetrieveParams"] + ) -> "ValueListItem": + """ + Retrieves a ValueListItem object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_item_service.py new file mode 100644 index 00000000..30637272 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_item_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.radar._value_list_item_create_params import ( + ValueListItemCreateParams, + ) + from stripe.params.radar._value_list_item_delete_params import ( + ValueListItemDeleteParams, + ) + from stripe.params.radar._value_list_item_list_params import ( + ValueListItemListParams, + ) + from stripe.params.radar._value_list_item_retrieve_params import ( + ValueListItemRetrieveParams, + ) + from stripe.radar._value_list_item import ValueListItem + + +class ValueListItemService(StripeService): + def delete( + self, + item: str, + params: Optional["ValueListItemDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + return cast( + "ValueListItem", + self._request( + "delete", + "/v1/radar/value_list_items/{item}".format( + item=sanitize_id(item), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + item: str, + params: Optional["ValueListItemDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueListItem": + """ + Deletes a ValueListItem object, removing it from its parent value list. + """ + return cast( + "ValueListItem", + await self._request_async( + "delete", + "/v1/radar/value_list_items/{item}".format( + item=sanitize_id(item), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + item: str, + params: Optional["ValueListItemRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueListItem": + """ + Retrieves a ValueListItem object. + """ + return cast( + "ValueListItem", + self._request( + "get", + "/v1/radar/value_list_items/{item}".format( + item=sanitize_id(item), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + item: str, + params: Optional["ValueListItemRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueListItem": + """ + Retrieves a ValueListItem object. + """ + return cast( + "ValueListItem", + await self._request_async( + "get", + "/v1/radar/value_list_items/{item}".format( + item=sanitize_id(item), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: "ValueListItemListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ValueListItem]": + """ + Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[ValueListItem]", + self._request( + "get", + "/v1/radar/value_list_items", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "ValueListItemListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ValueListItem]": + """ + Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[ValueListItem]", + await self._request_async( + "get", + "/v1/radar/value_list_items", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ValueListItemCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ValueListItem": + """ + Creates a new ValueListItem object, which is added to the specified parent value list. + """ + return cast( + "ValueListItem", + self._request( + "post", + "/v1/radar/value_list_items", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ValueListItemCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ValueListItem": + """ + Creates a new ValueListItem object, which is added to the specified parent value list. + """ + return cast( + "ValueListItem", + await self._request_async( + "post", + "/v1/radar/value_list_items", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_service.py new file mode 100644 index 00000000..637cb2ca --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/radar/_value_list_service.py @@ -0,0 +1,234 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.radar._value_list_create_params import ( + ValueListCreateParams, + ) + from stripe.params.radar._value_list_delete_params import ( + ValueListDeleteParams, + ) + from stripe.params.radar._value_list_list_params import ValueListListParams + from stripe.params.radar._value_list_retrieve_params import ( + ValueListRetrieveParams, + ) + from stripe.params.radar._value_list_update_params import ( + ValueListUpdateParams, + ) + from stripe.radar._value_list import ValueList + + +class ValueListService(StripeService): + def delete( + self, + value_list: str, + params: Optional["ValueListDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + return cast( + "ValueList", + self._request( + "delete", + "/v1/radar/value_lists/{value_list}".format( + value_list=sanitize_id(value_list), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + value_list: str, + params: Optional["ValueListDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules. + """ + return cast( + "ValueList", + await self._request_async( + "delete", + "/v1/radar/value_lists/{value_list}".format( + value_list=sanitize_id(value_list), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + value_list: str, + params: Optional["ValueListRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Retrieves a ValueList object. + """ + return cast( + "ValueList", + self._request( + "get", + "/v1/radar/value_lists/{value_list}".format( + value_list=sanitize_id(value_list), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + value_list: str, + params: Optional["ValueListRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Retrieves a ValueList object. + """ + return cast( + "ValueList", + await self._request_async( + "get", + "/v1/radar/value_lists/{value_list}".format( + value_list=sanitize_id(value_list), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + value_list: str, + params: Optional["ValueListUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Updates a ValueList object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Note that item_type is immutable. + """ + return cast( + "ValueList", + self._request( + "post", + "/v1/radar/value_lists/{value_list}".format( + value_list=sanitize_id(value_list), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + value_list: str, + params: Optional["ValueListUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Updates a ValueList object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Note that item_type is immutable. + """ + return cast( + "ValueList", + await self._request_async( + "post", + "/v1/radar/value_lists/{value_list}".format( + value_list=sanitize_id(value_list), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["ValueListListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ValueList]": + """ + Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[ValueList]", + self._request( + "get", + "/v1/radar/value_lists", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ValueListListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ValueList]": + """ + Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. + """ + return cast( + "ListObject[ValueList]", + await self._request_async( + "get", + "/v1/radar/value_lists", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ValueListCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Creates a new ValueList object, which can then be referenced in rules. + """ + return cast( + "ValueList", + self._request( + "post", + "/v1/radar/value_lists", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ValueListCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ValueList": + """ + Creates a new ValueList object, which can then be referenced in rules. + """ + return cast( + "ValueList", + await self._request_async( + "post", + "/v1/radar/value_lists", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__init__.py new file mode 100644 index 00000000..44a709eb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__init__.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.reporting._report_run import ReportRun as ReportRun + from stripe.reporting._report_run_service import ( + ReportRunService as ReportRunService, + ) + from stripe.reporting._report_type import ReportType as ReportType + from stripe.reporting._report_type_service import ( + ReportTypeService as ReportTypeService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ReportRun": ("stripe.reporting._report_run", False), + "ReportRunService": ("stripe.reporting._report_run_service", False), + "ReportType": ("stripe.reporting._report_type", False), + "ReportTypeService": ("stripe.reporting._report_type_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..7918c7dc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_run.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_run.cpython-312.pyc new file mode 100644 index 00000000..dd066f18 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_run.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_run_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_run_service.cpython-312.pyc new file mode 100644 index 00000000..86d09f5a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_run_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_type.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_type.cpython-312.pyc new file mode 100644 index 00000000..9cb729b6 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_type.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_type_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_type_service.cpython-312.pyc new file mode 100644 index 00000000..9be9fb65 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/__pycache__/_report_type_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_run.py b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_run.py new file mode 100644 index 00000000..aba84bc9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_run.py @@ -0,0 +1,211 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + from stripe.params.reporting._report_run_create_params import ( + ReportRunCreateParams, + ) + from stripe.params.reporting._report_run_list_params import ( + ReportRunListParams, + ) + from stripe.params.reporting._report_run_retrieve_params import ( + ReportRunRetrieveParams, + ) + + +class ReportRun( + CreateableAPIResource["ReportRun"], + ListableAPIResource["ReportRun"], +): + """ + The Report Run object represents an instance of a report type generated with + specific run parameters. Once the object is created, Stripe begins processing the report. + When the report has finished running, it will give you a reference to a file + where you can retrieve your results. For an overview, see + [API Access to Reports](https://stripe.com/docs/reporting/statements/api). + + Note that certain report types can only be run based on your live-mode data (not test-mode + data), and will error when queried without a [live-mode API key](https://stripe.com/docs/keys#test-live-modes). + """ + + OBJECT_NAME: ClassVar[Literal["reporting.report_run"]] = ( + "reporting.report_run" + ) + + class Parameters(StripeObject): + columns: Optional[List[str]] + """ + The set of output columns requested for inclusion in the report run. + """ + connected_account: Optional[str] + """ + Connected account ID by which to filter the report run. + """ + currency: Optional[str] + """ + Currency of objects to be included in the report run. + """ + interval_end: Optional[int] + """ + Ending timestamp of data to be included in the report run. Can be any UTC timestamp between 1 second after the user specified `interval_start` and 1 second before this report's last `data_available_end` value. + """ + interval_start: Optional[int] + """ + Starting timestamp of data to be included in the report run. Can be any UTC timestamp between 1 second after this report's `data_available_start` and 1 second before the user specified `interval_end` value. + """ + payout: Optional[str] + """ + Payout ID by which to filter the report run. + """ + reporting_category: Optional[str] + """ + Category of balance transactions to be included in the report run. + """ + timezone: Optional[str] + """ + Defaults to `Etc/UTC`. The output timezone for all timestamps in the report. A list of possible time zone values is maintained at the [IANA Time Zone Database](http://www.iana.org/time-zones). Has no effect on `interval_start` or `interval_end`. + """ + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + error: Optional[str] + """ + If something should go wrong during the run, a message about the failure (populated when + `status=failed`). + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + `true` if the report is run on live mode data and `false` if it is run on test mode data. + """ + object: Literal["reporting.report_run"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + parameters: Parameters + report_type: str + """ + The ID of the [report type](https://stripe.com/docs/reports/report-types) to run, such as `"balance.summary.1"`. + """ + result: Optional["File"] + """ + The file object representing the result of the report run (populated when + `status=succeeded`). + """ + status: str + """ + Status of this report run. This will be `pending` when the run is initially created. + When the run finishes, this will be set to `succeeded` and the `result` field will be populated. + Rarely, we may encounter an error, at which point this will be set to `failed` and the `error` field will be populated. + """ + succeeded_at: Optional[int] + """ + Timestamp at which this run successfully finished (populated when + `status=succeeded`). Measured in seconds since the Unix epoch. + """ + + @classmethod + def create(cls, **params: Unpack["ReportRunCreateParams"]) -> "ReportRun": + """ + Creates a new object and begin running the report. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + return cast( + "ReportRun", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ReportRunCreateParams"] + ) -> "ReportRun": + """ + Creates a new object and begin running the report. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + return cast( + "ReportRun", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["ReportRunListParams"] + ) -> ListObject["ReportRun"]: + """ + Returns a list of Report Runs, with the most recent appearing first. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ReportRunListParams"] + ) -> ListObject["ReportRun"]: + """ + Returns a list of Report Runs, with the most recent appearing first. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ReportRunRetrieveParams"] + ) -> "ReportRun": + """ + Retrieves the details of an existing Report Run. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ReportRunRetrieveParams"] + ) -> "ReportRun": + """ + Retrieves the details of an existing Report Run. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"parameters": Parameters} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_run_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_run_service.py new file mode 100644 index 00000000..40ab869b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_run_service.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.reporting._report_run_create_params import ( + ReportRunCreateParams, + ) + from stripe.params.reporting._report_run_list_params import ( + ReportRunListParams, + ) + from stripe.params.reporting._report_run_retrieve_params import ( + ReportRunRetrieveParams, + ) + from stripe.reporting._report_run import ReportRun + + +class ReportRunService(StripeService): + def list( + self, + params: Optional["ReportRunListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReportRun]": + """ + Returns a list of Report Runs, with the most recent appearing first. + """ + return cast( + "ListObject[ReportRun]", + self._request( + "get", + "/v1/reporting/report_runs", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ReportRunListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReportRun]": + """ + Returns a list of Report Runs, with the most recent appearing first. + """ + return cast( + "ListObject[ReportRun]", + await self._request_async( + "get", + "/v1/reporting/report_runs", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ReportRunCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ReportRun": + """ + Creates a new object and begin running the report. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + return cast( + "ReportRun", + self._request( + "post", + "/v1/reporting/report_runs", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ReportRunCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ReportRun": + """ + Creates a new object and begin running the report. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + return cast( + "ReportRun", + await self._request_async( + "post", + "/v1/reporting/report_runs", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + report_run: str, + params: Optional["ReportRunRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReportRun": + """ + Retrieves the details of an existing Report Run. + """ + return cast( + "ReportRun", + self._request( + "get", + "/v1/reporting/report_runs/{report_run}".format( + report_run=sanitize_id(report_run), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + report_run: str, + params: Optional["ReportRunRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReportRun": + """ + Retrieves the details of an existing Report Run. + """ + return cast( + "ReportRun", + await self._request_async( + "get", + "/v1/reporting/report_runs/{report_run}".format( + report_run=sanitize_id(report_run), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_type.py b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_type.py new file mode 100644 index 00000000..8d765a76 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_type.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from typing import ClassVar, List, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.reporting._report_type_list_params import ( + ReportTypeListParams, + ) + from stripe.params.reporting._report_type_retrieve_params import ( + ReportTypeRetrieveParams, + ) + + +class ReportType(ListableAPIResource["ReportType"]): + """ + The Report Type resource corresponds to a particular type of report, such as + the "Activity summary" or "Itemized payouts" reports. These objects are + identified by an ID belonging to a set of enumerated values. See + [API Access to Reports documentation](https://stripe.com/docs/reporting/statements/api) + for those Report Type IDs, along with required and optional parameters. + + Note that certain report types can only be run based on your live-mode data (not test-mode + data), and will error when queried without a [live-mode API key](https://stripe.com/docs/keys#test-live-modes). + """ + + OBJECT_NAME: ClassVar[Literal["reporting.report_type"]] = ( + "reporting.report_type" + ) + data_available_end: int + """ + Most recent time for which this Report Type is available. Measured in seconds since the Unix epoch. + """ + data_available_start: int + """ + Earliest time for which this Report Type is available. Measured in seconds since the Unix epoch. + """ + default_columns: Optional[List[str]] + """ + List of column names that are included by default when this Report Type gets run. (If the Report Type doesn't support the `columns` parameter, this will be null.) + """ + id: str + """ + The [ID of the Report Type](https://stripe.com/docs/reporting/statements/api#available-report-types), such as `balance.summary.1`. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + name: str + """ + Human-readable name of the Report Type + """ + object: Literal["reporting.report_type"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + updated: int + """ + When this Report Type was latest updated. Measured in seconds since the Unix epoch. + """ + version: int + """ + Version of the Report Type. Different versions report with the same ID will have the same purpose, but may take different run parameters or have different result schemas. + """ + + @classmethod + def list( + cls, **params: Unpack["ReportTypeListParams"] + ) -> ListObject["ReportType"]: + """ + Returns a full list of Report Types. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ReportTypeListParams"] + ) -> ListObject["ReportType"]: + """ + Returns a full list of Report Types. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ReportTypeRetrieveParams"] + ) -> "ReportType": + """ + Retrieves the details of a Report Type. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ReportTypeRetrieveParams"] + ) -> "ReportType": + """ + Retrieves the details of a Report Type. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_type_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_type_service.py new file mode 100644 index 00000000..d3d93e13 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/reporting/_report_type_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.reporting._report_type_list_params import ( + ReportTypeListParams, + ) + from stripe.params.reporting._report_type_retrieve_params import ( + ReportTypeRetrieveParams, + ) + from stripe.reporting._report_type import ReportType + + +class ReportTypeService(StripeService): + def list( + self, + params: Optional["ReportTypeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReportType]": + """ + Returns a full list of Report Types. + """ + return cast( + "ListObject[ReportType]", + self._request( + "get", + "/v1/reporting/report_types", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ReportTypeListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReportType]": + """ + Returns a full list of Report Types. + """ + return cast( + "ListObject[ReportType]", + await self._request_async( + "get", + "/v1/reporting/report_types", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + report_type: str, + params: Optional["ReportTypeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReportType": + """ + Retrieves the details of a Report Type. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + return cast( + "ReportType", + self._request( + "get", + "/v1/reporting/report_types/{report_type}".format( + report_type=sanitize_id(report_type), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + report_type: str, + params: Optional["ReportTypeRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReportType": + """ + Retrieves the details of a Report Type. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) + """ + return cast( + "ReportType", + await self._request_async( + "get", + "/v1/reporting/report_types/{report_type}".format( + report_type=sanitize_id(report_type), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__init__.py new file mode 100644 index 00000000..b0321bce --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__init__.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.sigma._scheduled_query_run import ( + ScheduledQueryRun as ScheduledQueryRun, + ) + from stripe.sigma._scheduled_query_run_service import ( + ScheduledQueryRunService as ScheduledQueryRunService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ScheduledQueryRun": ("stripe.sigma._scheduled_query_run", False), + "ScheduledQueryRunService": ( + "stripe.sigma._scheduled_query_run_service", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..98fa79a8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/_scheduled_query_run.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/_scheduled_query_run.cpython-312.pyc new file mode 100644 index 00000000..c999ab13 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/_scheduled_query_run.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/_scheduled_query_run_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/_scheduled_query_run_service.cpython-312.pyc new file mode 100644 index 00000000..e72c3fd0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/__pycache__/_scheduled_query_run_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/sigma/_scheduled_query_run.py b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/_scheduled_query_run.py new file mode 100644 index 00000000..7aa8a2f2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/_scheduled_query_run.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + from stripe.params.sigma._scheduled_query_run_list_params import ( + ScheduledQueryRunListParams, + ) + from stripe.params.sigma._scheduled_query_run_retrieve_params import ( + ScheduledQueryRunRetrieveParams, + ) + + +class ScheduledQueryRun(ListableAPIResource["ScheduledQueryRun"]): + """ + If you have [scheduled a Sigma query](https://stripe.com/docs/sigma/scheduled-queries), you'll + receive a `sigma.scheduled_query_run.created` webhook each time the query + runs. The webhook contains a `ScheduledQueryRun` object, which you can use to + retrieve the query results. + """ + + OBJECT_NAME: ClassVar[Literal["scheduled_query_run"]] = ( + "scheduled_query_run" + ) + + class Error(StripeObject): + message: str + """ + Information about the run failure. + """ + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + data_load_time: int + """ + When the query was run, Sigma contained a snapshot of your Stripe data at this time. + """ + error: Optional[Error] + file: Optional["File"] + """ + The file object representing the results of the query. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["scheduled_query_run"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + result_available_until: int + """ + Time at which the result expires and is no longer available for download. + """ + sql: str + """ + SQL for the query. + """ + status: str + """ + The query's execution status, which will be `completed` for successful runs, and `canceled`, `failed`, or `timed_out` otherwise. + """ + title: str + """ + Title of the query. + """ + + @classmethod + def list( + cls, **params: Unpack["ScheduledQueryRunListParams"] + ) -> ListObject["ScheduledQueryRun"]: + """ + Returns a list of scheduled query runs. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ScheduledQueryRunListParams"] + ) -> ListObject["ScheduledQueryRun"]: + """ + Returns a list of scheduled query runs. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ScheduledQueryRunRetrieveParams"] + ) -> "ScheduledQueryRun": + """ + Retrieves the details of an scheduled query run. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ScheduledQueryRunRetrieveParams"] + ) -> "ScheduledQueryRun": + """ + Retrieves the details of an scheduled query run. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def class_url(cls): + return "/v1/sigma/scheduled_query_runs" + + _inner_class_types = {"error": Error} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/sigma/_scheduled_query_run_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/_scheduled_query_run_service.py new file mode 100644 index 00000000..33d81725 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/sigma/_scheduled_query_run_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.sigma._scheduled_query_run_list_params import ( + ScheduledQueryRunListParams, + ) + from stripe.params.sigma._scheduled_query_run_retrieve_params import ( + ScheduledQueryRunRetrieveParams, + ) + from stripe.sigma._scheduled_query_run import ScheduledQueryRun + + +class ScheduledQueryRunService(StripeService): + def list( + self, + params: Optional["ScheduledQueryRunListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ScheduledQueryRun]": + """ + Returns a list of scheduled query runs. + """ + return cast( + "ListObject[ScheduledQueryRun]", + self._request( + "get", + "/v1/sigma/scheduled_query_runs", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ScheduledQueryRunListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ScheduledQueryRun]": + """ + Returns a list of scheduled query runs. + """ + return cast( + "ListObject[ScheduledQueryRun]", + await self._request_async( + "get", + "/v1/sigma/scheduled_query_runs", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + scheduled_query_run: str, + params: Optional["ScheduledQueryRunRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ScheduledQueryRun": + """ + Retrieves the details of an scheduled query run. + """ + return cast( + "ScheduledQueryRun", + self._request( + "get", + "/v1/sigma/scheduled_query_runs/{scheduled_query_run}".format( + scheduled_query_run=sanitize_id(scheduled_query_run), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + scheduled_query_run: str, + params: Optional["ScheduledQueryRunRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ScheduledQueryRun": + """ + Retrieves the details of an scheduled query run. + """ + return cast( + "ScheduledQueryRun", + await self._request_async( + "get", + "/v1/sigma/scheduled_query_runs/{scheduled_query_run}".format( + scheduled_query_run=sanitize_id(scheduled_query_run), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__init__.py new file mode 100644 index 00000000..c0ca8e21 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__init__.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.tax._calculation import Calculation as Calculation + from stripe.tax._calculation_line_item import ( + CalculationLineItem as CalculationLineItem, + ) + from stripe.tax._calculation_line_item_service import ( + CalculationLineItemService as CalculationLineItemService, + ) + from stripe.tax._calculation_service import ( + CalculationService as CalculationService, + ) + from stripe.tax._registration import Registration as Registration + from stripe.tax._registration_service import ( + RegistrationService as RegistrationService, + ) + from stripe.tax._settings import Settings as Settings + from stripe.tax._settings_service import SettingsService as SettingsService + from stripe.tax._transaction import Transaction as Transaction + from stripe.tax._transaction_line_item import ( + TransactionLineItem as TransactionLineItem, + ) + from stripe.tax._transaction_line_item_service import ( + TransactionLineItemService as TransactionLineItemService, + ) + from stripe.tax._transaction_service import ( + TransactionService as TransactionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "Calculation": ("stripe.tax._calculation", False), + "CalculationLineItem": ("stripe.tax._calculation_line_item", False), + "CalculationLineItemService": ( + "stripe.tax._calculation_line_item_service", + False, + ), + "CalculationService": ("stripe.tax._calculation_service", False), + "Registration": ("stripe.tax._registration", False), + "RegistrationService": ("stripe.tax._registration_service", False), + "Settings": ("stripe.tax._settings", False), + "SettingsService": ("stripe.tax._settings_service", False), + "Transaction": ("stripe.tax._transaction", False), + "TransactionLineItem": ("stripe.tax._transaction_line_item", False), + "TransactionLineItemService": ( + "stripe.tax._transaction_line_item_service", + False, + ), + "TransactionService": ("stripe.tax._transaction_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..21911b21 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation.cpython-312.pyc new file mode 100644 index 00000000..b4a7216f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_line_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_line_item.cpython-312.pyc new file mode 100644 index 00000000..61d4d1b2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_line_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..5600e070 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_service.cpython-312.pyc new file mode 100644 index 00000000..fa015445 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_calculation_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_registration.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_registration.cpython-312.pyc new file mode 100644 index 00000000..e1d9e778 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_registration.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_registration_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_registration_service.cpython-312.pyc new file mode 100644 index 00000000..f1779fb5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_registration_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_settings.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_settings.cpython-312.pyc new file mode 100644 index 00000000..f8199da4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_settings.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_settings_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_settings_service.cpython-312.pyc new file mode 100644 index 00000000..b624d311 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_settings_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction.cpython-312.pyc new file mode 100644 index 00000000..321904f4 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_line_item.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_line_item.cpython-312.pyc new file mode 100644 index 00000000..a59d68e3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_line_item.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_line_item_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_line_item_service.cpython-312.pyc new file mode 100644 index 00000000..26cd571c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_line_item_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..cf0caa7f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/tax/__pycache__/_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation.py new file mode 100644 index 00000000..f3a19992 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation.py @@ -0,0 +1,675 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.tax._calculation_create_params import ( + CalculationCreateParams, + ) + from stripe.params.tax._calculation_list_line_items_params import ( + CalculationListLineItemsParams, + ) + from stripe.params.tax._calculation_retrieve_params import ( + CalculationRetrieveParams, + ) + from stripe.tax._calculation_line_item import CalculationLineItem + + +class Calculation(CreateableAPIResource["Calculation"]): + """ + A Tax Calculation allows you to calculate the tax to collect from your customer. + + Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom) + """ + + OBJECT_NAME: ClassVar[Literal["tax.calculation"]] = "tax.calculation" + + class CustomerDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX". + """ + + class TaxId(StripeObject): + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "unknown", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, `aw_tin`, `az_tin`, `bd_bin`, `bj_ifu`, `et_tin`, `kg_tin`, `la_tin`, `cm_niu`, `cv_nif`, `bf_ifu`, or `unknown` + """ + value: str + """ + The value of the tax ID. + """ + + address: Optional[Address] + """ + The customer's postal address (for example, home or business location). + """ + address_source: Optional[Literal["billing", "shipping"]] + """ + The type of customer address provided. + """ + ip_address: Optional[str] + """ + The customer's IP address (IPv4 or IPv6). + """ + tax_ids: List[TaxId] + """ + The customer's tax IDs (for example, EU VAT numbers). + """ + taxability_override: Literal[ + "customer_exempt", "none", "reverse_charge" + ] + """ + The taxability override used for taxation. + """ + _inner_class_types = {"address": Address, "tax_ids": TaxId} + + class ShipFromDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX". + """ + + address: Address + _inner_class_types = {"address": Address} + + class ShippingCost(StripeObject): + class TaxBreakdown(StripeObject): + class Jurisdiction(StripeObject): + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + display_name: str + """ + A human-readable name for the jurisdiction imposing the tax. + """ + level: Literal[ + "city", "country", "county", "district", "state" + ] + """ + Indicates the level of the jurisdiction imposing the tax. + """ + state: Optional[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States. + """ + + class TaxRateDetails(StripeObject): + display_name: str + """ + A localized display name for tax type, intended to be human-readable. For example, "Local Sales and Use Tax", "Value-added tax (VAT)", or "Umsatzsteuer (USt.)". + """ + percentage_decimal: str + """ + The tax rate percentage as a string. For example, 8.5% is represented as "8.5". + """ + tax_type: Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + """ + The tax type, such as `vat` or `sales_tax`. + """ + + amount: int + """ + The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + jurisdiction: Jurisdiction + sourcing: Literal["destination", "origin"] + """ + Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address). + """ + tax_rate_details: Optional[TaxRateDetails] + """ + Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax. + """ + taxability_reason: Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + _inner_class_types = { + "jurisdiction": Jurisdiction, + "tax_rate_details": TaxRateDetails, + } + + amount: int + """ + The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount. + """ + amount_tax: int + """ + The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + shipping_rate: Optional[str] + """ + The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object). + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes. + """ + tax_breakdown: Optional[List[TaxBreakdown]] + """ + Detailed account of taxes relevant to shipping cost. + """ + tax_code: str + """ + The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping. + """ + _inner_class_types = {"tax_breakdown": TaxBreakdown} + + class TaxBreakdown(StripeObject): + class TaxRateDetails(StripeObject): + class FlatAmount(StripeObject): + amount: int + """ + Amount of the tax when the `rate_type` is `flat_amount`. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99). + """ + currency: str + """ + Three-letter ISO currency code, in lowercase. + """ + + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + flat_amount: Optional[FlatAmount] + """ + The amount of the tax rate when the `rate_type` is `flat_amount`. Tax rates with `rate_type` `percentage` can vary based on the transaction, resulting in this field being `null`. This field exposes the amount and currency of the flat tax rate. + """ + percentage_decimal: str + """ + The tax rate percentage as a string. For example, 8.5% is represented as `"8.5"`. + """ + rate_type: Optional[Literal["flat_amount", "percentage"]] + """ + Indicates the type of tax rate applied to the taxable amount. This value can be `null` when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + tax_type: Optional[ + Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + ] + """ + The tax type, such as `vat` or `sales_tax`. + """ + _inner_class_types = {"flat_amount": FlatAmount} + + amount: int + """ + The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + inclusive: bool + """ + Specifies whether the tax amount is included in the line item amount. + """ + tax_rate_details: TaxRateDetails + taxability_reason: Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. We might extend the possible values for this field to support new tax rules. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + _inner_class_types = {"tax_rate_details": TaxRateDetails} + + amount_total: int + """ + Total amount after taxes in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: Optional[str] + """ + The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource. + """ + customer_details: CustomerDetails + expires_at: Optional[int] + """ + Timestamp of date at which the tax calculation will expire. + """ + id: Optional[str] + """ + Unique identifier for the calculation. + """ + line_items: Optional[ListObject["CalculationLineItem"]] + """ + The list of items the customer is purchasing. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["tax.calculation"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + ship_from_details: Optional[ShipFromDetails] + """ + The details of the ship from location, such as the address. + """ + shipping_cost: Optional[ShippingCost] + """ + The shipping cost details for the calculation. + """ + tax_amount_exclusive: int + """ + The amount of tax to be collected on top of the line item prices. + """ + tax_amount_inclusive: int + """ + The amount of tax already included in the line item prices. + """ + tax_breakdown: List[TaxBreakdown] + """ + Breakdown of individual tax amounts that add up to the total. + """ + tax_date: int + """ + Timestamp of date at which the tax rules and rates in effect applies for the calculation. + """ + + @classmethod + def create( + cls, **params: Unpack["CalculationCreateParams"] + ) -> "Calculation": + """ + Calculates tax based on the input and returns a Tax Calculation object. + """ + return cast( + "Calculation", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CalculationCreateParams"] + ) -> "Calculation": + """ + Calculates tax based on the input and returns a Tax Calculation object. + """ + return cast( + "Calculation", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_list_line_items( + cls, + calculation: str, + **params: Unpack["CalculationListLineItemsParams"], + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + return cast( + ListObject["CalculationLineItem"], + cls._static_request( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=sanitize_id(calculation) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_line_items( + calculation: str, **params: Unpack["CalculationListLineItemsParams"] + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + ... + + @overload + def list_line_items( + self, **params: Unpack["CalculationListLineItemsParams"] + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + ... + + @class_method_variant("_cls_list_line_items") + def list_line_items( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CalculationListLineItemsParams"] + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + return cast( + ListObject["CalculationLineItem"], + self._request( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_line_items_async( + cls, + calculation: str, + **params: Unpack["CalculationListLineItemsParams"], + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + return cast( + ListObject["CalculationLineItem"], + await cls._static_request_async( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=sanitize_id(calculation) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_line_items_async( + calculation: str, **params: Unpack["CalculationListLineItemsParams"] + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + ... + + @overload + async def list_line_items_async( + self, **params: Unpack["CalculationListLineItemsParams"] + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + ... + + @class_method_variant("_cls_list_line_items_async") + async def list_line_items_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["CalculationListLineItemsParams"] + ) -> ListObject["CalculationLineItem"]: + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + return cast( + ListObject["CalculationLineItem"], + await self._request_async( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CalculationRetrieveParams"] + ) -> "Calculation": + """ + Retrieves a Tax Calculation object, if the calculation hasn't expired. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CalculationRetrieveParams"] + ) -> "Calculation": + """ + Retrieves a Tax Calculation object, if the calculation hasn't expired. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "customer_details": CustomerDetails, + "ship_from_details": ShipFromDetails, + "shipping_cost": ShippingCost, + "tax_breakdown": TaxBreakdown, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_line_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_line_item.py new file mode 100644 index 00000000..7a62d267 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_line_item.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, List, Optional +from typing_extensions import Literal + + +class CalculationLineItem(StripeObject): + OBJECT_NAME: ClassVar[Literal["tax.calculation_line_item"]] = ( + "tax.calculation_line_item" + ) + + class TaxBreakdown(StripeObject): + class Jurisdiction(StripeObject): + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + display_name: str + """ + A human-readable name for the jurisdiction imposing the tax. + """ + level: Literal["city", "country", "county", "district", "state"] + """ + Indicates the level of the jurisdiction imposing the tax. + """ + state: Optional[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States. + """ + + class TaxRateDetails(StripeObject): + display_name: str + """ + A localized display name for tax type, intended to be human-readable. For example, "Local Sales and Use Tax", "Value-added tax (VAT)", or "Umsatzsteuer (USt.)". + """ + percentage_decimal: str + """ + The tax rate percentage as a string. For example, 8.5% is represented as "8.5". + """ + tax_type: Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + """ + The tax type, such as `vat` or `sales_tax`. + """ + + amount: int + """ + The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + jurisdiction: Jurisdiction + sourcing: Literal["destination", "origin"] + """ + Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address). + """ + tax_rate_details: Optional[TaxRateDetails] + """ + Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax. + """ + taxability_reason: Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + _inner_class_types = { + "jurisdiction": Jurisdiction, + "tax_rate_details": TaxRateDetails, + } + + amount: int + """ + The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount. + """ + amount_tax: int + """ + The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["tax.calculation_line_item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + product: Optional[str] + """ + The ID of an existing [Product](https://stripe.com/docs/api/products/object). + """ + quantity: int + """ + The number of units of the item being purchased. For reversals, this is the quantity reversed. + """ + reference: str + """ + A custom identifier for this line item. + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes. + """ + tax_breakdown: Optional[List[TaxBreakdown]] + """ + Detailed account of taxes relevant to this line item. + """ + tax_code: str + """ + The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource. + """ + _inner_class_types = {"tax_breakdown": TaxBreakdown} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_line_item_service.py new file mode 100644 index 00000000..48c946c4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_line_item_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.tax._calculation_line_item_list_params import ( + CalculationLineItemListParams, + ) + from stripe.tax._calculation_line_item import CalculationLineItem + + +class CalculationLineItemService(StripeService): + def list( + self, + calculation: str, + params: Optional["CalculationLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CalculationLineItem]": + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + return cast( + "ListObject[CalculationLineItem]", + self._request( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=sanitize_id(calculation), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + calculation: str, + params: Optional["CalculationLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CalculationLineItem]": + """ + Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired. + """ + return cast( + "ListObject[CalculationLineItem]", + await self._request_async( + "get", + "/v1/tax/calculations/{calculation}/line_items".format( + calculation=sanitize_id(calculation), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_service.py new file mode 100644 index 00000000..cddd0066 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_calculation_service.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.tax._calculation_create_params import ( + CalculationCreateParams, + ) + from stripe.params.tax._calculation_retrieve_params import ( + CalculationRetrieveParams, + ) + from stripe.tax._calculation import Calculation + from stripe.tax._calculation_line_item_service import ( + CalculationLineItemService, + ) + +_subservices = { + "line_items": [ + "stripe.tax._calculation_line_item_service", + "CalculationLineItemService", + ], +} + + +class CalculationService(StripeService): + line_items: "CalculationLineItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def retrieve( + self, + calculation: str, + params: Optional["CalculationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Calculation": + """ + Retrieves a Tax Calculation object, if the calculation hasn't expired. + """ + return cast( + "Calculation", + self._request( + "get", + "/v1/tax/calculations/{calculation}".format( + calculation=sanitize_id(calculation), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + calculation: str, + params: Optional["CalculationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Calculation": + """ + Retrieves a Tax Calculation object, if the calculation hasn't expired. + """ + return cast( + "Calculation", + await self._request_async( + "get", + "/v1/tax/calculations/{calculation}".format( + calculation=sanitize_id(calculation), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "CalculationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Calculation": + """ + Calculates tax based on the input and returns a Tax Calculation object. + """ + return cast( + "Calculation", + self._request( + "post", + "/v1/tax/calculations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "CalculationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Calculation": + """ + Calculates tax based on the input and returns a Tax Calculation object. + """ + return cast( + "Calculation", + await self._request_async( + "post", + "/v1/tax/calculations", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_registration.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_registration.py new file mode 100644 index 00000000..09bbc9c9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_registration.py @@ -0,0 +1,1406 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import sanitize_id +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.tax._registration_create_params import ( + RegistrationCreateParams, + ) + from stripe.params.tax._registration_list_params import ( + RegistrationListParams, + ) + from stripe.params.tax._registration_modify_params import ( + RegistrationModifyParams, + ) + from stripe.params.tax._registration_retrieve_params import ( + RegistrationRetrieveParams, + ) + + +class Registration( + CreateableAPIResource["Registration"], + ListableAPIResource["Registration"], + UpdateableAPIResource["Registration"], +): + """ + A Tax `Registration` lets us know that your business is registered to collect tax on payments within a region, enabling you to [automatically collect tax](https://stripe.com/docs/tax). + + Stripe doesn't register on your behalf with the relevant authorities when you create a Tax `Registration` object. For more information on how to register to collect tax, see [our guide](https://stripe.com/docs/tax/registering). + + Related guide: [Using the Registrations API](https://stripe.com/docs/tax/registrations-api) + """ + + OBJECT_NAME: ClassVar[Literal["tax.registration"]] = "tax.registration" + + class CountryOptions(StripeObject): + class Ae(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Al(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Am(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ao(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class At(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Au(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Aw(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Az(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ba(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Bb(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Bd(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Be(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Bf(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Bg(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Bh(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Bj(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Bs(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class By(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ca(StripeObject): + class ProvinceStandard(StripeObject): + province: str + """ + Two-letter CA province code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). + """ + + province_standard: Optional[ProvinceStandard] + type: Literal["province_standard", "simplified", "standard"] + """ + Type of registration in Canada. + """ + _inner_class_types = {"province_standard": ProvinceStandard} + + class Cd(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Ch(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Cl(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Cm(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Co(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Cr(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Cv(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Cy(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Cz(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class De(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Dk(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Ec(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ee(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Eg(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Es(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Et(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Fi(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Fr(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Gb(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Ge(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Gn(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Gr(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Hr(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Hu(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Id(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ie(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class In(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Is(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class It(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Jp(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Ke(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Kg(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Kh(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Kr(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Kz(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class La(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Lt(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Lu(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Lv(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Ma(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Md(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Me(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Mk(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Mr(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Mt(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Mx(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class My(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ng(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Nl(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class No(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Np(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Nz(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Om(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Pe(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ph(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Pl(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Pt(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Ro(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Rs(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Ru(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Sa(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Se(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Sg(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal["inbound_goods", "standard"] + """ + Place of supply scheme used in an Default standard registration. + """ + + standard: Optional[Standard] + type: Literal["standard"] + """ + Type of registration in `country`. + """ + _inner_class_types = {"standard": Standard} + + class Si(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Sk(StripeObject): + class Standard(StripeObject): + place_of_supply_scheme: Literal[ + "inbound_goods", "small_seller", "standard" + ] + """ + Place of supply scheme used in an EU standard registration. + """ + + standard: Optional[Standard] + type: Literal["ioss", "oss_non_union", "oss_union", "standard"] + """ + Type of registration in an EU country. + """ + _inner_class_types = {"standard": Standard} + + class Sn(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Sr(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Th(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Tj(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Tr(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Tw(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Tz(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ua(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Ug(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Us(StripeObject): + class LocalAmusementTax(StripeObject): + jurisdiction: str + """ + A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. + """ + + class LocalLeaseTax(StripeObject): + jurisdiction: str + """ + A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. + """ + + class StateSalesTax(StripeObject): + class Election(StripeObject): + jurisdiction: Optional[str] + """ + A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. + """ + type: Literal[ + "local_use_tax", + "simplified_sellers_use_tax", + "single_local_use_tax", + ] + """ + The type of the election for the state sales tax registration. + """ + + elections: Optional[List[Election]] + """ + Elections for the state sales tax registration. + """ + _inner_class_types = {"elections": Election} + + local_amusement_tax: Optional[LocalAmusementTax] + local_lease_tax: Optional[LocalLeaseTax] + state: str + """ + Two-letter US state code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). + """ + state_sales_tax: Optional[StateSalesTax] + type: Literal[ + "local_amusement_tax", + "local_lease_tax", + "state_communications_tax", + "state_retail_delivery_fee", + "state_sales_tax", + ] + """ + Type of registration in the US. + """ + _inner_class_types = { + "local_amusement_tax": LocalAmusementTax, + "local_lease_tax": LocalLeaseTax, + "state_sales_tax": StateSalesTax, + } + + class Uy(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Uz(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Vn(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Za(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + class Zm(StripeObject): + type: Literal["simplified"] + """ + Type of registration in `country`. + """ + + class Zw(StripeObject): + type: Literal["standard"] + """ + Type of registration in `country`. + """ + + ae: Optional[Ae] + al: Optional[Al] + am: Optional[Am] + ao: Optional[Ao] + at: Optional[At] + au: Optional[Au] + aw: Optional[Aw] + az: Optional[Az] + ba: Optional[Ba] + bb: Optional[Bb] + bd: Optional[Bd] + be: Optional[Be] + bf: Optional[Bf] + bg: Optional[Bg] + bh: Optional[Bh] + bj: Optional[Bj] + bs: Optional[Bs] + by: Optional[By] + ca: Optional[Ca] + cd: Optional[Cd] + ch: Optional[Ch] + cl: Optional[Cl] + cm: Optional[Cm] + co: Optional[Co] + cr: Optional[Cr] + cv: Optional[Cv] + cy: Optional[Cy] + cz: Optional[Cz] + de: Optional[De] + dk: Optional[Dk] + ec: Optional[Ec] + ee: Optional[Ee] + eg: Optional[Eg] + es: Optional[Es] + et: Optional[Et] + fi: Optional[Fi] + fr: Optional[Fr] + gb: Optional[Gb] + ge: Optional[Ge] + gn: Optional[Gn] + gr: Optional[Gr] + hr: Optional[Hr] + hu: Optional[Hu] + id: Optional[Id] + ie: Optional[Ie] + in_: Optional[In] + is_: Optional[Is] + it: Optional[It] + jp: Optional[Jp] + ke: Optional[Ke] + kg: Optional[Kg] + kh: Optional[Kh] + kr: Optional[Kr] + kz: Optional[Kz] + la: Optional[La] + lt: Optional[Lt] + lu: Optional[Lu] + lv: Optional[Lv] + ma: Optional[Ma] + md: Optional[Md] + me: Optional[Me] + mk: Optional[Mk] + mr: Optional[Mr] + mt: Optional[Mt] + mx: Optional[Mx] + my: Optional[My] + ng: Optional[Ng] + nl: Optional[Nl] + no: Optional[No] + np: Optional[Np] + nz: Optional[Nz] + om: Optional[Om] + pe: Optional[Pe] + ph: Optional[Ph] + pl: Optional[Pl] + pt: Optional[Pt] + ro: Optional[Ro] + rs: Optional[Rs] + ru: Optional[Ru] + sa: Optional[Sa] + se: Optional[Se] + sg: Optional[Sg] + si: Optional[Si] + sk: Optional[Sk] + sn: Optional[Sn] + sr: Optional[Sr] + th: Optional[Th] + tj: Optional[Tj] + tr: Optional[Tr] + tw: Optional[Tw] + tz: Optional[Tz] + ua: Optional[Ua] + ug: Optional[Ug] + us: Optional[Us] + uy: Optional[Uy] + uz: Optional[Uz] + vn: Optional[Vn] + za: Optional[Za] + zm: Optional[Zm] + zw: Optional[Zw] + _inner_class_types = { + "ae": Ae, + "al": Al, + "am": Am, + "ao": Ao, + "at": At, + "au": Au, + "aw": Aw, + "az": Az, + "ba": Ba, + "bb": Bb, + "bd": Bd, + "be": Be, + "bf": Bf, + "bg": Bg, + "bh": Bh, + "bj": Bj, + "bs": Bs, + "by": By, + "ca": Ca, + "cd": Cd, + "ch": Ch, + "cl": Cl, + "cm": Cm, + "co": Co, + "cr": Cr, + "cv": Cv, + "cy": Cy, + "cz": Cz, + "de": De, + "dk": Dk, + "ec": Ec, + "ee": Ee, + "eg": Eg, + "es": Es, + "et": Et, + "fi": Fi, + "fr": Fr, + "gb": Gb, + "ge": Ge, + "gn": Gn, + "gr": Gr, + "hr": Hr, + "hu": Hu, + "id": Id, + "ie": Ie, + "in": In, + "is": Is, + "it": It, + "jp": Jp, + "ke": Ke, + "kg": Kg, + "kh": Kh, + "kr": Kr, + "kz": Kz, + "la": La, + "lt": Lt, + "lu": Lu, + "lv": Lv, + "ma": Ma, + "md": Md, + "me": Me, + "mk": Mk, + "mr": Mr, + "mt": Mt, + "mx": Mx, + "my": My, + "ng": Ng, + "nl": Nl, + "no": No, + "np": Np, + "nz": Nz, + "om": Om, + "pe": Pe, + "ph": Ph, + "pl": Pl, + "pt": Pt, + "ro": Ro, + "rs": Rs, + "ru": Ru, + "sa": Sa, + "se": Se, + "sg": Sg, + "si": Si, + "sk": Sk, + "sn": Sn, + "sr": Sr, + "th": Th, + "tj": Tj, + "tr": Tr, + "tw": Tw, + "tz": Tz, + "ua": Ua, + "ug": Ug, + "us": Us, + "uy": Uy, + "uz": Uz, + "vn": Vn, + "za": Za, + "zm": Zm, + "zw": Zw, + } + _field_remappings = {"in_": "in", "is_": "is"} + + active_from: int + """ + Time at which the registration becomes active. Measured in seconds since the Unix epoch. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + country_options: CountryOptions + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + expires_at: Optional[int] + """ + If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. Measured in seconds since the Unix epoch. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["tax.registration"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["active", "expired", "scheduled"] + """ + The status of the registration. This field is present for convenience and can be deduced from `active_from` and `expires_at`. + """ + + @classmethod + def create( + cls, **params: Unpack["RegistrationCreateParams"] + ) -> "Registration": + """ + Creates a new Tax Registration object. + """ + return cast( + "Registration", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["RegistrationCreateParams"] + ) -> "Registration": + """ + Creates a new Tax Registration object. + """ + return cast( + "Registration", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["RegistrationListParams"] + ) -> ListObject["Registration"]: + """ + Returns a list of Tax Registration objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["RegistrationListParams"] + ) -> ListObject["Registration"]: + """ + Returns a list of Tax Registration objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["RegistrationModifyParams"] + ) -> "Registration": + """ + Updates an existing Tax Registration object. + + A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Registration", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["RegistrationModifyParams"] + ) -> "Registration": + """ + Updates an existing Tax Registration object. + + A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Registration", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["RegistrationRetrieveParams"] + ) -> "Registration": + """ + Returns a Tax Registration object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["RegistrationRetrieveParams"] + ) -> "Registration": + """ + Returns a Tax Registration object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"country_options": CountryOptions} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_registration_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_registration_service.py new file mode 100644 index 00000000..a85fd575 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_registration_service.py @@ -0,0 +1,185 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.tax._registration_create_params import ( + RegistrationCreateParams, + ) + from stripe.params.tax._registration_list_params import ( + RegistrationListParams, + ) + from stripe.params.tax._registration_retrieve_params import ( + RegistrationRetrieveParams, + ) + from stripe.params.tax._registration_update_params import ( + RegistrationUpdateParams, + ) + from stripe.tax._registration import Registration + + +class RegistrationService(StripeService): + def list( + self, + params: Optional["RegistrationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Registration]": + """ + Returns a list of Tax Registration objects. + """ + return cast( + "ListObject[Registration]", + self._request( + "get", + "/v1/tax/registrations", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["RegistrationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Registration]": + """ + Returns a list of Tax Registration objects. + """ + return cast( + "ListObject[Registration]", + await self._request_async( + "get", + "/v1/tax/registrations", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "RegistrationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Registration": + """ + Creates a new Tax Registration object. + """ + return cast( + "Registration", + self._request( + "post", + "/v1/tax/registrations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "RegistrationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Registration": + """ + Creates a new Tax Registration object. + """ + return cast( + "Registration", + await self._request_async( + "post", + "/v1/tax/registrations", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["RegistrationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Registration": + """ + Returns a Tax Registration object. + """ + return cast( + "Registration", + self._request( + "get", + "/v1/tax/registrations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["RegistrationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Registration": + """ + Returns a Tax Registration object. + """ + return cast( + "Registration", + await self._request_async( + "get", + "/v1/tax/registrations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + id: str, + params: Optional["RegistrationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Registration": + """ + Updates an existing Tax Registration object. + + A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at. + """ + return cast( + "Registration", + self._request( + "post", + "/v1/tax/registrations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: Optional["RegistrationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Registration": + """ + Updates an existing Tax Registration object. + + A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at. + """ + return cast( + "Registration", + await self._request_async( + "post", + "/v1/tax/registrations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_settings.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_settings.py new file mode 100644 index 00000000..c67ed2f9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_settings.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._singleton_api_resource import SingletonAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from typing import ClassVar, List, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.tax._settings_modify_params import SettingsModifyParams + from stripe.params.tax._settings_retrieve_params import ( + SettingsRetrieveParams, + ) + + +class Settings( + SingletonAPIResource["Settings"], + UpdateableAPIResource["Settings"], +): + """ + You can use Tax `Settings` to manage configurations used by Stripe Tax calculations. + + Related guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api) + """ + + OBJECT_NAME: ClassVar[Literal["tax.settings"]] = "tax.settings" + + class Defaults(StripeObject): + provider: Literal["anrok", "avalara", "sphere", "stripe"] + """ + The tax calculation provider this account uses. Defaults to `stripe` when not using a [third-party provider](https://docs.stripe.com/tax/third-party-apps). + """ + tax_behavior: Optional[ + Literal["exclusive", "inclusive", "inferred_by_currency"] + ] + """ + Default [tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#tax-behavior) used to specify whether the price is considered inclusive of taxes or exclusive of taxes. If the item's price has a tax behavior set, it will take precedence over the default tax behavior. + """ + tax_code: Optional[str] + """ + Default [tax code](https://stripe.com/docs/tax/tax-categories) used to classify your products and prices. + """ + + class HeadOffice(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + _inner_class_types = {"address": Address} + + class StatusDetails(StripeObject): + class Active(StripeObject): + pass + + class Pending(StripeObject): + missing_fields: Optional[List[str]] + """ + The list of missing fields that are required to perform calculations. It includes the entry `head_office` when the status is `pending`. It is recommended to set the optional values even if they aren't listed as required for calculating taxes. Calculations can fail if missing fields aren't explicitly provided on every call. + """ + + active: Optional[Active] + pending: Optional[Pending] + _inner_class_types = {"active": Active, "pending": Pending} + + defaults: Defaults + head_office: Optional[HeadOffice] + """ + The place where your business is located. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["tax.settings"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["active", "pending"] + """ + The status of the Tax `Settings`. + """ + status_details: StatusDetails + + @classmethod + def modify(cls, **params: Unpack["SettingsModifyParams"]) -> "Settings": + """ + Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set. + """ + return cast( + "Settings", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, **params: Unpack["SettingsModifyParams"] + ) -> "Settings": + """ + Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set. + """ + return cast( + "Settings", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, **params: Unpack["SettingsRetrieveParams"] + ) -> "Settings": + """ + Retrieves Tax Settings for a merchant. + """ + instance = cls(None, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, **params: Unpack["SettingsRetrieveParams"] + ) -> "Settings": + """ + Retrieves Tax Settings for a merchant. + """ + instance = cls(None, **params) + await instance.refresh_async() + return instance + + @classmethod + def class_url(cls): + return "/v1/tax/settings" + + _inner_class_types = { + "defaults": Defaults, + "head_office": HeadOffice, + "status_details": StatusDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_settings_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_settings_service.py new file mode 100644 index 00000000..fa998167 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_settings_service.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.tax._settings_retrieve_params import ( + SettingsRetrieveParams, + ) + from stripe.params.tax._settings_update_params import SettingsUpdateParams + from stripe.tax._settings import Settings + + +class SettingsService(StripeService): + def retrieve( + self, + params: Optional["SettingsRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Settings": + """ + Retrieves Tax Settings for a merchant. + """ + return cast( + "Settings", + self._request( + "get", + "/v1/tax/settings", + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + params: Optional["SettingsRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Settings": + """ + Retrieves Tax Settings for a merchant. + """ + return cast( + "Settings", + await self._request_async( + "get", + "/v1/tax/settings", + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + params: Optional["SettingsUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Settings": + """ + Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set. + """ + return cast( + "Settings", + self._request( + "post", + "/v1/tax/settings", + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + params: Optional["SettingsUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Settings": + """ + Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set. + """ + return cast( + "Settings", + await self._request_async( + "post", + "/v1/tax/settings", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction.py new file mode 100644 index 00000000..d2851fee --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction.py @@ -0,0 +1,630 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._api_resource import APIResource +from stripe._list_object import ListObject +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.tax._transaction_create_from_calculation_params import ( + TransactionCreateFromCalculationParams, + ) + from stripe.params.tax._transaction_create_reversal_params import ( + TransactionCreateReversalParams, + ) + from stripe.params.tax._transaction_list_line_items_params import ( + TransactionListLineItemsParams, + ) + from stripe.params.tax._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + from stripe.tax._transaction_line_item import TransactionLineItem + + +class Transaction(APIResource["Transaction"]): + """ + A Tax Transaction records the tax collected from or refunded to your customer. + + Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction) + """ + + OBJECT_NAME: ClassVar[Literal["tax.transaction"]] = "tax.transaction" + + class CustomerDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX". + """ + + class TaxId(StripeObject): + type: Literal[ + "ad_nrt", + "ae_trn", + "al_tin", + "am_tin", + "ao_tin", + "ar_cuit", + "au_abn", + "au_arn", + "aw_tin", + "az_tin", + "ba_tin", + "bb_tin", + "bd_bin", + "bf_ifu", + "bg_uic", + "bh_vat", + "bj_ifu", + "bo_tin", + "br_cnpj", + "br_cpf", + "bs_tin", + "by_tin", + "ca_bn", + "ca_gst_hst", + "ca_pst_bc", + "ca_pst_mb", + "ca_pst_sk", + "ca_qst", + "cd_nif", + "ch_uid", + "ch_vat", + "cl_tin", + "cm_niu", + "cn_tin", + "co_nit", + "cr_tin", + "cv_nif", + "de_stn", + "do_rcn", + "ec_ruc", + "eg_tin", + "es_cif", + "et_tin", + "eu_oss_vat", + "eu_vat", + "gb_vat", + "ge_vat", + "gn_nif", + "hk_br", + "hr_oib", + "hu_tin", + "id_npwp", + "il_vat", + "in_gst", + "is_vat", + "jp_cn", + "jp_rn", + "jp_trn", + "ke_pin", + "kg_tin", + "kh_tin", + "kr_brn", + "kz_bin", + "la_tin", + "li_uid", + "li_vat", + "ma_vat", + "md_vat", + "me_pib", + "mk_vat", + "mr_nif", + "mx_rfc", + "my_frp", + "my_itn", + "my_sst", + "ng_tin", + "no_vat", + "no_voec", + "np_pan", + "nz_gst", + "om_vat", + "pe_ruc", + "ph_tin", + "ro_tin", + "rs_pib", + "ru_inn", + "ru_kpp", + "sa_vat", + "sg_gst", + "sg_uen", + "si_tin", + "sn_ninea", + "sr_fin", + "sv_nit", + "th_vat", + "tj_tin", + "tr_tin", + "tw_vat", + "tz_vat", + "ua_vat", + "ug_tin", + "unknown", + "us_ein", + "uy_ruc", + "uz_tin", + "uz_vat", + "ve_rif", + "vn_tin", + "za_vat", + "zm_tin", + "zw_tin", + ] + """ + The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, `aw_tin`, `az_tin`, `bd_bin`, `bj_ifu`, `et_tin`, `kg_tin`, `la_tin`, `cm_niu`, `cv_nif`, `bf_ifu`, or `unknown` + """ + value: str + """ + The value of the tax ID. + """ + + address: Optional[Address] + """ + The customer's postal address (for example, home or business location). + """ + address_source: Optional[Literal["billing", "shipping"]] + """ + The type of customer address provided. + """ + ip_address: Optional[str] + """ + The customer's IP address (IPv4 or IPv6). + """ + tax_ids: List[TaxId] + """ + The customer's tax IDs (for example, EU VAT numbers). + """ + taxability_override: Literal[ + "customer_exempt", "none", "reverse_charge" + ] + """ + The taxability override used for taxation. + """ + _inner_class_types = {"address": Address, "tax_ids": TaxId} + + class Reversal(StripeObject): + original_transaction: Optional[str] + """ + The `id` of the reversed `Transaction` object. + """ + + class ShipFromDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix, such as "NY" or "TX". + """ + + address: Address + _inner_class_types = {"address": Address} + + class ShippingCost(StripeObject): + class TaxBreakdown(StripeObject): + class Jurisdiction(StripeObject): + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + display_name: str + """ + A human-readable name for the jurisdiction imposing the tax. + """ + level: Literal[ + "city", "country", "county", "district", "state" + ] + """ + Indicates the level of the jurisdiction imposing the tax. + """ + state: Optional[str] + """ + [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States. + """ + + class TaxRateDetails(StripeObject): + display_name: str + """ + A localized display name for tax type, intended to be human-readable. For example, "Local Sales and Use Tax", "Value-added tax (VAT)", or "Umsatzsteuer (USt.)". + """ + percentage_decimal: str + """ + The tax rate percentage as a string. For example, 8.5% is represented as "8.5". + """ + tax_type: Literal[ + "amusement_tax", + "communications_tax", + "gst", + "hst", + "igst", + "jct", + "lease_tax", + "pst", + "qst", + "retail_delivery_fee", + "rst", + "sales_tax", + "service_tax", + "vat", + ] + """ + The tax type, such as `vat` or `sales_tax`. + """ + + amount: int + """ + The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + jurisdiction: Jurisdiction + sourcing: Literal["destination", "origin"] + """ + Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address). + """ + tax_rate_details: Optional[TaxRateDetails] + """ + Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax. + """ + taxability_reason: Literal[ + "customer_exempt", + "not_collecting", + "not_subject_to_tax", + "not_supported", + "portion_product_exempt", + "portion_reduced_rated", + "portion_standard_rated", + "product_exempt", + "product_exempt_holiday", + "proportionally_rated", + "reduced_rated", + "reverse_charge", + "standard_rated", + "taxable_basis_reduced", + "zero_rated", + ] + """ + The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported. + """ + taxable_amount: int + """ + The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + _inner_class_types = { + "jurisdiction": Jurisdiction, + "tax_rate_details": TaxRateDetails, + } + + amount: int + """ + The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount. + """ + amount_tax: int + """ + The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + shipping_rate: Optional[str] + """ + The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object). + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes. + """ + tax_breakdown: Optional[List[TaxBreakdown]] + """ + Detailed account of taxes relevant to shipping cost. (It is not populated for the transaction resource object and will be removed in the next API version.) + """ + tax_code: str + """ + The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping. + """ + _inner_class_types = {"tax_breakdown": TaxBreakdown} + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: Optional[str] + """ + The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource. + """ + customer_details: CustomerDetails + id: str + """ + Unique identifier for the transaction. + """ + line_items: Optional[ListObject["TransactionLineItem"]] + """ + The tax collected or refunded, by line item. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["tax.transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + posted_at: int + """ + The Unix timestamp representing when the tax liability is assumed or reduced. + """ + reference: str + """ + A custom unique identifier, such as 'myOrder_123'. + """ + reversal: Optional[Reversal] + """ + If `type=reversal`, contains information about what was reversed. + """ + ship_from_details: Optional[ShipFromDetails] + """ + The details of the ship from location, such as the address. + """ + shipping_cost: Optional[ShippingCost] + """ + The shipping cost details for the transaction. + """ + tax_date: int + """ + Timestamp of date at which the tax rules and rates in effect applies for the calculation. + """ + type: Literal["reversal", "transaction"] + """ + If `reversal`, this transaction reverses an earlier transaction. + """ + + @classmethod + def create_from_calculation( + cls, **params: Unpack["TransactionCreateFromCalculationParams"] + ) -> "Transaction": + """ + Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days. + """ + return cast( + "Transaction", + cls._static_request( + "post", + "/v1/tax/transactions/create_from_calculation", + params=params, + ), + ) + + @classmethod + async def create_from_calculation_async( + cls, **params: Unpack["TransactionCreateFromCalculationParams"] + ) -> "Transaction": + """ + Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days. + """ + return cast( + "Transaction", + await cls._static_request_async( + "post", + "/v1/tax/transactions/create_from_calculation", + params=params, + ), + ) + + @classmethod + def create_reversal( + cls, **params: Unpack["TransactionCreateReversalParams"] + ) -> "Transaction": + """ + Partially or fully reverses a previously created Transaction. + """ + return cast( + "Transaction", + cls._static_request( + "post", + "/v1/tax/transactions/create_reversal", + params=params, + ), + ) + + @classmethod + async def create_reversal_async( + cls, **params: Unpack["TransactionCreateReversalParams"] + ) -> "Transaction": + """ + Partially or fully reverses a previously created Transaction. + """ + return cast( + "Transaction", + await cls._static_request_async( + "post", + "/v1/tax/transactions/create_reversal", + params=params, + ), + ) + + @classmethod + def _cls_list_line_items( + cls, + transaction: str, + **params: Unpack["TransactionListLineItemsParams"], + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + return cast( + ListObject["TransactionLineItem"], + cls._static_request( + "get", + "/v1/tax/transactions/{transaction}/line_items".format( + transaction=sanitize_id(transaction) + ), + params=params, + ), + ) + + @overload + @staticmethod + def list_line_items( + transaction: str, **params: Unpack["TransactionListLineItemsParams"] + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + ... + + @overload + def list_line_items( + self, **params: Unpack["TransactionListLineItemsParams"] + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + ... + + @class_method_variant("_cls_list_line_items") + def list_line_items( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TransactionListLineItemsParams"] + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + return cast( + ListObject["TransactionLineItem"], + self._request( + "get", + "/v1/tax/transactions/{transaction}/line_items".format( + transaction=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_list_line_items_async( + cls, + transaction: str, + **params: Unpack["TransactionListLineItemsParams"], + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + return cast( + ListObject["TransactionLineItem"], + await cls._static_request_async( + "get", + "/v1/tax/transactions/{transaction}/line_items".format( + transaction=sanitize_id(transaction) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def list_line_items_async( + transaction: str, **params: Unpack["TransactionListLineItemsParams"] + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + ... + + @overload + async def list_line_items_async( + self, **params: Unpack["TransactionListLineItemsParams"] + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + ... + + @class_method_variant("_cls_list_line_items_async") + async def list_line_items_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TransactionListLineItemsParams"] + ) -> ListObject["TransactionLineItem"]: + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + return cast( + ListObject["TransactionLineItem"], + await self._request_async( + "get", + "/v1/tax/transactions/{transaction}/line_items".format( + transaction=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves a Tax Transaction object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves a Tax Transaction object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "customer_details": CustomerDetails, + "reversal": Reversal, + "ship_from_details": ShipFromDetails, + "shipping_cost": ShippingCost, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_line_item.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_line_item.py new file mode 100644 index 00000000..87c817b3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_line_item.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, Optional +from typing_extensions import Literal + + +class TransactionLineItem(StripeObject): + OBJECT_NAME: ClassVar[Literal["tax.transaction_line_item"]] = ( + "tax.transaction_line_item" + ) + + class Reversal(StripeObject): + original_line_item: str + """ + The `id` of the line item to reverse in the original transaction. + """ + + amount: int + """ + The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount. + """ + amount_tax: int + """ + The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["tax.transaction_line_item"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + product: Optional[str] + """ + The ID of an existing [Product](https://stripe.com/docs/api/products/object). + """ + quantity: int + """ + The number of units of the item being purchased. For reversals, this is the quantity reversed. + """ + reference: str + """ + A custom identifier for this line item in the transaction. + """ + reversal: Optional[Reversal] + """ + If `type=reversal`, contains information about what was reversed. + """ + tax_behavior: Literal["exclusive", "inclusive"] + """ + Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes. + """ + tax_code: str + """ + The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource. + """ + type: Literal["reversal", "transaction"] + """ + If `reversal`, this line item reverses an earlier transaction. + """ + _inner_class_types = {"reversal": Reversal} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_line_item_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_line_item_service.py new file mode 100644 index 00000000..2393374b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_line_item_service.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.tax._transaction_line_item_list_params import ( + TransactionLineItemListParams, + ) + from stripe.tax._transaction_line_item import TransactionLineItem + + +class TransactionLineItemService(StripeService): + def list( + self, + transaction: str, + params: Optional["TransactionLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TransactionLineItem]": + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + return cast( + "ListObject[TransactionLineItem]", + self._request( + "get", + "/v1/tax/transactions/{transaction}/line_items".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + transaction: str, + params: Optional["TransactionLineItemListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TransactionLineItem]": + """ + Retrieves the line items of a committed standalone transaction as a collection. + """ + return cast( + "ListObject[TransactionLineItem]", + await self._request_async( + "get", + "/v1/tax/transactions/{transaction}/line_items".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_service.py new file mode 100644 index 00000000..83397d61 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/tax/_transaction_service.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.tax._transaction_create_from_calculation_params import ( + TransactionCreateFromCalculationParams, + ) + from stripe.params.tax._transaction_create_reversal_params import ( + TransactionCreateReversalParams, + ) + from stripe.params.tax._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + from stripe.tax._transaction import Transaction + from stripe.tax._transaction_line_item_service import ( + TransactionLineItemService, + ) + +_subservices = { + "line_items": [ + "stripe.tax._transaction_line_item_service", + "TransactionLineItemService", + ], +} + + +class TransactionService(StripeService): + line_items: "TransactionLineItemService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def retrieve( + self, + transaction: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves a Tax Transaction object. + """ + return cast( + "Transaction", + self._request( + "get", + "/v1/tax/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + transaction: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves a Tax Transaction object. + """ + return cast( + "Transaction", + await self._request_async( + "get", + "/v1/tax/transactions/{transaction}".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create_from_calculation( + self, + params: "TransactionCreateFromCalculationParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days. + """ + return cast( + "Transaction", + self._request( + "post", + "/v1/tax/transactions/create_from_calculation", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_from_calculation_async( + self, + params: "TransactionCreateFromCalculationParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days. + """ + return cast( + "Transaction", + await self._request_async( + "post", + "/v1/tax/transactions/create_from_calculation", + base_address="api", + params=params, + options=options, + ), + ) + + def create_reversal( + self, + params: "TransactionCreateReversalParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Partially or fully reverses a previously created Transaction. + """ + return cast( + "Transaction", + self._request( + "post", + "/v1/tax/transactions/create_reversal", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_reversal_async( + self, + params: "TransactionCreateReversalParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Partially or fully reverses a previously created Transaction. + """ + return cast( + "Transaction", + await self._request_async( + "post", + "/v1/tax/transactions/create_reversal", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__init__.py new file mode 100644 index 00000000..67fe3eb7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__init__.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.terminal._configuration import Configuration as Configuration + from stripe.terminal._configuration_service import ( + ConfigurationService as ConfigurationService, + ) + from stripe.terminal._connection_token import ( + ConnectionToken as ConnectionToken, + ) + from stripe.terminal._connection_token_service import ( + ConnectionTokenService as ConnectionTokenService, + ) + from stripe.terminal._location import Location as Location + from stripe.terminal._location_service import ( + LocationService as LocationService, + ) + from stripe.terminal._reader import Reader as Reader + from stripe.terminal._reader_service import ReaderService as ReaderService + +# name -> (import_target, is_submodule) +_import_map = { + "Configuration": ("stripe.terminal._configuration", False), + "ConfigurationService": ("stripe.terminal._configuration_service", False), + "ConnectionToken": ("stripe.terminal._connection_token", False), + "ConnectionTokenService": ( + "stripe.terminal._connection_token_service", + False, + ), + "Location": ("stripe.terminal._location", False), + "LocationService": ("stripe.terminal._location_service", False), + "Reader": ("stripe.terminal._reader", False), + "ReaderService": ("stripe.terminal._reader_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..47ea61ec Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_configuration.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_configuration.cpython-312.pyc new file mode 100644 index 00000000..21a05410 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_configuration.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_configuration_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_configuration_service.cpython-312.pyc new file mode 100644 index 00000000..83f59fd0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_configuration_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_connection_token.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_connection_token.cpython-312.pyc new file mode 100644 index 00000000..028a708c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_connection_token.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_connection_token_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_connection_token_service.cpython-312.pyc new file mode 100644 index 00000000..010332af Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_connection_token_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_location.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_location.cpython-312.pyc new file mode 100644 index 00000000..c37efb51 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_location.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_location_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_location_service.cpython-312.pyc new file mode 100644 index 00000000..cba85ea5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_location_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_reader.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_reader.cpython-312.pyc new file mode 100644 index 00000000..e2c02d20 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_reader.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_reader_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_reader_service.cpython-312.pyc new file mode 100644 index 00000000..9952e03b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/__pycache__/_reader_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_configuration.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_configuration.py new file mode 100644 index 00000000..d85a3381 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_configuration.py @@ -0,0 +1,778 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._file import File + from stripe.params.terminal._configuration_create_params import ( + ConfigurationCreateParams, + ) + from stripe.params.terminal._configuration_delete_params import ( + ConfigurationDeleteParams, + ) + from stripe.params.terminal._configuration_list_params import ( + ConfigurationListParams, + ) + from stripe.params.terminal._configuration_modify_params import ( + ConfigurationModifyParams, + ) + from stripe.params.terminal._configuration_retrieve_params import ( + ConfigurationRetrieveParams, + ) + + +class Configuration( + CreateableAPIResource["Configuration"], + DeletableAPIResource["Configuration"], + ListableAPIResource["Configuration"], + UpdateableAPIResource["Configuration"], +): + """ + A Configurations object represents how features should be configured for terminal readers. + For information about how to use it, see the [Terminal configurations documentation](https://docs.stripe.com/terminal/fleet/configurations-overview). + """ + + OBJECT_NAME: ClassVar[Literal["terminal.configuration"]] = ( + "terminal.configuration" + ) + + class BbposWisepad3(StripeObject): + splashscreen: Optional[ExpandableField["File"]] + """ + A File ID representing an image to display on the reader + """ + + class BbposWiseposE(StripeObject): + splashscreen: Optional[ExpandableField["File"]] + """ + A File ID representing an image to display on the reader + """ + + class Offline(StripeObject): + enabled: Optional[bool] + """ + Determines whether to allow transactions to be collected while reader is offline. Defaults to false. + """ + + class RebootWindow(StripeObject): + end_hour: int + """ + Integer between 0 to 23 that represents the end hour of the reboot time window. The value must be different than the start_hour. + """ + start_hour: int + """ + Integer between 0 to 23 that represents the start hour of the reboot time window. + """ + + class StripeS700(StripeObject): + splashscreen: Optional[ExpandableField["File"]] + """ + A File ID representing an image to display on the reader + """ + + class Tipping(StripeObject): + class Aed(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Aud(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Bgn(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Cad(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Chf(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Czk(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Dkk(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Eur(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Gbp(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Gip(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Hkd(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Huf(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Jpy(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Mxn(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Myr(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Nok(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Nzd(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Pln(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Ron(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Sek(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Sgd(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + class Usd(StripeObject): + fixed_amounts: Optional[List[int]] + """ + Fixed amounts displayed when collecting a tip + """ + percentages: Optional[List[int]] + """ + Percentages displayed when collecting a tip + """ + smart_tip_threshold: Optional[int] + """ + Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + """ + + aed: Optional[Aed] + aud: Optional[Aud] + bgn: Optional[Bgn] + cad: Optional[Cad] + chf: Optional[Chf] + czk: Optional[Czk] + dkk: Optional[Dkk] + eur: Optional[Eur] + gbp: Optional[Gbp] + gip: Optional[Gip] + hkd: Optional[Hkd] + huf: Optional[Huf] + jpy: Optional[Jpy] + mxn: Optional[Mxn] + myr: Optional[Myr] + nok: Optional[Nok] + nzd: Optional[Nzd] + pln: Optional[Pln] + ron: Optional[Ron] + sek: Optional[Sek] + sgd: Optional[Sgd] + usd: Optional[Usd] + _inner_class_types = { + "aed": Aed, + "aud": Aud, + "bgn": Bgn, + "cad": Cad, + "chf": Chf, + "czk": Czk, + "dkk": Dkk, + "eur": Eur, + "gbp": Gbp, + "gip": Gip, + "hkd": Hkd, + "huf": Huf, + "jpy": Jpy, + "mxn": Mxn, + "myr": Myr, + "nok": Nok, + "nzd": Nzd, + "pln": Pln, + "ron": Ron, + "sek": Sek, + "sgd": Sgd, + "usd": Usd, + } + + class VerifoneP400(StripeObject): + splashscreen: Optional[ExpandableField["File"]] + """ + A File ID representing an image to display on the reader + """ + + class Wifi(StripeObject): + class EnterpriseEapPeap(StripeObject): + ca_certificate_file: Optional[str] + """ + A File ID representing a PEM file containing the server certificate + """ + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ + username: str + """ + Username for connecting to the WiFi network + """ + + class EnterpriseEapTls(StripeObject): + ca_certificate_file: Optional[str] + """ + A File ID representing a PEM file containing the server certificate + """ + client_certificate_file: str + """ + A File ID representing a PEM file containing the client certificate + """ + private_key_file: str + """ + A File ID representing a PEM file containing the client RSA private key + """ + private_key_file_password: Optional[str] + """ + Password for the private key file + """ + ssid: str + """ + Name of the WiFi network + """ + + class PersonalPsk(StripeObject): + password: str + """ + Password for connecting to the WiFi network + """ + ssid: str + """ + Name of the WiFi network + """ + + enterprise_eap_peap: Optional[EnterpriseEapPeap] + enterprise_eap_tls: Optional[EnterpriseEapTls] + personal_psk: Optional[PersonalPsk] + type: Literal[ + "enterprise_eap_peap", "enterprise_eap_tls", "personal_psk" + ] + """ + Security type of the WiFi network. The hash with the corresponding name contains the credentials for this security type. + """ + _inner_class_types = { + "enterprise_eap_peap": EnterpriseEapPeap, + "enterprise_eap_tls": EnterpriseEapTls, + "personal_psk": PersonalPsk, + } + + bbpos_wisepad3: Optional[BbposWisepad3] + bbpos_wisepos_e: Optional[BbposWiseposE] + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + id: str + """ + Unique identifier for the object. + """ + is_account_default: Optional[bool] + """ + Whether this Configuration is the default for your account + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + name: Optional[str] + """ + String indicating the name of the Configuration object, set by the user + """ + object: Literal["terminal.configuration"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + offline: Optional[Offline] + reboot_window: Optional[RebootWindow] + stripe_s700: Optional[StripeS700] + tipping: Optional[Tipping] + verifone_p400: Optional[VerifoneP400] + wifi: Optional[Wifi] + + @classmethod + def create( + cls, **params: Unpack["ConfigurationCreateParams"] + ) -> "Configuration": + """ + Creates a new Configuration object. + """ + return cast( + "Configuration", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ConfigurationCreateParams"] + ) -> "Configuration": + """ + Creates a new Configuration object. + """ + return cast( + "Configuration", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Configuration", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + ... + + @overload + def delete( + self, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Configuration", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ConfigurationDeleteParams"] + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["ConfigurationListParams"] + ) -> ListObject["Configuration"]: + """ + Returns a list of Configuration objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ConfigurationListParams"] + ) -> ListObject["Configuration"]: + """ + Returns a list of Configuration objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["ConfigurationModifyParams"] + ) -> "Configuration": + """ + Updates a new Configuration object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Configuration", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["ConfigurationModifyParams"] + ) -> "Configuration": + """ + Updates a new Configuration object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Configuration", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ConfigurationRetrieveParams"] + ) -> "Configuration": + """ + Retrieves a Configuration object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ConfigurationRetrieveParams"] + ) -> "Configuration": + """ + Retrieves a Configuration object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "bbpos_wisepad3": BbposWisepad3, + "bbpos_wisepos_e": BbposWiseposE, + "offline": Offline, + "reboot_window": RebootWindow, + "stripe_s700": StripeS700, + "tipping": Tipping, + "verifone_p400": VerifoneP400, + "wifi": Wifi, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_configuration_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_configuration_service.py new file mode 100644 index 00000000..0d6f251e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_configuration_service.py @@ -0,0 +1,236 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.terminal._configuration_create_params import ( + ConfigurationCreateParams, + ) + from stripe.params.terminal._configuration_delete_params import ( + ConfigurationDeleteParams, + ) + from stripe.params.terminal._configuration_list_params import ( + ConfigurationListParams, + ) + from stripe.params.terminal._configuration_retrieve_params import ( + ConfigurationRetrieveParams, + ) + from stripe.params.terminal._configuration_update_params import ( + ConfigurationUpdateParams, + ) + from stripe.terminal._configuration import Configuration + + +class ConfigurationService(StripeService): + def delete( + self, + configuration: str, + params: Optional["ConfigurationDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + return cast( + "Configuration", + self._request( + "delete", + "/v1/terminal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + configuration: str, + params: Optional["ConfigurationDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Deletes a Configuration object. + """ + return cast( + "Configuration", + await self._request_async( + "delete", + "/v1/terminal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + configuration: str, + params: Optional["ConfigurationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Retrieves a Configuration object. + """ + return cast( + "Configuration", + self._request( + "get", + "/v1/terminal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + configuration: str, + params: Optional["ConfigurationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Retrieves a Configuration object. + """ + return cast( + "Configuration", + await self._request_async( + "get", + "/v1/terminal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + configuration: str, + params: Optional["ConfigurationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Updates a new Configuration object. + """ + return cast( + "Configuration", + self._request( + "post", + "/v1/terminal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + configuration: str, + params: Optional["ConfigurationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Updates a new Configuration object. + """ + return cast( + "Configuration", + await self._request_async( + "post", + "/v1/terminal/configurations/{configuration}".format( + configuration=sanitize_id(configuration), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["ConfigurationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Configuration]": + """ + Returns a list of Configuration objects. + """ + return cast( + "ListObject[Configuration]", + self._request( + "get", + "/v1/terminal/configurations", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ConfigurationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Configuration]": + """ + Returns a list of Configuration objects. + """ + return cast( + "ListObject[Configuration]", + await self._request_async( + "get", + "/v1/terminal/configurations", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["ConfigurationCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Creates a new Configuration object. + """ + return cast( + "Configuration", + self._request( + "post", + "/v1/terminal/configurations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["ConfigurationCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Configuration": + """ + Creates a new Configuration object. + """ + return cast( + "Configuration", + await self._request_async( + "post", + "/v1/terminal/configurations", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_connection_token.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_connection_token.py new file mode 100644 index 00000000..0804333c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_connection_token.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.terminal._connection_token_create_params import ( + ConnectionTokenCreateParams, + ) + + +class ConnectionToken(CreateableAPIResource["ConnectionToken"]): + """ + A Connection Token is used by the Stripe Terminal SDK to connect to a reader. + + Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations) + """ + + OBJECT_NAME: ClassVar[Literal["terminal.connection_token"]] = ( + "terminal.connection_token" + ) + location: Optional[str] + """ + The id of the location that this connection token is scoped to. Note that location scoping only applies to internet-connected readers. For more details, see [the docs on scoping connection tokens](https://docs.stripe.com/terminal/fleet/locations-and-zones?dashboard-or-api=api#connection-tokens). + """ + object: Literal["terminal.connection_token"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + secret: str + """ + Your application should pass this token to the Stripe Terminal SDK. + """ + + @classmethod + def create( + cls, **params: Unpack["ConnectionTokenCreateParams"] + ) -> "ConnectionToken": + """ + To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token. + """ + return cast( + "ConnectionToken", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ConnectionTokenCreateParams"] + ) -> "ConnectionToken": + """ + To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token. + """ + return cast( + "ConnectionToken", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_connection_token_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_connection_token_service.py new file mode 100644 index 00000000..d70a238f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_connection_token_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.terminal._connection_token_create_params import ( + ConnectionTokenCreateParams, + ) + from stripe.terminal._connection_token import ConnectionToken + + +class ConnectionTokenService(StripeService): + def create( + self, + params: Optional["ConnectionTokenCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ConnectionToken": + """ + To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token. + """ + return cast( + "ConnectionToken", + self._request( + "post", + "/v1/terminal/connection_tokens", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["ConnectionTokenCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ConnectionToken": + """ + To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token. + """ + return cast( + "ConnectionToken", + await self._request_async( + "post", + "/v1/terminal/connection_tokens", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_location.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_location.py new file mode 100644 index 00000000..d7d44b6b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_location.py @@ -0,0 +1,401 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.terminal._location_create_params import ( + LocationCreateParams, + ) + from stripe.params.terminal._location_delete_params import ( + LocationDeleteParams, + ) + from stripe.params.terminal._location_list_params import LocationListParams + from stripe.params.terminal._location_modify_params import ( + LocationModifyParams, + ) + from stripe.params.terminal._location_retrieve_params import ( + LocationRetrieveParams, + ) + + +class Location( + CreateableAPIResource["Location"], + DeletableAPIResource["Location"], + ListableAPIResource["Location"], + UpdateableAPIResource["Location"], +): + """ + A Location represents a grouping of readers. + + Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations) + """ + + OBJECT_NAME: ClassVar[Literal["terminal.location"]] = "terminal.location" + + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + class AddressKana(StripeObject): + city: Optional[str] + """ + City/Ward. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Block/Building number. + """ + line2: Optional[str] + """ + Building details. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + Prefecture. + """ + town: Optional[str] + """ + Town/cho-me. + """ + + class AddressKanji(StripeObject): + city: Optional[str] + """ + City/Ward. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Block/Building number. + """ + line2: Optional[str] + """ + Building details. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + Prefecture. + """ + town: Optional[str] + """ + Town/cho-me. + """ + + address: Address + address_kana: Optional[AddressKana] + address_kanji: Optional[AddressKanji] + configuration_overrides: Optional[str] + """ + The ID of a configuration that will be used to customize all readers in this location. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + display_name: str + """ + The display name of the location. + """ + display_name_kana: Optional[str] + """ + The Kana variation of the display name of the location. + """ + display_name_kanji: Optional[str] + """ + The Kanji variation of the display name of the location. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["terminal.location"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + phone: Optional[str] + """ + The phone number of the location. + """ + + @classmethod + def create(cls, **params: Unpack["LocationCreateParams"]) -> "Location": + """ + Creates a new Location object. + For further details, including which address fields are required in each country, see the [Manage locations](https://docs.stripe.com/docs/terminal/fleet/locations) guide. + """ + return cast( + "Location", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["LocationCreateParams"] + ) -> "Location": + """ + Creates a new Location object. + For further details, including which address fields are required in each country, see the [Manage locations](https://docs.stripe.com/docs/terminal/fleet/locations) guide. + """ + return cast( + "Location", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["LocationDeleteParams"] + ) -> "Location": + """ + Deletes a Location object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Location", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["LocationDeleteParams"] + ) -> "Location": + """ + Deletes a Location object. + """ + ... + + @overload + def delete(self, **params: Unpack["LocationDeleteParams"]) -> "Location": + """ + Deletes a Location object. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["LocationDeleteParams"] + ) -> "Location": + """ + Deletes a Location object. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["LocationDeleteParams"] + ) -> "Location": + """ + Deletes a Location object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Location", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["LocationDeleteParams"] + ) -> "Location": + """ + Deletes a Location object. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["LocationDeleteParams"] + ) -> "Location": + """ + Deletes a Location object. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["LocationDeleteParams"] + ) -> "Location": + """ + Deletes a Location object. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["LocationListParams"] + ) -> ListObject["Location"]: + """ + Returns a list of Location objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["LocationListParams"] + ) -> ListObject["Location"]: + """ + Returns a list of Location objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["LocationModifyParams"] + ) -> "Location": + """ + Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Location", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["LocationModifyParams"] + ) -> "Location": + """ + Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Location", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["LocationRetrieveParams"] + ) -> "Location": + """ + Retrieves a Location object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["LocationRetrieveParams"] + ) -> "Location": + """ + Retrieves a Location object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "address": Address, + "address_kana": AddressKana, + "address_kanji": AddressKanji, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_location_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_location_service.py new file mode 100644 index 00000000..9c0aaf36 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_location_service.py @@ -0,0 +1,236 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.terminal._location_create_params import ( + LocationCreateParams, + ) + from stripe.params.terminal._location_delete_params import ( + LocationDeleteParams, + ) + from stripe.params.terminal._location_list_params import LocationListParams + from stripe.params.terminal._location_retrieve_params import ( + LocationRetrieveParams, + ) + from stripe.params.terminal._location_update_params import ( + LocationUpdateParams, + ) + from stripe.terminal._location import Location + + +class LocationService(StripeService): + def delete( + self, + location: str, + params: Optional["LocationDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Deletes a Location object. + """ + return cast( + "Location", + self._request( + "delete", + "/v1/terminal/locations/{location}".format( + location=sanitize_id(location), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + location: str, + params: Optional["LocationDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Deletes a Location object. + """ + return cast( + "Location", + await self._request_async( + "delete", + "/v1/terminal/locations/{location}".format( + location=sanitize_id(location), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + location: str, + params: Optional["LocationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Retrieves a Location object. + """ + return cast( + "Location", + self._request( + "get", + "/v1/terminal/locations/{location}".format( + location=sanitize_id(location), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + location: str, + params: Optional["LocationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Retrieves a Location object. + """ + return cast( + "Location", + await self._request_async( + "get", + "/v1/terminal/locations/{location}".format( + location=sanitize_id(location), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + location: str, + params: Optional["LocationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Location", + self._request( + "post", + "/v1/terminal/locations/{location}".format( + location=sanitize_id(location), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + location: str, + params: Optional["LocationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Location", + await self._request_async( + "post", + "/v1/terminal/locations/{location}".format( + location=sanitize_id(location), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["LocationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Location]": + """ + Returns a list of Location objects. + """ + return cast( + "ListObject[Location]", + self._request( + "get", + "/v1/terminal/locations", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["LocationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Location]": + """ + Returns a list of Location objects. + """ + return cast( + "ListObject[Location]", + await self._request_async( + "get", + "/v1/terminal/locations", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: Optional["LocationCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Creates a new Location object. + For further details, including which address fields are required in each country, see the [Manage locations](https://docs.stripe.com/docs/terminal/fleet/locations) guide. + """ + return cast( + "Location", + self._request( + "post", + "/v1/terminal/locations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["LocationCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Location": + """ + Creates a new Location object. + For further details, including which address fields are required in each country, see the [Manage locations](https://docs.stripe.com/docs/terminal/fleet/locations) guide. + """ + return cast( + "Location", + await self._request_async( + "post", + "/v1/terminal/locations", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_reader.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_reader.py new file mode 100644 index 00000000..c133a552 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_reader.py @@ -0,0 +1,2034 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._charge import Charge + from stripe._payment_intent import PaymentIntent + from stripe._payment_method import PaymentMethod + from stripe._refund import Refund + from stripe._setup_intent import SetupIntent + from stripe.params.terminal._reader_cancel_action_params import ( + ReaderCancelActionParams, + ) + from stripe.params.terminal._reader_collect_inputs_params import ( + ReaderCollectInputsParams, + ) + from stripe.params.terminal._reader_collect_payment_method_params import ( + ReaderCollectPaymentMethodParams, + ) + from stripe.params.terminal._reader_confirm_payment_intent_params import ( + ReaderConfirmPaymentIntentParams, + ) + from stripe.params.terminal._reader_create_params import ReaderCreateParams + from stripe.params.terminal._reader_delete_params import ReaderDeleteParams + from stripe.params.terminal._reader_list_params import ReaderListParams + from stripe.params.terminal._reader_modify_params import ReaderModifyParams + from stripe.params.terminal._reader_present_payment_method_params import ( + ReaderPresentPaymentMethodParams, + ) + from stripe.params.terminal._reader_process_payment_intent_params import ( + ReaderProcessPaymentIntentParams, + ) + from stripe.params.terminal._reader_process_setup_intent_params import ( + ReaderProcessSetupIntentParams, + ) + from stripe.params.terminal._reader_refund_payment_params import ( + ReaderRefundPaymentParams, + ) + from stripe.params.terminal._reader_retrieve_params import ( + ReaderRetrieveParams, + ) + from stripe.params.terminal._reader_set_reader_display_params import ( + ReaderSetReaderDisplayParams, + ) + from stripe.params.terminal._reader_succeed_input_collection_params import ( + ReaderSucceedInputCollectionParams, + ) + from stripe.params.terminal._reader_timeout_input_collection_params import ( + ReaderTimeoutInputCollectionParams, + ) + from stripe.terminal._location import Location + + +class Reader( + CreateableAPIResource["Reader"], + DeletableAPIResource["Reader"], + ListableAPIResource["Reader"], + UpdateableAPIResource["Reader"], +): + """ + A Reader represents a physical device for accepting payment details. + + Related guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader) + """ + + OBJECT_NAME: ClassVar[Literal["terminal.reader"]] = "terminal.reader" + + class Action(StripeObject): + class CollectInputs(StripeObject): + class Input(StripeObject): + class CustomText(StripeObject): + description: Optional[str] + """ + Customize the default description for this input + """ + skip_button: Optional[str] + """ + Customize the default label for this input's skip button + """ + submit_button: Optional[str] + """ + Customize the default label for this input's submit button + """ + title: Optional[str] + """ + Customize the default title for this input + """ + + class Email(StripeObject): + value: Optional[str] + """ + The collected email address + """ + + class Numeric(StripeObject): + value: Optional[str] + """ + The collected number + """ + + class Phone(StripeObject): + value: Optional[str] + """ + The collected phone number + """ + + class Selection(StripeObject): + class Choice(StripeObject): + id: Optional[str] + """ + The identifier for the selected choice. Maximum 50 characters. + """ + style: Optional[Literal["primary", "secondary"]] + """ + The button style for the choice. Can be `primary` or `secondary`. + """ + text: str + """ + The text to be selected. Maximum 30 characters. + """ + + choices: List[Choice] + """ + List of possible choices to be selected + """ + id: Optional[str] + """ + The id of the selected choice + """ + text: Optional[str] + """ + The text of the selected choice + """ + _inner_class_types = {"choices": Choice} + + class Signature(StripeObject): + value: Optional[str] + """ + The File ID of a collected signature image + """ + + class Text(StripeObject): + value: Optional[str] + """ + The collected text value + """ + + class Toggle(StripeObject): + default_value: Optional[Literal["disabled", "enabled"]] + """ + The toggle's default value. Can be `enabled` or `disabled`. + """ + description: Optional[str] + """ + The toggle's description text. Maximum 50 characters. + """ + title: Optional[str] + """ + The toggle's title text. Maximum 50 characters. + """ + value: Optional[Literal["disabled", "enabled"]] + """ + The toggle's collected value. Can be `enabled` or `disabled`. + """ + + custom_text: Optional[CustomText] + """ + Default text of input being collected. + """ + email: Optional[Email] + """ + Information about a email being collected using a reader + """ + numeric: Optional[Numeric] + """ + Information about a number being collected using a reader + """ + phone: Optional[Phone] + """ + Information about a phone number being collected using a reader + """ + required: Optional[bool] + """ + Indicate that this input is required, disabling the skip button. + """ + selection: Optional[Selection] + """ + Information about a selection being collected using a reader + """ + signature: Optional[Signature] + """ + Information about a signature being collected using a reader + """ + skipped: Optional[bool] + """ + Indicate that this input was skipped by the user. + """ + text: Optional[Text] + """ + Information about text being collected using a reader + """ + toggles: Optional[List[Toggle]] + """ + List of toggles being collected. Values are present if collection is complete. + """ + type: Literal[ + "email", + "numeric", + "phone", + "selection", + "signature", + "text", + ] + """ + Type of input being collected. + """ + _inner_class_types = { + "custom_text": CustomText, + "email": Email, + "numeric": Numeric, + "phone": Phone, + "selection": Selection, + "signature": Signature, + "text": Text, + "toggles": Toggle, + } + + inputs: List[Input] + """ + List of inputs to be collected. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + _inner_class_types = {"inputs": Input} + + class CollectPaymentMethod(StripeObject): + class CollectConfig(StripeObject): + class Tipping(StripeObject): + amount_eligible: Optional[int] + """ + Amount used to calculate tip suggestions on tipping selection screen for this transaction. Must be a positive integer in the smallest currency unit (e.g., 100 cents to represent $1.00 or 100 to represent ¥100, a zero-decimal currency). + """ + + enable_customer_cancellation: Optional[bool] + """ + Enable customer-initiated cancellation when processing this payment. + """ + skip_tipping: Optional[bool] + """ + Override showing a tipping selection screen on this transaction. + """ + tipping: Optional[Tipping] + """ + Represents a per-transaction tipping configuration + """ + _inner_class_types = {"tipping": Tipping} + + collect_config: Optional[CollectConfig] + """ + Represents a per-transaction override of a reader configuration + """ + payment_intent: ExpandableField["PaymentIntent"] + """ + Most recent PaymentIntent processed by the reader. + """ + payment_method: Optional["PaymentMethod"] + """ + PaymentMethod objects represent your customer's payment instruments. + You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to + Customer objects to store instrument details for future payments. + + Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios). + """ + _inner_class_types = {"collect_config": CollectConfig} + + class ConfirmPaymentIntent(StripeObject): + class ConfirmConfig(StripeObject): + return_url: Optional[str] + """ + If the customer doesn't abandon authenticating the payment, they're redirected to this URL after completion. + """ + + confirm_config: Optional[ConfirmConfig] + """ + Represents a per-transaction override of a reader configuration + """ + payment_intent: ExpandableField["PaymentIntent"] + """ + Most recent PaymentIntent processed by the reader. + """ + _inner_class_types = {"confirm_config": ConfirmConfig} + + class ProcessPaymentIntent(StripeObject): + class ProcessConfig(StripeObject): + class Tipping(StripeObject): + amount_eligible: Optional[int] + """ + Amount used to calculate tip suggestions on tipping selection screen for this transaction. Must be a positive integer in the smallest currency unit (e.g., 100 cents to represent $1.00 or 100 to represent ¥100, a zero-decimal currency). + """ + + enable_customer_cancellation: Optional[bool] + """ + Enable customer-initiated cancellation when processing this payment. + """ + return_url: Optional[str] + """ + If the customer doesn't abandon authenticating the payment, they're redirected to this URL after completion. + """ + skip_tipping: Optional[bool] + """ + Override showing a tipping selection screen on this transaction. + """ + tipping: Optional[Tipping] + """ + Represents a per-transaction tipping configuration + """ + _inner_class_types = {"tipping": Tipping} + + payment_intent: ExpandableField["PaymentIntent"] + """ + Most recent PaymentIntent processed by the reader. + """ + process_config: Optional[ProcessConfig] + """ + Represents a per-transaction override of a reader configuration + """ + _inner_class_types = {"process_config": ProcessConfig} + + class ProcessSetupIntent(StripeObject): + class ProcessConfig(StripeObject): + enable_customer_cancellation: Optional[bool] + """ + Enable customer-initiated cancellation when processing this SetupIntent. + """ + + generated_card: Optional[str] + """ + ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod. + """ + process_config: Optional[ProcessConfig] + """ + Represents a per-setup override of a reader configuration + """ + setup_intent: ExpandableField["SetupIntent"] + """ + Most recent SetupIntent processed by the reader. + """ + _inner_class_types = {"process_config": ProcessConfig} + + class RefundPayment(StripeObject): + class RefundPaymentConfig(StripeObject): + enable_customer_cancellation: Optional[bool] + """ + Enable customer-initiated cancellation when refunding this payment. + """ + + amount: Optional[int] + """ + The amount being refunded. + """ + charge: Optional[ExpandableField["Charge"]] + """ + Charge that is being refunded. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + payment_intent: Optional[ExpandableField["PaymentIntent"]] + """ + Payment intent that is being refunded. + """ + reason: Optional[ + Literal["duplicate", "fraudulent", "requested_by_customer"] + ] + """ + The reason for the refund. + """ + refund: Optional[ExpandableField["Refund"]] + """ + Unique identifier for the refund object. + """ + refund_application_fee: Optional[bool] + """ + Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge. + """ + refund_payment_config: Optional[RefundPaymentConfig] + """ + Represents a per-transaction override of a reader configuration + """ + reverse_transfer: Optional[bool] + """ + Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount). A transfer can be reversed only by the application that created the charge. + """ + _inner_class_types = {"refund_payment_config": RefundPaymentConfig} + + class SetReaderDisplay(StripeObject): + class Cart(StripeObject): + class LineItem(StripeObject): + amount: int + """ + The amount of the line item. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + description: str + """ + Description of the line item. + """ + quantity: int + """ + The quantity of the line item. + """ + + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + line_items: List[LineItem] + """ + List of line items in the cart. + """ + tax: Optional[int] + """ + Tax amount for the entire cart. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + total: int + """ + Total amount for the entire cart, including tax. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). + """ + _inner_class_types = {"line_items": LineItem} + + cart: Optional[Cart] + """ + Cart object to be displayed by the reader, including line items, amounts, and currency. + """ + type: Literal["cart"] + """ + Type of information to be displayed by the reader. Only `cart` is currently supported. + """ + _inner_class_types = {"cart": Cart} + + collect_inputs: Optional[CollectInputs] + """ + Represents a reader action to collect customer inputs + """ + collect_payment_method: Optional[CollectPaymentMethod] + """ + Represents a reader action to collect a payment method + """ + confirm_payment_intent: Optional[ConfirmPaymentIntent] + """ + Represents a reader action to confirm a payment + """ + failure_code: Optional[str] + """ + Failure code, only set if status is `failed`. + """ + failure_message: Optional[str] + """ + Detailed failure message, only set if status is `failed`. + """ + process_payment_intent: Optional[ProcessPaymentIntent] + """ + Represents a reader action to process a payment intent + """ + process_setup_intent: Optional[ProcessSetupIntent] + """ + Represents a reader action to process a setup intent + """ + refund_payment: Optional[RefundPayment] + """ + Represents a reader action to refund a payment + """ + set_reader_display: Optional[SetReaderDisplay] + """ + Represents a reader action to set the reader display + """ + status: Literal["failed", "in_progress", "succeeded"] + """ + Status of the action performed by the reader. + """ + type: Literal[ + "collect_inputs", + "collect_payment_method", + "confirm_payment_intent", + "process_payment_intent", + "process_setup_intent", + "refund_payment", + "set_reader_display", + ] + """ + Type of action performed by the reader. + """ + _inner_class_types = { + "collect_inputs": CollectInputs, + "collect_payment_method": CollectPaymentMethod, + "confirm_payment_intent": ConfirmPaymentIntent, + "process_payment_intent": ProcessPaymentIntent, + "process_setup_intent": ProcessSetupIntent, + "refund_payment": RefundPayment, + "set_reader_display": SetReaderDisplay, + } + + action: Optional[Action] + """ + The most recent action performed by the reader. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + device_sw_version: Optional[str] + """ + The current software version of the reader. + """ + device_type: Literal[ + "bbpos_chipper2x", + "bbpos_wisepad3", + "bbpos_wisepos_e", + "mobile_phone_reader", + "simulated_stripe_s700", + "simulated_wisepos_e", + "stripe_m2", + "stripe_s700", + "verifone_P400", + ] + """ + Device type of the reader. + """ + id: str + """ + Unique identifier for the object. + """ + ip_address: Optional[str] + """ + The local IP address of the reader. + """ + label: str + """ + Custom label given to the reader for easier identification. + """ + last_seen_at: Optional[int] + """ + The last time this reader reported to Stripe backend. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + location: Optional[ExpandableField["Location"]] + """ + The location identifier of the reader. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["terminal.reader"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + serial_number: str + """ + Serial number of the reader. + """ + status: Optional[Literal["offline", "online"]] + """ + The networking status of the reader. We do not recommend using this field in flows that may block taking payments. + """ + + @classmethod + def _cls_cancel_action( + cls, reader: str, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/cancel_action".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel_action( + reader: str, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + ... + + @overload + def cancel_action( + self, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + ... + + @class_method_variant("_cls_cancel_action") + def cancel_action( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/cancel_action".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_action_async( + cls, reader: str, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/cancel_action".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_action_async( + reader: str, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + ... + + @overload + async def cancel_action_async( + self, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + ... + + @class_method_variant("_cls_cancel_action_async") + async def cancel_action_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderCancelActionParams"] + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/cancel_action".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_collect_inputs( + cls, reader: str, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/collect_inputs".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def collect_inputs( + reader: str, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + ... + + @overload + def collect_inputs( + self, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + ... + + @class_method_variant("_cls_collect_inputs") + def collect_inputs( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/collect_inputs".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_collect_inputs_async( + cls, reader: str, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/collect_inputs".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def collect_inputs_async( + reader: str, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + ... + + @overload + async def collect_inputs_async( + self, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + ... + + @class_method_variant("_cls_collect_inputs_async") + async def collect_inputs_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderCollectInputsParams"] + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/collect_inputs".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_collect_payment_method( + cls, reader: str, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/collect_payment_method".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def collect_payment_method( + reader: str, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + ... + + @overload + def collect_payment_method( + self, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + ... + + @class_method_variant("_cls_collect_payment_method") + def collect_payment_method( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/collect_payment_method".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_collect_payment_method_async( + cls, reader: str, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/collect_payment_method".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def collect_payment_method_async( + reader: str, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + ... + + @overload + async def collect_payment_method_async( + self, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + ... + + @class_method_variant("_cls_collect_payment_method_async") + async def collect_payment_method_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderCollectPaymentMethodParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/collect_payment_method".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_confirm_payment_intent( + cls, reader: str, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/confirm_payment_intent".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def confirm_payment_intent( + reader: str, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + ... + + @overload + def confirm_payment_intent( + self, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + ... + + @class_method_variant("_cls_confirm_payment_intent") + def confirm_payment_intent( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/confirm_payment_intent".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_confirm_payment_intent_async( + cls, reader: str, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/confirm_payment_intent".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def confirm_payment_intent_async( + reader: str, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + ... + + @overload + async def confirm_payment_intent_async( + self, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + ... + + @class_method_variant("_cls_confirm_payment_intent_async") + async def confirm_payment_intent_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderConfirmPaymentIntentParams"] + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/confirm_payment_intent".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["ReaderCreateParams"]) -> "Reader": + """ + Creates a new Reader object. + """ + return cast( + "Reader", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ReaderCreateParams"] + ) -> "Reader": + """ + Creates a new Reader object. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["ReaderDeleteParams"] + ) -> "Reader": + """ + Deletes a Reader object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Reader", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete(sid: str, **params: Unpack["ReaderDeleteParams"]) -> "Reader": + """ + Deletes a Reader object. + """ + ... + + @overload + def delete(self, **params: Unpack["ReaderDeleteParams"]) -> "Reader": + """ + Deletes a Reader object. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderDeleteParams"] + ) -> "Reader": + """ + Deletes a Reader object. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["ReaderDeleteParams"] + ) -> "Reader": + """ + Deletes a Reader object. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "Reader", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["ReaderDeleteParams"] + ) -> "Reader": + """ + Deletes a Reader object. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["ReaderDeleteParams"] + ) -> "Reader": + """ + Deletes a Reader object. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderDeleteParams"] + ) -> "Reader": + """ + Deletes a Reader object. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["ReaderListParams"] + ) -> ListObject["Reader"]: + """ + Returns a list of Reader objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ReaderListParams"] + ) -> ListObject["Reader"]: + """ + Returns a list of Reader objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["ReaderModifyParams"] + ) -> "Reader": + """ + Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Reader", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["ReaderModifyParams"] + ) -> "Reader": + """ + Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "Reader", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def _cls_process_payment_intent( + cls, reader: str, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/process_payment_intent".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def process_payment_intent( + reader: str, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + ... + + @overload + def process_payment_intent( + self, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + ... + + @class_method_variant("_cls_process_payment_intent") + def process_payment_intent( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/process_payment_intent".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_process_payment_intent_async( + cls, reader: str, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/process_payment_intent".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def process_payment_intent_async( + reader: str, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + ... + + @overload + async def process_payment_intent_async( + self, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + ... + + @class_method_variant("_cls_process_payment_intent_async") + async def process_payment_intent_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderProcessPaymentIntentParams"] + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/process_payment_intent".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_process_setup_intent( + cls, reader: str, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/process_setup_intent".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def process_setup_intent( + reader: str, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + ... + + @overload + def process_setup_intent( + self, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + ... + + @class_method_variant("_cls_process_setup_intent") + def process_setup_intent( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/process_setup_intent".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_process_setup_intent_async( + cls, reader: str, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/process_setup_intent".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def process_setup_intent_async( + reader: str, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + ... + + @overload + async def process_setup_intent_async( + self, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + ... + + @class_method_variant("_cls_process_setup_intent_async") + async def process_setup_intent_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderProcessSetupIntentParams"] + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/process_setup_intent".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_refund_payment( + cls, reader: str, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/refund_payment".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def refund_payment( + reader: str, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + ... + + @overload + def refund_payment( + self, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + ... + + @class_method_variant("_cls_refund_payment") + def refund_payment( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/refund_payment".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_refund_payment_async( + cls, reader: str, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/refund_payment".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def refund_payment_async( + reader: str, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + ... + + @overload + async def refund_payment_async( + self, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + ... + + @class_method_variant("_cls_refund_payment_async") + async def refund_payment_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderRefundPaymentParams"] + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/refund_payment".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ReaderRetrieveParams"] + ) -> "Reader": + """ + Retrieves a Reader object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ReaderRetrieveParams"] + ) -> "Reader": + """ + Retrieves a Reader object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_set_reader_display( + cls, reader: str, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/terminal/readers/{reader}/set_reader_display".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def set_reader_display( + reader: str, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + ... + + @overload + def set_reader_display( + self, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + ... + + @class_method_variant("_cls_set_reader_display") + def set_reader_display( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/set_reader_display".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_set_reader_display_async( + cls, reader: str, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/terminal/readers/{reader}/set_reader_display".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def set_reader_display_async( + reader: str, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + ... + + @overload + async def set_reader_display_async( + self, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + ... + + @class_method_variant("_cls_set_reader_display_async") + async def set_reader_display_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderSetReaderDisplayParams"] + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/set_reader_display".format( + reader=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + class TestHelpers(APIResourceTestHelpers["Reader"]): + _resource_cls: Type["Reader"] + + @classmethod + def _cls_present_payment_method( + cls, + reader: str, + **params: Unpack["ReaderPresentPaymentMethodParams"], + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/present_payment_method".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def present_payment_method( + reader: str, **params: Unpack["ReaderPresentPaymentMethodParams"] + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + ... + + @overload + def present_payment_method( + self, **params: Unpack["ReaderPresentPaymentMethodParams"] + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + ... + + @class_method_variant("_cls_present_payment_method") + def present_payment_method( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderPresentPaymentMethodParams"] + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + return cast( + "Reader", + self.resource._request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/present_payment_method".format( + reader=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_present_payment_method_async( + cls, + reader: str, + **params: Unpack["ReaderPresentPaymentMethodParams"], + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/present_payment_method".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def present_payment_method_async( + reader: str, **params: Unpack["ReaderPresentPaymentMethodParams"] + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + ... + + @overload + async def present_payment_method_async( + self, **params: Unpack["ReaderPresentPaymentMethodParams"] + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + ... + + @class_method_variant("_cls_present_payment_method_async") + async def present_payment_method_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderPresentPaymentMethodParams"] + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + return cast( + "Reader", + await self.resource._request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/present_payment_method".format( + reader=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_succeed_input_collection( + cls, + reader: str, + **params: Unpack["ReaderSucceedInputCollectionParams"], + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def succeed_input_collection( + reader: str, **params: Unpack["ReaderSucceedInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + ... + + @overload + def succeed_input_collection( + self, **params: Unpack["ReaderSucceedInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + ... + + @class_method_variant("_cls_succeed_input_collection") + def succeed_input_collection( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderSucceedInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + return cast( + "Reader", + self.resource._request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection".format( + reader=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_succeed_input_collection_async( + cls, + reader: str, + **params: Unpack["ReaderSucceedInputCollectionParams"], + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def succeed_input_collection_async( + reader: str, **params: Unpack["ReaderSucceedInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + ... + + @overload + async def succeed_input_collection_async( + self, **params: Unpack["ReaderSucceedInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + ... + + @class_method_variant("_cls_succeed_input_collection_async") + async def succeed_input_collection_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderSucceedInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + return cast( + "Reader", + await self.resource._request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection".format( + reader=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_timeout_input_collection( + cls, + reader: str, + **params: Unpack["ReaderTimeoutInputCollectionParams"], + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + return cast( + "Reader", + cls._static_request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + def timeout_input_collection( + reader: str, **params: Unpack["ReaderTimeoutInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + ... + + @overload + def timeout_input_collection( + self, **params: Unpack["ReaderTimeoutInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + ... + + @class_method_variant("_cls_timeout_input_collection") + def timeout_input_collection( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderTimeoutInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + return cast( + "Reader", + self.resource._request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection".format( + reader=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_timeout_input_collection_async( + cls, + reader: str, + **params: Unpack["ReaderTimeoutInputCollectionParams"], + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + return cast( + "Reader", + await cls._static_request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection".format( + reader=sanitize_id(reader) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def timeout_input_collection_async( + reader: str, **params: Unpack["ReaderTimeoutInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + ... + + @overload + async def timeout_input_collection_async( + self, **params: Unpack["ReaderTimeoutInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + ... + + @class_method_variant("_cls_timeout_input_collection_async") + async def timeout_input_collection_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["ReaderTimeoutInputCollectionParams"] + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + return cast( + "Reader", + await self.resource._request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection".format( + reader=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = {"action": Action} + + +Reader.TestHelpers._resource_cls = Reader diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_reader_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_reader_service.py new file mode 100644 index 00000000..8cb36a77 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/terminal/_reader_service.py @@ -0,0 +1,604 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.terminal._reader_cancel_action_params import ( + ReaderCancelActionParams, + ) + from stripe.params.terminal._reader_collect_inputs_params import ( + ReaderCollectInputsParams, + ) + from stripe.params.terminal._reader_collect_payment_method_params import ( + ReaderCollectPaymentMethodParams, + ) + from stripe.params.terminal._reader_confirm_payment_intent_params import ( + ReaderConfirmPaymentIntentParams, + ) + from stripe.params.terminal._reader_create_params import ReaderCreateParams + from stripe.params.terminal._reader_delete_params import ReaderDeleteParams + from stripe.params.terminal._reader_list_params import ReaderListParams + from stripe.params.terminal._reader_process_payment_intent_params import ( + ReaderProcessPaymentIntentParams, + ) + from stripe.params.terminal._reader_process_setup_intent_params import ( + ReaderProcessSetupIntentParams, + ) + from stripe.params.terminal._reader_refund_payment_params import ( + ReaderRefundPaymentParams, + ) + from stripe.params.terminal._reader_retrieve_params import ( + ReaderRetrieveParams, + ) + from stripe.params.terminal._reader_set_reader_display_params import ( + ReaderSetReaderDisplayParams, + ) + from stripe.params.terminal._reader_update_params import ReaderUpdateParams + from stripe.terminal._reader import Reader + + +class ReaderService(StripeService): + def delete( + self, + reader: str, + params: Optional["ReaderDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Deletes a Reader object. + """ + return cast( + "Reader", + self._request( + "delete", + "/v1/terminal/readers/{reader}".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + reader: str, + params: Optional["ReaderDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Deletes a Reader object. + """ + return cast( + "Reader", + await self._request_async( + "delete", + "/v1/terminal/readers/{reader}".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + reader: str, + params: Optional["ReaderRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Retrieves a Reader object. + """ + return cast( + "Reader", + self._request( + "get", + "/v1/terminal/readers/{reader}".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + reader: str, + params: Optional["ReaderRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Retrieves a Reader object. + """ + return cast( + "Reader", + await self._request_async( + "get", + "/v1/terminal/readers/{reader}".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + reader: str, + params: Optional["ReaderUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + reader: str, + params: Optional["ReaderUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["ReaderListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Reader]": + """ + Returns a list of Reader objects. + """ + return cast( + "ListObject[Reader]", + self._request( + "get", + "/v1/terminal/readers", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["ReaderListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Reader]": + """ + Returns a list of Reader objects. + """ + return cast( + "ListObject[Reader]", + await self._request_async( + "get", + "/v1/terminal/readers", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "ReaderCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Creates a new Reader object. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ReaderCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Creates a new Reader object. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers", + base_address="api", + params=params, + options=options, + ), + ) + + def cancel_action( + self, + reader: str, + params: Optional["ReaderCancelActionParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/cancel_action".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_action_async( + self, + reader: str, + params: Optional["ReaderCancelActionParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/cancel_action".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def collect_inputs( + self, + reader: str, + params: "ReaderCollectInputsParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/collect_inputs".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def collect_inputs_async( + self, + reader: str, + params: "ReaderCollectInputsParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/collect_inputs".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def collect_payment_method( + self, + reader: str, + params: "ReaderCollectPaymentMethodParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/collect_payment_method".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def collect_payment_method_async( + self, + reader: str, + params: "ReaderCollectPaymentMethodParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/collect_payment_method".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def confirm_payment_intent( + self, + reader: str, + params: "ReaderConfirmPaymentIntentParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/confirm_payment_intent".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def confirm_payment_intent_async( + self, + reader: str, + params: "ReaderConfirmPaymentIntentParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/confirm_payment_intent".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def process_payment_intent( + self, + reader: str, + params: "ReaderProcessPaymentIntentParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/process_payment_intent".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def process_payment_intent_async( + self, + reader: str, + params: "ReaderProcessPaymentIntentParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/process_payment_intent".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def process_setup_intent( + self, + reader: str, + params: "ReaderProcessSetupIntentParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/process_setup_intent".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def process_setup_intent_async( + self, + reader: str, + params: "ReaderProcessSetupIntentParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/process_setup_intent".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def refund_payment( + self, + reader: str, + params: Optional["ReaderRefundPaymentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/refund_payment".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def refund_payment_async( + self, + reader: str, + params: Optional["ReaderRefundPaymentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/refund_payment".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def set_reader_display( + self, + reader: str, + params: "ReaderSetReaderDisplayParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + return cast( + "Reader", + self._request( + "post", + "/v1/terminal/readers/{reader}/set_reader_display".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def set_reader_display_async( + self, + reader: str, + params: "ReaderSetReaderDisplayParams", + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display). + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/terminal/readers/{reader}/set_reader_display".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__init__.py new file mode 100644 index 00000000..ec9625f6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__init__.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers import ( + issuing as issuing, + terminal as terminal, + treasury as treasury, + ) + from stripe.test_helpers._confirmation_token_service import ( + ConfirmationTokenService as ConfirmationTokenService, + ) + from stripe.test_helpers._customer_service import ( + CustomerService as CustomerService, + ) + from stripe.test_helpers._issuing_service import ( + IssuingService as IssuingService, + ) + from stripe.test_helpers._refund_service import ( + RefundService as RefundService, + ) + from stripe.test_helpers._terminal_service import ( + TerminalService as TerminalService, + ) + from stripe.test_helpers._test_clock import TestClock as TestClock + from stripe.test_helpers._test_clock_service import ( + TestClockService as TestClockService, + ) + from stripe.test_helpers._treasury_service import ( + TreasuryService as TreasuryService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "issuing": ("stripe.test_helpers.issuing", True), + "terminal": ("stripe.test_helpers.terminal", True), + "treasury": ("stripe.test_helpers.treasury", True), + "ConfirmationTokenService": ( + "stripe.test_helpers._confirmation_token_service", + False, + ), + "CustomerService": ("stripe.test_helpers._customer_service", False), + "IssuingService": ("stripe.test_helpers._issuing_service", False), + "RefundService": ("stripe.test_helpers._refund_service", False), + "TerminalService": ("stripe.test_helpers._terminal_service", False), + "TestClock": ("stripe.test_helpers._test_clock", False), + "TestClockService": ("stripe.test_helpers._test_clock_service", False), + "TreasuryService": ("stripe.test_helpers._treasury_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..f49a3e94 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_confirmation_token_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_confirmation_token_service.cpython-312.pyc new file mode 100644 index 00000000..706a738f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_confirmation_token_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_customer_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_customer_service.cpython-312.pyc new file mode 100644 index 00000000..03a5afe2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_customer_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_issuing_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_issuing_service.cpython-312.pyc new file mode 100644 index 00000000..acf6f905 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_issuing_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_refund_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_refund_service.cpython-312.pyc new file mode 100644 index 00000000..1fc9a6a0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_refund_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_terminal_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_terminal_service.cpython-312.pyc new file mode 100644 index 00000000..32075876 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_terminal_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_test_clock.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_test_clock.cpython-312.pyc new file mode 100644 index 00000000..d7b13255 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_test_clock.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_test_clock_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_test_clock_service.cpython-312.pyc new file mode 100644 index 00000000..8f95e517 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_test_clock_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_treasury_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_treasury_service.cpython-312.pyc new file mode 100644 index 00000000..cca1ba83 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/__pycache__/_treasury_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_confirmation_token_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_confirmation_token_service.py new file mode 100644 index 00000000..ca34933c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_confirmation_token_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._confirmation_token import ConfirmationToken + from stripe._request_options import RequestOptions + from stripe.params.test_helpers._confirmation_token_create_params import ( + ConfirmationTokenCreateParams, + ) + + +class ConfirmationTokenService(StripeService): + def create( + self, + params: Optional["ConfirmationTokenCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ConfirmationToken": + """ + Creates a test mode Confirmation Token server side for your integration tests. + """ + return cast( + "ConfirmationToken", + self._request( + "post", + "/v1/test_helpers/confirmation_tokens", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["ConfirmationTokenCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ConfirmationToken": + """ + Creates a test mode Confirmation Token server side for your integration tests. + """ + return cast( + "ConfirmationToken", + await self._request_async( + "post", + "/v1/test_helpers/confirmation_tokens", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_customer_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_customer_service.py new file mode 100644 index 00000000..a9da41cc --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_customer_service.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._customer_cash_balance_transaction import ( + CustomerCashBalanceTransaction, + ) + from stripe._request_options import RequestOptions + from stripe.params.test_helpers._customer_fund_cash_balance_params import ( + CustomerFundCashBalanceParams, + ) + + +class CustomerService(StripeService): + def fund_cash_balance( + self, + customer: str, + params: "CustomerFundCashBalanceParams", + options: Optional["RequestOptions"] = None, + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + return cast( + "CustomerCashBalanceTransaction", + self._request( + "post", + "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def fund_cash_balance_async( + self, + customer: str, + params: "CustomerFundCashBalanceParams", + options: Optional["RequestOptions"] = None, + ) -> "CustomerCashBalanceTransaction": + """ + Create an incoming testmode bank transfer + """ + return cast( + "CustomerCashBalanceTransaction", + await self._request_async( + "post", + "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( + customer=sanitize_id(customer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_issuing_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_issuing_service.py new file mode 100644 index 00000000..c9f26723 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_issuing_service.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers.issuing._authorization_service import ( + AuthorizationService, + ) + from stripe.test_helpers.issuing._card_service import CardService + from stripe.test_helpers.issuing._personalization_design_service import ( + PersonalizationDesignService, + ) + from stripe.test_helpers.issuing._transaction_service import ( + TransactionService, + ) + +_subservices = { + "authorizations": [ + "stripe.test_helpers.issuing._authorization_service", + "AuthorizationService", + ], + "cards": ["stripe.test_helpers.issuing._card_service", "CardService"], + "personalization_designs": [ + "stripe.test_helpers.issuing._personalization_design_service", + "PersonalizationDesignService", + ], + "transactions": [ + "stripe.test_helpers.issuing._transaction_service", + "TransactionService", + ], +} + + +class IssuingService(StripeService): + authorizations: "AuthorizationService" + cards: "CardService" + personalization_designs: "PersonalizationDesignService" + transactions: "TransactionService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_refund_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_refund_service.py new file mode 100644 index 00000000..92969f29 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_refund_service.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._refund import Refund + from stripe._request_options import RequestOptions + from stripe.params.test_helpers._refund_expire_params import ( + RefundExpireParams, + ) + + +class RefundService(StripeService): + def expire( + self, + refund: str, + params: Optional["RefundExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + return cast( + "Refund", + self._request( + "post", + "/v1/test_helpers/refunds/{refund}/expire".format( + refund=sanitize_id(refund), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def expire_async( + self, + refund: str, + params: Optional["RefundExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Refund": + """ + Expire a refund with a status of requires_action. + """ + return cast( + "Refund", + await self._request_async( + "post", + "/v1/test_helpers/refunds/{refund}/expire".format( + refund=sanitize_id(refund), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_terminal_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_terminal_service.py new file mode 100644 index 00000000..49c51e86 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_terminal_service.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers.terminal._reader_service import ReaderService + +_subservices = { + "readers": [ + "stripe.test_helpers.terminal._reader_service", + "ReaderService", + ], +} + + +class TerminalService(StripeService): + readers: "ReaderService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_test_clock.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_test_clock.py new file mode 100644 index 00000000..ebc506b4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_test_clock.py @@ -0,0 +1,391 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._deletable_api_resource import DeletableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.test_helpers._test_clock_advance_params import ( + TestClockAdvanceParams, + ) + from stripe.params.test_helpers._test_clock_create_params import ( + TestClockCreateParams, + ) + from stripe.params.test_helpers._test_clock_delete_params import ( + TestClockDeleteParams, + ) + from stripe.params.test_helpers._test_clock_list_params import ( + TestClockListParams, + ) + from stripe.params.test_helpers._test_clock_retrieve_params import ( + TestClockRetrieveParams, + ) + + +class TestClock( + CreateableAPIResource["TestClock"], + DeletableAPIResource["TestClock"], + ListableAPIResource["TestClock"], +): + """ + A test clock enables deterministic control over objects in testmode. With a test clock, you can create + objects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances, + you can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time. + """ + + OBJECT_NAME: ClassVar[Literal["test_helpers.test_clock"]] = ( + "test_helpers.test_clock" + ) + + class StatusDetails(StripeObject): + class Advancing(StripeObject): + target_frozen_time: int + """ + The `frozen_time` that the Test Clock is advancing towards. + """ + + advancing: Optional[Advancing] + _inner_class_types = {"advancing": Advancing} + + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + deleted: Optional[Literal[True]] + """ + Always true for a deleted object + """ + deletes_after: int + """ + Time at which this clock is scheduled to auto delete. + """ + frozen_time: int + """ + Time at which all objects belonging to this clock are frozen. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + name: Optional[str] + """ + The custom name supplied at creation. + """ + object: Literal["test_helpers.test_clock"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["advancing", "internal_failure", "ready"] + """ + The status of the Test Clock. + """ + status_details: StatusDetails + + @classmethod + def _cls_advance( + cls, test_clock: str, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + return cast( + "TestClock", + cls._static_request( + "post", + "/v1/test_helpers/test_clocks/{test_clock}/advance".format( + test_clock=sanitize_id(test_clock) + ), + params=params, + ), + ) + + @overload + @staticmethod + def advance( + test_clock: str, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + ... + + @overload + def advance( + self, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + ... + + @class_method_variant("_cls_advance") + def advance( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + return cast( + "TestClock", + self._request( + "post", + "/v1/test_helpers/test_clocks/{test_clock}/advance".format( + test_clock=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_advance_async( + cls, test_clock: str, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + return cast( + "TestClock", + await cls._static_request_async( + "post", + "/v1/test_helpers/test_clocks/{test_clock}/advance".format( + test_clock=sanitize_id(test_clock) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def advance_async( + test_clock: str, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + ... + + @overload + async def advance_async( + self, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + ... + + @class_method_variant("_cls_advance_async") + async def advance_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TestClockAdvanceParams"] + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + return cast( + "TestClock", + await self._request_async( + "post", + "/v1/test_helpers/test_clocks/{test_clock}/advance".format( + test_clock=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create(cls, **params: Unpack["TestClockCreateParams"]) -> "TestClock": + """ + Creates a new test clock that can be attached to new customers and quotes. + """ + return cast( + "TestClock", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["TestClockCreateParams"] + ) -> "TestClock": + """ + Creates a new test clock that can be attached to new customers and quotes. + """ + return cast( + "TestClock", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def _cls_delete( + cls, sid: str, **params: Unpack["TestClockDeleteParams"] + ) -> "TestClock": + """ + Deletes a test clock. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "TestClock", + cls._static_request( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + def delete( + sid: str, **params: Unpack["TestClockDeleteParams"] + ) -> "TestClock": + """ + Deletes a test clock. + """ + ... + + @overload + def delete(self, **params: Unpack["TestClockDeleteParams"]) -> "TestClock": + """ + Deletes a test clock. + """ + ... + + @class_method_variant("_cls_delete") + def delete( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TestClockDeleteParams"] + ) -> "TestClock": + """ + Deletes a test clock. + """ + return self._request_and_refresh( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + async def _cls_delete_async( + cls, sid: str, **params: Unpack["TestClockDeleteParams"] + ) -> "TestClock": + """ + Deletes a test clock. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(sid)) + return cast( + "TestClock", + await cls._static_request_async( + "delete", + url, + params=params, + ), + ) + + @overload + @staticmethod + async def delete_async( + sid: str, **params: Unpack["TestClockDeleteParams"] + ) -> "TestClock": + """ + Deletes a test clock. + """ + ... + + @overload + async def delete_async( + self, **params: Unpack["TestClockDeleteParams"] + ) -> "TestClock": + """ + Deletes a test clock. + """ + ... + + @class_method_variant("_cls_delete_async") + async def delete_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["TestClockDeleteParams"] + ) -> "TestClock": + """ + Deletes a test clock. + """ + return await self._request_and_refresh_async( + "delete", + self.instance_url(), + params=params, + ) + + @classmethod + def list( + cls, **params: Unpack["TestClockListParams"] + ) -> ListObject["TestClock"]: + """ + Returns a list of your test clocks. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TestClockListParams"] + ) -> ListObject["TestClock"]: + """ + Returns a list of your test clocks. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TestClockRetrieveParams"] + ) -> "TestClock": + """ + Retrieves a test clock. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TestClockRetrieveParams"] + ) -> "TestClock": + """ + Retrieves a test clock. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"status_details": StatusDetails} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_test_clock_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_test_clock_service.py new file mode 100644 index 00000000..07f5af6f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_test_clock_service.py @@ -0,0 +1,236 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.test_helpers._test_clock_advance_params import ( + TestClockAdvanceParams, + ) + from stripe.params.test_helpers._test_clock_create_params import ( + TestClockCreateParams, + ) + from stripe.params.test_helpers._test_clock_delete_params import ( + TestClockDeleteParams, + ) + from stripe.params.test_helpers._test_clock_list_params import ( + TestClockListParams, + ) + from stripe.params.test_helpers._test_clock_retrieve_params import ( + TestClockRetrieveParams, + ) + from stripe.test_helpers._test_clock import TestClock + + +class TestClockService(StripeService): + def delete( + self, + test_clock: str, + params: Optional["TestClockDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Deletes a test clock. + """ + return cast( + "TestClock", + self._request( + "delete", + "/v1/test_helpers/test_clocks/{test_clock}".format( + test_clock=sanitize_id(test_clock), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + test_clock: str, + params: Optional["TestClockDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Deletes a test clock. + """ + return cast( + "TestClock", + await self._request_async( + "delete", + "/v1/test_helpers/test_clocks/{test_clock}".format( + test_clock=sanitize_id(test_clock), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + test_clock: str, + params: Optional["TestClockRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Retrieves a test clock. + """ + return cast( + "TestClock", + self._request( + "get", + "/v1/test_helpers/test_clocks/{test_clock}".format( + test_clock=sanitize_id(test_clock), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + test_clock: str, + params: Optional["TestClockRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Retrieves a test clock. + """ + return cast( + "TestClock", + await self._request_async( + "get", + "/v1/test_helpers/test_clocks/{test_clock}".format( + test_clock=sanitize_id(test_clock), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def list( + self, + params: Optional["TestClockListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TestClock]": + """ + Returns a list of your test clocks. + """ + return cast( + "ListObject[TestClock]", + self._request( + "get", + "/v1/test_helpers/test_clocks", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["TestClockListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TestClock]": + """ + Returns a list of your test clocks. + """ + return cast( + "ListObject[TestClock]", + await self._request_async( + "get", + "/v1/test_helpers/test_clocks", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "TestClockCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Creates a new test clock that can be attached to new customers and quotes. + """ + return cast( + "TestClock", + self._request( + "post", + "/v1/test_helpers/test_clocks", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "TestClockCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Creates a new test clock that can be attached to new customers and quotes. + """ + return cast( + "TestClock", + await self._request_async( + "post", + "/v1/test_helpers/test_clocks", + base_address="api", + params=params, + options=options, + ), + ) + + def advance( + self, + test_clock: str, + params: "TestClockAdvanceParams", + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + return cast( + "TestClock", + self._request( + "post", + "/v1/test_helpers/test_clocks/{test_clock}/advance".format( + test_clock=sanitize_id(test_clock), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def advance_async( + self, + test_clock: str, + params: "TestClockAdvanceParams", + options: Optional["RequestOptions"] = None, + ) -> "TestClock": + """ + Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. + """ + return cast( + "TestClock", + await self._request_async( + "post", + "/v1/test_helpers/test_clocks/{test_clock}/advance".format( + test_clock=sanitize_id(test_clock), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_treasury_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_treasury_service.py new file mode 100644 index 00000000..04e485f7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/_treasury_service.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers.treasury._inbound_transfer_service import ( + InboundTransferService, + ) + from stripe.test_helpers.treasury._outbound_payment_service import ( + OutboundPaymentService, + ) + from stripe.test_helpers.treasury._outbound_transfer_service import ( + OutboundTransferService, + ) + from stripe.test_helpers.treasury._received_credit_service import ( + ReceivedCreditService, + ) + from stripe.test_helpers.treasury._received_debit_service import ( + ReceivedDebitService, + ) + +_subservices = { + "inbound_transfers": [ + "stripe.test_helpers.treasury._inbound_transfer_service", + "InboundTransferService", + ], + "outbound_payments": [ + "stripe.test_helpers.treasury._outbound_payment_service", + "OutboundPaymentService", + ], + "outbound_transfers": [ + "stripe.test_helpers.treasury._outbound_transfer_service", + "OutboundTransferService", + ], + "received_credits": [ + "stripe.test_helpers.treasury._received_credit_service", + "ReceivedCreditService", + ], + "received_debits": [ + "stripe.test_helpers.treasury._received_debit_service", + "ReceivedDebitService", + ], +} + + +class TreasuryService(StripeService): + inbound_transfers: "InboundTransferService" + outbound_payments: "OutboundPaymentService" + outbound_transfers: "OutboundTransferService" + received_credits: "ReceivedCreditService" + received_debits: "ReceivedDebitService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__init__.py new file mode 100644 index 00000000..4a152983 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__init__.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers.issuing._authorization_service import ( + AuthorizationService as AuthorizationService, + ) + from stripe.test_helpers.issuing._card_service import ( + CardService as CardService, + ) + from stripe.test_helpers.issuing._personalization_design_service import ( + PersonalizationDesignService as PersonalizationDesignService, + ) + from stripe.test_helpers.issuing._transaction_service import ( + TransactionService as TransactionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "AuthorizationService": ( + "stripe.test_helpers.issuing._authorization_service", + False, + ), + "CardService": ("stripe.test_helpers.issuing._card_service", False), + "PersonalizationDesignService": ( + "stripe.test_helpers.issuing._personalization_design_service", + False, + ), + "TransactionService": ( + "stripe.test_helpers.issuing._transaction_service", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..2870ad6d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_authorization_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_authorization_service.cpython-312.pyc new file mode 100644 index 00000000..55c8a221 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_authorization_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_card_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_card_service.cpython-312.pyc new file mode 100644 index 00000000..d568f005 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_card_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_personalization_design_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_personalization_design_service.cpython-312.pyc new file mode 100644 index 00000000..561cdede Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_personalization_design_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..f1060d30 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/__pycache__/_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_authorization_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_authorization_service.py new file mode 100644 index 00000000..df546d3f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_authorization_service.py @@ -0,0 +1,335 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.issuing._authorization import Authorization + from stripe.params.test_helpers.issuing._authorization_capture_params import ( + AuthorizationCaptureParams, + ) + from stripe.params.test_helpers.issuing._authorization_create_params import ( + AuthorizationCreateParams, + ) + from stripe.params.test_helpers.issuing._authorization_expire_params import ( + AuthorizationExpireParams, + ) + from stripe.params.test_helpers.issuing._authorization_finalize_amount_params import ( + AuthorizationFinalizeAmountParams, + ) + from stripe.params.test_helpers.issuing._authorization_increment_params import ( + AuthorizationIncrementParams, + ) + from stripe.params.test_helpers.issuing._authorization_respond_params import ( + AuthorizationRespondParams, + ) + from stripe.params.test_helpers.issuing._authorization_reverse_params import ( + AuthorizationReverseParams, + ) + + +class AuthorizationService(StripeService): + def create( + self, + params: "AuthorizationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Create a test-mode authorization. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/test_helpers/issuing/authorizations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "AuthorizationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Create a test-mode authorization. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/test_helpers/issuing/authorizations", + base_address="api", + params=params, + options=options, + ), + ) + + def capture( + self, + authorization: str, + params: Optional["AuthorizationCaptureParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/capture".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def capture_async( + self, + authorization: str, + params: Optional["AuthorizationCaptureParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Capture a test-mode authorization. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/capture".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def expire( + self, + authorization: str, + params: Optional["AuthorizationExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/expire".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def expire_async( + self, + authorization: str, + params: Optional["AuthorizationExpireParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Expire a test-mode Authorization. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/expire".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def finalize_amount( + self, + authorization: str, + params: "AuthorizationFinalizeAmountParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def finalize_amount_async( + self, + authorization: str, + params: "AuthorizationFinalizeAmountParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def respond( + self, + authorization: str, + params: "AuthorizationRespondParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def respond_async( + self, + authorization: str, + params: "AuthorizationRespondParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Respond to a fraud challenge on a testmode Issuing authorization, simulating either a confirmation of fraud or a correction of legitimacy. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def increment( + self, + authorization: str, + params: "AuthorizationIncrementParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/increment".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def increment_async( + self, + authorization: str, + params: "AuthorizationIncrementParams", + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Increment a test-mode Authorization. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/increment".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def reverse( + self, + authorization: str, + params: Optional["AuthorizationReverseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + return cast( + "Authorization", + self._request( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/reverse".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def reverse_async( + self, + authorization: str, + params: Optional["AuthorizationReverseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Authorization": + """ + Reverse a test-mode Authorization. + """ + return cast( + "Authorization", + await self._request_async( + "post", + "/v1/test_helpers/issuing/authorizations/{authorization}/reverse".format( + authorization=sanitize_id(authorization), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_card_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_card_service.py new file mode 100644 index 00000000..8aaf8937 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_card_service.py @@ -0,0 +1,247 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.issuing._card import Card + from stripe.params.test_helpers.issuing._card_deliver_card_params import ( + CardDeliverCardParams, + ) + from stripe.params.test_helpers.issuing._card_fail_card_params import ( + CardFailCardParams, + ) + from stripe.params.test_helpers.issuing._card_return_card_params import ( + CardReturnCardParams, + ) + from stripe.params.test_helpers.issuing._card_ship_card_params import ( + CardShipCardParams, + ) + from stripe.params.test_helpers.issuing._card_submit_card_params import ( + CardSubmitCardParams, + ) + + +class CardService(StripeService): + def deliver_card( + self, + card: str, + params: Optional["CardDeliverCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + return cast( + "Card", + self._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/deliver".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def deliver_card_async( + self, + card: str, + params: Optional["CardDeliverCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to delivered. + """ + return cast( + "Card", + await self._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/deliver".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def fail_card( + self, + card: str, + params: Optional["CardFailCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + return cast( + "Card", + self._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/fail".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def fail_card_async( + self, + card: str, + params: Optional["CardFailCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to failure. + """ + return cast( + "Card", + await self._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/fail".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def return_card( + self, + card: str, + params: Optional["CardReturnCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + return cast( + "Card", + self._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/return".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def return_card_async( + self, + card: str, + params: Optional["CardReturnCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to returned. + """ + return cast( + "Card", + await self._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/return".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def ship_card( + self, + card: str, + params: Optional["CardShipCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + return cast( + "Card", + self._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/ship".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def ship_card_async( + self, + card: str, + params: Optional["CardShipCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to shipped. + """ + return cast( + "Card", + await self._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/ship".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def submit_card( + self, + card: str, + params: Optional["CardSubmitCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + return cast( + "Card", + self._request( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/submit".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def submit_card_async( + self, + card: str, + params: Optional["CardSubmitCardParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Card": + """ + Updates the shipping status of the specified Issuing Card object to submitted. This method requires Stripe Version ‘2024-09-30.acacia' or later. + """ + return cast( + "Card", + await self._request_async( + "post", + "/v1/test_helpers/issuing/cards/{card}/shipping/submit".format( + card=sanitize_id(card), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_personalization_design_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_personalization_design_service.py new file mode 100644 index 00000000..4079e835 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_personalization_design_service.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.issuing._personalization_design import PersonalizationDesign + from stripe.params.test_helpers.issuing._personalization_design_activate_params import ( + PersonalizationDesignActivateParams, + ) + from stripe.params.test_helpers.issuing._personalization_design_deactivate_params import ( + PersonalizationDesignDeactivateParams, + ) + from stripe.params.test_helpers.issuing._personalization_design_reject_params import ( + PersonalizationDesignRejectParams, + ) + + +class PersonalizationDesignService(StripeService): + def activate( + self, + personalization_design: str, + params: Optional["PersonalizationDesignActivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + return cast( + "PersonalizationDesign", + self._request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def activate_async( + self, + personalization_design: str, + params: Optional["PersonalizationDesignActivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to active. + """ + return cast( + "PersonalizationDesign", + await self._request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def deactivate( + self, + personalization_design: str, + params: Optional["PersonalizationDesignDeactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + return cast( + "PersonalizationDesign", + self._request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def deactivate_async( + self, + personalization_design: str, + params: Optional["PersonalizationDesignDeactivateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to inactive. + """ + return cast( + "PersonalizationDesign", + await self._request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def reject( + self, + personalization_design: str, + params: "PersonalizationDesignRejectParams", + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + return cast( + "PersonalizationDesign", + self._request( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def reject_async( + self, + personalization_design: str, + params: "PersonalizationDesignRejectParams", + options: Optional["RequestOptions"] = None, + ) -> "PersonalizationDesign": + """ + Updates the status of the specified testmode personalization design object to rejected. + """ + return cast( + "PersonalizationDesign", + await self._request_async( + "post", + "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject".format( + personalization_design=sanitize_id(personalization_design), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_transaction_service.py new file mode 100644 index 00000000..fcd28302 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/issuing/_transaction_service.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.issuing._transaction import Transaction + from stripe.params.test_helpers.issuing._transaction_create_force_capture_params import ( + TransactionCreateForceCaptureParams, + ) + from stripe.params.test_helpers.issuing._transaction_create_unlinked_refund_params import ( + TransactionCreateUnlinkedRefundParams, + ) + from stripe.params.test_helpers.issuing._transaction_refund_params import ( + TransactionRefundParams, + ) + + +class TransactionService(StripeService): + def refund( + self, + transaction: str, + params: Optional["TransactionRefundParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + return cast( + "Transaction", + self._request( + "post", + "/v1/test_helpers/issuing/transactions/{transaction}/refund".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def refund_async( + self, + transaction: str, + params: Optional["TransactionRefundParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Refund a test-mode Transaction. + """ + return cast( + "Transaction", + await self._request_async( + "post", + "/v1/test_helpers/issuing/transactions/{transaction}/refund".format( + transaction=sanitize_id(transaction), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def create_force_capture( + self, + params: "TransactionCreateForceCaptureParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Allows the user to capture an arbitrary amount, also known as a forced capture. + """ + return cast( + "Transaction", + self._request( + "post", + "/v1/test_helpers/issuing/transactions/create_force_capture", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_force_capture_async( + self, + params: "TransactionCreateForceCaptureParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Allows the user to capture an arbitrary amount, also known as a forced capture. + """ + return cast( + "Transaction", + await self._request_async( + "post", + "/v1/test_helpers/issuing/transactions/create_force_capture", + base_address="api", + params=params, + options=options, + ), + ) + + def create_unlinked_refund( + self, + params: "TransactionCreateUnlinkedRefundParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Allows the user to refund an arbitrary amount, also known as a unlinked refund. + """ + return cast( + "Transaction", + self._request( + "post", + "/v1/test_helpers/issuing/transactions/create_unlinked_refund", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_unlinked_refund_async( + self, + params: "TransactionCreateUnlinkedRefundParams", + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Allows the user to refund an arbitrary amount, also known as a unlinked refund. + """ + return cast( + "Transaction", + await self._request_async( + "post", + "/v1/test_helpers/issuing/transactions/create_unlinked_refund", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__init__.py new file mode 100644 index 00000000..f5e563e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__init__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers.terminal._reader_service import ( + ReaderService as ReaderService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "ReaderService": ("stripe.test_helpers.terminal._reader_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..ac681a8a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__pycache__/_reader_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__pycache__/_reader_service.cpython-312.pyc new file mode 100644 index 00000000..424d08e8 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/__pycache__/_reader_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/_reader_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/_reader_service.py new file mode 100644 index 00000000..307b8d19 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/terminal/_reader_service.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.test_helpers.terminal._reader_present_payment_method_params import ( + ReaderPresentPaymentMethodParams, + ) + from stripe.params.test_helpers.terminal._reader_succeed_input_collection_params import ( + ReaderSucceedInputCollectionParams, + ) + from stripe.params.test_helpers.terminal._reader_timeout_input_collection_params import ( + ReaderTimeoutInputCollectionParams, + ) + from stripe.terminal._reader import Reader + + +class ReaderService(StripeService): + def present_payment_method( + self, + reader: str, + params: Optional["ReaderPresentPaymentMethodParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/present_payment_method".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def present_payment_method_async( + self, + reader: str, + params: Optional["ReaderPresentPaymentMethodParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/present_payment_method".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def succeed_input_collection( + self, + reader: str, + params: Optional["ReaderSucceedInputCollectionParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def succeed_input_collection_async( + self, + reader: str, + params: Optional["ReaderSucceedInputCollectionParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Use this endpoint to trigger a successful input collection on a simulated reader. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def timeout_input_collection( + self, + reader: str, + params: Optional["ReaderTimeoutInputCollectionParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + return cast( + "Reader", + self._request( + "post", + "/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def timeout_input_collection_async( + self, + reader: str, + params: Optional["ReaderTimeoutInputCollectionParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Reader": + """ + Use this endpoint to complete an input collection with a timeout error on a simulated reader. + """ + return cast( + "Reader", + await self._request_async( + "post", + "/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection".format( + reader=sanitize_id(reader), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__init__.py new file mode 100644 index 00000000..e9c00518 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__init__.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.test_helpers.treasury._inbound_transfer_service import ( + InboundTransferService as InboundTransferService, + ) + from stripe.test_helpers.treasury._outbound_payment_service import ( + OutboundPaymentService as OutboundPaymentService, + ) + from stripe.test_helpers.treasury._outbound_transfer_service import ( + OutboundTransferService as OutboundTransferService, + ) + from stripe.test_helpers.treasury._received_credit_service import ( + ReceivedCreditService as ReceivedCreditService, + ) + from stripe.test_helpers.treasury._received_debit_service import ( + ReceivedDebitService as ReceivedDebitService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "InboundTransferService": ( + "stripe.test_helpers.treasury._inbound_transfer_service", + False, + ), + "OutboundPaymentService": ( + "stripe.test_helpers.treasury._outbound_payment_service", + False, + ), + "OutboundTransferService": ( + "stripe.test_helpers.treasury._outbound_transfer_service", + False, + ), + "ReceivedCreditService": ( + "stripe.test_helpers.treasury._received_credit_service", + False, + ), + "ReceivedDebitService": ( + "stripe.test_helpers.treasury._received_debit_service", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..0972a02d Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc new file mode 100644 index 00000000..54061fca Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc new file mode 100644 index 00000000..3101e691 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc new file mode 100644 index 00000000..42609c92 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_received_credit_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_received_credit_service.cpython-312.pyc new file mode 100644 index 00000000..b021c582 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_received_credit_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_received_debit_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_received_debit_service.cpython-312.pyc new file mode 100644 index 00000000..0693fdaf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/__pycache__/_received_debit_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_inbound_transfer_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_inbound_transfer_service.py new file mode 100644 index 00000000..c37255e5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_inbound_transfer_service.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.test_helpers.treasury._inbound_transfer_fail_params import ( + InboundTransferFailParams, + ) + from stripe.params.test_helpers.treasury._inbound_transfer_return_inbound_transfer_params import ( + InboundTransferReturnInboundTransferParams, + ) + from stripe.params.test_helpers.treasury._inbound_transfer_succeed_params import ( + InboundTransferSucceedParams, + ) + from stripe.treasury._inbound_transfer import InboundTransfer + + +class InboundTransferService(StripeService): + def fail( + self, + id: str, + params: Optional["InboundTransferFailParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + self._request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/fail".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def fail_async( + self, + id: str, + params: Optional["InboundTransferFailParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + await self._request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/fail".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def return_inbound_transfer( + self, + id: str, + params: Optional["InboundTransferReturnInboundTransferParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + return cast( + "InboundTransfer", + self._request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/return".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def return_inbound_transfer_async( + self, + id: str, + params: Optional["InboundTransferReturnInboundTransferParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + return cast( + "InboundTransfer", + await self._request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/return".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def succeed( + self, + id: str, + params: Optional["InboundTransferSucceedParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + self._request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def succeed_async( + self, + id: str, + params: Optional["InboundTransferSucceedParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + await self._request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_outbound_payment_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_outbound_payment_service.py new file mode 100644 index 00000000..42aff849 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_outbound_payment_service.py @@ -0,0 +1,200 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.test_helpers.treasury._outbound_payment_fail_params import ( + OutboundPaymentFailParams, + ) + from stripe.params.test_helpers.treasury._outbound_payment_post_params import ( + OutboundPaymentPostParams, + ) + from stripe.params.test_helpers.treasury._outbound_payment_return_outbound_payment_params import ( + OutboundPaymentReturnOutboundPaymentParams, + ) + from stripe.params.test_helpers.treasury._outbound_payment_update_params import ( + OutboundPaymentUpdateParams, + ) + from stripe.treasury._outbound_payment import OutboundPayment + + +class OutboundPaymentService(StripeService): + def update( + self, + id: str, + params: "OutboundPaymentUpdateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundPayment", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: "OutboundPaymentUpdateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundPayment", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def fail( + self, + id: str, + params: Optional["OutboundPaymentFailParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/fail".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def fail_async( + self, + id: str, + params: Optional["OutboundPaymentFailParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/fail".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def post( + self, + id: str, + params: Optional["OutboundPaymentPostParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/post".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def post_async( + self, + id: str, + params: Optional["OutboundPaymentPostParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/post".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def return_outbound_payment( + self, + id: str, + params: Optional["OutboundPaymentReturnOutboundPaymentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/return".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def return_outbound_payment_async( + self, + id: str, + params: Optional["OutboundPaymentReturnOutboundPaymentParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/return".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_outbound_transfer_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_outbound_transfer_service.py new file mode 100644 index 00000000..68ffe4fb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_outbound_transfer_service.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.test_helpers.treasury._outbound_transfer_fail_params import ( + OutboundTransferFailParams, + ) + from stripe.params.test_helpers.treasury._outbound_transfer_post_params import ( + OutboundTransferPostParams, + ) + from stripe.params.test_helpers.treasury._outbound_transfer_return_outbound_transfer_params import ( + OutboundTransferReturnOutboundTransferParams, + ) + from stripe.params.test_helpers.treasury._outbound_transfer_update_params import ( + OutboundTransferUpdateParams, + ) + from stripe.treasury._outbound_transfer import OutboundTransfer + + +class OutboundTransferService(StripeService): + def update( + self, + outbound_transfer: str, + params: "OutboundTransferUpdateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundTransfer", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + outbound_transfer: str, + params: "OutboundTransferUpdateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def fail( + self, + outbound_transfer: str, + params: Optional["OutboundTransferFailParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def fail_async( + self, + outbound_transfer: str, + params: Optional["OutboundTransferFailParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def post( + self, + outbound_transfer: str, + params: Optional["OutboundTransferPostParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def post_async( + self, + outbound_transfer: str, + params: Optional["OutboundTransferPostParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def return_outbound_transfer( + self, + outbound_transfer: str, + params: Optional[ + "OutboundTransferReturnOutboundTransferParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + self._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def return_outbound_transfer_async( + self, + outbound_transfer: str, + params: Optional[ + "OutboundTransferReturnOutboundTransferParams" + ] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_received_credit_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_received_credit_service.py new file mode 100644 index 00000000..b0ffb9ff --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_received_credit_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.test_helpers.treasury._received_credit_create_params import ( + ReceivedCreditCreateParams, + ) + from stripe.treasury._received_credit import ReceivedCredit + + +class ReceivedCreditService(StripeService): + def create( + self, + params: "ReceivedCreditCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ReceivedCredit": + """ + Use this endpoint to simulate a test mode ReceivedCredit initiated by a third party. In live mode, you can't directly create ReceivedCredits initiated by third parties. + """ + return cast( + "ReceivedCredit", + self._request( + "post", + "/v1/test_helpers/treasury/received_credits", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ReceivedCreditCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ReceivedCredit": + """ + Use this endpoint to simulate a test mode ReceivedCredit initiated by a third party. In live mode, you can't directly create ReceivedCredits initiated by third parties. + """ + return cast( + "ReceivedCredit", + await self._request_async( + "post", + "/v1/test_helpers/treasury/received_credits", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_received_debit_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_received_debit_service.py new file mode 100644 index 00000000..4b86843a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/test_helpers/treasury/_received_debit_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.test_helpers.treasury._received_debit_create_params import ( + ReceivedDebitCreateParams, + ) + from stripe.treasury._received_debit import ReceivedDebit + + +class ReceivedDebitService(StripeService): + def create( + self, + params: "ReceivedDebitCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ReceivedDebit": + """ + Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can't directly create ReceivedDebits initiated by third parties. + """ + return cast( + "ReceivedDebit", + self._request( + "post", + "/v1/test_helpers/treasury/received_debits", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "ReceivedDebitCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "ReceivedDebit": + """ + Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can't directly create ReceivedDebits initiated by third parties. + """ + return cast( + "ReceivedDebit", + await self._request_async( + "post", + "/v1/test_helpers/treasury/received_debits", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__init__.py new file mode 100644 index 00000000..eefbce57 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__init__.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.treasury._credit_reversal import ( + CreditReversal as CreditReversal, + ) + from stripe.treasury._credit_reversal_service import ( + CreditReversalService as CreditReversalService, + ) + from stripe.treasury._debit_reversal import DebitReversal as DebitReversal + from stripe.treasury._debit_reversal_service import ( + DebitReversalService as DebitReversalService, + ) + from stripe.treasury._financial_account import ( + FinancialAccount as FinancialAccount, + ) + from stripe.treasury._financial_account_features import ( + FinancialAccountFeatures as FinancialAccountFeatures, + ) + from stripe.treasury._financial_account_features_service import ( + FinancialAccountFeaturesService as FinancialAccountFeaturesService, + ) + from stripe.treasury._financial_account_service import ( + FinancialAccountService as FinancialAccountService, + ) + from stripe.treasury._inbound_transfer import ( + InboundTransfer as InboundTransfer, + ) + from stripe.treasury._inbound_transfer_service import ( + InboundTransferService as InboundTransferService, + ) + from stripe.treasury._outbound_payment import ( + OutboundPayment as OutboundPayment, + ) + from stripe.treasury._outbound_payment_service import ( + OutboundPaymentService as OutboundPaymentService, + ) + from stripe.treasury._outbound_transfer import ( + OutboundTransfer as OutboundTransfer, + ) + from stripe.treasury._outbound_transfer_service import ( + OutboundTransferService as OutboundTransferService, + ) + from stripe.treasury._received_credit import ( + ReceivedCredit as ReceivedCredit, + ) + from stripe.treasury._received_credit_service import ( + ReceivedCreditService as ReceivedCreditService, + ) + from stripe.treasury._received_debit import ReceivedDebit as ReceivedDebit + from stripe.treasury._received_debit_service import ( + ReceivedDebitService as ReceivedDebitService, + ) + from stripe.treasury._transaction import Transaction as Transaction + from stripe.treasury._transaction_entry import ( + TransactionEntry as TransactionEntry, + ) + from stripe.treasury._transaction_entry_service import ( + TransactionEntryService as TransactionEntryService, + ) + from stripe.treasury._transaction_service import ( + TransactionService as TransactionService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "CreditReversal": ("stripe.treasury._credit_reversal", False), + "CreditReversalService": ( + "stripe.treasury._credit_reversal_service", + False, + ), + "DebitReversal": ("stripe.treasury._debit_reversal", False), + "DebitReversalService": ("stripe.treasury._debit_reversal_service", False), + "FinancialAccount": ("stripe.treasury._financial_account", False), + "FinancialAccountFeatures": ( + "stripe.treasury._financial_account_features", + False, + ), + "FinancialAccountFeaturesService": ( + "stripe.treasury._financial_account_features_service", + False, + ), + "FinancialAccountService": ( + "stripe.treasury._financial_account_service", + False, + ), + "InboundTransfer": ("stripe.treasury._inbound_transfer", False), + "InboundTransferService": ( + "stripe.treasury._inbound_transfer_service", + False, + ), + "OutboundPayment": ("stripe.treasury._outbound_payment", False), + "OutboundPaymentService": ( + "stripe.treasury._outbound_payment_service", + False, + ), + "OutboundTransfer": ("stripe.treasury._outbound_transfer", False), + "OutboundTransferService": ( + "stripe.treasury._outbound_transfer_service", + False, + ), + "ReceivedCredit": ("stripe.treasury._received_credit", False), + "ReceivedCreditService": ( + "stripe.treasury._received_credit_service", + False, + ), + "ReceivedDebit": ("stripe.treasury._received_debit", False), + "ReceivedDebitService": ("stripe.treasury._received_debit_service", False), + "Transaction": ("stripe.treasury._transaction", False), + "TransactionEntry": ("stripe.treasury._transaction_entry", False), + "TransactionEntryService": ( + "stripe.treasury._transaction_entry_service", + False, + ), + "TransactionService": ("stripe.treasury._transaction_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..2492400a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_credit_reversal.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_credit_reversal.cpython-312.pyc new file mode 100644 index 00000000..acc04926 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_credit_reversal.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_credit_reversal_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_credit_reversal_service.cpython-312.pyc new file mode 100644 index 00000000..6db35153 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_credit_reversal_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_debit_reversal.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_debit_reversal.cpython-312.pyc new file mode 100644 index 00000000..8d70f13f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_debit_reversal.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_debit_reversal_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_debit_reversal_service.cpython-312.pyc new file mode 100644 index 00000000..bd5997da Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_debit_reversal_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account.cpython-312.pyc new file mode 100644 index 00000000..8770921f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_features.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_features.cpython-312.pyc new file mode 100644 index 00000000..b2921fc7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_features.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_features_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_features_service.cpython-312.pyc new file mode 100644 index 00000000..9342e753 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_features_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_service.cpython-312.pyc new file mode 100644 index 00000000..fed83579 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_financial_account_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_inbound_transfer.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_inbound_transfer.cpython-312.pyc new file mode 100644 index 00000000..34a4486e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_inbound_transfer.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc new file mode 100644 index 00000000..d05d85c2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_inbound_transfer_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_payment.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_payment.cpython-312.pyc new file mode 100644 index 00000000..acf3564c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_payment.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc new file mode 100644 index 00000000..741131c5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_payment_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_transfer.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_transfer.cpython-312.pyc new file mode 100644 index 00000000..d0963a4e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_transfer.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc new file mode 100644 index 00000000..6c429698 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_outbound_transfer_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_credit.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_credit.cpython-312.pyc new file mode 100644 index 00000000..5886665f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_credit.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_credit_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_credit_service.cpython-312.pyc new file mode 100644 index 00000000..c646ac33 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_credit_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_debit.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_debit.cpython-312.pyc new file mode 100644 index 00000000..9a9689e9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_debit.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_debit_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_debit_service.cpython-312.pyc new file mode 100644 index 00000000..ef0aa8c1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_received_debit_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction.cpython-312.pyc new file mode 100644 index 00000000..061e2f6f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_entry.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_entry.cpython-312.pyc new file mode 100644 index 00000000..32713708 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_entry.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_entry_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_entry_service.cpython-312.pyc new file mode 100644 index 00000000..beb4c7d9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_entry_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_service.cpython-312.pyc new file mode 100644 index 00000000..99f037fc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/__pycache__/_transaction_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_credit_reversal.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_credit_reversal.py new file mode 100644 index 00000000..4ed324cb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_credit_reversal.py @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.treasury._credit_reversal_create_params import ( + CreditReversalCreateParams, + ) + from stripe.params.treasury._credit_reversal_list_params import ( + CreditReversalListParams, + ) + from stripe.params.treasury._credit_reversal_retrieve_params import ( + CreditReversalRetrieveParams, + ) + from stripe.treasury._transaction import Transaction + + +class CreditReversal( + CreateableAPIResource["CreditReversal"], + ListableAPIResource["CreditReversal"], +): + """ + You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal. + """ + + OBJECT_NAME: ClassVar[Literal["treasury.credit_reversal"]] = ( + "treasury.credit_reversal" + ) + + class StatusTransitions(StripeObject): + posted_at: Optional[int] + """ + Timestamp describing when the CreditReversal changed status to `posted` + """ + + amount: int + """ + Amount (in cents) transferred. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + financial_account: str + """ + The FinancialAccount to reverse funds from. + """ + hosted_regulatory_receipt_url: Optional[str] + """ + A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + network: Literal["ach", "stripe"] + """ + The rails used to reverse the funds. + """ + object: Literal["treasury.credit_reversal"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + received_credit: str + """ + The ReceivedCredit being reversed. + """ + status: Literal["canceled", "posted", "processing"] + """ + Status of the CreditReversal + """ + status_transitions: StatusTransitions + transaction: Optional[ExpandableField["Transaction"]] + """ + The Transaction associated with this object. + """ + + @classmethod + def create( + cls, **params: Unpack["CreditReversalCreateParams"] + ) -> "CreditReversal": + """ + Reverses a ReceivedCredit and creates a CreditReversal object. + """ + return cast( + "CreditReversal", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["CreditReversalCreateParams"] + ) -> "CreditReversal": + """ + Reverses a ReceivedCredit and creates a CreditReversal object. + """ + return cast( + "CreditReversal", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["CreditReversalListParams"] + ) -> ListObject["CreditReversal"]: + """ + Returns a list of CreditReversals. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["CreditReversalListParams"] + ) -> ListObject["CreditReversal"]: + """ + Returns a list of CreditReversals. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["CreditReversalRetrieveParams"] + ) -> "CreditReversal": + """ + Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["CreditReversalRetrieveParams"] + ) -> "CreditReversal": + """ + Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = {"status_transitions": StatusTransitions} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_credit_reversal_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_credit_reversal_service.py new file mode 100644 index 00000000..1d4407f9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_credit_reversal_service.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._credit_reversal_create_params import ( + CreditReversalCreateParams, + ) + from stripe.params.treasury._credit_reversal_list_params import ( + CreditReversalListParams, + ) + from stripe.params.treasury._credit_reversal_retrieve_params import ( + CreditReversalRetrieveParams, + ) + from stripe.treasury._credit_reversal import CreditReversal + + +class CreditReversalService(StripeService): + def list( + self, + params: "CreditReversalListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditReversal]": + """ + Returns a list of CreditReversals. + """ + return cast( + "ListObject[CreditReversal]", + self._request( + "get", + "/v1/treasury/credit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "CreditReversalListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[CreditReversal]": + """ + Returns a list of CreditReversals. + """ + return cast( + "ListObject[CreditReversal]", + await self._request_async( + "get", + "/v1/treasury/credit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "CreditReversalCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditReversal": + """ + Reverses a ReceivedCredit and creates a CreditReversal object. + """ + return cast( + "CreditReversal", + self._request( + "post", + "/v1/treasury/credit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "CreditReversalCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "CreditReversal": + """ + Reverses a ReceivedCredit and creates a CreditReversal object. + """ + return cast( + "CreditReversal", + await self._request_async( + "post", + "/v1/treasury/credit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + credit_reversal: str, + params: Optional["CreditReversalRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditReversal": + """ + Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list + """ + return cast( + "CreditReversal", + self._request( + "get", + "/v1/treasury/credit_reversals/{credit_reversal}".format( + credit_reversal=sanitize_id(credit_reversal), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + credit_reversal: str, + params: Optional["CreditReversalRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "CreditReversal": + """ + Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list + """ + return cast( + "CreditReversal", + await self._request_async( + "get", + "/v1/treasury/credit_reversals/{credit_reversal}".format( + credit_reversal=sanitize_id(credit_reversal), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_debit_reversal.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_debit_reversal.py new file mode 100644 index 00000000..ff98a4e2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_debit_reversal.py @@ -0,0 +1,203 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, Optional, cast +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.treasury._debit_reversal_create_params import ( + DebitReversalCreateParams, + ) + from stripe.params.treasury._debit_reversal_list_params import ( + DebitReversalListParams, + ) + from stripe.params.treasury._debit_reversal_retrieve_params import ( + DebitReversalRetrieveParams, + ) + from stripe.treasury._transaction import Transaction + + +class DebitReversal( + CreateableAPIResource["DebitReversal"], + ListableAPIResource["DebitReversal"], +): + """ + You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal. + """ + + OBJECT_NAME: ClassVar[Literal["treasury.debit_reversal"]] = ( + "treasury.debit_reversal" + ) + + class LinkedFlows(StripeObject): + issuing_dispute: Optional[str] + """ + Set if there is an Issuing dispute associated with the DebitReversal. + """ + + class StatusTransitions(StripeObject): + completed_at: Optional[int] + """ + Timestamp describing when the DebitReversal changed status to `completed`. + """ + + amount: int + """ + Amount (in cents) transferred. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + financial_account: Optional[str] + """ + The FinancialAccount to reverse funds from. + """ + hosted_regulatory_receipt_url: Optional[str] + """ + A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + """ + id: str + """ + Unique identifier for the object. + """ + linked_flows: Optional[LinkedFlows] + """ + Other flows linked to a DebitReversal. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + network: Literal["ach", "card"] + """ + The rails used to reverse the funds. + """ + object: Literal["treasury.debit_reversal"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + received_debit: str + """ + The ReceivedDebit being reversed. + """ + status: Literal["failed", "processing", "succeeded"] + """ + Status of the DebitReversal + """ + status_transitions: StatusTransitions + transaction: Optional[ExpandableField["Transaction"]] + """ + The Transaction associated with this object. + """ + + @classmethod + def create( + cls, **params: Unpack["DebitReversalCreateParams"] + ) -> "DebitReversal": + """ + Reverses a ReceivedDebit and creates a DebitReversal object. + """ + return cast( + "DebitReversal", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["DebitReversalCreateParams"] + ) -> "DebitReversal": + """ + Reverses a ReceivedDebit and creates a DebitReversal object. + """ + return cast( + "DebitReversal", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["DebitReversalListParams"] + ) -> ListObject["DebitReversal"]: + """ + Returns a list of DebitReversals. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["DebitReversalListParams"] + ) -> ListObject["DebitReversal"]: + """ + Returns a list of DebitReversals. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["DebitReversalRetrieveParams"] + ) -> "DebitReversal": + """ + Retrieves a DebitReversal object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["DebitReversalRetrieveParams"] + ) -> "DebitReversal": + """ + Retrieves a DebitReversal object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "linked_flows": LinkedFlows, + "status_transitions": StatusTransitions, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_debit_reversal_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_debit_reversal_service.py new file mode 100644 index 00000000..f39dd543 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_debit_reversal_service.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._debit_reversal_create_params import ( + DebitReversalCreateParams, + ) + from stripe.params.treasury._debit_reversal_list_params import ( + DebitReversalListParams, + ) + from stripe.params.treasury._debit_reversal_retrieve_params import ( + DebitReversalRetrieveParams, + ) + from stripe.treasury._debit_reversal import DebitReversal + + +class DebitReversalService(StripeService): + def list( + self, + params: "DebitReversalListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[DebitReversal]": + """ + Returns a list of DebitReversals. + """ + return cast( + "ListObject[DebitReversal]", + self._request( + "get", + "/v1/treasury/debit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "DebitReversalListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[DebitReversal]": + """ + Returns a list of DebitReversals. + """ + return cast( + "ListObject[DebitReversal]", + await self._request_async( + "get", + "/v1/treasury/debit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "DebitReversalCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "DebitReversal": + """ + Reverses a ReceivedDebit and creates a DebitReversal object. + """ + return cast( + "DebitReversal", + self._request( + "post", + "/v1/treasury/debit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "DebitReversalCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "DebitReversal": + """ + Reverses a ReceivedDebit and creates a DebitReversal object. + """ + return cast( + "DebitReversal", + await self._request_async( + "post", + "/v1/treasury/debit_reversals", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + debit_reversal: str, + params: Optional["DebitReversalRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "DebitReversal": + """ + Retrieves a DebitReversal object. + """ + return cast( + "DebitReversal", + self._request( + "get", + "/v1/treasury/debit_reversals/{debit_reversal}".format( + debit_reversal=sanitize_id(debit_reversal), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + debit_reversal: str, + params: Optional["DebitReversalRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "DebitReversal": + """ + Retrieves a DebitReversal object. + """ + return cast( + "DebitReversal", + await self._request_async( + "get", + "/v1/treasury/debit_reversals/{debit_reversal}".format( + debit_reversal=sanitize_id(debit_reversal), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account.py new file mode 100644 index 00000000..5858d26f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account.py @@ -0,0 +1,724 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._updateable_api_resource import UpdateableAPIResource +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, List, Optional, cast, overload +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.treasury._financial_account_close_params import ( + FinancialAccountCloseParams, + ) + from stripe.params.treasury._financial_account_create_params import ( + FinancialAccountCreateParams, + ) + from stripe.params.treasury._financial_account_list_params import ( + FinancialAccountListParams, + ) + from stripe.params.treasury._financial_account_modify_params import ( + FinancialAccountModifyParams, + ) + from stripe.params.treasury._financial_account_retrieve_features_params import ( + FinancialAccountRetrieveFeaturesParams, + ) + from stripe.params.treasury._financial_account_retrieve_params import ( + FinancialAccountRetrieveParams, + ) + from stripe.params.treasury._financial_account_update_features_params import ( + FinancialAccountUpdateFeaturesParams, + ) + from stripe.treasury._financial_account_features import ( + FinancialAccountFeatures, + ) + + +class FinancialAccount( + CreateableAPIResource["FinancialAccount"], + ListableAPIResource["FinancialAccount"], + UpdateableAPIResource["FinancialAccount"], +): + """ + Stripe Treasury provides users with a container for money called a FinancialAccount that is separate from their Payments balance. + FinancialAccounts serve as the source and destination of Treasury's money movement APIs. + """ + + OBJECT_NAME: ClassVar[Literal["treasury.financial_account"]] = ( + "treasury.financial_account" + ) + + class Balance(StripeObject): + cash: Dict[str, int] + """ + Funds the user can spend right now. + """ + inbound_pending: Dict[str, int] + """ + Funds not spendable yet, but will become available at a later time. + """ + outbound_pending: Dict[str, int] + """ + Funds in the account, but not spendable because they are being held for pending outbound flows. + """ + + class FinancialAddress(StripeObject): + class Aba(StripeObject): + account_holder_name: str + """ + The name of the person or business that owns the bank account. + """ + account_number: Optional[str] + """ + The account number. + """ + account_number_last4: str + """ + The last four characters of the account number. + """ + bank_name: str + """ + Name of the bank. + """ + routing_number: str + """ + Routing number for the account. + """ + + aba: Optional[Aba] + """ + ABA Records contain U.S. bank account details per the ABA format. + """ + supported_networks: Optional[List[Literal["ach", "us_domestic_wire"]]] + """ + The list of networks that the address supports + """ + type: Literal["aba"] + """ + The type of financial address + """ + _inner_class_types = {"aba": Aba} + + class PlatformRestrictions(StripeObject): + inbound_flows: Optional[Literal["restricted", "unrestricted"]] + """ + Restricts all inbound money movement. + """ + outbound_flows: Optional[Literal["restricted", "unrestricted"]] + """ + Restricts all outbound money movement. + """ + + class StatusDetails(StripeObject): + class Closed(StripeObject): + reasons: List[ + Literal["account_rejected", "closed_by_platform", "other"] + ] + """ + The array that contains reasons for a FinancialAccount closure. + """ + + closed: Optional[Closed] + """ + Details related to the closure of this FinancialAccount + """ + _inner_class_types = {"closed": Closed} + + active_features: Optional[ + List[ + Literal[ + "card_issuing", + "deposit_insurance", + "financial_addresses.aba", + "financial_addresses.aba.forwarding", + "inbound_transfers.ach", + "intra_stripe_flows", + "outbound_payments.ach", + "outbound_payments.us_domestic_wire", + "outbound_transfers.ach", + "outbound_transfers.us_domestic_wire", + "remote_deposit_capture", + ] + ] + ] + """ + The array of paths to active Features in the Features hash. + """ + balance: Balance + """ + Balance information for the FinancialAccount + """ + country: str + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + features: Optional["FinancialAccountFeatures"] + """ + Encodes whether a FinancialAccount has access to a particular Feature, with a `status` enum and associated `status_details`. + Stripe or the platform can control Features via the requested field. + """ + financial_addresses: List[FinancialAddress] + """ + The set of credentials that resolve to a FinancialAccount. + """ + id: str + """ + Unique identifier for the object. + """ + is_default: Optional[bool] + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + nickname: Optional[str] + """ + The nickname for the FinancialAccount. + """ + object: Literal["treasury.financial_account"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + pending_features: Optional[ + List[ + Literal[ + "card_issuing", + "deposit_insurance", + "financial_addresses.aba", + "financial_addresses.aba.forwarding", + "inbound_transfers.ach", + "intra_stripe_flows", + "outbound_payments.ach", + "outbound_payments.us_domestic_wire", + "outbound_transfers.ach", + "outbound_transfers.us_domestic_wire", + "remote_deposit_capture", + ] + ] + ] + """ + The array of paths to pending Features in the Features hash. + """ + platform_restrictions: Optional[PlatformRestrictions] + """ + The set of functionalities that the platform can restrict on the FinancialAccount. + """ + restricted_features: Optional[ + List[ + Literal[ + "card_issuing", + "deposit_insurance", + "financial_addresses.aba", + "financial_addresses.aba.forwarding", + "inbound_transfers.ach", + "intra_stripe_flows", + "outbound_payments.ach", + "outbound_payments.us_domestic_wire", + "outbound_transfers.ach", + "outbound_transfers.us_domestic_wire", + "remote_deposit_capture", + ] + ] + ] + """ + The array of paths to restricted Features in the Features hash. + """ + status: Literal["closed", "open"] + """ + Status of this FinancialAccount. + """ + status_details: StatusDetails + supported_currencies: List[str] + """ + The currencies the FinancialAccount can hold a balance in. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. + """ + + @classmethod + def _cls_close( + cls, + financial_account: str, + **params: Unpack["FinancialAccountCloseParams"], + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + return cast( + "FinancialAccount", + cls._static_request( + "post", + "/v1/treasury/financial_accounts/{financial_account}/close".format( + financial_account=sanitize_id(financial_account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def close( + financial_account: str, **params: Unpack["FinancialAccountCloseParams"] + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + ... + + @overload + def close( + self, **params: Unpack["FinancialAccountCloseParams"] + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + ... + + @class_method_variant("_cls_close") + def close( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["FinancialAccountCloseParams"] + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + return cast( + "FinancialAccount", + self._request( + "post", + "/v1/treasury/financial_accounts/{financial_account}/close".format( + financial_account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_close_async( + cls, + financial_account: str, + **params: Unpack["FinancialAccountCloseParams"], + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + return cast( + "FinancialAccount", + await cls._static_request_async( + "post", + "/v1/treasury/financial_accounts/{financial_account}/close".format( + financial_account=sanitize_id(financial_account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def close_async( + financial_account: str, **params: Unpack["FinancialAccountCloseParams"] + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + ... + + @overload + async def close_async( + self, **params: Unpack["FinancialAccountCloseParams"] + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + ... + + @class_method_variant("_cls_close_async") + async def close_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["FinancialAccountCloseParams"] + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + return cast( + "FinancialAccount", + await self._request_async( + "post", + "/v1/treasury/financial_accounts/{financial_account}/close".format( + financial_account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["FinancialAccountCreateParams"] + ) -> "FinancialAccount": + """ + Creates a new FinancialAccount. Each connected account can have up to three FinancialAccounts by default. + """ + return cast( + "FinancialAccount", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["FinancialAccountCreateParams"] + ) -> "FinancialAccount": + """ + Creates a new FinancialAccount. Each connected account can have up to three FinancialAccounts by default. + """ + return cast( + "FinancialAccount", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["FinancialAccountListParams"] + ) -> ListObject["FinancialAccount"]: + """ + Returns a list of FinancialAccounts. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["FinancialAccountListParams"] + ) -> ListObject["FinancialAccount"]: + """ + Returns a list of FinancialAccounts. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def modify( + cls, id: str, **params: Unpack["FinancialAccountModifyParams"] + ) -> "FinancialAccount": + """ + Updates the details of a FinancialAccount. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "FinancialAccount", + cls._static_request( + "post", + url, + params=params, + ), + ) + + @classmethod + async def modify_async( + cls, id: str, **params: Unpack["FinancialAccountModifyParams"] + ) -> "FinancialAccount": + """ + Updates the details of a FinancialAccount. + """ + url = "%s/%s" % (cls.class_url(), sanitize_id(id)) + return cast( + "FinancialAccount", + await cls._static_request_async( + "post", + url, + params=params, + ), + ) + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["FinancialAccountRetrieveParams"] + ) -> "FinancialAccount": + """ + Retrieves the details of a FinancialAccount. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["FinancialAccountRetrieveParams"] + ) -> "FinancialAccount": + """ + Retrieves the details of a FinancialAccount. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def _cls_retrieve_features( + cls, + financial_account: str, + **params: Unpack["FinancialAccountRetrieveFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + cls._static_request( + "get", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def retrieve_features( + financial_account: str, + **params: Unpack["FinancialAccountRetrieveFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + ... + + @overload + def retrieve_features( + self, **params: Unpack["FinancialAccountRetrieveFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + ... + + @class_method_variant("_cls_retrieve_features") + def retrieve_features( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["FinancialAccountRetrieveFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + self._request( + "get", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_retrieve_features_async( + cls, + financial_account: str, + **params: Unpack["FinancialAccountRetrieveFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + await cls._static_request_async( + "get", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def retrieve_features_async( + financial_account: str, + **params: Unpack["FinancialAccountRetrieveFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + ... + + @overload + async def retrieve_features_async( + self, **params: Unpack["FinancialAccountRetrieveFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + ... + + @class_method_variant("_cls_retrieve_features_async") + async def retrieve_features_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["FinancialAccountRetrieveFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + await self._request_async( + "get", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_update_features( + cls, + financial_account: str, + **params: Unpack["FinancialAccountUpdateFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + cls._static_request( + "post", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account) + ), + params=params, + ), + ) + + @overload + @staticmethod + def update_features( + financial_account: str, + **params: Unpack["FinancialAccountUpdateFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + ... + + @overload + def update_features( + self, **params: Unpack["FinancialAccountUpdateFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + ... + + @class_method_variant("_cls_update_features") + def update_features( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["FinancialAccountUpdateFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + self._request( + "post", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_update_features_async( + cls, + financial_account: str, + **params: Unpack["FinancialAccountUpdateFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + await cls._static_request_async( + "post", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def update_features_async( + financial_account: str, + **params: Unpack["FinancialAccountUpdateFeaturesParams"], + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + ... + + @overload + async def update_features_async( + self, **params: Unpack["FinancialAccountUpdateFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + ... + + @class_method_variant("_cls_update_features_async") + async def update_features_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["FinancialAccountUpdateFeaturesParams"] + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + await self._request_async( + "post", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + _inner_class_types = { + "balance": Balance, + "financial_addresses": FinancialAddress, + "platform_restrictions": PlatformRestrictions, + "status_details": StatusDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_features.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_features.py new file mode 100644 index 00000000..b787ad43 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_features.py @@ -0,0 +1,511 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, List, Optional +from typing_extensions import Literal + + +class FinancialAccountFeatures(StripeObject): + """ + Encodes whether a FinancialAccount has access to a particular Feature, with a `status` enum and associated `status_details`. + Stripe or the platform can control Features via the requested field. + """ + + OBJECT_NAME: ClassVar[Literal["treasury.financial_account_features"]] = ( + "treasury.financial_account_features" + ) + + class CardIssuing(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[Literal["inbound_flows", "outbound_flows"]] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + class DepositInsurance(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[Literal["inbound_flows", "outbound_flows"]] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + class FinancialAddresses(StripeObject): + class Aba(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[ + Literal["inbound_flows", "outbound_flows"] + ] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + aba: Optional[Aba] + """ + Toggle settings for enabling/disabling the ABA address feature + """ + _inner_class_types = {"aba": Aba} + + class InboundTransfers(StripeObject): + class Ach(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[ + Literal["inbound_flows", "outbound_flows"] + ] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + ach: Optional[Ach] + """ + Toggle settings for enabling/disabling an inbound ACH specific feature + """ + _inner_class_types = {"ach": Ach} + + class IntraStripeFlows(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[Literal["inbound_flows", "outbound_flows"]] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + class OutboundPayments(StripeObject): + class Ach(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[ + Literal["inbound_flows", "outbound_flows"] + ] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + class UsDomesticWire(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[ + Literal["inbound_flows", "outbound_flows"] + ] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + ach: Optional[Ach] + """ + Toggle settings for enabling/disabling an outbound ACH specific feature + """ + us_domestic_wire: Optional[UsDomesticWire] + """ + Toggle settings for enabling/disabling a feature + """ + _inner_class_types = {"ach": Ach, "us_domestic_wire": UsDomesticWire} + + class OutboundTransfers(StripeObject): + class Ach(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[ + Literal["inbound_flows", "outbound_flows"] + ] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + class UsDomesticWire(StripeObject): + class StatusDetail(StripeObject): + code: Literal[ + "activating", + "capability_not_requested", + "financial_account_closed", + "rejected_other", + "rejected_unsupported_business", + "requirements_past_due", + "requirements_pending_verification", + "restricted_by_platform", + "restricted_other", + ] + """ + Represents the reason why the status is `pending` or `restricted`. + """ + resolution: Optional[ + Literal[ + "contact_stripe", + "provide_information", + "remove_restriction", + ] + ] + """ + Represents what the user should do, if anything, to activate the Feature. + """ + restriction: Optional[ + Literal["inbound_flows", "outbound_flows"] + ] + """ + The `platform_restrictions` that are restricting this Feature. + """ + + requested: bool + """ + Whether the FinancialAccount should have the Feature. + """ + status: Literal["active", "pending", "restricted"] + """ + Whether the Feature is operational. + """ + status_details: List[StatusDetail] + """ + Additional details; includes at least one entry when the status is not `active`. + """ + _inner_class_types = {"status_details": StatusDetail} + + ach: Optional[Ach] + """ + Toggle settings for enabling/disabling an outbound ACH specific feature + """ + us_domestic_wire: Optional[UsDomesticWire] + """ + Toggle settings for enabling/disabling a feature + """ + _inner_class_types = {"ach": Ach, "us_domestic_wire": UsDomesticWire} + + card_issuing: Optional[CardIssuing] + """ + Toggle settings for enabling/disabling a feature + """ + deposit_insurance: Optional[DepositInsurance] + """ + Toggle settings for enabling/disabling a feature + """ + financial_addresses: Optional[FinancialAddresses] + """ + Settings related to Financial Addresses features on a Financial Account + """ + inbound_transfers: Optional[InboundTransfers] + """ + InboundTransfers contains inbound transfers features for a FinancialAccount. + """ + intra_stripe_flows: Optional[IntraStripeFlows] + """ + Toggle settings for enabling/disabling a feature + """ + object: Literal["treasury.financial_account_features"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + outbound_payments: Optional[OutboundPayments] + """ + Settings related to Outbound Payments features on a Financial Account + """ + outbound_transfers: Optional[OutboundTransfers] + """ + OutboundTransfers contains outbound transfers features for a FinancialAccount. + """ + _inner_class_types = { + "card_issuing": CardIssuing, + "deposit_insurance": DepositInsurance, + "financial_addresses": FinancialAddresses, + "inbound_transfers": InboundTransfers, + "intra_stripe_flows": IntraStripeFlows, + "outbound_payments": OutboundPayments, + "outbound_transfers": OutboundTransfers, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_features_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_features_service.py new file mode 100644 index 00000000..b89cec2d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_features_service.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.treasury._financial_account_features_retrieve_params import ( + FinancialAccountFeaturesRetrieveParams, + ) + from stripe.params.treasury._financial_account_features_update_params import ( + FinancialAccountFeaturesUpdateParams, + ) + from stripe.treasury._financial_account_features import ( + FinancialAccountFeatures, + ) + + +class FinancialAccountFeaturesService(StripeService): + def update( + self, + financial_account: str, + params: Optional["FinancialAccountFeaturesUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + self._request( + "post", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + financial_account: str, + params: Optional["FinancialAccountFeaturesUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccountFeatures": + """ + Updates the Features associated with a FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + await self._request_async( + "post", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + financial_account: str, + params: Optional["FinancialAccountFeaturesRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + self._request( + "get", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + financial_account: str, + params: Optional["FinancialAccountFeaturesRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccountFeatures": + """ + Retrieves Features information associated with the FinancialAccount. + """ + return cast( + "FinancialAccountFeatures", + await self._request_async( + "get", + "/v1/treasury/financial_accounts/{financial_account}/features".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_service.py new file mode 100644 index 00000000..269b67ec --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_financial_account_service.py @@ -0,0 +1,268 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._financial_account_close_params import ( + FinancialAccountCloseParams, + ) + from stripe.params.treasury._financial_account_create_params import ( + FinancialAccountCreateParams, + ) + from stripe.params.treasury._financial_account_list_params import ( + FinancialAccountListParams, + ) + from stripe.params.treasury._financial_account_retrieve_params import ( + FinancialAccountRetrieveParams, + ) + from stripe.params.treasury._financial_account_update_params import ( + FinancialAccountUpdateParams, + ) + from stripe.treasury._financial_account import FinancialAccount + from stripe.treasury._financial_account_features_service import ( + FinancialAccountFeaturesService, + ) + +_subservices = { + "features": [ + "stripe.treasury._financial_account_features_service", + "FinancialAccountFeaturesService", + ], +} + + +class FinancialAccountService(StripeService): + features: "FinancialAccountFeaturesService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() + + def list( + self, + params: Optional["FinancialAccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[FinancialAccount]": + """ + Returns a list of FinancialAccounts. + """ + return cast( + "ListObject[FinancialAccount]", + self._request( + "get", + "/v1/treasury/financial_accounts", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["FinancialAccountListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[FinancialAccount]": + """ + Returns a list of FinancialAccounts. + """ + return cast( + "ListObject[FinancialAccount]", + await self._request_async( + "get", + "/v1/treasury/financial_accounts", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "FinancialAccountCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Creates a new FinancialAccount. Each connected account can have up to three FinancialAccounts by default. + """ + return cast( + "FinancialAccount", + self._request( + "post", + "/v1/treasury/financial_accounts", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "FinancialAccountCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Creates a new FinancialAccount. Each connected account can have up to three FinancialAccounts by default. + """ + return cast( + "FinancialAccount", + await self._request_async( + "post", + "/v1/treasury/financial_accounts", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + financial_account: str, + params: Optional["FinancialAccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Retrieves the details of a FinancialAccount. + """ + return cast( + "FinancialAccount", + self._request( + "get", + "/v1/treasury/financial_accounts/{financial_account}".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + financial_account: str, + params: Optional["FinancialAccountRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Retrieves the details of a FinancialAccount. + """ + return cast( + "FinancialAccount", + await self._request_async( + "get", + "/v1/treasury/financial_accounts/{financial_account}".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + financial_account: str, + params: Optional["FinancialAccountUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Updates the details of a FinancialAccount. + """ + return cast( + "FinancialAccount", + self._request( + "post", + "/v1/treasury/financial_accounts/{financial_account}".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + financial_account: str, + params: Optional["FinancialAccountUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Updates the details of a FinancialAccount. + """ + return cast( + "FinancialAccount", + await self._request_async( + "post", + "/v1/treasury/financial_accounts/{financial_account}".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def close( + self, + financial_account: str, + params: Optional["FinancialAccountCloseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + return cast( + "FinancialAccount", + self._request( + "post", + "/v1/treasury/financial_accounts/{financial_account}/close".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def close_async( + self, + financial_account: str, + params: Optional["FinancialAccountCloseParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "FinancialAccount": + """ + Closes a FinancialAccount. A FinancialAccount can only be closed if it has a zero balance, has no pending InboundTransfers, and has canceled all attached Issuing cards. + """ + return cast( + "FinancialAccount", + await self._request_async( + "post", + "/v1/treasury/financial_accounts/{financial_account}/close".format( + financial_account=sanitize_id(financial_account), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_inbound_transfer.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_inbound_transfer.py new file mode 100644 index 00000000..2c06ec5f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_inbound_transfer.py @@ -0,0 +1,815 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._mandate import Mandate + from stripe.params.treasury._inbound_transfer_cancel_params import ( + InboundTransferCancelParams, + ) + from stripe.params.treasury._inbound_transfer_create_params import ( + InboundTransferCreateParams, + ) + from stripe.params.treasury._inbound_transfer_fail_params import ( + InboundTransferFailParams, + ) + from stripe.params.treasury._inbound_transfer_list_params import ( + InboundTransferListParams, + ) + from stripe.params.treasury._inbound_transfer_retrieve_params import ( + InboundTransferRetrieveParams, + ) + from stripe.params.treasury._inbound_transfer_return_inbound_transfer_params import ( + InboundTransferReturnInboundTransferParams, + ) + from stripe.params.treasury._inbound_transfer_succeed_params import ( + InboundTransferSucceedParams, + ) + from stripe.treasury._transaction import Transaction + + +class InboundTransfer( + CreateableAPIResource["InboundTransfer"], + ListableAPIResource["InboundTransfer"], +): + """ + Use [InboundTransfers](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) to add funds to your [FinancialAccount](https://stripe.com/docs/api#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit. + + Related guide: [Moving money with Treasury using InboundTransfer objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) + """ + + OBJECT_NAME: ClassVar[Literal["treasury.inbound_transfer"]] = ( + "treasury.inbound_transfer" + ) + + class FailureDetails(StripeObject): + code: Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "debit_not_authorized", + "incorrect_account_holder_address", + "incorrect_account_holder_name", + "incorrect_account_holder_tax_id", + "insufficient_funds", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + """ + Reason for the failure. + """ + + class LinkedFlows(StripeObject): + received_debit: Optional[str] + """ + If funds for this flow were returned after the flow went to the `succeeded` state, this field contains a reference to the ReceivedDebit return. + """ + + class OriginPaymentMethodDetails(StripeObject): + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + _inner_class_types = {"address": Address} + + class UsBankAccount(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_type: Optional[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the mandate used to make this payment. + """ + network: Literal["ach"] + """ + The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + + billing_details: BillingDetails + type: Literal["us_bank_account"] + """ + The type of the payment method used in the InboundTransfer. + """ + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "billing_details": BillingDetails, + "us_bank_account": UsBankAccount, + } + + class StatusTransitions(StripeObject): + canceled_at: Optional[int] + """ + Timestamp describing when an InboundTransfer changed status to `canceled`. + """ + failed_at: Optional[int] + """ + Timestamp describing when an InboundTransfer changed status to `failed`. + """ + succeeded_at: Optional[int] + """ + Timestamp describing when an InboundTransfer changed status to `succeeded`. + """ + + amount: int + """ + Amount (in cents) transferred. + """ + cancelable: bool + """ + Returns `true` if the InboundTransfer is able to be canceled. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + failure_details: Optional[FailureDetails] + """ + Details about this InboundTransfer's failure. Only set when status is `failed`. + """ + financial_account: str + """ + The FinancialAccount that received the funds. + """ + hosted_regulatory_receipt_url: Optional[str] + """ + A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + """ + id: str + """ + Unique identifier for the object. + """ + linked_flows: LinkedFlows + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["treasury.inbound_transfer"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + origin_payment_method: Optional[str] + """ + The origin payment method to be debited for an InboundTransfer. + """ + origin_payment_method_details: Optional[OriginPaymentMethodDetails] + """ + Details about the PaymentMethod for an InboundTransfer. + """ + returned: Optional[bool] + """ + Returns `true` if the funds for an InboundTransfer were returned after the InboundTransfer went to the `succeeded` state. + """ + statement_descriptor: str + """ + Statement descriptor shown when funds are debited from the source. Not all payment networks support `statement_descriptor`. + """ + status: Literal["canceled", "failed", "processing", "succeeded"] + """ + Status of the InboundTransfer: `processing`, `succeeded`, `failed`, and `canceled`. An InboundTransfer is `processing` if it is created and pending. The status changes to `succeeded` once the funds have been "confirmed" and a `transaction` is created and posted. The status changes to `failed` if the transfer fails. + """ + status_transitions: StatusTransitions + transaction: Optional[ExpandableField["Transaction"]] + """ + The Transaction associated with this object. + """ + + @classmethod + def _cls_cancel( + cls, + inbound_transfer: str, + **params: Unpack["InboundTransferCancelParams"], + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + return cast( + "InboundTransfer", + cls._static_request( + "post", + "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel".format( + inbound_transfer=sanitize_id(inbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + inbound_transfer: str, **params: Unpack["InboundTransferCancelParams"] + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + ... + + @overload + def cancel( + self, **params: Unpack["InboundTransferCancelParams"] + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InboundTransferCancelParams"] + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + return cast( + "InboundTransfer", + self._request( + "post", + "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel".format( + inbound_transfer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, + inbound_transfer: str, + **params: Unpack["InboundTransferCancelParams"], + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + return cast( + "InboundTransfer", + await cls._static_request_async( + "post", + "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel".format( + inbound_transfer=sanitize_id(inbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + inbound_transfer: str, **params: Unpack["InboundTransferCancelParams"] + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["InboundTransferCancelParams"] + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InboundTransferCancelParams"] + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + return cast( + "InboundTransfer", + await self._request_async( + "post", + "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel".format( + inbound_transfer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["InboundTransferCreateParams"] + ) -> "InboundTransfer": + """ + Creates an InboundTransfer. + """ + return cast( + "InboundTransfer", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["InboundTransferCreateParams"] + ) -> "InboundTransfer": + """ + Creates an InboundTransfer. + """ + return cast( + "InboundTransfer", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["InboundTransferListParams"] + ) -> ListObject["InboundTransfer"]: + """ + Returns a list of InboundTransfers sent from the specified FinancialAccount. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["InboundTransferListParams"] + ) -> ListObject["InboundTransfer"]: + """ + Returns a list of InboundTransfers sent from the specified FinancialAccount. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["InboundTransferRetrieveParams"] + ) -> "InboundTransfer": + """ + Retrieves the details of an existing InboundTransfer. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["InboundTransferRetrieveParams"] + ) -> "InboundTransfer": + """ + Retrieves the details of an existing InboundTransfer. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["InboundTransfer"]): + _resource_cls: Type["InboundTransfer"] + + @classmethod + def _cls_fail( + cls, id: str, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + cls._static_request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/fail".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def fail( + id: str, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + ... + + @overload + def fail( + self, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_fail") + def fail( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + self.resource._request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/fail".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_fail_async( + cls, id: str, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/fail".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def fail_async( + id: str, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + ... + + @overload + async def fail_async( + self, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_fail_async") + async def fail_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InboundTransferFailParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/fail".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_return_inbound_transfer( + cls, + id: str, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + return cast( + "InboundTransfer", + cls._static_request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/return".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def return_inbound_transfer( + id: str, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + ... + + @overload + def return_inbound_transfer( + self, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + ... + + @class_method_variant("_cls_return_inbound_transfer") + def return_inbound_transfer( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + return cast( + "InboundTransfer", + self.resource._request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/return".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_return_inbound_transfer_async( + cls, + id: str, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + return cast( + "InboundTransfer", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/return".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def return_inbound_transfer_async( + id: str, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + ... + + @overload + async def return_inbound_transfer_async( + self, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + ... + + @class_method_variant("_cls_return_inbound_transfer_async") + async def return_inbound_transfer_async( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["InboundTransferReturnInboundTransferParams"], + ) -> "InboundTransfer": + """ + Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state. + """ + return cast( + "InboundTransfer", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/return".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_succeed( + cls, id: str, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + cls._static_request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def succeed( + id: str, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + ... + + @overload + def succeed( + self, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_succeed") + def succeed( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + self.resource._request( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_succeed_async( + cls, id: str, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def succeed_async( + id: str, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + ... + + @overload + async def succeed_async( + self, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_succeed_async") + async def succeed_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["InboundTransferSucceedParams"] + ) -> "InboundTransfer": + """ + Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state. + """ + return cast( + "InboundTransfer", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "failure_details": FailureDetails, + "linked_flows": LinkedFlows, + "origin_payment_method_details": OriginPaymentMethodDetails, + "status_transitions": StatusTransitions, + } + + +InboundTransfer.TestHelpers._resource_cls = InboundTransfer diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_inbound_transfer_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_inbound_transfer_service.py new file mode 100644 index 00000000..7ce66d3e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_inbound_transfer_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._inbound_transfer_cancel_params import ( + InboundTransferCancelParams, + ) + from stripe.params.treasury._inbound_transfer_create_params import ( + InboundTransferCreateParams, + ) + from stripe.params.treasury._inbound_transfer_list_params import ( + InboundTransferListParams, + ) + from stripe.params.treasury._inbound_transfer_retrieve_params import ( + InboundTransferRetrieveParams, + ) + from stripe.treasury._inbound_transfer import InboundTransfer + + +class InboundTransferService(StripeService): + def list( + self, + params: "InboundTransferListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InboundTransfer]": + """ + Returns a list of InboundTransfers sent from the specified FinancialAccount. + """ + return cast( + "ListObject[InboundTransfer]", + self._request( + "get", + "/v1/treasury/inbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "InboundTransferListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[InboundTransfer]": + """ + Returns a list of InboundTransfers sent from the specified FinancialAccount. + """ + return cast( + "ListObject[InboundTransfer]", + await self._request_async( + "get", + "/v1/treasury/inbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "InboundTransferCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Creates an InboundTransfer. + """ + return cast( + "InboundTransfer", + self._request( + "post", + "/v1/treasury/inbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "InboundTransferCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Creates an InboundTransfer. + """ + return cast( + "InboundTransfer", + await self._request_async( + "post", + "/v1/treasury/inbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["InboundTransferRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Retrieves the details of an existing InboundTransfer. + """ + return cast( + "InboundTransfer", + self._request( + "get", + "/v1/treasury/inbound_transfers/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["InboundTransferRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Retrieves the details of an existing InboundTransfer. + """ + return cast( + "InboundTransfer", + await self._request_async( + "get", + "/v1/treasury/inbound_transfers/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + inbound_transfer: str, + params: Optional["InboundTransferCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + return cast( + "InboundTransfer", + self._request( + "post", + "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel".format( + inbound_transfer=sanitize_id(inbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + inbound_transfer: str, + params: Optional["InboundTransferCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "InboundTransfer": + """ + Cancels an InboundTransfer. + """ + return cast( + "InboundTransfer", + await self._request_async( + "post", + "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel".format( + inbound_transfer=sanitize_id(inbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_payment.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_payment.py new file mode 100644 index 00000000..08a834cd --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_payment.py @@ -0,0 +1,990 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._mandate import Mandate + from stripe.params.treasury._outbound_payment_cancel_params import ( + OutboundPaymentCancelParams, + ) + from stripe.params.treasury._outbound_payment_create_params import ( + OutboundPaymentCreateParams, + ) + from stripe.params.treasury._outbound_payment_fail_params import ( + OutboundPaymentFailParams, + ) + from stripe.params.treasury._outbound_payment_list_params import ( + OutboundPaymentListParams, + ) + from stripe.params.treasury._outbound_payment_post_params import ( + OutboundPaymentPostParams, + ) + from stripe.params.treasury._outbound_payment_retrieve_params import ( + OutboundPaymentRetrieveParams, + ) + from stripe.params.treasury._outbound_payment_return_outbound_payment_params import ( + OutboundPaymentReturnOutboundPaymentParams, + ) + from stripe.params.treasury._outbound_payment_update_params import ( + OutboundPaymentUpdateParams, + ) + from stripe.treasury._transaction import Transaction + + +class OutboundPayment( + CreateableAPIResource["OutboundPayment"], + ListableAPIResource["OutboundPayment"], +): + """ + Use [OutboundPayments](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) to send funds to another party's external bank account or [FinancialAccount](https://stripe.com/docs/api#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https://stripe.com/docs/api#outbound_transfers). + + Simulate OutboundPayment state changes with the `/v1/test_helpers/treasury/outbound_payments` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundPayment objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) + """ + + OBJECT_NAME: ClassVar[Literal["treasury.outbound_payment"]] = ( + "treasury.outbound_payment" + ) + + class DestinationPaymentMethodDetails(StripeObject): + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + _inner_class_types = {"address": Address} + + class FinancialAccount(StripeObject): + id: str + """ + Token of the FinancialAccount. + """ + network: Literal["stripe"] + """ + The rails used to send funds. + """ + + class UsBankAccount(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_type: Optional[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the mandate used to make this payment. + """ + network: Literal["ach", "us_domestic_wire"] + """ + The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + + billing_details: BillingDetails + financial_account: Optional[FinancialAccount] + type: Literal["financial_account", "us_bank_account"] + """ + The type of the payment method used in the OutboundPayment. + """ + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "billing_details": BillingDetails, + "financial_account": FinancialAccount, + "us_bank_account": UsBankAccount, + } + + class EndUserDetails(StripeObject): + ip_address: Optional[str] + """ + IP address of the user initiating the OutboundPayment. Set if `present` is set to `true`. IP address collection is required for risk and compliance reasons. This will be used to help determine if the OutboundPayment is authorized or should be blocked. + """ + present: bool + """ + `true` if the OutboundPayment creation request is being made on behalf of an end user by a platform. Otherwise, `false`. + """ + + class ReturnedDetails(StripeObject): + code: Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "declined", + "incorrect_account_holder_name", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + """ + Reason for the return. + """ + transaction: ExpandableField["Transaction"] + """ + The Transaction associated with this object. + """ + + class StatusTransitions(StripeObject): + canceled_at: Optional[int] + """ + Timestamp describing when an OutboundPayment changed status to `canceled`. + """ + failed_at: Optional[int] + """ + Timestamp describing when an OutboundPayment changed status to `failed`. + """ + posted_at: Optional[int] + """ + Timestamp describing when an OutboundPayment changed status to `posted`. + """ + returned_at: Optional[int] + """ + Timestamp describing when an OutboundPayment changed status to `returned`. + """ + + class TrackingDetails(StripeObject): + class Ach(StripeObject): + trace_id: str + """ + ACH trace ID of the OutboundPayment for payments sent over the `ach` network. + """ + + class UsDomesticWire(StripeObject): + chips: Optional[str] + """ + CHIPS System Sequence Number (SSN) of the OutboundPayment for payments sent over the `us_domestic_wire` network. + """ + imad: Optional[str] + """ + IMAD of the OutboundPayment for payments sent over the `us_domestic_wire` network. + """ + omad: Optional[str] + """ + OMAD of the OutboundPayment for payments sent over the `us_domestic_wire` network. + """ + + ach: Optional[Ach] + type: Literal["ach", "us_domestic_wire"] + """ + The US bank account network used to send funds. + """ + us_domestic_wire: Optional[UsDomesticWire] + _inner_class_types = {"ach": Ach, "us_domestic_wire": UsDomesticWire} + + amount: int + """ + Amount (in cents) transferred. + """ + cancelable: bool + """ + Returns `true` if the object can be canceled, and `false` otherwise. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + customer: Optional[str] + """ + ID of the [customer](https://stripe.com/docs/api/customers) to whom an OutboundPayment is sent. + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination_payment_method: Optional[str] + """ + The PaymentMethod via which an OutboundPayment is sent. This field can be empty if the OutboundPayment was created using `destination_payment_method_data`. + """ + destination_payment_method_details: Optional[ + DestinationPaymentMethodDetails + ] + """ + Details about the PaymentMethod for an OutboundPayment. + """ + end_user_details: Optional[EndUserDetails] + """ + Details about the end user. + """ + expected_arrival_date: int + """ + The date when funds are expected to arrive in the destination account. + """ + financial_account: str + """ + The FinancialAccount that funds were pulled from. + """ + hosted_regulatory_receipt_url: Optional[str] + """ + A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["treasury.outbound_payment"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + returned_details: Optional[ReturnedDetails] + """ + Details about a returned OutboundPayment. Only set when the status is `returned`. + """ + statement_descriptor: str + """ + The description that appears on the receiving end for an OutboundPayment (for example, bank statement for external bank transfer). + """ + status: Literal["canceled", "failed", "posted", "processing", "returned"] + """ + Current status of the OutboundPayment: `processing`, `failed`, `posted`, `returned`, `canceled`. An OutboundPayment is `processing` if it has been created and is pending. The status changes to `posted` once the OutboundPayment has been "confirmed" and funds have left the account, or to `failed` or `canceled`. If an OutboundPayment fails to arrive at its destination, its status will change to `returned`. + """ + status_transitions: StatusTransitions + tracking_details: Optional[TrackingDetails] + """ + Details about network-specific tracking information if available. + """ + transaction: ExpandableField["Transaction"] + """ + The Transaction associated with this object. + """ + + @classmethod + def _cls_cancel( + cls, id: str, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + return cast( + "OutboundPayment", + cls._static_request( + "post", + "/v1/treasury/outbound_payments/{id}/cancel".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + id: str, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + ... + + @overload + def cancel( + self, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + return cast( + "OutboundPayment", + self._request( + "post", + "/v1/treasury/outbound_payments/{id}/cancel".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, id: str, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + return cast( + "OutboundPayment", + await cls._static_request_async( + "post", + "/v1/treasury/outbound_payments/{id}/cancel".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + id: str, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentCancelParams"] + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + return cast( + "OutboundPayment", + await self._request_async( + "post", + "/v1/treasury/outbound_payments/{id}/cancel".format( + id=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["OutboundPaymentCreateParams"] + ) -> "OutboundPayment": + """ + Creates an OutboundPayment. + """ + return cast( + "OutboundPayment", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["OutboundPaymentCreateParams"] + ) -> "OutboundPayment": + """ + Creates an OutboundPayment. + """ + return cast( + "OutboundPayment", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["OutboundPaymentListParams"] + ) -> ListObject["OutboundPayment"]: + """ + Returns a list of OutboundPayments sent from the specified FinancialAccount. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["OutboundPaymentListParams"] + ) -> ListObject["OutboundPayment"]: + """ + Returns a list of OutboundPayments sent from the specified FinancialAccount. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["OutboundPaymentRetrieveParams"] + ) -> "OutboundPayment": + """ + Retrieves the details of an existing OutboundPayment by passing the unique OutboundPayment ID from either the OutboundPayment creation request or OutboundPayment list. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["OutboundPaymentRetrieveParams"] + ) -> "OutboundPayment": + """ + Retrieves the details of an existing OutboundPayment by passing the unique OutboundPayment ID from either the OutboundPayment creation request or OutboundPayment list. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["OutboundPayment"]): + _resource_cls: Type["OutboundPayment"] + + @classmethod + def _cls_fail( + cls, id: str, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/fail".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def fail( + id: str, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + ... + + @overload + def fail( + self, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + ... + + @class_method_variant("_cls_fail") + def fail( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/fail".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_fail_async( + cls, id: str, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/fail".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def fail_async( + id: str, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + ... + + @overload + async def fail_async( + self, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + ... + + @class_method_variant("_cls_fail_async") + async def fail_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentFailParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/fail".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_post( + cls, id: str, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/post".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def post( + id: str, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + ... + + @overload + def post( + self, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + ... + + @class_method_variant("_cls_post") + def post( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/post".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_post_async( + cls, id: str, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/post".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def post_async( + id: str, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + ... + + @overload + async def post_async( + self, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + ... + + @class_method_variant("_cls_post_async") + async def post_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentPostParams"] + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/post".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_return_outbound_payment( + cls, + id: str, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/return".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def return_outbound_payment( + id: str, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + ... + + @overload + def return_outbound_payment( + self, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + ... + + @class_method_variant("_cls_return_outbound_payment") + def return_outbound_payment( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/return".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_return_outbound_payment_async( + cls, + id: str, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/return".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def return_outbound_payment_async( + id: str, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + ... + + @overload + async def return_outbound_payment_async( + self, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + ... + + @class_method_variant("_cls_return_outbound_payment_async") + async def return_outbound_payment_async( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["OutboundPaymentReturnOutboundPaymentParams"], + ) -> "OutboundPayment": + """ + Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state. + """ + return cast( + "OutboundPayment", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}/return".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_update( + cls, id: str, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundPayment", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + def update( + id: str, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @overload + def update( + self, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @class_method_variant("_cls_update") + def update( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundPayment", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_update_async( + cls, id: str, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundPayment", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}".format( + id=sanitize_id(id) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def update_async( + id: str, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @overload + async def update_async( + self, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @class_method_variant("_cls_update_async") + async def update_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundPaymentUpdateParams"] + ) -> "OutboundPayment": + """ + Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundPayment", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_payments/{id}".format( + id=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "destination_payment_method_details": DestinationPaymentMethodDetails, + "end_user_details": EndUserDetails, + "returned_details": ReturnedDetails, + "status_transitions": StatusTransitions, + "tracking_details": TrackingDetails, + } + + +OutboundPayment.TestHelpers._resource_cls = OutboundPayment diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_payment_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_payment_service.py new file mode 100644 index 00000000..97a27c73 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_payment_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._outbound_payment_cancel_params import ( + OutboundPaymentCancelParams, + ) + from stripe.params.treasury._outbound_payment_create_params import ( + OutboundPaymentCreateParams, + ) + from stripe.params.treasury._outbound_payment_list_params import ( + OutboundPaymentListParams, + ) + from stripe.params.treasury._outbound_payment_retrieve_params import ( + OutboundPaymentRetrieveParams, + ) + from stripe.treasury._outbound_payment import OutboundPayment + + +class OutboundPaymentService(StripeService): + def list( + self, + params: "OutboundPaymentListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[OutboundPayment]": + """ + Returns a list of OutboundPayments sent from the specified FinancialAccount. + """ + return cast( + "ListObject[OutboundPayment]", + self._request( + "get", + "/v1/treasury/outbound_payments", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "OutboundPaymentListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[OutboundPayment]": + """ + Returns a list of OutboundPayments sent from the specified FinancialAccount. + """ + return cast( + "ListObject[OutboundPayment]", + await self._request_async( + "get", + "/v1/treasury/outbound_payments", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "OutboundPaymentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Creates an OutboundPayment. + """ + return cast( + "OutboundPayment", + self._request( + "post", + "/v1/treasury/outbound_payments", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "OutboundPaymentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Creates an OutboundPayment. + """ + return cast( + "OutboundPayment", + await self._request_async( + "post", + "/v1/treasury/outbound_payments", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["OutboundPaymentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Retrieves the details of an existing OutboundPayment by passing the unique OutboundPayment ID from either the OutboundPayment creation request or OutboundPayment list. + """ + return cast( + "OutboundPayment", + self._request( + "get", + "/v1/treasury/outbound_payments/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["OutboundPaymentRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Retrieves the details of an existing OutboundPayment by passing the unique OutboundPayment ID from either the OutboundPayment creation request or OutboundPayment list. + """ + return cast( + "OutboundPayment", + await self._request_async( + "get", + "/v1/treasury/outbound_payments/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + id: str, + params: Optional["OutboundPaymentCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + return cast( + "OutboundPayment", + self._request( + "post", + "/v1/treasury/outbound_payments/{id}/cancel".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + id: str, + params: Optional["OutboundPaymentCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundPayment": + """ + Cancel an OutboundPayment. + """ + return cast( + "OutboundPayment", + await self._request_async( + "post", + "/v1/treasury/outbound_payments/{id}/cancel".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_transfer.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_transfer.py new file mode 100644 index 00000000..fe71e6fa --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_transfer.py @@ -0,0 +1,990 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._createable_api_resource import CreateableAPIResource +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from stripe._util import class_method_variant, sanitize_id +from typing import ClassVar, Dict, Optional, cast, overload +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._mandate import Mandate + from stripe.params.treasury._outbound_transfer_cancel_params import ( + OutboundTransferCancelParams, + ) + from stripe.params.treasury._outbound_transfer_create_params import ( + OutboundTransferCreateParams, + ) + from stripe.params.treasury._outbound_transfer_fail_params import ( + OutboundTransferFailParams, + ) + from stripe.params.treasury._outbound_transfer_list_params import ( + OutboundTransferListParams, + ) + from stripe.params.treasury._outbound_transfer_post_params import ( + OutboundTransferPostParams, + ) + from stripe.params.treasury._outbound_transfer_retrieve_params import ( + OutboundTransferRetrieveParams, + ) + from stripe.params.treasury._outbound_transfer_return_outbound_transfer_params import ( + OutboundTransferReturnOutboundTransferParams, + ) + from stripe.params.treasury._outbound_transfer_update_params import ( + OutboundTransferUpdateParams, + ) + from stripe.treasury._transaction import Transaction + + +class OutboundTransfer( + CreateableAPIResource["OutboundTransfer"], + ListableAPIResource["OutboundTransfer"], +): + """ + Use [OutboundTransfers](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) to transfer funds from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https://stripe.com/docs/api#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account. + + Simulate OutboundTransfer state changes with the `/v1/test_helpers/treasury/outbound_transfers` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundTransfer objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) + """ + + OBJECT_NAME: ClassVar[Literal["treasury.outbound_transfer"]] = ( + "treasury.outbound_transfer" + ) + + class DestinationPaymentMethodDetails(StripeObject): + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + _inner_class_types = {"address": Address} + + class FinancialAccount(StripeObject): + id: str + """ + Token of the FinancialAccount. + """ + network: Literal["stripe"] + """ + The rails used to send funds. + """ + + class UsBankAccount(StripeObject): + account_holder_type: Optional[Literal["company", "individual"]] + """ + Account holder type: individual or company. + """ + account_type: Optional[Literal["checking", "savings"]] + """ + Account type: checkings or savings. Defaults to checking if omitted. + """ + bank_name: Optional[str] + """ + Name of the bank associated with the bank account. + """ + fingerprint: Optional[str] + """ + Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. + """ + last4: Optional[str] + """ + Last four digits of the bank account number. + """ + mandate: Optional[ExpandableField["Mandate"]] + """ + ID of the mandate used to make this payment. + """ + network: Literal["ach", "us_domestic_wire"] + """ + The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type. + """ + routing_number: Optional[str] + """ + Routing number of the bank account. + """ + + billing_details: BillingDetails + financial_account: Optional[FinancialAccount] + type: Literal["financial_account", "us_bank_account"] + """ + The type of the payment method used in the OutboundTransfer. + """ + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "billing_details": BillingDetails, + "financial_account": FinancialAccount, + "us_bank_account": UsBankAccount, + } + + class ReturnedDetails(StripeObject): + code: Literal[ + "account_closed", + "account_frozen", + "bank_account_restricted", + "bank_ownership_changed", + "declined", + "incorrect_account_holder_name", + "invalid_account_number", + "invalid_currency", + "no_account", + "other", + ] + """ + Reason for the return. + """ + transaction: ExpandableField["Transaction"] + """ + The Transaction associated with this object. + """ + + class StatusTransitions(StripeObject): + canceled_at: Optional[int] + """ + Timestamp describing when an OutboundTransfer changed status to `canceled` + """ + failed_at: Optional[int] + """ + Timestamp describing when an OutboundTransfer changed status to `failed` + """ + posted_at: Optional[int] + """ + Timestamp describing when an OutboundTransfer changed status to `posted` + """ + returned_at: Optional[int] + """ + Timestamp describing when an OutboundTransfer changed status to `returned` + """ + + class TrackingDetails(StripeObject): + class Ach(StripeObject): + trace_id: str + """ + ACH trace ID of the OutboundTransfer for transfers sent over the `ach` network. + """ + + class UsDomesticWire(StripeObject): + chips: Optional[str] + """ + CHIPS System Sequence Number (SSN) of the OutboundTransfer for transfers sent over the `us_domestic_wire` network. + """ + imad: Optional[str] + """ + IMAD of the OutboundTransfer for transfers sent over the `us_domestic_wire` network. + """ + omad: Optional[str] + """ + OMAD of the OutboundTransfer for transfers sent over the `us_domestic_wire` network. + """ + + ach: Optional[Ach] + type: Literal["ach", "us_domestic_wire"] + """ + The US bank account network used to send funds. + """ + us_domestic_wire: Optional[UsDomesticWire] + _inner_class_types = {"ach": Ach, "us_domestic_wire": UsDomesticWire} + + amount: int + """ + Amount (in cents) transferred. + """ + cancelable: bool + """ + Returns `true` if the object can be canceled, and `false` otherwise. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: Optional[str] + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + destination_payment_method: Optional[str] + """ + The PaymentMethod used as the payment instrument for an OutboundTransfer. + """ + destination_payment_method_details: DestinationPaymentMethodDetails + expected_arrival_date: int + """ + The date when funds are expected to arrive in the destination account. + """ + financial_account: str + """ + The FinancialAccount that funds were pulled from. + """ + hosted_regulatory_receipt_url: Optional[str] + """ + A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Dict[str, str] + """ + Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. + """ + object: Literal["treasury.outbound_transfer"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + returned_details: Optional[ReturnedDetails] + """ + Details about a returned OutboundTransfer. Only set when the status is `returned`. + """ + statement_descriptor: str + """ + Information about the OutboundTransfer to be sent to the recipient account. + """ + status: Literal["canceled", "failed", "posted", "processing", "returned"] + """ + Current status of the OutboundTransfer: `processing`, `failed`, `canceled`, `posted`, `returned`. An OutboundTransfer is `processing` if it has been created and is pending. The status changes to `posted` once the OutboundTransfer has been "confirmed" and funds have left the account, or to `failed` or `canceled`. If an OutboundTransfer fails to arrive at its destination, its status will change to `returned`. + """ + status_transitions: StatusTransitions + tracking_details: Optional[TrackingDetails] + """ + Details about network-specific tracking information if available. + """ + transaction: ExpandableField["Transaction"] + """ + The Transaction associated with this object. + """ + + @classmethod + def _cls_cancel( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferCancelParams"], + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + return cast( + "OutboundTransfer", + cls._static_request( + "post", + "/v1/treasury/outbound_transfers/{outbound_transfer}/cancel".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def cancel( + outbound_transfer: str, + **params: Unpack["OutboundTransferCancelParams"], + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + ... + + @overload + def cancel( + self, **params: Unpack["OutboundTransferCancelParams"] + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + ... + + @class_method_variant("_cls_cancel") + def cancel( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferCancelParams"] + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + return cast( + "OutboundTransfer", + self._request( + "post", + "/v1/treasury/outbound_transfers/{outbound_transfer}/cancel".format( + outbound_transfer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_cancel_async( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferCancelParams"], + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + return cast( + "OutboundTransfer", + await cls._static_request_async( + "post", + "/v1/treasury/outbound_transfers/{outbound_transfer}/cancel".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def cancel_async( + outbound_transfer: str, + **params: Unpack["OutboundTransferCancelParams"], + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + ... + + @overload + async def cancel_async( + self, **params: Unpack["OutboundTransferCancelParams"] + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + ... + + @class_method_variant("_cls_cancel_async") + async def cancel_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferCancelParams"] + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "post", + "/v1/treasury/outbound_transfers/{outbound_transfer}/cancel".format( + outbound_transfer=sanitize_id(self.get("id")) + ), + params=params, + ), + ) + + @classmethod + def create( + cls, **params: Unpack["OutboundTransferCreateParams"] + ) -> "OutboundTransfer": + """ + Creates an OutboundTransfer. + """ + return cast( + "OutboundTransfer", + cls._static_request( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["OutboundTransferCreateParams"] + ) -> "OutboundTransfer": + """ + Creates an OutboundTransfer. + """ + return cast( + "OutboundTransfer", + await cls._static_request_async( + "post", + cls.class_url(), + params=params, + ), + ) + + @classmethod + def list( + cls, **params: Unpack["OutboundTransferListParams"] + ) -> ListObject["OutboundTransfer"]: + """ + Returns a list of OutboundTransfers sent from the specified FinancialAccount. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["OutboundTransferListParams"] + ) -> ListObject["OutboundTransfer"]: + """ + Returns a list of OutboundTransfers sent from the specified FinancialAccount. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["OutboundTransferRetrieveParams"] + ) -> "OutboundTransfer": + """ + Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["OutboundTransferRetrieveParams"] + ) -> "OutboundTransfer": + """ + Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["OutboundTransfer"]): + _resource_cls: Type["OutboundTransfer"] + + @classmethod + def _cls_fail( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferFailParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def fail( + outbound_transfer: str, + **params: Unpack["OutboundTransferFailParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + ... + + @overload + def fail( + self, **params: Unpack["OutboundTransferFailParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_fail") + def fail( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferFailParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_fail_async( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferFailParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def fail_async( + outbound_transfer: str, + **params: Unpack["OutboundTransferFailParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + ... + + @overload + async def fail_async( + self, **params: Unpack["OutboundTransferFailParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_fail_async") + async def fail_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferFailParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_post( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferPostParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def post( + outbound_transfer: str, + **params: Unpack["OutboundTransferPostParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + ... + + @overload + def post( + self, **params: Unpack["OutboundTransferPostParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_post") + def post( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferPostParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_post_async( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferPostParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def post_async( + outbound_transfer: str, + **params: Unpack["OutboundTransferPostParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + ... + + @overload + async def post_async( + self, **params: Unpack["OutboundTransferPostParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_post_async") + async def post_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferPostParams"] + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_return_outbound_transfer( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def return_outbound_transfer( + outbound_transfer: str, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + ... + + @overload + def return_outbound_transfer( + self, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_return_outbound_transfer") + def return_outbound_transfer( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_return_outbound_transfer_async( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def return_outbound_transfer_async( + outbound_transfer: str, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + ... + + @overload + async def return_outbound_transfer_async( + self, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + ... + + @class_method_variant("_cls_return_outbound_transfer_async") + async def return_outbound_transfer_async( # pyright: ignore[reportGeneralTypeIssues] + self, + **params: Unpack["OutboundTransferReturnOutboundTransferParams"], + ) -> "OutboundTransfer": + """ + Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state. + """ + return cast( + "OutboundTransfer", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + def _cls_update( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferUpdateParams"], + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundTransfer", + cls._static_request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + def update( + outbound_transfer: str, + **params: Unpack["OutboundTransferUpdateParams"], + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @overload + def update( + self, **params: Unpack["OutboundTransferUpdateParams"] + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @class_method_variant("_cls_update") + def update( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferUpdateParams"] + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundTransfer", + self.resource._request( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @classmethod + async def _cls_update_async( + cls, + outbound_transfer: str, + **params: Unpack["OutboundTransferUpdateParams"], + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundTransfer", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(outbound_transfer) + ), + params=params, + ), + ) + + @overload + @staticmethod + async def update_async( + outbound_transfer: str, + **params: Unpack["OutboundTransferUpdateParams"], + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @overload + async def update_async( + self, **params: Unpack["OutboundTransferUpdateParams"] + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + ... + + @class_method_variant("_cls_update_async") + async def update_async( # pyright: ignore[reportGeneralTypeIssues] + self, **params: Unpack["OutboundTransferUpdateParams"] + ) -> "OutboundTransfer": + """ + Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states. + """ + return cast( + "OutboundTransfer", + await self.resource._request_async( + "post", + "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(self.resource.get("id")) + ), + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "destination_payment_method_details": DestinationPaymentMethodDetails, + "returned_details": ReturnedDetails, + "status_transitions": StatusTransitions, + "tracking_details": TrackingDetails, + } + + +OutboundTransfer.TestHelpers._resource_cls = OutboundTransfer diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_transfer_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_transfer_service.py new file mode 100644 index 00000000..b4783fb4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_outbound_transfer_service.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._outbound_transfer_cancel_params import ( + OutboundTransferCancelParams, + ) + from stripe.params.treasury._outbound_transfer_create_params import ( + OutboundTransferCreateParams, + ) + from stripe.params.treasury._outbound_transfer_list_params import ( + OutboundTransferListParams, + ) + from stripe.params.treasury._outbound_transfer_retrieve_params import ( + OutboundTransferRetrieveParams, + ) + from stripe.treasury._outbound_transfer import OutboundTransfer + + +class OutboundTransferService(StripeService): + def list( + self, + params: "OutboundTransferListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[OutboundTransfer]": + """ + Returns a list of OutboundTransfers sent from the specified FinancialAccount. + """ + return cast( + "ListObject[OutboundTransfer]", + self._request( + "get", + "/v1/treasury/outbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "OutboundTransferListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[OutboundTransfer]": + """ + Returns a list of OutboundTransfers sent from the specified FinancialAccount. + """ + return cast( + "ListObject[OutboundTransfer]", + await self._request_async( + "get", + "/v1/treasury/outbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "OutboundTransferCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Creates an OutboundTransfer. + """ + return cast( + "OutboundTransfer", + self._request( + "post", + "/v1/treasury/outbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "OutboundTransferCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Creates an OutboundTransfer. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "post", + "/v1/treasury/outbound_transfers", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + outbound_transfer: str, + params: Optional["OutboundTransferRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list. + """ + return cast( + "OutboundTransfer", + self._request( + "get", + "/v1/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + outbound_transfer: str, + params: Optional["OutboundTransferRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "get", + "/v1/treasury/outbound_transfers/{outbound_transfer}".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def cancel( + self, + outbound_transfer: str, + params: Optional["OutboundTransferCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + return cast( + "OutboundTransfer", + self._request( + "post", + "/v1/treasury/outbound_transfers/{outbound_transfer}/cancel".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def cancel_async( + self, + outbound_transfer: str, + params: Optional["OutboundTransferCancelParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "OutboundTransfer": + """ + An OutboundTransfer can be canceled if the funds have not yet been paid out. + """ + return cast( + "OutboundTransfer", + await self._request_async( + "post", + "/v1/treasury/outbound_transfers/{outbound_transfer}/cancel".format( + outbound_transfer=sanitize_id(outbound_transfer), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_credit.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_credit.py new file mode 100644 index 00000000..3b7863a5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_credit.py @@ -0,0 +1,389 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._payout import Payout + from stripe.params.treasury._received_credit_create_params import ( + ReceivedCreditCreateParams, + ) + from stripe.params.treasury._received_credit_list_params import ( + ReceivedCreditListParams, + ) + from stripe.params.treasury._received_credit_retrieve_params import ( + ReceivedCreditRetrieveParams, + ) + from stripe.treasury._credit_reversal import CreditReversal + from stripe.treasury._outbound_payment import OutboundPayment + from stripe.treasury._outbound_transfer import OutboundTransfer + from stripe.treasury._transaction import Transaction + + +class ReceivedCredit(ListableAPIResource["ReceivedCredit"]): + """ + ReceivedCredits represent funds sent to a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount. + """ + + OBJECT_NAME: ClassVar[Literal["treasury.received_credit"]] = ( + "treasury.received_credit" + ) + + class InitiatingPaymentMethodDetails(StripeObject): + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + _inner_class_types = {"address": Address} + + class FinancialAccount(StripeObject): + id: str + """ + The FinancialAccount ID. + """ + network: Literal["stripe"] + """ + The rails the ReceivedCredit was sent over. A FinancialAccount can only send funds over `stripe`. + """ + + class UsBankAccount(StripeObject): + bank_name: Optional[str] + """ + Bank name. + """ + last4: Optional[str] + """ + The last four digits of the bank account number. + """ + routing_number: Optional[str] + """ + The routing number for the bank account. + """ + + balance: Optional[Literal["payments"]] + """ + Set when `type` is `balance`. + """ + billing_details: BillingDetails + financial_account: Optional[FinancialAccount] + issuing_card: Optional[str] + """ + Set when `type` is `issuing_card`. This is an [Issuing Card](https://stripe.com/docs/api#issuing_cards) ID. + """ + type: Literal[ + "balance", + "financial_account", + "issuing_card", + "stripe", + "us_bank_account", + ] + """ + Polymorphic type matching the originating money movement's source. This can be an external account, a Stripe balance, or a FinancialAccount. + """ + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "billing_details": BillingDetails, + "financial_account": FinancialAccount, + "us_bank_account": UsBankAccount, + } + + class LinkedFlows(StripeObject): + class SourceFlowDetails(StripeObject): + credit_reversal: Optional["CreditReversal"] + """ + You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal. + """ + outbound_payment: Optional["OutboundPayment"] + """ + Use [OutboundPayments](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) to send funds to another party's external bank account or [FinancialAccount](https://stripe.com/docs/api#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https://stripe.com/docs/api#outbound_transfers). + + Simulate OutboundPayment state changes with the `/v1/test_helpers/treasury/outbound_payments` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundPayment objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) + """ + outbound_transfer: Optional["OutboundTransfer"] + """ + Use [OutboundTransfers](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) to transfer funds from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https://stripe.com/docs/api#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account. + + Simulate OutboundTransfer state changes with the `/v1/test_helpers/treasury/outbound_transfers` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundTransfer objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) + """ + payout: Optional["Payout"] + """ + A `Payout` object is created when you receive funds from Stripe, or when you + initiate a payout to either a bank account or debit card of a [connected + Stripe account](https://docs.stripe.com/docs/connect/bank-debit-card-payouts). You can retrieve individual payouts, + and list all payouts. Payouts are made on [varying + schedules](https://docs.stripe.com/docs/connect/manage-payout-schedule), depending on your country and + industry. + + Related guide: [Receiving payouts](https://stripe.com/docs/payouts) + """ + type: Literal[ + "credit_reversal", + "other", + "outbound_payment", + "outbound_transfer", + "payout", + ] + """ + The type of the source flow that originated the ReceivedCredit. + """ + + credit_reversal: Optional[str] + """ + The CreditReversal created as a result of this ReceivedCredit being reversed. + """ + issuing_authorization: Optional[str] + """ + Set if the ReceivedCredit was created due to an [Issuing Authorization](https://stripe.com/docs/api#issuing_authorizations) object. + """ + issuing_transaction: Optional[str] + """ + Set if the ReceivedCredit is also viewable as an [Issuing transaction](https://stripe.com/docs/api#issuing_transactions) object. + """ + source_flow: Optional[str] + """ + ID of the source flow. Set if `network` is `stripe` and the source flow is visible to the user. Examples of source flows include OutboundPayments, payouts, or CreditReversals. + """ + source_flow_details: Optional[SourceFlowDetails] + """ + The expandable object of the source flow. + """ + source_flow_type: Optional[str] + """ + The type of flow that originated the ReceivedCredit (for example, `outbound_payment`). + """ + _inner_class_types = {"source_flow_details": SourceFlowDetails} + + class ReversalDetails(StripeObject): + deadline: Optional[int] + """ + Time before which a ReceivedCredit can be reversed. + """ + restricted_reason: Optional[ + Literal[ + "already_reversed", + "deadline_passed", + "network_restricted", + "other", + "source_flow_restricted", + ] + ] + """ + Set if a ReceivedCredit cannot be reversed. + """ + + amount: int + """ + Amount (in cents) transferred. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: str + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + failure_code: Optional[ + Literal[ + "account_closed", + "account_frozen", + "international_transaction", + "other", + ] + ] + """ + Reason for the failure. A ReceivedCredit might fail because the receiving FinancialAccount is closed or frozen. + """ + financial_account: Optional[str] + """ + The FinancialAccount that received the funds. + """ + hosted_regulatory_receipt_url: Optional[str] + """ + A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + """ + id: str + """ + Unique identifier for the object. + """ + initiating_payment_method_details: InitiatingPaymentMethodDetails + linked_flows: LinkedFlows + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + network: Literal["ach", "card", "stripe", "us_domestic_wire"] + """ + The rails used to send the funds. + """ + object: Literal["treasury.received_credit"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + reversal_details: Optional[ReversalDetails] + """ + Details describing when a ReceivedCredit may be reversed. + """ + status: Literal["failed", "succeeded"] + """ + Status of the ReceivedCredit. ReceivedCredits are created either `succeeded` (approved) or `failed` (declined). If a ReceivedCredit is declined, the failure reason can be found in the `failure_code` field. + """ + transaction: Optional[ExpandableField["Transaction"]] + """ + The Transaction associated with this object. + """ + + @classmethod + def list( + cls, **params: Unpack["ReceivedCreditListParams"] + ) -> ListObject["ReceivedCredit"]: + """ + Returns a list of ReceivedCredits. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ReceivedCreditListParams"] + ) -> ListObject["ReceivedCredit"]: + """ + Returns a list of ReceivedCredits. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ReceivedCreditRetrieveParams"] + ) -> "ReceivedCredit": + """ + Retrieves the details of an existing ReceivedCredit by passing the unique ReceivedCredit ID from the ReceivedCredit list. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ReceivedCreditRetrieveParams"] + ) -> "ReceivedCredit": + """ + Retrieves the details of an existing ReceivedCredit by passing the unique ReceivedCredit ID from the ReceivedCredit list. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["ReceivedCredit"]): + _resource_cls: Type["ReceivedCredit"] + + @classmethod + def create( + cls, **params: Unpack["ReceivedCreditCreateParams"] + ) -> "ReceivedCredit": + """ + Use this endpoint to simulate a test mode ReceivedCredit initiated by a third party. In live mode, you can't directly create ReceivedCredits initiated by third parties. + """ + return cast( + "ReceivedCredit", + cls._static_request( + "post", + "/v1/test_helpers/treasury/received_credits", + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ReceivedCreditCreateParams"] + ) -> "ReceivedCredit": + """ + Use this endpoint to simulate a test mode ReceivedCredit initiated by a third party. In live mode, you can't directly create ReceivedCredits initiated by third parties. + """ + return cast( + "ReceivedCredit", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/received_credits", + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "initiating_payment_method_details": InitiatingPaymentMethodDetails, + "linked_flows": LinkedFlows, + "reversal_details": ReversalDetails, + } + + +ReceivedCredit.TestHelpers._resource_cls = ReceivedCredit diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_credit_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_credit_service.py new file mode 100644 index 00000000..06baf601 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_credit_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._received_credit_list_params import ( + ReceivedCreditListParams, + ) + from stripe.params.treasury._received_credit_retrieve_params import ( + ReceivedCreditRetrieveParams, + ) + from stripe.treasury._received_credit import ReceivedCredit + + +class ReceivedCreditService(StripeService): + def list( + self, + params: "ReceivedCreditListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReceivedCredit]": + """ + Returns a list of ReceivedCredits. + """ + return cast( + "ListObject[ReceivedCredit]", + self._request( + "get", + "/v1/treasury/received_credits", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "ReceivedCreditListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReceivedCredit]": + """ + Returns a list of ReceivedCredits. + """ + return cast( + "ListObject[ReceivedCredit]", + await self._request_async( + "get", + "/v1/treasury/received_credits", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["ReceivedCreditRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReceivedCredit": + """ + Retrieves the details of an existing ReceivedCredit by passing the unique ReceivedCredit ID from the ReceivedCredit list. + """ + return cast( + "ReceivedCredit", + self._request( + "get", + "/v1/treasury/received_credits/{id}".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["ReceivedCreditRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReceivedCredit": + """ + Retrieves the details of an existing ReceivedCredit by passing the unique ReceivedCredit ID from the ReceivedCredit list. + """ + return cast( + "ReceivedCredit", + await self._request_async( + "get", + "/v1/treasury/received_credits/{id}".format( + id=sanitize_id(id) + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_debit.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_debit.py new file mode 100644 index 00000000..ab84855b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_debit.py @@ -0,0 +1,338 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from stripe._test_helpers import APIResourceTestHelpers +from typing import ClassVar, Optional, cast +from typing_extensions import Literal, Type, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.params.treasury._received_debit_create_params import ( + ReceivedDebitCreateParams, + ) + from stripe.params.treasury._received_debit_list_params import ( + ReceivedDebitListParams, + ) + from stripe.params.treasury._received_debit_retrieve_params import ( + ReceivedDebitRetrieveParams, + ) + from stripe.treasury._transaction import Transaction + + +class ReceivedDebit(ListableAPIResource["ReceivedDebit"]): + """ + ReceivedDebits represent funds pulled from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts). These are not initiated from the FinancialAccount. + """ + + OBJECT_NAME: ClassVar[Literal["treasury.received_debit"]] = ( + "treasury.received_debit" + ) + + class InitiatingPaymentMethodDetails(StripeObject): + class BillingDetails(StripeObject): + class Address(StripeObject): + city: Optional[str] + """ + City, district, suburb, town, or village. + """ + country: Optional[str] + """ + Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). + """ + line1: Optional[str] + """ + Address line 1, such as the street, PO Box, or company name. + """ + line2: Optional[str] + """ + Address line 2, such as the apartment, suite, unit, or building. + """ + postal_code: Optional[str] + """ + ZIP or postal code. + """ + state: Optional[str] + """ + State, county, province, or region. + """ + + address: Address + email: Optional[str] + """ + Email address. + """ + name: Optional[str] + """ + Full name. + """ + _inner_class_types = {"address": Address} + + class FinancialAccount(StripeObject): + id: str + """ + The FinancialAccount ID. + """ + network: Literal["stripe"] + """ + The rails the ReceivedCredit was sent over. A FinancialAccount can only send funds over `stripe`. + """ + + class UsBankAccount(StripeObject): + bank_name: Optional[str] + """ + Bank name. + """ + last4: Optional[str] + """ + The last four digits of the bank account number. + """ + routing_number: Optional[str] + """ + The routing number for the bank account. + """ + + balance: Optional[Literal["payments"]] + """ + Set when `type` is `balance`. + """ + billing_details: BillingDetails + financial_account: Optional[FinancialAccount] + issuing_card: Optional[str] + """ + Set when `type` is `issuing_card`. This is an [Issuing Card](https://stripe.com/docs/api#issuing_cards) ID. + """ + type: Literal[ + "balance", + "financial_account", + "issuing_card", + "stripe", + "us_bank_account", + ] + """ + Polymorphic type matching the originating money movement's source. This can be an external account, a Stripe balance, or a FinancialAccount. + """ + us_bank_account: Optional[UsBankAccount] + _inner_class_types = { + "billing_details": BillingDetails, + "financial_account": FinancialAccount, + "us_bank_account": UsBankAccount, + } + + class LinkedFlows(StripeObject): + debit_reversal: Optional[str] + """ + The DebitReversal created as a result of this ReceivedDebit being reversed. + """ + inbound_transfer: Optional[str] + """ + Set if the ReceivedDebit is associated with an InboundTransfer's return of funds. + """ + issuing_authorization: Optional[str] + """ + Set if the ReceivedDebit was created due to an [Issuing Authorization](https://stripe.com/docs/api#issuing_authorizations) object. + """ + issuing_transaction: Optional[str] + """ + Set if the ReceivedDebit is also viewable as an [Issuing Dispute](https://stripe.com/docs/api#issuing_disputes) object. + """ + payout: Optional[str] + """ + Set if the ReceivedDebit was created due to a [Payout](https://stripe.com/docs/api#payouts) object. + """ + + class ReversalDetails(StripeObject): + deadline: Optional[int] + """ + Time before which a ReceivedDebit can be reversed. + """ + restricted_reason: Optional[ + Literal[ + "already_reversed", + "deadline_passed", + "network_restricted", + "other", + "source_flow_restricted", + ] + ] + """ + Set if a ReceivedDebit can't be reversed. + """ + + amount: int + """ + Amount (in cents) transferred. + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: str + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + failure_code: Optional[ + Literal[ + "account_closed", + "account_frozen", + "insufficient_funds", + "international_transaction", + "other", + ] + ] + """ + Reason for the failure. A ReceivedDebit might fail because the FinancialAccount doesn't have sufficient funds, is closed, or is frozen. + """ + financial_account: Optional[str] + """ + The FinancialAccount that funds were pulled from. + """ + hosted_regulatory_receipt_url: Optional[str] + """ + A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. + """ + id: str + """ + Unique identifier for the object. + """ + initiating_payment_method_details: Optional[InitiatingPaymentMethodDetails] + linked_flows: LinkedFlows + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + network: Literal["ach", "card", "stripe"] + """ + The network used for the ReceivedDebit. + """ + object: Literal["treasury.received_debit"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + reversal_details: Optional[ReversalDetails] + """ + Details describing when a ReceivedDebit might be reversed. + """ + status: Literal["failed", "succeeded"] + """ + Status of the ReceivedDebit. ReceivedDebits are created with a status of either `succeeded` (approved) or `failed` (declined). The failure reason can be found under the `failure_code`. + """ + transaction: Optional[ExpandableField["Transaction"]] + """ + The Transaction associated with this object. + """ + + @classmethod + def list( + cls, **params: Unpack["ReceivedDebitListParams"] + ) -> ListObject["ReceivedDebit"]: + """ + Returns a list of ReceivedDebits. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["ReceivedDebitListParams"] + ) -> ListObject["ReceivedDebit"]: + """ + Returns a list of ReceivedDebits. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["ReceivedDebitRetrieveParams"] + ) -> "ReceivedDebit": + """ + Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["ReceivedDebitRetrieveParams"] + ) -> "ReceivedDebit": + """ + Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + class TestHelpers(APIResourceTestHelpers["ReceivedDebit"]): + _resource_cls: Type["ReceivedDebit"] + + @classmethod + def create( + cls, **params: Unpack["ReceivedDebitCreateParams"] + ) -> "ReceivedDebit": + """ + Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can't directly create ReceivedDebits initiated by third parties. + """ + return cast( + "ReceivedDebit", + cls._static_request( + "post", + "/v1/test_helpers/treasury/received_debits", + params=params, + ), + ) + + @classmethod + async def create_async( + cls, **params: Unpack["ReceivedDebitCreateParams"] + ) -> "ReceivedDebit": + """ + Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can't directly create ReceivedDebits initiated by third parties. + """ + return cast( + "ReceivedDebit", + await cls._static_request_async( + "post", + "/v1/test_helpers/treasury/received_debits", + params=params, + ), + ) + + @property + def test_helpers(self): + return self.TestHelpers(self) + + _inner_class_types = { + "initiating_payment_method_details": InitiatingPaymentMethodDetails, + "linked_flows": LinkedFlows, + "reversal_details": ReversalDetails, + } + + +ReceivedDebit.TestHelpers._resource_cls = ReceivedDebit diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_debit_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_debit_service.py new file mode 100644 index 00000000..678e51db --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_received_debit_service.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._received_debit_list_params import ( + ReceivedDebitListParams, + ) + from stripe.params.treasury._received_debit_retrieve_params import ( + ReceivedDebitRetrieveParams, + ) + from stripe.treasury._received_debit import ReceivedDebit + + +class ReceivedDebitService(StripeService): + def list( + self, + params: "ReceivedDebitListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReceivedDebit]": + """ + Returns a list of ReceivedDebits. + """ + return cast( + "ListObject[ReceivedDebit]", + self._request( + "get", + "/v1/treasury/received_debits", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "ReceivedDebitListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[ReceivedDebit]": + """ + Returns a list of ReceivedDebits. + """ + return cast( + "ListObject[ReceivedDebit]", + await self._request_async( + "get", + "/v1/treasury/received_debits", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["ReceivedDebitRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReceivedDebit": + """ + Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list + """ + return cast( + "ReceivedDebit", + self._request( + "get", + "/v1/treasury/received_debits/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["ReceivedDebitRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ReceivedDebit": + """ + Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list + """ + return cast( + "ReceivedDebit", + await self._request_async( + "get", + "/v1/treasury/received_debits/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction.py new file mode 100644 index 00000000..3892b176 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction.py @@ -0,0 +1,256 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.issuing._authorization import Authorization + from stripe.params.treasury._transaction_list_params import ( + TransactionListParams, + ) + from stripe.params.treasury._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + from stripe.treasury._credit_reversal import CreditReversal + from stripe.treasury._debit_reversal import DebitReversal + from stripe.treasury._inbound_transfer import InboundTransfer + from stripe.treasury._outbound_payment import OutboundPayment + from stripe.treasury._outbound_transfer import OutboundTransfer + from stripe.treasury._received_credit import ReceivedCredit + from stripe.treasury._received_debit import ReceivedDebit + from stripe.treasury._transaction_entry import TransactionEntry + + +class Transaction(ListableAPIResource["Transaction"]): + """ + Transactions represent changes to a [FinancialAccount's](https://stripe.com/docs/api#financial_accounts) balance. + """ + + OBJECT_NAME: ClassVar[Literal["treasury.transaction"]] = ( + "treasury.transaction" + ) + + class BalanceImpact(StripeObject): + cash: int + """ + The change made to funds the user can spend right now. + """ + inbound_pending: int + """ + The change made to funds that are not spendable yet, but will become available at a later time. + """ + outbound_pending: int + """ + The change made to funds in the account, but not spendable because they are being held for pending outbound flows. + """ + + class FlowDetails(StripeObject): + credit_reversal: Optional["CreditReversal"] + """ + You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal. + """ + debit_reversal: Optional["DebitReversal"] + """ + You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal. + """ + inbound_transfer: Optional["InboundTransfer"] + """ + Use [InboundTransfers](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) to add funds to your [FinancialAccount](https://stripe.com/docs/api#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit. + + Related guide: [Moving money with Treasury using InboundTransfer objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) + """ + issuing_authorization: Optional["Authorization"] + """ + When an [issued card](https://stripe.com/docs/issuing) is used to make a purchase, an Issuing `Authorization` + object is created. [Authorizations](https://stripe.com/docs/issuing/purchases/authorizations) must be approved for the + purchase to be completed successfully. + + Related guide: [Issued card authorizations](https://stripe.com/docs/issuing/purchases/authorizations) + """ + outbound_payment: Optional["OutboundPayment"] + """ + Use [OutboundPayments](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) to send funds to another party's external bank account or [FinancialAccount](https://stripe.com/docs/api#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https://stripe.com/docs/api#outbound_transfers). + + Simulate OutboundPayment state changes with the `/v1/test_helpers/treasury/outbound_payments` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundPayment objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) + """ + outbound_transfer: Optional["OutboundTransfer"] + """ + Use [OutboundTransfers](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) to transfer funds from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https://stripe.com/docs/api#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account. + + Simulate OutboundTransfer state changes with the `/v1/test_helpers/treasury/outbound_transfers` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundTransfer objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) + """ + received_credit: Optional["ReceivedCredit"] + """ + ReceivedCredits represent funds sent to a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount. + """ + received_debit: Optional["ReceivedDebit"] + """ + ReceivedDebits represent funds pulled from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts). These are not initiated from the FinancialAccount. + """ + type: Literal[ + "credit_reversal", + "debit_reversal", + "inbound_transfer", + "issuing_authorization", + "other", + "outbound_payment", + "outbound_transfer", + "received_credit", + "received_debit", + ] + """ + Type of the flow that created the Transaction. Set to the same value as `flow_type`. + """ + + class StatusTransitions(StripeObject): + posted_at: Optional[int] + """ + Timestamp describing when the Transaction changed status to `posted`. + """ + void_at: Optional[int] + """ + Timestamp describing when the Transaction changed status to `void`. + """ + + amount: int + """ + Amount (in cents) transferred. + """ + balance_impact: BalanceImpact + """ + Change to a FinancialAccount's balance + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + description: str + """ + An arbitrary string attached to the object. Often useful for displaying to users. + """ + entries: Optional[ListObject["TransactionEntry"]] + """ + A list of TransactionEntries that are part of this Transaction. This cannot be expanded in any list endpoints. + """ + financial_account: str + """ + The FinancialAccount associated with this object. + """ + flow: Optional[str] + """ + ID of the flow that created the Transaction. + """ + flow_details: Optional[FlowDetails] + """ + Details of the flow that created the Transaction. + """ + flow_type: Literal[ + "credit_reversal", + "debit_reversal", + "inbound_transfer", + "issuing_authorization", + "other", + "outbound_payment", + "outbound_transfer", + "received_credit", + "received_debit", + ] + """ + Type of the flow that created the Transaction. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["treasury.transaction"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + status: Literal["open", "posted", "void"] + """ + Status of the Transaction. + """ + status_transitions: StatusTransitions + + @classmethod + def list( + cls, **params: Unpack["TransactionListParams"] + ) -> ListObject["Transaction"]: + """ + Retrieves a list of Transaction objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TransactionListParams"] + ) -> ListObject["Transaction"]: + """ + Retrieves a list of Transaction objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves the details of an existing Transaction. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TransactionRetrieveParams"] + ) -> "Transaction": + """ + Retrieves the details of an existing Transaction. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + _inner_class_types = { + "balance_impact": BalanceImpact, + "flow_details": FlowDetails, + "status_transitions": StatusTransitions, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_entry.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_entry.py new file mode 100644 index 00000000..2e4012cb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_entry.py @@ -0,0 +1,266 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._expandable_field import ExpandableField +from stripe._list_object import ListObject +from stripe._listable_api_resource import ListableAPIResource +from stripe._stripe_object import StripeObject +from typing import ClassVar, Optional +from typing_extensions import Literal, Unpack, TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.issuing._authorization import Authorization + from stripe.params.treasury._transaction_entry_list_params import ( + TransactionEntryListParams, + ) + from stripe.params.treasury._transaction_entry_retrieve_params import ( + TransactionEntryRetrieveParams, + ) + from stripe.treasury._credit_reversal import CreditReversal + from stripe.treasury._debit_reversal import DebitReversal + from stripe.treasury._inbound_transfer import InboundTransfer + from stripe.treasury._outbound_payment import OutboundPayment + from stripe.treasury._outbound_transfer import OutboundTransfer + from stripe.treasury._received_credit import ReceivedCredit + from stripe.treasury._received_debit import ReceivedDebit + from stripe.treasury._transaction import Transaction + + +class TransactionEntry(ListableAPIResource["TransactionEntry"]): + """ + TransactionEntries represent individual units of money movements within a single [Transaction](https://stripe.com/docs/api#transactions). + """ + + OBJECT_NAME: ClassVar[Literal["treasury.transaction_entry"]] = ( + "treasury.transaction_entry" + ) + + class BalanceImpact(StripeObject): + cash: int + """ + The change made to funds the user can spend right now. + """ + inbound_pending: int + """ + The change made to funds that are not spendable yet, but will become available at a later time. + """ + outbound_pending: int + """ + The change made to funds in the account, but not spendable because they are being held for pending outbound flows. + """ + + class FlowDetails(StripeObject): + credit_reversal: Optional["CreditReversal"] + """ + You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal. + """ + debit_reversal: Optional["DebitReversal"] + """ + You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal. + """ + inbound_transfer: Optional["InboundTransfer"] + """ + Use [InboundTransfers](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) to add funds to your [FinancialAccount](https://stripe.com/docs/api#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit. + + Related guide: [Moving money with Treasury using InboundTransfer objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) + """ + issuing_authorization: Optional["Authorization"] + """ + When an [issued card](https://stripe.com/docs/issuing) is used to make a purchase, an Issuing `Authorization` + object is created. [Authorizations](https://stripe.com/docs/issuing/purchases/authorizations) must be approved for the + purchase to be completed successfully. + + Related guide: [Issued card authorizations](https://stripe.com/docs/issuing/purchases/authorizations) + """ + outbound_payment: Optional["OutboundPayment"] + """ + Use [OutboundPayments](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) to send funds to another party's external bank account or [FinancialAccount](https://stripe.com/docs/api#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https://stripe.com/docs/api#outbound_transfers). + + Simulate OutboundPayment state changes with the `/v1/test_helpers/treasury/outbound_payments` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundPayment objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-payments) + """ + outbound_transfer: Optional["OutboundTransfer"] + """ + Use [OutboundTransfers](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) to transfer funds from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https://stripe.com/docs/api#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account. + + Simulate OutboundTransfer state changes with the `/v1/test_helpers/treasury/outbound_transfers` endpoints. These methods can only be called on test mode objects. + + Related guide: [Moving money with Treasury using OutboundTransfer objects](https://docs.stripe.com/docs/treasury/moving-money/financial-accounts/out-of/outbound-transfers) + """ + received_credit: Optional["ReceivedCredit"] + """ + ReceivedCredits represent funds sent to a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount. + """ + received_debit: Optional["ReceivedDebit"] + """ + ReceivedDebits represent funds pulled from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts). These are not initiated from the FinancialAccount. + """ + type: Literal[ + "credit_reversal", + "debit_reversal", + "inbound_transfer", + "issuing_authorization", + "other", + "outbound_payment", + "outbound_transfer", + "received_credit", + "received_debit", + ] + """ + Type of the flow that created the Transaction. Set to the same value as `flow_type`. + """ + + balance_impact: BalanceImpact + """ + Change to a FinancialAccount's balance + """ + created: int + """ + Time at which the object was created. Measured in seconds since the Unix epoch. + """ + currency: str + """ + Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + """ + effective_at: int + """ + When the TransactionEntry will impact the FinancialAccount's balance. + """ + financial_account: str + """ + The FinancialAccount associated with this object. + """ + flow: Optional[str] + """ + Token of the flow associated with the TransactionEntry. + """ + flow_details: Optional[FlowDetails] + """ + Details of the flow associated with the TransactionEntry. + """ + flow_type: Literal[ + "credit_reversal", + "debit_reversal", + "inbound_transfer", + "issuing_authorization", + "other", + "outbound_payment", + "outbound_transfer", + "received_credit", + "received_debit", + ] + """ + Type of the flow associated with the TransactionEntry. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["treasury.transaction_entry"] + """ + String representing the object's type. Objects of the same type share the same value. + """ + transaction: ExpandableField["Transaction"] + """ + The Transaction associated with this object. + """ + type: Literal[ + "credit_reversal", + "credit_reversal_posting", + "debit_reversal", + "inbound_transfer", + "inbound_transfer_return", + "issuing_authorization_hold", + "issuing_authorization_release", + "other", + "outbound_payment", + "outbound_payment_cancellation", + "outbound_payment_failure", + "outbound_payment_posting", + "outbound_payment_return", + "outbound_transfer", + "outbound_transfer_cancellation", + "outbound_transfer_failure", + "outbound_transfer_posting", + "outbound_transfer_return", + "received_credit", + "received_debit", + ] + """ + The specific money movement that generated the TransactionEntry. + """ + + @classmethod + def list( + cls, **params: Unpack["TransactionEntryListParams"] + ) -> ListObject["TransactionEntry"]: + """ + Retrieves a list of TransactionEntry objects. + """ + result = cls._static_request( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + async def list_async( + cls, **params: Unpack["TransactionEntryListParams"] + ) -> ListObject["TransactionEntry"]: + """ + Retrieves a list of TransactionEntry objects. + """ + result = await cls._static_request_async( + "get", + cls.class_url(), + params=params, + ) + if not isinstance(result, ListObject): + raise TypeError( + "Expected list object from API, got %s" + % (type(result).__name__) + ) + + return result + + @classmethod + def retrieve( + cls, id: str, **params: Unpack["TransactionEntryRetrieveParams"] + ) -> "TransactionEntry": + """ + Retrieves a TransactionEntry object. + """ + instance = cls(id, **params) + instance.refresh() + return instance + + @classmethod + async def retrieve_async( + cls, id: str, **params: Unpack["TransactionEntryRetrieveParams"] + ) -> "TransactionEntry": + """ + Retrieves a TransactionEntry object. + """ + instance = cls(id, **params) + await instance.refresh_async() + return instance + + @classmethod + def class_url(cls): + return "/v1/treasury/transaction_entries" + + _inner_class_types = { + "balance_impact": BalanceImpact, + "flow_details": FlowDetails, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_entry_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_entry_service.py new file mode 100644 index 00000000..590fa1c0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_entry_service.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._transaction_entry_list_params import ( + TransactionEntryListParams, + ) + from stripe.params.treasury._transaction_entry_retrieve_params import ( + TransactionEntryRetrieveParams, + ) + from stripe.treasury._transaction_entry import TransactionEntry + + +class TransactionEntryService(StripeService): + def list( + self, + params: "TransactionEntryListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TransactionEntry]": + """ + Retrieves a list of TransactionEntry objects. + """ + return cast( + "ListObject[TransactionEntry]", + self._request( + "get", + "/v1/treasury/transaction_entries", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "TransactionEntryListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[TransactionEntry]": + """ + Retrieves a list of TransactionEntry objects. + """ + return cast( + "ListObject[TransactionEntry]", + await self._request_async( + "get", + "/v1/treasury/transaction_entries", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["TransactionEntryRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TransactionEntry": + """ + Retrieves a TransactionEntry object. + """ + return cast( + "TransactionEntry", + self._request( + "get", + "/v1/treasury/transaction_entries/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["TransactionEntryRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "TransactionEntry": + """ + Retrieves a TransactionEntry object. + """ + return cast( + "TransactionEntry", + await self._request_async( + "get", + "/v1/treasury/transaction_entries/{id}".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_service.py new file mode 100644 index 00000000..c43c5068 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/treasury/_transaction_service.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._list_object import ListObject + from stripe._request_options import RequestOptions + from stripe.params.treasury._transaction_list_params import ( + TransactionListParams, + ) + from stripe.params.treasury._transaction_retrieve_params import ( + TransactionRetrieveParams, + ) + from stripe.treasury._transaction import Transaction + + +class TransactionService(StripeService): + def list( + self, + params: "TransactionListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transaction]": + """ + Retrieves a list of Transaction objects. + """ + return cast( + "ListObject[Transaction]", + self._request( + "get", + "/v1/treasury/transactions", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: "TransactionListParams", + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Transaction]": + """ + Retrieves a list of Transaction objects. + """ + return cast( + "ListObject[Transaction]", + await self._request_async( + "get", + "/v1/treasury/transactions", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves the details of an existing Transaction. + """ + return cast( + "Transaction", + self._request( + "get", + "/v1/treasury/transactions/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["TransactionRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Transaction": + """ + Retrieves the details of an existing Transaction. + """ + return cast( + "Transaction", + await self._request_async( + "get", + "/v1/treasury/transactions/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__init__.py new file mode 100644 index 00000000..68753079 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__init__.py @@ -0,0 +1,39 @@ +from typing_extensions import TYPE_CHECKING +from stripe.v2._list_object import ListObject as ListObject +from stripe.v2._amount import Amount as Amount, AmountParam as AmountParam + + +# The beginning of the section generated from our OpenAPI spec +from importlib import import_module + +if TYPE_CHECKING: + from stripe.v2 import billing as billing, core as core + from stripe.v2._billing_service import BillingService as BillingService + from stripe.v2._core_service import CoreService as CoreService + from stripe.v2._deleted_object import DeletedObject as DeletedObject + +# name -> (import_target, is_submodule) +_import_map = { + "billing": ("stripe.v2.billing", True), + "core": ("stripe.v2.core", True), + "BillingService": ("stripe.v2._billing_service", False), + "CoreService": ("stripe.v2._core_service", False), + "DeletedObject": ("stripe.v2._deleted_object", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() + +# The end of the section generated from our OpenAPI spec diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..b93a4ea0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_amount.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_amount.cpython-312.pyc new file mode 100644 index 00000000..20575e7a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_amount.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_billing_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_billing_service.cpython-312.pyc new file mode 100644 index 00000000..d651a355 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_billing_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_core_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_core_service.cpython-312.pyc new file mode 100644 index 00000000..a96c6186 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_core_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_deleted_object.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_deleted_object.cpython-312.pyc new file mode 100644 index 00000000..0ef21bfe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_deleted_object.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_list_object.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_list_object.cpython-312.pyc new file mode 100644 index 00000000..3e7ab06f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/__pycache__/_list_object.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/_amount.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_amount.py new file mode 100644 index 00000000..97a6bf63 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_amount.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# NOT codegenned +from typing_extensions import TypedDict +from stripe._stripe_object import StripeObject + + +class Amount(StripeObject): + value: int + currency: str + + +class AmountParam(TypedDict): + value: int + currency: str diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/_billing_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_billing_service.py new file mode 100644 index 00000000..992329ca --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_billing_service.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.v2.billing._meter_event_adjustment_service import ( + MeterEventAdjustmentService, + ) + from stripe.v2.billing._meter_event_service import MeterEventService + from stripe.v2.billing._meter_event_session_service import ( + MeterEventSessionService, + ) + from stripe.v2.billing._meter_event_stream_service import ( + MeterEventStreamService, + ) + +_subservices = { + "meter_events": [ + "stripe.v2.billing._meter_event_service", + "MeterEventService", + ], + "meter_event_adjustments": [ + "stripe.v2.billing._meter_event_adjustment_service", + "MeterEventAdjustmentService", + ], + "meter_event_session": [ + "stripe.v2.billing._meter_event_session_service", + "MeterEventSessionService", + ], + "meter_event_stream": [ + "stripe.v2.billing._meter_event_stream_service", + "MeterEventStreamService", + ], +} + + +class BillingService(StripeService): + meter_events: "MeterEventService" + meter_event_adjustments: "MeterEventAdjustmentService" + meter_event_session: "MeterEventSessionService" + meter_event_stream: "MeterEventStreamService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/_core_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_core_service.py new file mode 100644 index 00000000..746a472a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_core_service.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.v2.core._event_destination_service import ( + EventDestinationService, + ) + from stripe.v2.core._event_service import EventService + +_subservices = { + "events": ["stripe.v2.core._event_service", "EventService"], + "event_destinations": [ + "stripe.v2.core._event_destination_service", + "EventDestinationService", + ], +} + + +class CoreService(StripeService): + events: "EventService" + event_destinations: "EventDestinationService" + + def __init__(self, requestor): + super().__init__(requestor) + + def __getattr__(self, name): + try: + import_from, service = _subservices[name] + service_class = getattr( + import_module(import_from), + service, + ) + setattr( + self, + name, + service_class(self._requestor), + ) + return getattr(self, name) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/_deleted_object.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_deleted_object.py new file mode 100644 index 00000000..ebcfd677 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_deleted_object.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import Optional + + +class DeletedObject(StripeObject): + id: str + """ + The ID of the object that's being deleted. + """ + object: Optional[str] + """ + String representing the type of the object that has been deleted. Objects of the same type share the same value of the object field. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/_list_object.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_list_object.py new file mode 100644 index 00000000..a314650c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/_list_object.py @@ -0,0 +1,59 @@ +from stripe._stripe_object import StripeObject +from typing import List, Optional, TypeVar, Generic + + +T = TypeVar("T", bound=StripeObject) + + +class ListObject(StripeObject, Generic[T]): + """ + Represents one page of a list of V2 Stripe objects. Use `.data` to access + the objects on this page, or use + + for item in list_object.auto_paging_iter(): + # do something with item + + to iterate over this and all following pages. + """ + + OBJECT_NAME = "list" + data: List[T] + next_page_url: Optional[str] + + def __getitem__(self, k): + if isinstance(k, str): # type: ignore + return super(ListObject, self).__getitem__(k) + else: + raise KeyError( + "You tried to access the %s index, but ListObjectV2 types only " + "support string keys. (HINT: List calls return an object with " + "a 'data' (which is the data array). You likely want to call " + ".data[%s])" % (repr(k), repr(k)) + ) + + def __iter__(self): + return getattr(self, "data", []).__iter__() + + def __len__(self): + return getattr(self, "data", []).__len__() + + def __reversed__(self): + return getattr(self, "data", []).__reversed__() + + def auto_paging_iter(self): + page = self.data + next_page_url = self.next_page_url + while True: + for item in page: + yield item + if next_page_url is None: + break + + result = self._request( + "get", + next_page_url, + base_address="api", + ) + assert isinstance(result, ListObject) + page = result.data + next_page_url = result.next_page_url diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__init__.py new file mode 100644 index 00000000..7488a07f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__init__.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from importlib import import_module +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe.v2.billing._meter_event import MeterEvent as MeterEvent + from stripe.v2.billing._meter_event_adjustment import ( + MeterEventAdjustment as MeterEventAdjustment, + ) + from stripe.v2.billing._meter_event_adjustment_service import ( + MeterEventAdjustmentService as MeterEventAdjustmentService, + ) + from stripe.v2.billing._meter_event_service import ( + MeterEventService as MeterEventService, + ) + from stripe.v2.billing._meter_event_session import ( + MeterEventSession as MeterEventSession, + ) + from stripe.v2.billing._meter_event_session_service import ( + MeterEventSessionService as MeterEventSessionService, + ) + from stripe.v2.billing._meter_event_stream_service import ( + MeterEventStreamService as MeterEventStreamService, + ) + +# name -> (import_target, is_submodule) +_import_map = { + "MeterEvent": ("stripe.v2.billing._meter_event", False), + "MeterEventAdjustment": ( + "stripe.v2.billing._meter_event_adjustment", + False, + ), + "MeterEventAdjustmentService": ( + "stripe.v2.billing._meter_event_adjustment_service", + False, + ), + "MeterEventService": ("stripe.v2.billing._meter_event_service", False), + "MeterEventSession": ("stripe.v2.billing._meter_event_session", False), + "MeterEventSessionService": ( + "stripe.v2.billing._meter_event_session_service", + False, + ), + "MeterEventStreamService": ( + "stripe.v2.billing._meter_event_stream_service", + False, + ), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..e310d8bc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event.cpython-312.pyc new file mode 100644 index 00000000..e24b0385 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc new file mode 100644 index 00000000..95e203b0 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_adjustment.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc new file mode 100644 index 00000000..40302c0e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_adjustment_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_service.cpython-312.pyc new file mode 100644 index 00000000..cdbafacd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_session.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_session.cpython-312.pyc new file mode 100644 index 00000000..3e2ff792 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_session.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_session_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_session_service.cpython-312.pyc new file mode 100644 index 00000000..5ecbec20 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_session_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_stream_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_stream_service.cpython-312.pyc new file mode 100644 index 00000000..5a021d15 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/__pycache__/_meter_event_stream_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event.py new file mode 100644 index 00000000..7ab581a1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict +from typing_extensions import Literal + + +class MeterEvent(StripeObject): + """ + Fix me empty_doc_string. + """ + + OBJECT_NAME: ClassVar[Literal["v2.billing.meter_event"]] = ( + "v2.billing.meter_event" + ) + created: str + """ + The creation time of this meter event. + """ + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + identifier: str + """ + A unique identifier for the event. If not provided, one will be generated. We recommend using a globally unique identifier for this. We'll enforce uniqueness within a rolling 24 hour period. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["v2.billing.meter_event"] + """ + String representing the object's type. Objects of the same type share the same value of the object field. + """ + payload: Dict[str, str] + """ + The payload of the event. This must contain the fields corresponding to a meter's + `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and + `value_settings.event_payload_key` (default is `value`). Read more about + the [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides).. + """ + timestamp: str + """ + The time of the event. Must be within the past 35 calendar days or up to + 5 minutes in the future. Defaults to current timestamp if not specified. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_adjustment.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_adjustment.py new file mode 100644 index 00000000..662e8b9b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_adjustment.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal + + +class MeterEventAdjustment(StripeObject): + OBJECT_NAME: ClassVar[Literal["v2.billing.meter_event_adjustment"]] = ( + "v2.billing.meter_event_adjustment" + ) + + class Cancel(StripeObject): + identifier: str + """ + Unique identifier for the event. You can only cancel events within 24 hours of Stripe receiving them. + """ + + cancel: Cancel + """ + Specifies which event to cancel. + """ + created: str + """ + The time the adjustment was created. + """ + event_name: str + """ + The name of the meter event. Corresponds with the `event_name` field on a meter. + """ + id: str + """ + The unique id of this meter event adjustment. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["v2.billing.meter_event_adjustment"] + """ + String representing the object's type. Objects of the same type share the same value of the object field. + """ + status: Literal["complete", "pending"] + """ + Open Enum. The meter event adjustment's status. + """ + type: Literal["cancel"] + """ + Open Enum. Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet. + """ + _inner_class_types = {"cancel": Cancel} diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_adjustment_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_adjustment_service.py new file mode 100644 index 00000000..70640a84 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_adjustment_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.v2.billing._meter_event_adjustment_create_params import ( + MeterEventAdjustmentCreateParams, + ) + from stripe.v2.billing._meter_event_adjustment import MeterEventAdjustment + + +class MeterEventAdjustmentService(StripeService): + def create( + self, + params: "MeterEventAdjustmentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEventAdjustment": + """ + Creates a meter event adjustment to cancel a previously sent meter event. + """ + return cast( + "MeterEventAdjustment", + self._request( + "post", + "/v2/billing/meter_event_adjustments", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "MeterEventAdjustmentCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEventAdjustment": + """ + Creates a meter event adjustment to cancel a previously sent meter event. + """ + return cast( + "MeterEventAdjustment", + await self._request_async( + "post", + "/v2/billing/meter_event_adjustments", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_service.py new file mode 100644 index 00000000..ed8ef8f2 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.v2.billing._meter_event_create_params import ( + MeterEventCreateParams, + ) + from stripe.v2.billing._meter_event import MeterEvent + + +class MeterEventService(StripeService): + def create( + self, + params: "MeterEventCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEvent": + """ + Creates a meter event. Events are validated synchronously, but are processed asynchronously. Supports up to 1,000 events per second in livemode. For higher rate-limits, please use meter event streams instead. + """ + return cast( + "MeterEvent", + self._request( + "post", + "/v2/billing/meter_events", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "MeterEventCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "MeterEvent": + """ + Creates a meter event. Events are validated synchronously, but are processed asynchronously. Supports up to 1,000 events per second in livemode. For higher rate-limits, please use meter event streams instead. + """ + return cast( + "MeterEvent", + await self._request_async( + "post", + "/v2/billing/meter_events", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_session.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_session.py new file mode 100644 index 00000000..8a6d4753 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_session.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar +from typing_extensions import Literal + + +class MeterEventSession(StripeObject): + OBJECT_NAME: ClassVar[Literal["v2.billing.meter_event_session"]] = ( + "v2.billing.meter_event_session" + ) + authentication_token: str + """ + The authentication token for this session. Use this token when calling the + high-throughput meter event API. + """ + created: str + """ + The creation time of this session. + """ + expires_at: str + """ + The time at which this session will expire. + """ + id: str + """ + The unique id of this auth session. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["v2.billing.meter_event_session"] + """ + String representing the object's type. Objects of the same type share the same value of the object field. + """ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_session_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_session_service.py new file mode 100644 index 00000000..5bf06cd0 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_session_service.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.v2.billing._meter_event_session_create_params import ( + MeterEventSessionCreateParams, + ) + from stripe.v2.billing._meter_event_session import MeterEventSession + + +class MeterEventSessionService(StripeService): + def create( + self, + params: Optional["MeterEventSessionCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "MeterEventSession": + """ + Creates a meter event session to send usage on the high-throughput meter event stream. Authentication tokens are only valid for 15 minutes, so you will need to create a new meter event session when your token expires. + """ + return cast( + "MeterEventSession", + self._request( + "post", + "/v2/billing/meter_event_session", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: Optional["MeterEventSessionCreateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "MeterEventSession": + """ + Creates a meter event session to send usage on the high-throughput meter event stream. Authentication tokens are only valid for 15 minutes, so you will need to create a new meter event session when your token expires. + """ + return cast( + "MeterEventSession", + await self._request_async( + "post", + "/v2/billing/meter_event_session", + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_stream_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_stream_service.py new file mode 100644 index 00000000..f55da6af --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/billing/_meter_event_stream_service.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from typing import Optional +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.v2.billing._meter_event_stream_create_params import ( + MeterEventStreamCreateParams, + ) + + +class MeterEventStreamService(StripeService): + def create( + self, + params: "MeterEventStreamCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "None": + """ + Creates meter events. Events are processed asynchronously, including validation. Requires a meter event session for authentication. Supports up to 10,000 requests per second in livemode. For even higher rate-limits, contact sales. + """ + self._request( + "post", + "/v2/billing/meter_event_stream", + base_address="meter_events", + params=params, + options=options, + ) + + async def create_async( + self, + params: "MeterEventStreamCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "None": + """ + Creates meter events. Events are processed asynchronously, including validation. Requires a meter event session for authentication. Supports up to 10,000 requests per second in livemode. For even higher rate-limits, contact sales. + """ + await self._request_async( + "post", + "/v2/billing/meter_event_stream", + base_address="meter_events", + params=params, + options=options, + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__init__.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__init__.py new file mode 100644 index 00000000..dc715b4b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__init__.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- + +from typing_extensions import TYPE_CHECKING +from stripe.v2.core._event import ( + EventNotification as EventNotification, + RelatedObject as RelatedObject, + Reason as Reason, + ReasonRequest as ReasonRequest, +) + +# The beginning of the section generated from our OpenAPI spec +from importlib import import_module + +if TYPE_CHECKING: + from stripe.v2.core._event import Event as Event + from stripe.v2.core._event_destination import ( + EventDestination as EventDestination, + ) + from stripe.v2.core._event_destination_service import ( + EventDestinationService as EventDestinationService, + ) + from stripe.v2.core._event_service import EventService as EventService + +# name -> (import_target, is_submodule) +_import_map = { + "Event": ("stripe.v2.core._event", False), + "EventDestination": ("stripe.v2.core._event_destination", False), + "EventDestinationService": ( + "stripe.v2.core._event_destination_service", + False, + ), + "EventService": ("stripe.v2.core._event_service", False), +} +if not TYPE_CHECKING: + + def __getattr__(name): + try: + target, is_submodule = _import_map[name] + module = import_module(target) + if is_submodule: + return module + + return getattr( + module, + name, + ) + except KeyError: + raise AttributeError() + +# The end of the section generated from our OpenAPI spec diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..75458bee Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event.cpython-312.pyc new file mode 100644 index 00000000..5dfb0f15 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_destination.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_destination.cpython-312.pyc new file mode 100644 index 00000000..70f1f7a2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_destination.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_destination_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_destination_service.cpython-312.pyc new file mode 100644 index 00000000..5ab5fd6c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_destination_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_service.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_service.cpython-312.pyc new file mode 100644 index 00000000..550a23f3 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/__pycache__/_event_service.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event.py new file mode 100644 index 00000000..415a2879 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event.py @@ -0,0 +1,250 @@ +# -*- coding: utf-8 -*- + +import json +from typing import Any, ClassVar, Dict, Optional, cast + +from typing_extensions import Literal, TYPE_CHECKING + +from stripe._stripe_object import StripeObject +from stripe._util import get_api_mode +from stripe._stripe_context import StripeContext + +if TYPE_CHECKING: + from stripe._stripe_client import StripeClient + + +# The beginning of the section generated from our OpenAPI spec +class Event(StripeObject): + """ + Events are generated to keep you informed of activity in your business account. APIs in the /v2 namespace generate [thin events](https://docs.stripe.com/event-destinations#benefits-of-thin-events) which have small, unversioned payloads that include a reference to the ID of the object that has changed. The Events v2 API returns these new thin events. [Retrieve the event object](https://docs.stripe.com/event-destinations#fetch-data) for additional data about the event. Use the related object ID in the event payload to [fetch the API resource](https://docs.stripe.com/event-destinations#retrieve-the-object-associated-with-thin-events) of the object associated with the event. Comparatively, events generated by most API v1 include a versioned snapshot of an API object in their payload. + """ + + OBJECT_NAME: ClassVar[Literal["v2.core.event"]] = "v2.core.event" + + class Reason(StripeObject): + class Request(StripeObject): + id: str + """ + ID of the API request that caused the event. + """ + idempotency_key: str + """ + The idempotency key transmitted during the request. + """ + + request: Optional[Request] + """ + Information on the API request that instigated the event. + """ + type: Literal["request"] + """ + Event reason type. + """ + _inner_class_types = {"request": Request} + + context: Optional[str] + """ + Authentication context needed to fetch the event or related object. + """ + created: str + """ + Time at which the object was created. + """ + id: str + """ + Unique identifier for the event. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + object: Literal["v2.core.event"] + """ + String representing the object's type. Objects of the same type share the same value of the object field. + """ + reason: Optional[Reason] + """ + Reason for the event. + """ + type: str + """ + The type of the event. + """ + _inner_class_types = {"reason": Reason} + + +# The end of the section generated from our OpenAPI spec + + +class ReasonRequest: + id: str + idempotency_key: str + + def __init__(self, d) -> None: + self.id = d["id"] + self.idempotency_key = d["idempotency_key"] + + def __repr__(self) -> str: + return f"" + + +class Reason: + type: Literal["request"] + request: Optional[ReasonRequest] = None + + def __init__(self, d) -> None: + self.type = d["type"] + if self.type == "request": + self.request = ReasonRequest(d["request"]) + + def __repr__(self) -> str: + return f"" + + +class RelatedObject: + id: str + type: str + url: str + + def __init__(self, d) -> None: + self.id = d["id"] + self.type = d["type"] + self.url = d["url"] + + def __repr__(self) -> str: + return f"" + + +class EventNotification: + """ + EventNotification represents the json that's delivered from an Event Destination. It's a basic struct-like object with a few convenience methods. Use `fetch_event()` to get the full event object. + """ + + id: str + """ + Unique identifier for the event. + """ + type: str + """ + The type of the event. + """ + created: str + """ + Time at which the object was created. + """ + livemode: bool + """ + Livemode indicates if the event is from a production(true) or test(false) account. + """ + context: Optional[StripeContext] = None + """ + [Optional] Authentication context needed to fetch the event or related object. + """ + reason: Optional[Reason] = None + """ + [Optional] Reason for the event. + """ + + def __init__( + self, parsed_body: Dict[str, Any], client: "StripeClient" + ) -> None: + self.id = parsed_body["id"] + self.type = parsed_body["type"] + self.created = parsed_body["created"] + self.livemode = bool(parsed_body.get("livemode")) + context_value = parsed_body.get("context") + if context_value: + self.context = StripeContext.parse(context_value) + + if parsed_body.get("reason"): + self.reason = Reason(parsed_body["reason"]) + + self._client = client + + @staticmethod + def from_json(payload: str, client: "StripeClient") -> "EventNotification": + """ + Helper for constructing an Event Notification. Doesn't perform signature validation, so you + should use StripeClient.parseEventNotification() instead for initial handling. + This is useful in unit tests and working with EventNotifications that you've already validated the authenticity of. + """ + parsed_body = json.loads(payload) + + # circular import busting + from stripe.events._event_classes import ( + get_v2_event_notification_class, + ) + + event_class = get_v2_event_notification_class(parsed_body["type"]) + + return event_class(parsed_body, client) + + def __repr__(self) -> str: + return f"" + + def fetch_event(self) -> Event: + response = self._client.raw_request( + "get", + f"/v2/core/events/{self.id}", + stripe_context=self.context, + usage=["pushed_event_pull"], + ) + return cast(Event, self._client.deserialize(response, api_mode="V2")) + + async def fetch_event_async(self) -> Event: + response = await self._client.raw_request_async( + "get", + f"/v2/core/events/{self.id}", + stripe_context=self.context, + usage=["pushed_event_pull", "pushed_event_pull_async"], + ) + return cast(Event, self._client.deserialize(response, api_mode="V2")) + + +class UnknownEventNotification(EventNotification): + """ + Represents an EventNotification payload that the SDK doesn't have types for. May have a related object. + """ + + related_object: Optional[RelatedObject] = None + """ + [Optional] Object containing the reference to API resource relevant to the event. + """ + + def __init__( + self, parsed_body: Dict[str, Any], client: "StripeClient" + ) -> None: + super().__init__(parsed_body, client) + + if parsed_body.get("related_object"): + self.related_object = RelatedObject(parsed_body["related_object"]) + + def fetch_related_object(self) -> Optional[StripeObject]: + if self.related_object is None: + return None + + response = self._client.raw_request( + "get", + self.related_object.url, + stripe_context=self.context, + usage=["fetch_related_object", "unknown_event"], + ) + return self._client.deserialize( + response, + api_mode=get_api_mode(self.related_object.url), + ) + + async def fetch_related_object_async(self) -> Optional[StripeObject]: + if self.related_object is None: + return None + + response = await self._client.raw_request_async( + "get", + self.related_object.url, + stripe_context=self.context, + usage=["fetch_related_object", "unknown_event"], + ) + return self._client.deserialize( + response, + api_mode=get_api_mode(self.related_object.url), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_destination.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_destination.py new file mode 100644 index 00000000..02d4ca17 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_destination.py @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_object import StripeObject +from typing import ClassVar, Dict, List, Optional +from typing_extensions import Literal + + +class EventDestination(StripeObject): + """ + Set up an event destination to receive events from Stripe across multiple destination types, including [webhook endpoints](https://docs.stripe.com/webhooks) and [Amazon EventBridge](https://docs.stripe.com/event-destinations/eventbridge). Event destinations support receiving [thin events](https://docs.stripe.com/api/v2/events) and [snapshot events](https://docs.stripe.com/api/events). + """ + + OBJECT_NAME: ClassVar[Literal["v2.core.event_destination"]] = ( + "v2.core.event_destination" + ) + + class AmazonEventbridge(StripeObject): + aws_account_id: str + """ + The AWS account ID. + """ + aws_event_source_arn: str + """ + The ARN of the AWS event source. + """ + aws_event_source_status: Literal[ + "active", "deleted", "pending", "unknown" + ] + """ + The state of the AWS event source. + """ + + class StatusDetails(StripeObject): + class Disabled(StripeObject): + reason: Literal["no_aws_event_source_exists", "user"] + """ + Reason event destination has been disabled. + """ + + disabled: Optional[Disabled] + """ + Details about why the event destination has been disabled. + """ + _inner_class_types = {"disabled": Disabled} + + class WebhookEndpoint(StripeObject): + signing_secret: Optional[str] + """ + The signing secret of the webhook endpoint, only includable on creation. + """ + url: Optional[str] + """ + The URL of the webhook endpoint, includable. + """ + + amazon_eventbridge: Optional[AmazonEventbridge] + """ + Amazon EventBridge configuration. + """ + created: str + """ + Time at which the object was created. + """ + description: str + """ + An optional description of what the event destination is used for. + """ + enabled_events: List[str] + """ + The list of events to enable for this endpoint. + """ + event_payload: Literal["snapshot", "thin"] + """ + Payload type of events being subscribed to. + """ + events_from: Optional[List[Literal["other_accounts", "self"]]] + """ + Where events should be routed from. + """ + id: str + """ + Unique identifier for the object. + """ + livemode: bool + """ + Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. + """ + metadata: Optional[Dict[str, str]] + """ + Metadata. + """ + name: str + """ + Event destination name. + """ + object: Literal["v2.core.event_destination"] + """ + String representing the object's type. Objects of the same type share the same value of the object field. + """ + snapshot_api_version: Optional[str] + """ + If using the snapshot event payload, the API version events are rendered as. + """ + status: Literal["disabled", "enabled"] + """ + Status. It can be set to either enabled or disabled. + """ + status_details: Optional[StatusDetails] + """ + Additional information about event destination status. + """ + type: Literal["amazon_eventbridge", "webhook_endpoint"] + """ + Event destination type. + """ + updated: str + """ + Time at which the object was last updated. + """ + webhook_endpoint: Optional[WebhookEndpoint] + """ + Webhook endpoint configuration. + """ + _inner_class_types = { + "amazon_eventbridge": AmazonEventbridge, + "status_details": StatusDetails, + "webhook_endpoint": WebhookEndpoint, + } diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_destination_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_destination_service.py new file mode 100644 index 00000000..a788a391 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_destination_service.py @@ -0,0 +1,367 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.v2.core._event_destination_create_params import ( + EventDestinationCreateParams, + ) + from stripe.params.v2.core._event_destination_delete_params import ( + EventDestinationDeleteParams, + ) + from stripe.params.v2.core._event_destination_disable_params import ( + EventDestinationDisableParams, + ) + from stripe.params.v2.core._event_destination_enable_params import ( + EventDestinationEnableParams, + ) + from stripe.params.v2.core._event_destination_list_params import ( + EventDestinationListParams, + ) + from stripe.params.v2.core._event_destination_ping_params import ( + EventDestinationPingParams, + ) + from stripe.params.v2.core._event_destination_retrieve_params import ( + EventDestinationRetrieveParams, + ) + from stripe.params.v2.core._event_destination_update_params import ( + EventDestinationUpdateParams, + ) + from stripe.v2._deleted_object import DeletedObject + from stripe.v2._list_object import ListObject + from stripe.v2.core._event import Event + from stripe.v2.core._event_destination import EventDestination + + +class EventDestinationService(StripeService): + def list( + self, + params: Optional["EventDestinationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[EventDestination]": + """ + Lists all event destinations. + """ + return cast( + "ListObject[EventDestination]", + self._request( + "get", + "/v2/core/event_destinations", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["EventDestinationListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[EventDestination]": + """ + Lists all event destinations. + """ + return cast( + "ListObject[EventDestination]", + await self._request_async( + "get", + "/v2/core/event_destinations", + base_address="api", + params=params, + options=options, + ), + ) + + def create( + self, + params: "EventDestinationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Create a new event destination. + """ + return cast( + "EventDestination", + self._request( + "post", + "/v2/core/event_destinations", + base_address="api", + params=params, + options=options, + ), + ) + + async def create_async( + self, + params: "EventDestinationCreateParams", + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Create a new event destination. + """ + return cast( + "EventDestination", + await self._request_async( + "post", + "/v2/core/event_destinations", + base_address="api", + params=params, + options=options, + ), + ) + + def delete( + self, + id: str, + params: Optional["EventDestinationDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "DeletedObject": + """ + Delete an event destination. + """ + return cast( + "DeletedObject", + self._request( + "delete", + "/v2/core/event_destinations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def delete_async( + self, + id: str, + params: Optional["EventDestinationDeleteParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "DeletedObject": + """ + Delete an event destination. + """ + return cast( + "DeletedObject", + await self._request_async( + "delete", + "/v2/core/event_destinations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["EventDestinationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Retrieves the details of an event destination. + """ + return cast( + "EventDestination", + self._request( + "get", + "/v2/core/event_destinations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["EventDestinationRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Retrieves the details of an event destination. + """ + return cast( + "EventDestination", + await self._request_async( + "get", + "/v2/core/event_destinations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def update( + self, + id: str, + params: Optional["EventDestinationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Update the details of an event destination. + """ + return cast( + "EventDestination", + self._request( + "post", + "/v2/core/event_destinations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def update_async( + self, + id: str, + params: Optional["EventDestinationUpdateParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Update the details of an event destination. + """ + return cast( + "EventDestination", + await self._request_async( + "post", + "/v2/core/event_destinations/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + def disable( + self, + id: str, + params: Optional["EventDestinationDisableParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Disable an event destination. + """ + return cast( + "EventDestination", + self._request( + "post", + "/v2/core/event_destinations/{id}/disable".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def disable_async( + self, + id: str, + params: Optional["EventDestinationDisableParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Disable an event destination. + """ + return cast( + "EventDestination", + await self._request_async( + "post", + "/v2/core/event_destinations/{id}/disable".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def enable( + self, + id: str, + params: Optional["EventDestinationEnableParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Enable an event destination. + """ + return cast( + "EventDestination", + self._request( + "post", + "/v2/core/event_destinations/{id}/enable".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def enable_async( + self, + id: str, + params: Optional["EventDestinationEnableParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "EventDestination": + """ + Enable an event destination. + """ + return cast( + "EventDestination", + await self._request_async( + "post", + "/v2/core/event_destinations/{id}/enable".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + def ping( + self, + id: str, + params: Optional["EventDestinationPingParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Event": + """ + Send a `ping` event to an event destination. + """ + return cast( + "Event", + self._request( + "post", + "/v2/core/event_destinations/{id}/ping".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) + + async def ping_async( + self, + id: str, + params: Optional["EventDestinationPingParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Event": + """ + Send a `ping` event to an event destination. + """ + return cast( + "Event", + await self._request_async( + "post", + "/v2/core/event_destinations/{id}/ping".format( + id=sanitize_id(id), + ), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_service.py b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_service.py new file mode 100644 index 00000000..38da51e6 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/stripe/v2/core/_event_service.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# File generated from our OpenAPI spec +from stripe._stripe_service import StripeService +from stripe._util import sanitize_id +from typing import Optional, cast +from typing_extensions import TYPE_CHECKING + +if TYPE_CHECKING: + from stripe._request_options import RequestOptions + from stripe.params.v2.core._event_list_params import EventListParams + from stripe.params.v2.core._event_retrieve_params import ( + EventRetrieveParams, + ) + from stripe.v2._list_object import ListObject + from stripe.v2.core._event import Event + + +class EventService(StripeService): + def list( + self, + params: Optional["EventListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Event]": + """ + List events, going back up to 30 days. + """ + return cast( + "ListObject[Event]", + self._request( + "get", + "/v2/core/events", + base_address="api", + params=params, + options=options, + ), + ) + + async def list_async( + self, + params: Optional["EventListParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "ListObject[Event]": + """ + List events, going back up to 30 days. + """ + return cast( + "ListObject[Event]", + await self._request_async( + "get", + "/v2/core/events", + base_address="api", + params=params, + options=options, + ), + ) + + def retrieve( + self, + id: str, + params: Optional["EventRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Event": + """ + Retrieves the details of an event. + """ + return cast( + "Event", + self._request( + "get", + "/v2/core/events/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) + + async def retrieve_async( + self, + id: str, + params: Optional["EventRetrieveParams"] = None, + options: Optional["RequestOptions"] = None, + ) -> "Event": + """ + Retrieves the details of an event. + """ + return cast( + "Event", + await self._request_async( + "get", + "/v2/core/events/{id}".format(id=sanitize_id(id)), + base_address="api", + params=params, + options=options, + ), + ) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/INSTALLER b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/METADATA b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/METADATA new file mode 100644 index 00000000..15116c78 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/METADATA @@ -0,0 +1,154 @@ +Metadata-Version: 2.4 +Name: urllib3 +Version: 2.5.0 +Summary: HTTP library with thread-safe connection pooling, file post, and more. +Project-URL: Changelog, https://github.com/urllib3/urllib3/blob/main/CHANGES.rst +Project-URL: Documentation, https://urllib3.readthedocs.io +Project-URL: Code, https://github.com/urllib3/urllib3 +Project-URL: Issue tracker, https://github.com/urllib3/urllib3/issues +Author-email: Andrey Petrov +Maintainer-email: Seth Michael Larson , Quentin Pradet , Illia Volochii +License-Expression: MIT +License-File: LICENSE.txt +Keywords: filepost,http,httplib,https,pooling,ssl,threadsafe,urllib +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Software Development :: Libraries +Requires-Python: >=3.9 +Provides-Extra: brotli +Requires-Dist: brotli>=1.0.9; (platform_python_implementation == 'CPython') and extra == 'brotli' +Requires-Dist: brotlicffi>=0.8.0; (platform_python_implementation != 'CPython') and extra == 'brotli' +Provides-Extra: h2 +Requires-Dist: h2<5,>=4; extra == 'h2' +Provides-Extra: socks +Requires-Dist: pysocks!=1.5.7,<2.0,>=1.5.6; extra == 'socks' +Provides-Extra: zstd +Requires-Dist: zstandard>=0.18.0; extra == 'zstd' +Description-Content-Type: text/markdown + +

+ +![urllib3](https://github.com/urllib3/urllib3/raw/main/docs/_static/banner_github.svg) + +

+ +

+ PyPI Version + Python Versions + Join our Discord + Coverage Status + Build Status on GitHub + Documentation Status
+ OpenSSF Scorecard + SLSA 3 + CII Best Practices +

+ +urllib3 is a powerful, *user-friendly* HTTP client for Python. Much of the +Python ecosystem already uses urllib3 and you should too. +urllib3 brings many critical features that are missing from the Python +standard libraries: + +- Thread safety. +- Connection pooling. +- Client-side SSL/TLS verification. +- File uploads with multipart encoding. +- Helpers for retrying requests and dealing with HTTP redirects. +- Support for gzip, deflate, brotli, and zstd encoding. +- Proxy support for HTTP and SOCKS. +- 100% test coverage. + +urllib3 is powerful and easy to use: + +```python3 +>>> import urllib3 +>>> resp = urllib3.request("GET", "http://httpbin.org/robots.txt") +>>> resp.status +200 +>>> resp.data +b"User-agent: *\nDisallow: /deny\n" +``` + +## Installing + +urllib3 can be installed with [pip](https://pip.pypa.io): + +```bash +$ python -m pip install urllib3 +``` + +Alternatively, you can grab the latest source code from [GitHub](https://github.com/urllib3/urllib3): + +```bash +$ git clone https://github.com/urllib3/urllib3.git +$ cd urllib3 +$ pip install . +``` + + +## Documentation + +urllib3 has usage and reference documentation at [urllib3.readthedocs.io](https://urllib3.readthedocs.io). + + +## Community + +urllib3 has a [community Discord channel](https://discord.gg/urllib3) for asking questions and +collaborating with other contributors. Drop by and say hello 👋 + + +## Contributing + +urllib3 happily accepts contributions. Please see our +[contributing documentation](https://urllib3.readthedocs.io/en/latest/contributing.html) +for some tips on getting started. + + +## Security Disclosures + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure with maintainers. + + +## Maintainers + +- [@sethmlarson](https://github.com/sethmlarson) (Seth M. Larson) +- [@pquentin](https://github.com/pquentin) (Quentin Pradet) +- [@illia-v](https://github.com/illia-v) (Illia Volochii) +- [@theacodes](https://github.com/theacodes) (Thea Flowers) +- [@haikuginger](https://github.com/haikuginger) (Jess Shapiro) +- [@lukasa](https://github.com/lukasa) (Cory Benfield) +- [@sigmavirus24](https://github.com/sigmavirus24) (Ian Stapleton Cordasco) +- [@shazow](https://github.com/shazow) (Andrey Petrov) + +👋 + + +## Sponsorship + +If your company benefits from this library, please consider [sponsoring its +development](https://urllib3.readthedocs.io/en/latest/sponsors.html). + + +## For Enterprise + +Professional support for urllib3 is available as part of the [Tidelift +Subscription][1]. Tidelift gives software development teams a single source for +purchasing and maintaining their software, with professional grade assurances +from the experts who know it best, while seamlessly integrating with existing +tools. + +[1]: https://tidelift.com/subscription/pkg/pypi-urllib3?utm_source=pypi-urllib3&utm_medium=referral&utm_campaign=readme diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/RECORD b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/RECORD new file mode 100644 index 00000000..6315d906 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/RECORD @@ -0,0 +1,79 @@ +urllib3-2.5.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +urllib3-2.5.0.dist-info/METADATA,sha256=maYkTIZt0a-lkEC-hMZWbCBmcGZyJcYOeRk4_nuTrNc,6461 +urllib3-2.5.0.dist-info/RECORD,, +urllib3-2.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +urllib3-2.5.0.dist-info/licenses/LICENSE.txt,sha256=Ew46ZNX91dCWp1JpRjSn2d8oRGnehuVzIQAmgEHj1oY,1093 +urllib3/__init__.py,sha256=JMo1tg1nIV1AeJ2vENC_Txfl0e5h6Gzl9DGVk1rWRbo,6979 +urllib3/__pycache__/__init__.cpython-312.pyc,, +urllib3/__pycache__/_base_connection.cpython-312.pyc,, +urllib3/__pycache__/_collections.cpython-312.pyc,, +urllib3/__pycache__/_request_methods.cpython-312.pyc,, +urllib3/__pycache__/_version.cpython-312.pyc,, +urllib3/__pycache__/connection.cpython-312.pyc,, +urllib3/__pycache__/connectionpool.cpython-312.pyc,, +urllib3/__pycache__/exceptions.cpython-312.pyc,, +urllib3/__pycache__/fields.cpython-312.pyc,, +urllib3/__pycache__/filepost.cpython-312.pyc,, +urllib3/__pycache__/poolmanager.cpython-312.pyc,, +urllib3/__pycache__/response.cpython-312.pyc,, +urllib3/_base_connection.py,sha256=T1cwH3RhzsrBh6Bz3AOGVDboRsE7veijqZPXXQTR2Rg,5568 +urllib3/_collections.py,sha256=tM7c6J1iKtWZYV_QGYb8-r7Nr1524Dehnsa0Ufh6_mU,17295 +urllib3/_request_methods.py,sha256=gCeF85SO_UU4WoPwYHIoz_tw-eM_EVOkLFp8OFsC7DA,9931 +urllib3/_version.py,sha256=ZlSUkBo_Pd90B6pM0GDO7l2vitQD3QCK3xPR_K0zFJA,511 +urllib3/connection.py,sha256=iP4pgSJtpusXyYlejzNn-gih_wWCxMU-qy6OU1kaapc,42613 +urllib3/connectionpool.py,sha256=ZEhudsa8BIubD2M0XoxBBsjxbsXwMgUScH7oQ9i-j1Y,43371 +urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +urllib3/contrib/__pycache__/__init__.cpython-312.pyc,, +urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc,, +urllib3/contrib/__pycache__/socks.cpython-312.pyc,, +urllib3/contrib/emscripten/__init__.py,sha256=u6KNgzjlFZbuAAXa_ybCR7gQ71VJESnF-IIdDA73brw,733 +urllib3/contrib/emscripten/__pycache__/__init__.cpython-312.pyc,, +urllib3/contrib/emscripten/__pycache__/connection.cpython-312.pyc,, +urllib3/contrib/emscripten/__pycache__/fetch.cpython-312.pyc,, +urllib3/contrib/emscripten/__pycache__/request.cpython-312.pyc,, +urllib3/contrib/emscripten/__pycache__/response.cpython-312.pyc,, +urllib3/contrib/emscripten/connection.py,sha256=j8DR_flE7hsoFhNfiqHLiaPaCsVbzG44jgahwvsQ52A,8771 +urllib3/contrib/emscripten/emscripten_fetch_worker.js,sha256=CDfYF_9CDobtx2lGidyJ1zjDEvwNT5F-dchmVWXDh0E,3655 +urllib3/contrib/emscripten/fetch.py,sha256=kco06lWoQ-fdFfN51-nzeTywPVBEHg89WIst33H3xcg,23484 +urllib3/contrib/emscripten/request.py,sha256=mL28szy1KvE3NJhWor5jNmarp8gwplDU-7gwGZY5g0Q,566 +urllib3/contrib/emscripten/response.py,sha256=7oVPENYZHuzEGRtG40HonpH5tAIYHsGcHPbJt2Z0U-Y,9507 +urllib3/contrib/pyopenssl.py,sha256=Xp5Ym05VgXGhHa0C4wlutvHxY8SnKSS6WLb2t5Miu0s,19720 +urllib3/contrib/socks.py,sha256=-iardc61GypsJzD6W6yuRS7KVCyfowcQrl_719H7lIM,7549 +urllib3/exceptions.py,sha256=pziumHf0Vwx3z4gvUy7ou8nlM2yIYX0N3l3znEdeF5U,9938 +urllib3/fields.py,sha256=FCf7UULSkf10cuTRUWTQESzxgl1WT8e2aCy3kfyZins,10829 +urllib3/filepost.py,sha256=U8eNZ-mpKKHhrlbHEEiTxxgK16IejhEa7uz42yqA_dI,2388 +urllib3/http2/__init__.py,sha256=xzrASH7R5ANRkPJOot5lGnATOq3KKuyXzI42rcnwmqs,1741 +urllib3/http2/__pycache__/__init__.cpython-312.pyc,, +urllib3/http2/__pycache__/connection.cpython-312.pyc,, +urllib3/http2/__pycache__/probe.cpython-312.pyc,, +urllib3/http2/connection.py,sha256=4DB0DkZEC3yIkhGjUDIHB17wrYCLaL0Ag5bDW2_mGPI,12694 +urllib3/http2/probe.py,sha256=nnAkqbhAakOiF75rz7W0udZ38Eeh_uD8fjV74N73FEI,3014 +urllib3/poolmanager.py,sha256=oKsgP1EsAI4OVgK9-9D3AYXZS5HYV8yKUSog-QbJ8Ts,23866 +urllib3/py.typed,sha256=UaCuPFa3H8UAakbt-5G8SPacldTOGvJv18pPjUJ5gDY,93 +urllib3/response.py,sha256=TVTSu6Q1U0U7hoHYMIRxxuh4zroeMo8b5EI4DOA13Eo,46480 +urllib3/util/__init__.py,sha256=-qeS0QceivazvBEKDNFCAI-6ACcdDOE4TMvo7SLNlAQ,1001 +urllib3/util/__pycache__/__init__.cpython-312.pyc,, +urllib3/util/__pycache__/connection.cpython-312.pyc,, +urllib3/util/__pycache__/proxy.cpython-312.pyc,, +urllib3/util/__pycache__/request.cpython-312.pyc,, +urllib3/util/__pycache__/response.cpython-312.pyc,, +urllib3/util/__pycache__/retry.cpython-312.pyc,, +urllib3/util/__pycache__/ssl_.cpython-312.pyc,, +urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc,, +urllib3/util/__pycache__/ssltransport.cpython-312.pyc,, +urllib3/util/__pycache__/timeout.cpython-312.pyc,, +urllib3/util/__pycache__/url.cpython-312.pyc,, +urllib3/util/__pycache__/util.cpython-312.pyc,, +urllib3/util/__pycache__/wait.cpython-312.pyc,, +urllib3/util/connection.py,sha256=JjO722lzHlzLXPTkr9ZWBdhseXnMVjMSb1DJLVrXSnQ,4444 +urllib3/util/proxy.py,sha256=seP8-Q5B6bB0dMtwPj-YcZZQ30vHuLqRu-tI0JZ2fzs,1148 +urllib3/util/request.py,sha256=XuAsEBT58DAZYUTwpMH5Hr3A1OPoMNvNIYIunbIqbc8,8411 +urllib3/util/response.py,sha256=vQE639uoEhj1vpjEdxu5lNIhJCSUZkd7pqllUI0BZOA,3374 +urllib3/util/retry.py,sha256=bj-2YUqblxLlv8THg5fxww-DM54XCbjgZXIQ71XioCY,18459 +urllib3/util/ssl_.py,sha256=jxnQ3msYkVaokJVWqHNnAVdVtDdidrTHDeyk50gwqaQ,19786 +urllib3/util/ssl_match_hostname.py,sha256=Di7DU7zokoltapT_F0Sj21ffYxwaS_cE5apOtwueeyA,5845 +urllib3/util/ssltransport.py,sha256=Ez4O8pR_vT8dan_FvqBYS6dgDfBXEMfVfrzcdUoWfi4,8847 +urllib3/util/timeout.py,sha256=4eT1FVeZZU7h7mYD1Jq2OXNe4fxekdNvhoWUkZusRpA,10346 +urllib3/util/url.py,sha256=WRh-TMYXosmgp8m8lT4H5spoHw5yUjlcMCfU53AkoAs,15205 +urllib3/util/util.py,sha256=j3lbZK1jPyiwD34T8IgJzdWEZVT-4E-0vYIJi9UjeNA,1146 +urllib3/util/wait.py,sha256=_ph8IrUR3sqPqi0OopQgJUlH4wzkGeM5CiyA7XGGtmI,4423 diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/WHEEL b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/WHEEL new file mode 100644 index 00000000..12228d41 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.27.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/licenses/LICENSE.txt b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/licenses/LICENSE.txt new file mode 100644 index 00000000..e6183d02 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3-2.5.0.dist-info/licenses/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2008-2020 Andrey Petrov and contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__init__.py b/Backend/venv/lib/python3.12/site-packages/urllib3/__init__.py new file mode 100644 index 00000000..3fe782c8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/__init__.py @@ -0,0 +1,211 @@ +""" +Python HTTP library with thread-safe connection pooling, file post support, user friendly, and more +""" + +from __future__ import annotations + +# Set default logging handler to avoid "No handler found" warnings. +import logging +import sys +import typing +import warnings +from logging import NullHandler + +from . import exceptions +from ._base_connection import _TYPE_BODY +from ._collections import HTTPHeaderDict +from ._version import __version__ +from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url +from .filepost import _TYPE_FIELDS, encode_multipart_formdata +from .poolmanager import PoolManager, ProxyManager, proxy_from_url +from .response import BaseHTTPResponse, HTTPResponse +from .util.request import make_headers +from .util.retry import Retry +from .util.timeout import Timeout + +# Ensure that Python is compiled with OpenSSL 1.1.1+ +# If the 'ssl' module isn't available at all that's +# fine, we only care if the module is available. +try: + import ssl +except ImportError: + pass +else: + if not ssl.OPENSSL_VERSION.startswith("OpenSSL "): # Defensive: + warnings.warn( + "urllib3 v2 only supports OpenSSL 1.1.1+, currently " + f"the 'ssl' module is compiled with {ssl.OPENSSL_VERSION!r}. " + "See: https://github.com/urllib3/urllib3/issues/3020", + exceptions.NotOpenSSLWarning, + ) + elif ssl.OPENSSL_VERSION_INFO < (1, 1, 1): # Defensive: + raise ImportError( + "urllib3 v2 only supports OpenSSL 1.1.1+, currently " + f"the 'ssl' module is compiled with {ssl.OPENSSL_VERSION!r}. " + "See: https://github.com/urllib3/urllib3/issues/2168" + ) + +__author__ = "Andrey Petrov (andrey.petrov@shazow.net)" +__license__ = "MIT" +__version__ = __version__ + +__all__ = ( + "HTTPConnectionPool", + "HTTPHeaderDict", + "HTTPSConnectionPool", + "PoolManager", + "ProxyManager", + "HTTPResponse", + "Retry", + "Timeout", + "add_stderr_logger", + "connection_from_url", + "disable_warnings", + "encode_multipart_formdata", + "make_headers", + "proxy_from_url", + "request", + "BaseHTTPResponse", +) + +logging.getLogger(__name__).addHandler(NullHandler()) + + +def add_stderr_logger( + level: int = logging.DEBUG, +) -> logging.StreamHandler[typing.TextIO]: + """ + Helper for quickly adding a StreamHandler to the logger. Useful for + debugging. + + Returns the handler after adding it. + """ + # This method needs to be in this __init__.py to get the __name__ correct + # even if urllib3 is vendored within another package. + logger = logging.getLogger(__name__) + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter("%(asctime)s %(levelname)s %(message)s")) + logger.addHandler(handler) + logger.setLevel(level) + logger.debug("Added a stderr logging handler to logger: %s", __name__) + return handler + + +# ... Clean up. +del NullHandler + + +# All warning filters *must* be appended unless you're really certain that they +# shouldn't be: otherwise, it's very hard for users to use most Python +# mechanisms to silence them. +# SecurityWarning's always go off by default. +warnings.simplefilter("always", exceptions.SecurityWarning, append=True) +# InsecurePlatformWarning's don't vary between requests, so we keep it default. +warnings.simplefilter("default", exceptions.InsecurePlatformWarning, append=True) + + +def disable_warnings(category: type[Warning] = exceptions.HTTPWarning) -> None: + """ + Helper for quickly disabling all urllib3 warnings. + """ + warnings.simplefilter("ignore", category) + + +_DEFAULT_POOL = PoolManager() + + +def request( + method: str, + url: str, + *, + body: _TYPE_BODY | None = None, + fields: _TYPE_FIELDS | None = None, + headers: typing.Mapping[str, str] | None = None, + preload_content: bool | None = True, + decode_content: bool | None = True, + redirect: bool | None = True, + retries: Retry | bool | int | None = None, + timeout: Timeout | float | int | None = 3, + json: typing.Any | None = None, +) -> BaseHTTPResponse: + """ + A convenience, top-level request method. It uses a module-global ``PoolManager`` instance. + Therefore, its side effects could be shared across dependencies relying on it. + To avoid side effects create a new ``PoolManager`` instance and use it instead. + The method does not accept low-level ``**urlopen_kw`` keyword arguments. + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param url: + The URL to perform the request on. + + :param body: + Data to send in the request body, either :class:`str`, :class:`bytes`, + an iterable of :class:`str`/:class:`bytes`, or a file-like object. + + :param fields: + Data to encode and send in the request body. + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. + + :param bool preload_content: + If True, the response's body will be preloaded into memory. + + :param bool decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + + :param redirect: + If True, automatically handle redirects (status codes 301, 302, + 303, 307, 308). Each redirect counts as a retry. Disabling retries + will disable redirect, too. + + :param retries: + Configure the number of retries to allow before raising a + :class:`~urllib3.exceptions.MaxRetryError` exception. + + If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a + :class:`~urllib3.util.retry.Retry` object for fine-grained control + over different types of retries. + Pass an integer number to retry connection errors that many times, + but no other types of errors. Pass zero to never retry. + + If ``False``, then retries are disabled and any exception is raised + immediately. Also, instead of raising a MaxRetryError on redirects, + the redirect response will be returned. + + :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. + + :param timeout: + If specified, overrides the default timeout for this one + request. It may be a float (in seconds) or an instance of + :class:`urllib3.util.Timeout`. + + :param json: + Data to encode and send as JSON with UTF-encoded in the request body. + The ``"Content-Type"`` header will be set to ``"application/json"`` + unless specified otherwise. + """ + + return _DEFAULT_POOL.request( + method, + url, + body=body, + fields=fields, + headers=headers, + preload_content=preload_content, + decode_content=decode_content, + redirect=redirect, + retries=retries, + timeout=timeout, + json=json, + ) + + +if sys.platform == "emscripten": + from .contrib.emscripten import inject_into_urllib3 # noqa: 401 + + inject_into_urllib3() diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..4fe77f0c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_base_connection.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_base_connection.cpython-312.pyc new file mode 100644 index 00000000..88301fbc Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_base_connection.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_collections.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_collections.cpython-312.pyc new file mode 100644 index 00000000..4ed98309 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_collections.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_request_methods.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_request_methods.cpython-312.pyc new file mode 100644 index 00000000..ab4c91d7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_request_methods.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_version.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_version.cpython-312.pyc new file mode 100644 index 00000000..e762511e Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/_version.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/connection.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/connection.cpython-312.pyc new file mode 100644 index 00000000..73ffdf36 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/connection.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/connectionpool.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/connectionpool.cpython-312.pyc new file mode 100644 index 00000000..4faa4dbe Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/connectionpool.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/exceptions.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/exceptions.cpython-312.pyc new file mode 100644 index 00000000..d8eed7b7 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/exceptions.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/fields.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/fields.cpython-312.pyc new file mode 100644 index 00000000..0a62069a Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/fields.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/filepost.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/filepost.cpython-312.pyc new file mode 100644 index 00000000..6c8c4d01 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/filepost.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/poolmanager.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/poolmanager.cpython-312.pyc new file mode 100644 index 00000000..f28a9cff Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/poolmanager.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/response.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/response.cpython-312.pyc new file mode 100644 index 00000000..8573f03c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/__pycache__/response.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/_base_connection.py b/Backend/venv/lib/python3.12/site-packages/urllib3/_base_connection.py new file mode 100644 index 00000000..dc0f318c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/_base_connection.py @@ -0,0 +1,165 @@ +from __future__ import annotations + +import typing + +from .util.connection import _TYPE_SOCKET_OPTIONS +from .util.timeout import _DEFAULT_TIMEOUT, _TYPE_TIMEOUT +from .util.url import Url + +_TYPE_BODY = typing.Union[bytes, typing.IO[typing.Any], typing.Iterable[bytes], str] + + +class ProxyConfig(typing.NamedTuple): + ssl_context: ssl.SSLContext | None + use_forwarding_for_https: bool + assert_hostname: None | str | typing.Literal[False] + assert_fingerprint: str | None + + +class _ResponseOptions(typing.NamedTuple): + # TODO: Remove this in favor of a better + # HTTP request/response lifecycle tracking. + request_method: str + request_url: str + preload_content: bool + decode_content: bool + enforce_content_length: bool + + +if typing.TYPE_CHECKING: + import ssl + from typing import Protocol + + from .response import BaseHTTPResponse + + class BaseHTTPConnection(Protocol): + default_port: typing.ClassVar[int] + default_socket_options: typing.ClassVar[_TYPE_SOCKET_OPTIONS] + + host: str + port: int + timeout: None | ( + float + ) # Instance doesn't store _DEFAULT_TIMEOUT, must be resolved. + blocksize: int + source_address: tuple[str, int] | None + socket_options: _TYPE_SOCKET_OPTIONS | None + + proxy: Url | None + proxy_config: ProxyConfig | None + + is_verified: bool + proxy_is_verified: bool | None + + def __init__( + self, + host: str, + port: int | None = None, + *, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + blocksize: int = 8192, + socket_options: _TYPE_SOCKET_OPTIONS | None = ..., + proxy: Url | None = None, + proxy_config: ProxyConfig | None = None, + ) -> None: ... + + def set_tunnel( + self, + host: str, + port: int | None = None, + headers: typing.Mapping[str, str] | None = None, + scheme: str = "http", + ) -> None: ... + + def connect(self) -> None: ... + + def request( + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + # We know *at least* botocore is depending on the order of the + # first 3 parameters so to be safe we only mark the later ones + # as keyword-only to ensure we have space to extend. + *, + chunked: bool = False, + preload_content: bool = True, + decode_content: bool = True, + enforce_content_length: bool = True, + ) -> None: ... + + def getresponse(self) -> BaseHTTPResponse: ... + + def close(self) -> None: ... + + @property + def is_closed(self) -> bool: + """Whether the connection either is brand new or has been previously closed. + If this property is True then both ``is_connected`` and ``has_connected_to_proxy`` + properties must be False. + """ + + @property + def is_connected(self) -> bool: + """Whether the connection is actively connected to any origin (proxy or target)""" + + @property + def has_connected_to_proxy(self) -> bool: + """Whether the connection has successfully connected to its proxy. + This returns False if no proxy is in use. Used to determine whether + errors are coming from the proxy layer or from tunnelling to the target origin. + """ + + class BaseHTTPSConnection(BaseHTTPConnection, Protocol): + default_port: typing.ClassVar[int] + default_socket_options: typing.ClassVar[_TYPE_SOCKET_OPTIONS] + + # Certificate verification methods + cert_reqs: int | str | None + assert_hostname: None | str | typing.Literal[False] + assert_fingerprint: str | None + ssl_context: ssl.SSLContext | None + + # Trusted CAs + ca_certs: str | None + ca_cert_dir: str | None + ca_cert_data: None | str | bytes + + # TLS version + ssl_minimum_version: int | None + ssl_maximum_version: int | None + ssl_version: int | str | None # Deprecated + + # Client certificates + cert_file: str | None + key_file: str | None + key_password: str | None + + def __init__( + self, + host: str, + port: int | None = None, + *, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + blocksize: int = 16384, + socket_options: _TYPE_SOCKET_OPTIONS | None = ..., + proxy: Url | None = None, + proxy_config: ProxyConfig | None = None, + cert_reqs: int | str | None = None, + assert_hostname: None | str | typing.Literal[False] = None, + assert_fingerprint: str | None = None, + server_hostname: str | None = None, + ssl_context: ssl.SSLContext | None = None, + ca_certs: str | None = None, + ca_cert_dir: str | None = None, + ca_cert_data: None | str | bytes = None, + ssl_minimum_version: int | None = None, + ssl_maximum_version: int | None = None, + ssl_version: int | str | None = None, # Deprecated + cert_file: str | None = None, + key_file: str | None = None, + key_password: str | None = None, + ) -> None: ... diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/_collections.py b/Backend/venv/lib/python3.12/site-packages/urllib3/_collections.py new file mode 100644 index 00000000..1b6c1364 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/_collections.py @@ -0,0 +1,479 @@ +from __future__ import annotations + +import typing +from collections import OrderedDict +from enum import Enum, auto +from threading import RLock + +if typing.TYPE_CHECKING: + # We can only import Protocol if TYPE_CHECKING because it's a development + # dependency, and is not available at runtime. + from typing import Protocol + + from typing_extensions import Self + + class HasGettableStringKeys(Protocol): + def keys(self) -> typing.Iterator[str]: ... + + def __getitem__(self, key: str) -> str: ... + + +__all__ = ["RecentlyUsedContainer", "HTTPHeaderDict"] + + +# Key type +_KT = typing.TypeVar("_KT") +# Value type +_VT = typing.TypeVar("_VT") +# Default type +_DT = typing.TypeVar("_DT") + +ValidHTTPHeaderSource = typing.Union[ + "HTTPHeaderDict", + typing.Mapping[str, str], + typing.Iterable[tuple[str, str]], + "HasGettableStringKeys", +] + + +class _Sentinel(Enum): + not_passed = auto() + + +def ensure_can_construct_http_header_dict( + potential: object, +) -> ValidHTTPHeaderSource | None: + if isinstance(potential, HTTPHeaderDict): + return potential + elif isinstance(potential, typing.Mapping): + # Full runtime checking of the contents of a Mapping is expensive, so for the + # purposes of typechecking, we assume that any Mapping is the right shape. + return typing.cast(typing.Mapping[str, str], potential) + elif isinstance(potential, typing.Iterable): + # Similarly to Mapping, full runtime checking of the contents of an Iterable is + # expensive, so for the purposes of typechecking, we assume that any Iterable + # is the right shape. + return typing.cast(typing.Iterable[tuple[str, str]], potential) + elif hasattr(potential, "keys") and hasattr(potential, "__getitem__"): + return typing.cast("HasGettableStringKeys", potential) + else: + return None + + +class RecentlyUsedContainer(typing.Generic[_KT, _VT], typing.MutableMapping[_KT, _VT]): + """ + Provides a thread-safe dict-like container which maintains up to + ``maxsize`` keys while throwing away the least-recently-used keys beyond + ``maxsize``. + + :param maxsize: + Maximum number of recent elements to retain. + + :param dispose_func: + Every time an item is evicted from the container, + ``dispose_func(value)`` is called. Callback which will get called + """ + + _container: typing.OrderedDict[_KT, _VT] + _maxsize: int + dispose_func: typing.Callable[[_VT], None] | None + lock: RLock + + def __init__( + self, + maxsize: int = 10, + dispose_func: typing.Callable[[_VT], None] | None = None, + ) -> None: + super().__init__() + self._maxsize = maxsize + self.dispose_func = dispose_func + self._container = OrderedDict() + self.lock = RLock() + + def __getitem__(self, key: _KT) -> _VT: + # Re-insert the item, moving it to the end of the eviction line. + with self.lock: + item = self._container.pop(key) + self._container[key] = item + return item + + def __setitem__(self, key: _KT, value: _VT) -> None: + evicted_item = None + with self.lock: + # Possibly evict the existing value of 'key' + try: + # If the key exists, we'll overwrite it, which won't change the + # size of the pool. Because accessing a key should move it to + # the end of the eviction line, we pop it out first. + evicted_item = key, self._container.pop(key) + self._container[key] = value + except KeyError: + # When the key does not exist, we insert the value first so that + # evicting works in all cases, including when self._maxsize is 0 + self._container[key] = value + if len(self._container) > self._maxsize: + # If we didn't evict an existing value, and we've hit our maximum + # size, then we have to evict the least recently used item from + # the beginning of the container. + evicted_item = self._container.popitem(last=False) + + # After releasing the lock on the pool, dispose of any evicted value. + if evicted_item is not None and self.dispose_func: + _, evicted_value = evicted_item + self.dispose_func(evicted_value) + + def __delitem__(self, key: _KT) -> None: + with self.lock: + value = self._container.pop(key) + + if self.dispose_func: + self.dispose_func(value) + + def __len__(self) -> int: + with self.lock: + return len(self._container) + + def __iter__(self) -> typing.NoReturn: + raise NotImplementedError( + "Iteration over this class is unlikely to be threadsafe." + ) + + def clear(self) -> None: + with self.lock: + # Copy pointers to all values, then wipe the mapping + values = list(self._container.values()) + self._container.clear() + + if self.dispose_func: + for value in values: + self.dispose_func(value) + + def keys(self) -> set[_KT]: # type: ignore[override] + with self.lock: + return set(self._container.keys()) + + +class HTTPHeaderDictItemView(set[tuple[str, str]]): + """ + HTTPHeaderDict is unusual for a Mapping[str, str] in that it has two modes of + address. + + If we directly try to get an item with a particular name, we will get a string + back that is the concatenated version of all the values: + + >>> d['X-Header-Name'] + 'Value1, Value2, Value3' + + However, if we iterate over an HTTPHeaderDict's items, we will optionally combine + these values based on whether combine=True was called when building up the dictionary + + >>> d = HTTPHeaderDict({"A": "1", "B": "foo"}) + >>> d.add("A", "2", combine=True) + >>> d.add("B", "bar") + >>> list(d.items()) + [ + ('A', '1, 2'), + ('B', 'foo'), + ('B', 'bar'), + ] + + This class conforms to the interface required by the MutableMapping ABC while + also giving us the nonstandard iteration behavior we want; items with duplicate + keys, ordered by time of first insertion. + """ + + _headers: HTTPHeaderDict + + def __init__(self, headers: HTTPHeaderDict) -> None: + self._headers = headers + + def __len__(self) -> int: + return len(list(self._headers.iteritems())) + + def __iter__(self) -> typing.Iterator[tuple[str, str]]: + return self._headers.iteritems() + + def __contains__(self, item: object) -> bool: + if isinstance(item, tuple) and len(item) == 2: + passed_key, passed_val = item + if isinstance(passed_key, str) and isinstance(passed_val, str): + return self._headers._has_value_for_header(passed_key, passed_val) + return False + + +class HTTPHeaderDict(typing.MutableMapping[str, str]): + """ + :param headers: + An iterable of field-value pairs. Must not contain multiple field names + when compared case-insensitively. + + :param kwargs: + Additional field-value pairs to pass in to ``dict.update``. + + A ``dict`` like container for storing HTTP Headers. + + Field names are stored and compared case-insensitively in compliance with + RFC 7230. Iteration provides the first case-sensitive key seen for each + case-insensitive pair. + + Using ``__setitem__`` syntax overwrites fields that compare equal + case-insensitively in order to maintain ``dict``'s api. For fields that + compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add`` + in a loop. + + If multiple fields that are equal case-insensitively are passed to the + constructor or ``.update``, the behavior is undefined and some will be + lost. + + >>> headers = HTTPHeaderDict() + >>> headers.add('Set-Cookie', 'foo=bar') + >>> headers.add('set-cookie', 'baz=quxx') + >>> headers['content-length'] = '7' + >>> headers['SET-cookie'] + 'foo=bar, baz=quxx' + >>> headers['Content-Length'] + '7' + """ + + _container: typing.MutableMapping[str, list[str]] + + def __init__(self, headers: ValidHTTPHeaderSource | None = None, **kwargs: str): + super().__init__() + self._container = {} # 'dict' is insert-ordered + if headers is not None: + if isinstance(headers, HTTPHeaderDict): + self._copy_from(headers) + else: + self.extend(headers) + if kwargs: + self.extend(kwargs) + + def __setitem__(self, key: str, val: str) -> None: + # avoid a bytes/str comparison by decoding before httplib + if isinstance(key, bytes): + key = key.decode("latin-1") + self._container[key.lower()] = [key, val] + + def __getitem__(self, key: str) -> str: + val = self._container[key.lower()] + return ", ".join(val[1:]) + + def __delitem__(self, key: str) -> None: + del self._container[key.lower()] + + def __contains__(self, key: object) -> bool: + if isinstance(key, str): + return key.lower() in self._container + return False + + def setdefault(self, key: str, default: str = "") -> str: + return super().setdefault(key, default) + + def __eq__(self, other: object) -> bool: + maybe_constructable = ensure_can_construct_http_header_dict(other) + if maybe_constructable is None: + return False + else: + other_as_http_header_dict = type(self)(maybe_constructable) + + return {k.lower(): v for k, v in self.itermerged()} == { + k.lower(): v for k, v in other_as_http_header_dict.itermerged() + } + + def __ne__(self, other: object) -> bool: + return not self.__eq__(other) + + def __len__(self) -> int: + return len(self._container) + + def __iter__(self) -> typing.Iterator[str]: + # Only provide the originally cased names + for vals in self._container.values(): + yield vals[0] + + def discard(self, key: str) -> None: + try: + del self[key] + except KeyError: + pass + + def add(self, key: str, val: str, *, combine: bool = False) -> None: + """Adds a (name, value) pair, doesn't overwrite the value if it already + exists. + + If this is called with combine=True, instead of adding a new header value + as a distinct item during iteration, this will instead append the value to + any existing header value with a comma. If no existing header value exists + for the key, then the value will simply be added, ignoring the combine parameter. + + >>> headers = HTTPHeaderDict(foo='bar') + >>> headers.add('Foo', 'baz') + >>> headers['foo'] + 'bar, baz' + >>> list(headers.items()) + [('foo', 'bar'), ('foo', 'baz')] + >>> headers.add('foo', 'quz', combine=True) + >>> list(headers.items()) + [('foo', 'bar, baz, quz')] + """ + # avoid a bytes/str comparison by decoding before httplib + if isinstance(key, bytes): + key = key.decode("latin-1") + key_lower = key.lower() + new_vals = [key, val] + # Keep the common case aka no item present as fast as possible + vals = self._container.setdefault(key_lower, new_vals) + if new_vals is not vals: + # if there are values here, then there is at least the initial + # key/value pair + assert len(vals) >= 2 + if combine: + vals[-1] = vals[-1] + ", " + val + else: + vals.append(val) + + def extend(self, *args: ValidHTTPHeaderSource, **kwargs: str) -> None: + """Generic import function for any type of header-like object. + Adapted version of MutableMapping.update in order to insert items + with self.add instead of self.__setitem__ + """ + if len(args) > 1: + raise TypeError( + f"extend() takes at most 1 positional arguments ({len(args)} given)" + ) + other = args[0] if len(args) >= 1 else () + + if isinstance(other, HTTPHeaderDict): + for key, val in other.iteritems(): + self.add(key, val) + elif isinstance(other, typing.Mapping): + for key, val in other.items(): + self.add(key, val) + elif isinstance(other, typing.Iterable): + other = typing.cast(typing.Iterable[tuple[str, str]], other) + for key, value in other: + self.add(key, value) + elif hasattr(other, "keys") and hasattr(other, "__getitem__"): + # THIS IS NOT A TYPESAFE BRANCH + # In this branch, the object has a `keys` attr but is not a Mapping or any of + # the other types indicated in the method signature. We do some stuff with + # it as though it partially implements the Mapping interface, but we're not + # doing that stuff safely AT ALL. + for key in other.keys(): + self.add(key, other[key]) + + for key, value in kwargs.items(): + self.add(key, value) + + @typing.overload + def getlist(self, key: str) -> list[str]: ... + + @typing.overload + def getlist(self, key: str, default: _DT) -> list[str] | _DT: ... + + def getlist( + self, key: str, default: _Sentinel | _DT = _Sentinel.not_passed + ) -> list[str] | _DT: + """Returns a list of all the values for the named field. Returns an + empty list if the key doesn't exist.""" + try: + vals = self._container[key.lower()] + except KeyError: + if default is _Sentinel.not_passed: + # _DT is unbound; empty list is instance of List[str] + return [] + # _DT is bound; default is instance of _DT + return default + else: + # _DT may or may not be bound; vals[1:] is instance of List[str], which + # meets our external interface requirement of `Union[List[str], _DT]`. + return vals[1:] + + def _prepare_for_method_change(self) -> Self: + """ + Remove content-specific header fields before changing the request + method to GET or HEAD according to RFC 9110, Section 15.4. + """ + content_specific_headers = [ + "Content-Encoding", + "Content-Language", + "Content-Location", + "Content-Type", + "Content-Length", + "Digest", + "Last-Modified", + ] + for header in content_specific_headers: + self.discard(header) + return self + + # Backwards compatibility for httplib + getheaders = getlist + getallmatchingheaders = getlist + iget = getlist + + # Backwards compatibility for http.cookiejar + get_all = getlist + + def __repr__(self) -> str: + return f"{type(self).__name__}({dict(self.itermerged())})" + + def _copy_from(self, other: HTTPHeaderDict) -> None: + for key in other: + val = other.getlist(key) + self._container[key.lower()] = [key, *val] + + def copy(self) -> Self: + clone = type(self)() + clone._copy_from(self) + return clone + + def iteritems(self) -> typing.Iterator[tuple[str, str]]: + """Iterate over all header lines, including duplicate ones.""" + for key in self: + vals = self._container[key.lower()] + for val in vals[1:]: + yield vals[0], val + + def itermerged(self) -> typing.Iterator[tuple[str, str]]: + """Iterate over all headers, merging duplicate ones together.""" + for key in self: + val = self._container[key.lower()] + yield val[0], ", ".join(val[1:]) + + def items(self) -> HTTPHeaderDictItemView: # type: ignore[override] + return HTTPHeaderDictItemView(self) + + def _has_value_for_header(self, header_name: str, potential_value: str) -> bool: + if header_name in self: + return potential_value in self._container[header_name.lower()][1:] + return False + + def __ior__(self, other: object) -> HTTPHeaderDict: + # Supports extending a header dict in-place using operator |= + # combining items with add instead of __setitem__ + maybe_constructable = ensure_can_construct_http_header_dict(other) + if maybe_constructable is None: + return NotImplemented + self.extend(maybe_constructable) + return self + + def __or__(self, other: object) -> Self: + # Supports merging header dicts using operator | + # combining items with add instead of __setitem__ + maybe_constructable = ensure_can_construct_http_header_dict(other) + if maybe_constructable is None: + return NotImplemented + result = self.copy() + result.extend(maybe_constructable) + return result + + def __ror__(self, other: object) -> Self: + # Supports merging header dicts using operator | when other is on left side + # combining items with add instead of __setitem__ + maybe_constructable = ensure_can_construct_http_header_dict(other) + if maybe_constructable is None: + return NotImplemented + result = type(self)(maybe_constructable) + result.extend(self) + return result diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/_request_methods.py b/Backend/venv/lib/python3.12/site-packages/urllib3/_request_methods.py new file mode 100644 index 00000000..297c271b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/_request_methods.py @@ -0,0 +1,278 @@ +from __future__ import annotations + +import json as _json +import typing +from urllib.parse import urlencode + +from ._base_connection import _TYPE_BODY +from ._collections import HTTPHeaderDict +from .filepost import _TYPE_FIELDS, encode_multipart_formdata +from .response import BaseHTTPResponse + +__all__ = ["RequestMethods"] + +_TYPE_ENCODE_URL_FIELDS = typing.Union[ + typing.Sequence[tuple[str, typing.Union[str, bytes]]], + typing.Mapping[str, typing.Union[str, bytes]], +] + + +class RequestMethods: + """ + Convenience mixin for classes who implement a :meth:`urlopen` method, such + as :class:`urllib3.HTTPConnectionPool` and + :class:`urllib3.PoolManager`. + + Provides behavior for making common types of HTTP request methods and + decides which type of request field encoding to use. + + Specifically, + + :meth:`.request_encode_url` is for sending requests whose fields are + encoded in the URL (such as GET, HEAD, DELETE). + + :meth:`.request_encode_body` is for sending requests whose fields are + encoded in the *body* of the request using multipart or www-form-urlencoded + (such as for POST, PUT, PATCH). + + :meth:`.request` is for making any kind of request, it will look up the + appropriate encoding format and use one of the above two methods to make + the request. + + Initializer parameters: + + :param headers: + Headers to include with all requests, unless other headers are given + explicitly. + """ + + _encode_url_methods = {"DELETE", "GET", "HEAD", "OPTIONS"} + + def __init__(self, headers: typing.Mapping[str, str] | None = None) -> None: + self.headers = headers or {} + + def urlopen( + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + encode_multipart: bool = True, + multipart_boundary: str | None = None, + **kw: typing.Any, + ) -> BaseHTTPResponse: # Abstract + raise NotImplementedError( + "Classes extending RequestMethods must implement " + "their own ``urlopen`` method." + ) + + def request( + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + fields: _TYPE_FIELDS | None = None, + headers: typing.Mapping[str, str] | None = None, + json: typing.Any | None = None, + **urlopen_kw: typing.Any, + ) -> BaseHTTPResponse: + """ + Make a request using :meth:`urlopen` with the appropriate encoding of + ``fields`` based on the ``method`` used. + + This is a convenience method that requires the least amount of manual + effort. It can be used in most situations, while still having the + option to drop down to more specific methods when necessary, such as + :meth:`request_encode_url`, :meth:`request_encode_body`, + or even the lowest level :meth:`urlopen`. + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param url: + The URL to perform the request on. + + :param body: + Data to send in the request body, either :class:`str`, :class:`bytes`, + an iterable of :class:`str`/:class:`bytes`, or a file-like object. + + :param fields: + Data to encode and send in the URL or request body, depending on ``method``. + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. If None, pool headers are used. If provided, + these headers completely replace any pool-specific headers. + + :param json: + Data to encode and send as JSON with UTF-encoded in the request body. + The ``"Content-Type"`` header will be set to ``"application/json"`` + unless specified otherwise. + """ + method = method.upper() + + if json is not None and body is not None: + raise TypeError( + "request got values for both 'body' and 'json' parameters which are mutually exclusive" + ) + + if json is not None: + if headers is None: + headers = self.headers + + if not ("content-type" in map(str.lower, headers.keys())): + headers = HTTPHeaderDict(headers) + headers["Content-Type"] = "application/json" + + body = _json.dumps(json, separators=(",", ":"), ensure_ascii=False).encode( + "utf-8" + ) + + if body is not None: + urlopen_kw["body"] = body + + if method in self._encode_url_methods: + return self.request_encode_url( + method, + url, + fields=fields, # type: ignore[arg-type] + headers=headers, + **urlopen_kw, + ) + else: + return self.request_encode_body( + method, url, fields=fields, headers=headers, **urlopen_kw + ) + + def request_encode_url( + self, + method: str, + url: str, + fields: _TYPE_ENCODE_URL_FIELDS | None = None, + headers: typing.Mapping[str, str] | None = None, + **urlopen_kw: str, + ) -> BaseHTTPResponse: + """ + Make a request using :meth:`urlopen` with the ``fields`` encoded in + the url. This is useful for request methods like GET, HEAD, DELETE, etc. + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param url: + The URL to perform the request on. + + :param fields: + Data to encode and send in the URL. + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. If None, pool headers are used. If provided, + these headers completely replace any pool-specific headers. + """ + if headers is None: + headers = self.headers + + extra_kw: dict[str, typing.Any] = {"headers": headers} + extra_kw.update(urlopen_kw) + + if fields: + url += "?" + urlencode(fields) + + return self.urlopen(method, url, **extra_kw) + + def request_encode_body( + self, + method: str, + url: str, + fields: _TYPE_FIELDS | None = None, + headers: typing.Mapping[str, str] | None = None, + encode_multipart: bool = True, + multipart_boundary: str | None = None, + **urlopen_kw: str, + ) -> BaseHTTPResponse: + """ + Make a request using :meth:`urlopen` with the ``fields`` encoded in + the body. This is useful for request methods like POST, PUT, PATCH, etc. + + When ``encode_multipart=True`` (default), then + :func:`urllib3.encode_multipart_formdata` is used to encode + the payload with the appropriate content type. Otherwise + :func:`urllib.parse.urlencode` is used with the + 'application/x-www-form-urlencoded' content type. + + Multipart encoding must be used when posting files, and it's reasonably + safe to use it in other times too. However, it may break request + signing, such as with OAuth. + + Supports an optional ``fields`` parameter of key/value strings AND + key/filetuple. A filetuple is a (filename, data, MIME type) tuple where + the MIME type is optional. For example:: + + fields = { + 'foo': 'bar', + 'fakefile': ('foofile.txt', 'contents of foofile'), + 'realfile': ('barfile.txt', open('realfile').read()), + 'typedfile': ('bazfile.bin', open('bazfile').read(), + 'image/jpeg'), + 'nonamefile': 'contents of nonamefile field', + } + + When uploading a file, providing a filename (the first parameter of the + tuple) is optional but recommended to best mimic behavior of browsers. + + Note that if ``headers`` are supplied, the 'Content-Type' header will + be overwritten because it depends on the dynamic random boundary string + which is used to compose the body of the request. The random boundary + string can be explicitly set with the ``multipart_boundary`` parameter. + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param url: + The URL to perform the request on. + + :param fields: + Data to encode and send in the request body. + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. If None, pool headers are used. If provided, + these headers completely replace any pool-specific headers. + + :param encode_multipart: + If True, encode the ``fields`` using the multipart/form-data MIME + format. + + :param multipart_boundary: + If not specified, then a random boundary will be generated using + :func:`urllib3.filepost.choose_boundary`. + """ + if headers is None: + headers = self.headers + + extra_kw: dict[str, typing.Any] = {"headers": HTTPHeaderDict(headers)} + body: bytes | str + + if fields: + if "body" in urlopen_kw: + raise TypeError( + "request got values for both 'fields' and 'body', can only specify one." + ) + + if encode_multipart: + body, content_type = encode_multipart_formdata( + fields, boundary=multipart_boundary + ) + else: + body, content_type = ( + urlencode(fields), # type: ignore[arg-type] + "application/x-www-form-urlencoded", + ) + + extra_kw["body"] = body + extra_kw["headers"].setdefault("Content-Type", content_type) + + extra_kw.update(urlopen_kw) + + return self.urlopen(method, url, **extra_kw) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/_version.py b/Backend/venv/lib/python3.12/site-packages/urllib3/_version.py new file mode 100644 index 00000000..49707ce5 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/_version.py @@ -0,0 +1,21 @@ +# file generated by setuptools-scm +# don't change, don't track in version control + +__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"] + +TYPE_CHECKING = False +if TYPE_CHECKING: + from typing import Tuple + from typing import Union + + VERSION_TUPLE = Tuple[Union[int, str], ...] +else: + VERSION_TUPLE = object + +version: str +__version__: str +__version_tuple__: VERSION_TUPLE +version_tuple: VERSION_TUPLE + +__version__ = version = '2.5.0' +__version_tuple__ = version_tuple = (2, 5, 0) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/connection.py b/Backend/venv/lib/python3.12/site-packages/urllib3/connection.py new file mode 100644 index 00000000..8082387d --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/connection.py @@ -0,0 +1,1093 @@ +from __future__ import annotations + +import datetime +import http.client +import logging +import os +import re +import socket +import sys +import threading +import typing +import warnings +from http.client import HTTPConnection as _HTTPConnection +from http.client import HTTPException as HTTPException # noqa: F401 +from http.client import ResponseNotReady +from socket import timeout as SocketTimeout + +if typing.TYPE_CHECKING: + from .response import HTTPResponse + from .util.ssl_ import _TYPE_PEER_CERT_RET_DICT + from .util.ssltransport import SSLTransport + +from ._collections import HTTPHeaderDict +from .http2 import probe as http2_probe +from .util.response import assert_header_parsing +from .util.timeout import _DEFAULT_TIMEOUT, _TYPE_TIMEOUT, Timeout +from .util.util import to_str +from .util.wait import wait_for_read + +try: # Compiled with SSL? + import ssl + + BaseSSLError = ssl.SSLError +except (ImportError, AttributeError): + ssl = None # type: ignore[assignment] + + class BaseSSLError(BaseException): # type: ignore[no-redef] + pass + + +from ._base_connection import _TYPE_BODY +from ._base_connection import ProxyConfig as ProxyConfig +from ._base_connection import _ResponseOptions as _ResponseOptions +from ._version import __version__ +from .exceptions import ( + ConnectTimeoutError, + HeaderParsingError, + NameResolutionError, + NewConnectionError, + ProxyError, + SystemTimeWarning, +) +from .util import SKIP_HEADER, SKIPPABLE_HEADERS, connection, ssl_ +from .util.request import body_to_chunks +from .util.ssl_ import assert_fingerprint as _assert_fingerprint +from .util.ssl_ import ( + create_urllib3_context, + is_ipaddress, + resolve_cert_reqs, + resolve_ssl_version, + ssl_wrap_socket, +) +from .util.ssl_match_hostname import CertificateError, match_hostname +from .util.url import Url + +# Not a no-op, we're adding this to the namespace so it can be imported. +ConnectionError = ConnectionError +BrokenPipeError = BrokenPipeError + + +log = logging.getLogger(__name__) + +port_by_scheme = {"http": 80, "https": 443} + +# When it comes time to update this value as a part of regular maintenance +# (ie test_recent_date is failing) update it to ~6 months before the current date. +RECENT_DATE = datetime.date(2025, 1, 1) + +_CONTAINS_CONTROL_CHAR_RE = re.compile(r"[^-!#$%&'*+.^_`|~0-9a-zA-Z]") + + +class HTTPConnection(_HTTPConnection): + """ + Based on :class:`http.client.HTTPConnection` but provides an extra constructor + backwards-compatibility layer between older and newer Pythons. + + Additional keyword parameters are used to configure attributes of the connection. + Accepted parameters include: + + - ``source_address``: Set the source address for the current connection. + - ``socket_options``: Set specific options on the underlying socket. If not specified, then + defaults are loaded from ``HTTPConnection.default_socket_options`` which includes disabling + Nagle's algorithm (sets TCP_NODELAY to 1) unless the connection is behind a proxy. + + For example, if you wish to enable TCP Keep Alive in addition to the defaults, + you might pass: + + .. code-block:: python + + HTTPConnection.default_socket_options + [ + (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), + ] + + Or you may want to disable the defaults by passing an empty list (e.g., ``[]``). + """ + + default_port: typing.ClassVar[int] = port_by_scheme["http"] # type: ignore[misc] + + #: Disable Nagle's algorithm by default. + #: ``[(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)]`` + default_socket_options: typing.ClassVar[connection._TYPE_SOCKET_OPTIONS] = [ + (socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + ] + + #: Whether this connection verifies the host's certificate. + is_verified: bool = False + + #: Whether this proxy connection verified the proxy host's certificate. + # If no proxy is currently connected to the value will be ``None``. + proxy_is_verified: bool | None = None + + blocksize: int + source_address: tuple[str, int] | None + socket_options: connection._TYPE_SOCKET_OPTIONS | None + + _has_connected_to_proxy: bool + _response_options: _ResponseOptions | None + _tunnel_host: str | None + _tunnel_port: int | None + _tunnel_scheme: str | None + + def __init__( + self, + host: str, + port: int | None = None, + *, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + blocksize: int = 16384, + socket_options: None | ( + connection._TYPE_SOCKET_OPTIONS + ) = default_socket_options, + proxy: Url | None = None, + proxy_config: ProxyConfig | None = None, + ) -> None: + super().__init__( + host=host, + port=port, + timeout=Timeout.resolve_default_timeout(timeout), + source_address=source_address, + blocksize=blocksize, + ) + self.socket_options = socket_options + self.proxy = proxy + self.proxy_config = proxy_config + + self._has_connected_to_proxy = False + self._response_options = None + self._tunnel_host: str | None = None + self._tunnel_port: int | None = None + self._tunnel_scheme: str | None = None + + @property + def host(self) -> str: + """ + Getter method to remove any trailing dots that indicate the hostname is an FQDN. + + In general, SSL certificates don't include the trailing dot indicating a + fully-qualified domain name, and thus, they don't validate properly when + checked against a domain name that includes the dot. In addition, some + servers may not expect to receive the trailing dot when provided. + + However, the hostname with trailing dot is critical to DNS resolution; doing a + lookup with the trailing dot will properly only resolve the appropriate FQDN, + whereas a lookup without a trailing dot will search the system's search domain + list. Thus, it's important to keep the original host around for use only in + those cases where it's appropriate (i.e., when doing DNS lookup to establish the + actual TCP connection across which we're going to send HTTP requests). + """ + return self._dns_host.rstrip(".") + + @host.setter + def host(self, value: str) -> None: + """ + Setter for the `host` property. + + We assume that only urllib3 uses the _dns_host attribute; httplib itself + only uses `host`, and it seems reasonable that other libraries follow suit. + """ + self._dns_host = value + + def _new_conn(self) -> socket.socket: + """Establish a socket connection and set nodelay settings on it. + + :return: New socket connection. + """ + try: + sock = connection.create_connection( + (self._dns_host, self.port), + self.timeout, + source_address=self.source_address, + socket_options=self.socket_options, + ) + except socket.gaierror as e: + raise NameResolutionError(self.host, self, e) from e + except SocketTimeout as e: + raise ConnectTimeoutError( + self, + f"Connection to {self.host} timed out. (connect timeout={self.timeout})", + ) from e + + except OSError as e: + raise NewConnectionError( + self, f"Failed to establish a new connection: {e}" + ) from e + + sys.audit("http.client.connect", self, self.host, self.port) + + return sock + + def set_tunnel( + self, + host: str, + port: int | None = None, + headers: typing.Mapping[str, str] | None = None, + scheme: str = "http", + ) -> None: + if scheme not in ("http", "https"): + raise ValueError( + f"Invalid proxy scheme for tunneling: {scheme!r}, must be either 'http' or 'https'" + ) + super().set_tunnel(host, port=port, headers=headers) + self._tunnel_scheme = scheme + + if sys.version_info < (3, 11, 9) or ((3, 12) <= sys.version_info < (3, 12, 3)): + # Taken from python/cpython#100986 which was backported in 3.11.9 and 3.12.3. + # When using connection_from_host, host will come without brackets. + def _wrap_ipv6(self, ip: bytes) -> bytes: + if b":" in ip and ip[0] != b"["[0]: + return b"[" + ip + b"]" + return ip + + if sys.version_info < (3, 11, 9): + # `_tunnel` copied from 3.11.13 backporting + # https://github.com/python/cpython/commit/0d4026432591d43185568dd31cef6a034c4b9261 + # and https://github.com/python/cpython/commit/6fbc61070fda2ffb8889e77e3b24bca4249ab4d1 + def _tunnel(self) -> None: + _MAXLINE = http.client._MAXLINE # type: ignore[attr-defined] + connect = b"CONNECT %s:%d HTTP/1.0\r\n" % ( # type: ignore[str-format] + self._wrap_ipv6(self._tunnel_host.encode("ascii")), # type: ignore[union-attr] + self._tunnel_port, + ) + headers = [connect] + for header, value in self._tunnel_headers.items(): # type: ignore[attr-defined] + headers.append(f"{header}: {value}\r\n".encode("latin-1")) + headers.append(b"\r\n") + # Making a single send() call instead of one per line encourages + # the host OS to use a more optimal packet size instead of + # potentially emitting a series of small packets. + self.send(b"".join(headers)) + del headers + + response = self.response_class(self.sock, method=self._method) # type: ignore[attr-defined] + try: + (version, code, message) = response._read_status() # type: ignore[attr-defined] + + if code != http.HTTPStatus.OK: + self.close() + raise OSError( + f"Tunnel connection failed: {code} {message.strip()}" + ) + while True: + line = response.fp.readline(_MAXLINE + 1) + if len(line) > _MAXLINE: + raise http.client.LineTooLong("header line") + if not line: + # for sites which EOF without sending a trailer + break + if line in (b"\r\n", b"\n", b""): + break + + if self.debuglevel > 0: + print("header:", line.decode()) + finally: + response.close() + + elif (3, 12) <= sys.version_info < (3, 12, 3): + # `_tunnel` copied from 3.12.11 backporting + # https://github.com/python/cpython/commit/23aef575c7629abcd4aaf028ebd226fb41a4b3c8 + def _tunnel(self) -> None: # noqa: F811 + connect = b"CONNECT %s:%d HTTP/1.1\r\n" % ( # type: ignore[str-format] + self._wrap_ipv6(self._tunnel_host.encode("idna")), # type: ignore[union-attr] + self._tunnel_port, + ) + headers = [connect] + for header, value in self._tunnel_headers.items(): # type: ignore[attr-defined] + headers.append(f"{header}: {value}\r\n".encode("latin-1")) + headers.append(b"\r\n") + # Making a single send() call instead of one per line encourages + # the host OS to use a more optimal packet size instead of + # potentially emitting a series of small packets. + self.send(b"".join(headers)) + del headers + + response = self.response_class(self.sock, method=self._method) # type: ignore[attr-defined] + try: + (version, code, message) = response._read_status() # type: ignore[attr-defined] + + self._raw_proxy_headers = http.client._read_headers(response.fp) # type: ignore[attr-defined] + + if self.debuglevel > 0: + for header in self._raw_proxy_headers: + print("header:", header.decode()) + + if code != http.HTTPStatus.OK: + self.close() + raise OSError( + f"Tunnel connection failed: {code} {message.strip()}" + ) + + finally: + response.close() + + def connect(self) -> None: + self.sock = self._new_conn() + if self._tunnel_host: + # If we're tunneling it means we're connected to our proxy. + self._has_connected_to_proxy = True + + # TODO: Fix tunnel so it doesn't depend on self.sock state. + self._tunnel() + + # If there's a proxy to be connected to we are fully connected. + # This is set twice (once above and here) due to forwarding proxies + # not using tunnelling. + self._has_connected_to_proxy = bool(self.proxy) + + if self._has_connected_to_proxy: + self.proxy_is_verified = False + + @property + def is_closed(self) -> bool: + return self.sock is None + + @property + def is_connected(self) -> bool: + if self.sock is None: + return False + return not wait_for_read(self.sock, timeout=0.0) + + @property + def has_connected_to_proxy(self) -> bool: + return self._has_connected_to_proxy + + @property + def proxy_is_forwarding(self) -> bool: + """ + Return True if a forwarding proxy is configured, else return False + """ + return bool(self.proxy) and self._tunnel_host is None + + @property + def proxy_is_tunneling(self) -> bool: + """ + Return True if a tunneling proxy is configured, else return False + """ + return self._tunnel_host is not None + + def close(self) -> None: + try: + super().close() + finally: + # Reset all stateful properties so connection + # can be re-used without leaking prior configs. + self.sock = None + self.is_verified = False + self.proxy_is_verified = None + self._has_connected_to_proxy = False + self._response_options = None + self._tunnel_host = None + self._tunnel_port = None + self._tunnel_scheme = None + + def putrequest( + self, + method: str, + url: str, + skip_host: bool = False, + skip_accept_encoding: bool = False, + ) -> None: + """""" + # Empty docstring because the indentation of CPython's implementation + # is broken but we don't want this method in our documentation. + match = _CONTAINS_CONTROL_CHAR_RE.search(method) + if match: + raise ValueError( + f"Method cannot contain non-token characters {method!r} (found at least {match.group()!r})" + ) + + return super().putrequest( + method, url, skip_host=skip_host, skip_accept_encoding=skip_accept_encoding + ) + + def putheader(self, header: str, *values: str) -> None: # type: ignore[override] + """""" + if not any(isinstance(v, str) and v == SKIP_HEADER for v in values): + super().putheader(header, *values) + elif to_str(header.lower()) not in SKIPPABLE_HEADERS: + skippable_headers = "', '".join( + [str.title(header) for header in sorted(SKIPPABLE_HEADERS)] + ) + raise ValueError( + f"urllib3.util.SKIP_HEADER only supports '{skippable_headers}'" + ) + + # `request` method's signature intentionally violates LSP. + # urllib3's API is different from `http.client.HTTPConnection` and the subclassing is only incidental. + def request( # type: ignore[override] + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + *, + chunked: bool = False, + preload_content: bool = True, + decode_content: bool = True, + enforce_content_length: bool = True, + ) -> None: + # Update the inner socket's timeout value to send the request. + # This only triggers if the connection is re-used. + if self.sock is not None: + self.sock.settimeout(self.timeout) + + # Store these values to be fed into the HTTPResponse + # object later. TODO: Remove this in favor of a real + # HTTP lifecycle mechanism. + + # We have to store these before we call .request() + # because sometimes we can still salvage a response + # off the wire even if we aren't able to completely + # send the request body. + self._response_options = _ResponseOptions( + request_method=method, + request_url=url, + preload_content=preload_content, + decode_content=decode_content, + enforce_content_length=enforce_content_length, + ) + + if headers is None: + headers = {} + header_keys = frozenset(to_str(k.lower()) for k in headers) + skip_accept_encoding = "accept-encoding" in header_keys + skip_host = "host" in header_keys + self.putrequest( + method, url, skip_accept_encoding=skip_accept_encoding, skip_host=skip_host + ) + + # Transform the body into an iterable of sendall()-able chunks + # and detect if an explicit Content-Length is doable. + chunks_and_cl = body_to_chunks(body, method=method, blocksize=self.blocksize) + chunks = chunks_and_cl.chunks + content_length = chunks_and_cl.content_length + + # When chunked is explicit set to 'True' we respect that. + if chunked: + if "transfer-encoding" not in header_keys: + self.putheader("Transfer-Encoding", "chunked") + else: + # Detect whether a framing mechanism is already in use. If so + # we respect that value, otherwise we pick chunked vs content-length + # depending on the type of 'body'. + if "content-length" in header_keys: + chunked = False + elif "transfer-encoding" in header_keys: + chunked = True + + # Otherwise we go off the recommendation of 'body_to_chunks()'. + else: + chunked = False + if content_length is None: + if chunks is not None: + chunked = True + self.putheader("Transfer-Encoding", "chunked") + else: + self.putheader("Content-Length", str(content_length)) + + # Now that framing headers are out of the way we send all the other headers. + if "user-agent" not in header_keys: + self.putheader("User-Agent", _get_default_user_agent()) + for header, value in headers.items(): + self.putheader(header, value) + self.endheaders() + + # If we're given a body we start sending that in chunks. + if chunks is not None: + for chunk in chunks: + # Sending empty chunks isn't allowed for TE: chunked + # as it indicates the end of the body. + if not chunk: + continue + if isinstance(chunk, str): + chunk = chunk.encode("utf-8") + if chunked: + self.send(b"%x\r\n%b\r\n" % (len(chunk), chunk)) + else: + self.send(chunk) + + # Regardless of whether we have a body or not, if we're in + # chunked mode we want to send an explicit empty chunk. + if chunked: + self.send(b"0\r\n\r\n") + + def request_chunked( + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + ) -> None: + """ + Alternative to the common request method, which sends the + body with chunked encoding and not as one block + """ + warnings.warn( + "HTTPConnection.request_chunked() is deprecated and will be removed " + "in urllib3 v2.1.0. Instead use HTTPConnection.request(..., chunked=True).", + category=DeprecationWarning, + stacklevel=2, + ) + self.request(method, url, body=body, headers=headers, chunked=True) + + def getresponse( # type: ignore[override] + self, + ) -> HTTPResponse: + """ + Get the response from the server. + + If the HTTPConnection is in the correct state, returns an instance of HTTPResponse or of whatever object is returned by the response_class variable. + + If a request has not been sent or if a previous response has not be handled, ResponseNotReady is raised. If the HTTP response indicates that the connection should be closed, then it will be closed before the response is returned. When the connection is closed, the underlying socket is closed. + """ + # Raise the same error as http.client.HTTPConnection + if self._response_options is None: + raise ResponseNotReady() + + # Reset this attribute for being used again. + resp_options = self._response_options + self._response_options = None + + # Since the connection's timeout value may have been updated + # we need to set the timeout on the socket. + self.sock.settimeout(self.timeout) + + # This is needed here to avoid circular import errors + from .response import HTTPResponse + + # Save a reference to the shutdown function before ownership is passed + # to httplib_response + # TODO should we implement it everywhere? + _shutdown = getattr(self.sock, "shutdown", None) + + # Get the response from http.client.HTTPConnection + httplib_response = super().getresponse() + + try: + assert_header_parsing(httplib_response.msg) + except (HeaderParsingError, TypeError) as hpe: + log.warning( + "Failed to parse headers (url=%s): %s", + _url_from_connection(self, resp_options.request_url), + hpe, + exc_info=True, + ) + + headers = HTTPHeaderDict(httplib_response.msg.items()) + + response = HTTPResponse( + body=httplib_response, + headers=headers, + status=httplib_response.status, + version=httplib_response.version, + version_string=getattr(self, "_http_vsn_str", "HTTP/?"), + reason=httplib_response.reason, + preload_content=resp_options.preload_content, + decode_content=resp_options.decode_content, + original_response=httplib_response, + enforce_content_length=resp_options.enforce_content_length, + request_method=resp_options.request_method, + request_url=resp_options.request_url, + sock_shutdown=_shutdown, + ) + return response + + +class HTTPSConnection(HTTPConnection): + """ + Many of the parameters to this constructor are passed to the underlying SSL + socket by means of :py:func:`urllib3.util.ssl_wrap_socket`. + """ + + default_port = port_by_scheme["https"] # type: ignore[misc] + + cert_reqs: int | str | None = None + ca_certs: str | None = None + ca_cert_dir: str | None = None + ca_cert_data: None | str | bytes = None + ssl_version: int | str | None = None + ssl_minimum_version: int | None = None + ssl_maximum_version: int | None = None + assert_fingerprint: str | None = None + _connect_callback: typing.Callable[..., None] | None = None + + def __init__( + self, + host: str, + port: int | None = None, + *, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + blocksize: int = 16384, + socket_options: None | ( + connection._TYPE_SOCKET_OPTIONS + ) = HTTPConnection.default_socket_options, + proxy: Url | None = None, + proxy_config: ProxyConfig | None = None, + cert_reqs: int | str | None = None, + assert_hostname: None | str | typing.Literal[False] = None, + assert_fingerprint: str | None = None, + server_hostname: str | None = None, + ssl_context: ssl.SSLContext | None = None, + ca_certs: str | None = None, + ca_cert_dir: str | None = None, + ca_cert_data: None | str | bytes = None, + ssl_minimum_version: int | None = None, + ssl_maximum_version: int | None = None, + ssl_version: int | str | None = None, # Deprecated + cert_file: str | None = None, + key_file: str | None = None, + key_password: str | None = None, + ) -> None: + super().__init__( + host, + port=port, + timeout=timeout, + source_address=source_address, + blocksize=blocksize, + socket_options=socket_options, + proxy=proxy, + proxy_config=proxy_config, + ) + + self.key_file = key_file + self.cert_file = cert_file + self.key_password = key_password + self.ssl_context = ssl_context + self.server_hostname = server_hostname + self.assert_hostname = assert_hostname + self.assert_fingerprint = assert_fingerprint + self.ssl_version = ssl_version + self.ssl_minimum_version = ssl_minimum_version + self.ssl_maximum_version = ssl_maximum_version + self.ca_certs = ca_certs and os.path.expanduser(ca_certs) + self.ca_cert_dir = ca_cert_dir and os.path.expanduser(ca_cert_dir) + self.ca_cert_data = ca_cert_data + + # cert_reqs depends on ssl_context so calculate last. + if cert_reqs is None: + if self.ssl_context is not None: + cert_reqs = self.ssl_context.verify_mode + else: + cert_reqs = resolve_cert_reqs(None) + self.cert_reqs = cert_reqs + self._connect_callback = None + + def set_cert( + self, + key_file: str | None = None, + cert_file: str | None = None, + cert_reqs: int | str | None = None, + key_password: str | None = None, + ca_certs: str | None = None, + assert_hostname: None | str | typing.Literal[False] = None, + assert_fingerprint: str | None = None, + ca_cert_dir: str | None = None, + ca_cert_data: None | str | bytes = None, + ) -> None: + """ + This method should only be called once, before the connection is used. + """ + warnings.warn( + "HTTPSConnection.set_cert() is deprecated and will be removed " + "in urllib3 v2.1.0. Instead provide the parameters to the " + "HTTPSConnection constructor.", + category=DeprecationWarning, + stacklevel=2, + ) + + # If cert_reqs is not provided we'll assume CERT_REQUIRED unless we also + # have an SSLContext object in which case we'll use its verify_mode. + if cert_reqs is None: + if self.ssl_context is not None: + cert_reqs = self.ssl_context.verify_mode + else: + cert_reqs = resolve_cert_reqs(None) + + self.key_file = key_file + self.cert_file = cert_file + self.cert_reqs = cert_reqs + self.key_password = key_password + self.assert_hostname = assert_hostname + self.assert_fingerprint = assert_fingerprint + self.ca_certs = ca_certs and os.path.expanduser(ca_certs) + self.ca_cert_dir = ca_cert_dir and os.path.expanduser(ca_cert_dir) + self.ca_cert_data = ca_cert_data + + def connect(self) -> None: + # Today we don't need to be doing this step before the /actual/ socket + # connection, however in the future we'll need to decide whether to + # create a new socket or re-use an existing "shared" socket as a part + # of the HTTP/2 handshake dance. + if self._tunnel_host is not None and self._tunnel_port is not None: + probe_http2_host = self._tunnel_host + probe_http2_port = self._tunnel_port + else: + probe_http2_host = self.host + probe_http2_port = self.port + + # Check if the target origin supports HTTP/2. + # If the value comes back as 'None' it means that the current thread + # is probing for HTTP/2 support. Otherwise, we're waiting for another + # probe to complete, or we get a value right away. + target_supports_http2: bool | None + if "h2" in ssl_.ALPN_PROTOCOLS: + target_supports_http2 = http2_probe.acquire_and_get( + host=probe_http2_host, port=probe_http2_port + ) + else: + # If HTTP/2 isn't going to be offered it doesn't matter if + # the target supports HTTP/2. Don't want to make a probe. + target_supports_http2 = False + + if self._connect_callback is not None: + self._connect_callback( + "before connect", + thread_id=threading.get_ident(), + target_supports_http2=target_supports_http2, + ) + + try: + sock: socket.socket | ssl.SSLSocket + self.sock = sock = self._new_conn() + server_hostname: str = self.host + tls_in_tls = False + + # Do we need to establish a tunnel? + if self.proxy_is_tunneling: + # We're tunneling to an HTTPS origin so need to do TLS-in-TLS. + if self._tunnel_scheme == "https": + # _connect_tls_proxy will verify and assign proxy_is_verified + self.sock = sock = self._connect_tls_proxy(self.host, sock) + tls_in_tls = True + elif self._tunnel_scheme == "http": + self.proxy_is_verified = False + + # If we're tunneling it means we're connected to our proxy. + self._has_connected_to_proxy = True + + self._tunnel() + # Override the host with the one we're requesting data from. + server_hostname = typing.cast(str, self._tunnel_host) + + if self.server_hostname is not None: + server_hostname = self.server_hostname + + is_time_off = datetime.date.today() < RECENT_DATE + if is_time_off: + warnings.warn( + ( + f"System time is way off (before {RECENT_DATE}). This will probably " + "lead to SSL verification errors" + ), + SystemTimeWarning, + ) + + # Remove trailing '.' from fqdn hostnames to allow certificate validation + server_hostname_rm_dot = server_hostname.rstrip(".") + + sock_and_verified = _ssl_wrap_socket_and_match_hostname( + sock=sock, + cert_reqs=self.cert_reqs, + ssl_version=self.ssl_version, + ssl_minimum_version=self.ssl_minimum_version, + ssl_maximum_version=self.ssl_maximum_version, + ca_certs=self.ca_certs, + ca_cert_dir=self.ca_cert_dir, + ca_cert_data=self.ca_cert_data, + cert_file=self.cert_file, + key_file=self.key_file, + key_password=self.key_password, + server_hostname=server_hostname_rm_dot, + ssl_context=self.ssl_context, + tls_in_tls=tls_in_tls, + assert_hostname=self.assert_hostname, + assert_fingerprint=self.assert_fingerprint, + ) + self.sock = sock_and_verified.socket + + # If an error occurs during connection/handshake we may need to release + # our lock so another connection can probe the origin. + except BaseException: + if self._connect_callback is not None: + self._connect_callback( + "after connect failure", + thread_id=threading.get_ident(), + target_supports_http2=target_supports_http2, + ) + + if target_supports_http2 is None: + http2_probe.set_and_release( + host=probe_http2_host, port=probe_http2_port, supports_http2=None + ) + raise + + # If this connection doesn't know if the origin supports HTTP/2 + # we report back to the HTTP/2 probe our result. + if target_supports_http2 is None: + supports_http2 = sock_and_verified.socket.selected_alpn_protocol() == "h2" + http2_probe.set_and_release( + host=probe_http2_host, + port=probe_http2_port, + supports_http2=supports_http2, + ) + + # Forwarding proxies can never have a verified target since + # the proxy is the one doing the verification. Should instead + # use a CONNECT tunnel in order to verify the target. + # See: https://github.com/urllib3/urllib3/issues/3267. + if self.proxy_is_forwarding: + self.is_verified = False + else: + self.is_verified = sock_and_verified.is_verified + + # If there's a proxy to be connected to we are fully connected. + # This is set twice (once above and here) due to forwarding proxies + # not using tunnelling. + self._has_connected_to_proxy = bool(self.proxy) + + # Set `self.proxy_is_verified` unless it's already set while + # establishing a tunnel. + if self._has_connected_to_proxy and self.proxy_is_verified is None: + self.proxy_is_verified = sock_and_verified.is_verified + + def _connect_tls_proxy(self, hostname: str, sock: socket.socket) -> ssl.SSLSocket: + """ + Establish a TLS connection to the proxy using the provided SSL context. + """ + # `_connect_tls_proxy` is called when self._tunnel_host is truthy. + proxy_config = typing.cast(ProxyConfig, self.proxy_config) + ssl_context = proxy_config.ssl_context + sock_and_verified = _ssl_wrap_socket_and_match_hostname( + sock, + cert_reqs=self.cert_reqs, + ssl_version=self.ssl_version, + ssl_minimum_version=self.ssl_minimum_version, + ssl_maximum_version=self.ssl_maximum_version, + ca_certs=self.ca_certs, + ca_cert_dir=self.ca_cert_dir, + ca_cert_data=self.ca_cert_data, + server_hostname=hostname, + ssl_context=ssl_context, + assert_hostname=proxy_config.assert_hostname, + assert_fingerprint=proxy_config.assert_fingerprint, + # Features that aren't implemented for proxies yet: + cert_file=None, + key_file=None, + key_password=None, + tls_in_tls=False, + ) + self.proxy_is_verified = sock_and_verified.is_verified + return sock_and_verified.socket # type: ignore[return-value] + + +class _WrappedAndVerifiedSocket(typing.NamedTuple): + """ + Wrapped socket and whether the connection is + verified after the TLS handshake + """ + + socket: ssl.SSLSocket | SSLTransport + is_verified: bool + + +def _ssl_wrap_socket_and_match_hostname( + sock: socket.socket, + *, + cert_reqs: None | str | int, + ssl_version: None | str | int, + ssl_minimum_version: int | None, + ssl_maximum_version: int | None, + cert_file: str | None, + key_file: str | None, + key_password: str | None, + ca_certs: str | None, + ca_cert_dir: str | None, + ca_cert_data: None | str | bytes, + assert_hostname: None | str | typing.Literal[False], + assert_fingerprint: str | None, + server_hostname: str | None, + ssl_context: ssl.SSLContext | None, + tls_in_tls: bool = False, +) -> _WrappedAndVerifiedSocket: + """Logic for constructing an SSLContext from all TLS parameters, passing + that down into ssl_wrap_socket, and then doing certificate verification + either via hostname or fingerprint. This function exists to guarantee + that both proxies and targets have the same behavior when connecting via TLS. + """ + default_ssl_context = False + if ssl_context is None: + default_ssl_context = True + context = create_urllib3_context( + ssl_version=resolve_ssl_version(ssl_version), + ssl_minimum_version=ssl_minimum_version, + ssl_maximum_version=ssl_maximum_version, + cert_reqs=resolve_cert_reqs(cert_reqs), + ) + else: + context = ssl_context + + context.verify_mode = resolve_cert_reqs(cert_reqs) + + # In some cases, we want to verify hostnames ourselves + if ( + # `ssl` can't verify fingerprints or alternate hostnames + assert_fingerprint + or assert_hostname + # assert_hostname can be set to False to disable hostname checking + or assert_hostname is False + # We still support OpenSSL 1.0.2, which prevents us from verifying + # hostnames easily: https://github.com/pyca/pyopenssl/pull/933 + or ssl_.IS_PYOPENSSL + or not ssl_.HAS_NEVER_CHECK_COMMON_NAME + ): + context.check_hostname = False + + # Try to load OS default certs if none are given. We need to do the hasattr() check + # for custom pyOpenSSL SSLContext objects because they don't support + # load_default_certs(). + if ( + not ca_certs + and not ca_cert_dir + and not ca_cert_data + and default_ssl_context + and hasattr(context, "load_default_certs") + ): + context.load_default_certs() + + # Ensure that IPv6 addresses are in the proper format and don't have a + # scope ID. Python's SSL module fails to recognize scoped IPv6 addresses + # and interprets them as DNS hostnames. + if server_hostname is not None: + normalized = server_hostname.strip("[]") + if "%" in normalized: + normalized = normalized[: normalized.rfind("%")] + if is_ipaddress(normalized): + server_hostname = normalized + + ssl_sock = ssl_wrap_socket( + sock=sock, + keyfile=key_file, + certfile=cert_file, + key_password=key_password, + ca_certs=ca_certs, + ca_cert_dir=ca_cert_dir, + ca_cert_data=ca_cert_data, + server_hostname=server_hostname, + ssl_context=context, + tls_in_tls=tls_in_tls, + ) + + try: + if assert_fingerprint: + _assert_fingerprint( + ssl_sock.getpeercert(binary_form=True), assert_fingerprint + ) + elif ( + context.verify_mode != ssl.CERT_NONE + and not context.check_hostname + and assert_hostname is not False + ): + cert: _TYPE_PEER_CERT_RET_DICT = ssl_sock.getpeercert() # type: ignore[assignment] + + # Need to signal to our match_hostname whether to use 'commonName' or not. + # If we're using our own constructed SSLContext we explicitly set 'False' + # because PyPy hard-codes 'True' from SSLContext.hostname_checks_common_name. + if default_ssl_context: + hostname_checks_common_name = False + else: + hostname_checks_common_name = ( + getattr(context, "hostname_checks_common_name", False) or False + ) + + _match_hostname( + cert, + assert_hostname or server_hostname, # type: ignore[arg-type] + hostname_checks_common_name, + ) + + return _WrappedAndVerifiedSocket( + socket=ssl_sock, + is_verified=context.verify_mode == ssl.CERT_REQUIRED + or bool(assert_fingerprint), + ) + except BaseException: + ssl_sock.close() + raise + + +def _match_hostname( + cert: _TYPE_PEER_CERT_RET_DICT | None, + asserted_hostname: str, + hostname_checks_common_name: bool = False, +) -> None: + # Our upstream implementation of ssl.match_hostname() + # only applies this normalization to IP addresses so it doesn't + # match DNS SANs so we do the same thing! + stripped_hostname = asserted_hostname.strip("[]") + if is_ipaddress(stripped_hostname): + asserted_hostname = stripped_hostname + + try: + match_hostname(cert, asserted_hostname, hostname_checks_common_name) + except CertificateError as e: + log.warning( + "Certificate did not match expected hostname: %s. Certificate: %s", + asserted_hostname, + cert, + ) + # Add cert to exception and reraise so client code can inspect + # the cert when catching the exception, if they want to + e._peer_cert = cert # type: ignore[attr-defined] + raise + + +def _wrap_proxy_error(err: Exception, proxy_scheme: str | None) -> ProxyError: + # Look for the phrase 'wrong version number', if found + # then we should warn the user that we're very sure that + # this proxy is HTTP-only and they have a configuration issue. + error_normalized = " ".join(re.split("[^a-z]", str(err).lower())) + is_likely_http_proxy = ( + "wrong version number" in error_normalized + or "unknown protocol" in error_normalized + or "record layer failure" in error_normalized + ) + http_proxy_warning = ( + ". Your proxy appears to only use HTTP and not HTTPS, " + "try changing your proxy URL to be HTTP. See: " + "https://urllib3.readthedocs.io/en/latest/advanced-usage.html" + "#https-proxy-error-http-proxy" + ) + new_err = ProxyError( + f"Unable to connect to proxy" + f"{http_proxy_warning if is_likely_http_proxy and proxy_scheme == 'https' else ''}", + err, + ) + new_err.__cause__ = err + return new_err + + +def _get_default_user_agent() -> str: + return f"python-urllib3/{__version__}" + + +class DummyConnection: + """Used to detect a failed ConnectionCls import.""" + + +if not ssl: + HTTPSConnection = DummyConnection # type: ignore[misc, assignment] # noqa: F811 + + +VerifiedHTTPSConnection = HTTPSConnection + + +def _url_from_connection( + conn: HTTPConnection | HTTPSConnection, path: str | None = None +) -> str: + """Returns the URL from a given connection. This is mainly used for testing and logging.""" + + scheme = "https" if isinstance(conn, HTTPSConnection) else "http" + + return Url(scheme=scheme, host=conn.host, port=conn.port, path=path).url diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/connectionpool.py b/Backend/venv/lib/python3.12/site-packages/urllib3/connectionpool.py new file mode 100644 index 00000000..3a0685b4 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/connectionpool.py @@ -0,0 +1,1178 @@ +from __future__ import annotations + +import errno +import logging +import queue +import sys +import typing +import warnings +import weakref +from socket import timeout as SocketTimeout +from types import TracebackType + +from ._base_connection import _TYPE_BODY +from ._collections import HTTPHeaderDict +from ._request_methods import RequestMethods +from .connection import ( + BaseSSLError, + BrokenPipeError, + DummyConnection, + HTTPConnection, + HTTPException, + HTTPSConnection, + ProxyConfig, + _wrap_proxy_error, +) +from .connection import port_by_scheme as port_by_scheme +from .exceptions import ( + ClosedPoolError, + EmptyPoolError, + FullPoolError, + HostChangedError, + InsecureRequestWarning, + LocationValueError, + MaxRetryError, + NewConnectionError, + ProtocolError, + ProxyError, + ReadTimeoutError, + SSLError, + TimeoutError, +) +from .response import BaseHTTPResponse +from .util.connection import is_connection_dropped +from .util.proxy import connection_requires_http_tunnel +from .util.request import _TYPE_BODY_POSITION, set_file_position +from .util.retry import Retry +from .util.ssl_match_hostname import CertificateError +from .util.timeout import _DEFAULT_TIMEOUT, _TYPE_DEFAULT, Timeout +from .util.url import Url, _encode_target +from .util.url import _normalize_host as normalize_host +from .util.url import parse_url +from .util.util import to_str + +if typing.TYPE_CHECKING: + import ssl + + from typing_extensions import Self + + from ._base_connection import BaseHTTPConnection, BaseHTTPSConnection + +log = logging.getLogger(__name__) + +_TYPE_TIMEOUT = typing.Union[Timeout, float, _TYPE_DEFAULT, None] + + +# Pool objects +class ConnectionPool: + """ + Base class for all connection pools, such as + :class:`.HTTPConnectionPool` and :class:`.HTTPSConnectionPool`. + + .. note:: + ConnectionPool.urlopen() does not normalize or percent-encode target URIs + which is useful if your target server doesn't support percent-encoded + target URIs. + """ + + scheme: str | None = None + QueueCls = queue.LifoQueue + + def __init__(self, host: str, port: int | None = None) -> None: + if not host: + raise LocationValueError("No host specified.") + + self.host = _normalize_host(host, scheme=self.scheme) + self.port = port + + # This property uses 'normalize_host()' (not '_normalize_host()') + # to avoid removing square braces around IPv6 addresses. + # This value is sent to `HTTPConnection.set_tunnel()` if called + # because square braces are required for HTTP CONNECT tunneling. + self._tunnel_host = normalize_host(host, scheme=self.scheme).lower() + + def __str__(self) -> str: + return f"{type(self).__name__}(host={self.host!r}, port={self.port!r})" + + def __enter__(self) -> Self: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None, + ) -> typing.Literal[False]: + self.close() + # Return False to re-raise any potential exceptions + return False + + def close(self) -> None: + """ + Close all pooled connections and disable the pool. + """ + + +# This is taken from http://hg.python.org/cpython/file/7aaba721ebc0/Lib/socket.py#l252 +_blocking_errnos = {errno.EAGAIN, errno.EWOULDBLOCK} + + +class HTTPConnectionPool(ConnectionPool, RequestMethods): + """ + Thread-safe connection pool for one host. + + :param host: + Host used for this HTTP Connection (e.g. "localhost"), passed into + :class:`http.client.HTTPConnection`. + + :param port: + Port used for this HTTP Connection (None is equivalent to 80), passed + into :class:`http.client.HTTPConnection`. + + :param timeout: + Socket timeout in seconds for each individual connection. This can + be a float or integer, which sets the timeout for the HTTP request, + or an instance of :class:`urllib3.util.Timeout` which gives you more + fine-grained control over request timeouts. After the constructor has + been parsed, this is always a `urllib3.util.Timeout` object. + + :param maxsize: + Number of connections to save that can be reused. More than 1 is useful + in multithreaded situations. If ``block`` is set to False, more + connections will be created but they will not be saved once they've + been used. + + :param block: + If set to True, no more than ``maxsize`` connections will be used at + a time. When no free connections are available, the call will block + until a connection has been released. This is a useful side effect for + particular multithreaded situations where one does not want to use more + than maxsize connections per host to prevent flooding. + + :param headers: + Headers to include with all requests, unless other headers are given + explicitly. + + :param retries: + Retry configuration to use by default with requests in this pool. + + :param _proxy: + Parsed proxy URL, should not be used directly, instead, see + :class:`urllib3.ProxyManager` + + :param _proxy_headers: + A dictionary with proxy headers, should not be used directly, + instead, see :class:`urllib3.ProxyManager` + + :param \\**conn_kw: + Additional parameters are used to create fresh :class:`urllib3.connection.HTTPConnection`, + :class:`urllib3.connection.HTTPSConnection` instances. + """ + + scheme = "http" + ConnectionCls: type[BaseHTTPConnection] | type[BaseHTTPSConnection] = HTTPConnection + + def __init__( + self, + host: str, + port: int | None = None, + timeout: _TYPE_TIMEOUT | None = _DEFAULT_TIMEOUT, + maxsize: int = 1, + block: bool = False, + headers: typing.Mapping[str, str] | None = None, + retries: Retry | bool | int | None = None, + _proxy: Url | None = None, + _proxy_headers: typing.Mapping[str, str] | None = None, + _proxy_config: ProxyConfig | None = None, + **conn_kw: typing.Any, + ): + ConnectionPool.__init__(self, host, port) + RequestMethods.__init__(self, headers) + + if not isinstance(timeout, Timeout): + timeout = Timeout.from_float(timeout) + + if retries is None: + retries = Retry.DEFAULT + + self.timeout = timeout + self.retries = retries + + self.pool: queue.LifoQueue[typing.Any] | None = self.QueueCls(maxsize) + self.block = block + + self.proxy = _proxy + self.proxy_headers = _proxy_headers or {} + self.proxy_config = _proxy_config + + # Fill the queue up so that doing get() on it will block properly + for _ in range(maxsize): + self.pool.put(None) + + # These are mostly for testing and debugging purposes. + self.num_connections = 0 + self.num_requests = 0 + self.conn_kw = conn_kw + + if self.proxy: + # Enable Nagle's algorithm for proxies, to avoid packet fragmentation. + # We cannot know if the user has added default socket options, so we cannot replace the + # list. + self.conn_kw.setdefault("socket_options", []) + + self.conn_kw["proxy"] = self.proxy + self.conn_kw["proxy_config"] = self.proxy_config + + # Do not pass 'self' as callback to 'finalize'. + # Then the 'finalize' would keep an endless living (leak) to self. + # By just passing a reference to the pool allows the garbage collector + # to free self if nobody else has a reference to it. + pool = self.pool + + # Close all the HTTPConnections in the pool before the + # HTTPConnectionPool object is garbage collected. + weakref.finalize(self, _close_pool_connections, pool) + + def _new_conn(self) -> BaseHTTPConnection: + """ + Return a fresh :class:`HTTPConnection`. + """ + self.num_connections += 1 + log.debug( + "Starting new HTTP connection (%d): %s:%s", + self.num_connections, + self.host, + self.port or "80", + ) + + conn = self.ConnectionCls( + host=self.host, + port=self.port, + timeout=self.timeout.connect_timeout, + **self.conn_kw, + ) + return conn + + def _get_conn(self, timeout: float | None = None) -> BaseHTTPConnection: + """ + Get a connection. Will return a pooled connection if one is available. + + If no connections are available and :prop:`.block` is ``False``, then a + fresh connection is returned. + + :param timeout: + Seconds to wait before giving up and raising + :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and + :prop:`.block` is ``True``. + """ + conn = None + + if self.pool is None: + raise ClosedPoolError(self, "Pool is closed.") + + try: + conn = self.pool.get(block=self.block, timeout=timeout) + + except AttributeError: # self.pool is None + raise ClosedPoolError(self, "Pool is closed.") from None # Defensive: + + except queue.Empty: + if self.block: + raise EmptyPoolError( + self, + "Pool is empty and a new connection can't be opened due to blocking mode.", + ) from None + pass # Oh well, we'll create a new connection then + + # If this is a persistent connection, check if it got disconnected + if conn and is_connection_dropped(conn): + log.debug("Resetting dropped connection: %s", self.host) + conn.close() + + return conn or self._new_conn() + + def _put_conn(self, conn: BaseHTTPConnection | None) -> None: + """ + Put a connection back into the pool. + + :param conn: + Connection object for the current host and port as returned by + :meth:`._new_conn` or :meth:`._get_conn`. + + If the pool is already full, the connection is closed and discarded + because we exceeded maxsize. If connections are discarded frequently, + then maxsize should be increased. + + If the pool is closed, then the connection will be closed and discarded. + """ + if self.pool is not None: + try: + self.pool.put(conn, block=False) + return # Everything is dandy, done. + except AttributeError: + # self.pool is None. + pass + except queue.Full: + # Connection never got put back into the pool, close it. + if conn: + conn.close() + + if self.block: + # This should never happen if you got the conn from self._get_conn + raise FullPoolError( + self, + "Pool reached maximum size and no more connections are allowed.", + ) from None + + log.warning( + "Connection pool is full, discarding connection: %s. Connection pool size: %s", + self.host, + self.pool.qsize(), + ) + + # Connection never got put back into the pool, close it. + if conn: + conn.close() + + def _validate_conn(self, conn: BaseHTTPConnection) -> None: + """ + Called right before a request is made, after the socket is created. + """ + + def _prepare_proxy(self, conn: BaseHTTPConnection) -> None: + # Nothing to do for HTTP connections. + pass + + def _get_timeout(self, timeout: _TYPE_TIMEOUT) -> Timeout: + """Helper that always returns a :class:`urllib3.util.Timeout`""" + if timeout is _DEFAULT_TIMEOUT: + return self.timeout.clone() + + if isinstance(timeout, Timeout): + return timeout.clone() + else: + # User passed us an int/float. This is for backwards compatibility, + # can be removed later + return Timeout.from_float(timeout) + + def _raise_timeout( + self, + err: BaseSSLError | OSError | SocketTimeout, + url: str, + timeout_value: _TYPE_TIMEOUT | None, + ) -> None: + """Is the error actually a timeout? Will raise a ReadTimeout or pass""" + + if isinstance(err, SocketTimeout): + raise ReadTimeoutError( + self, url, f"Read timed out. (read timeout={timeout_value})" + ) from err + + # See the above comment about EAGAIN in Python 3. + if hasattr(err, "errno") and err.errno in _blocking_errnos: + raise ReadTimeoutError( + self, url, f"Read timed out. (read timeout={timeout_value})" + ) from err + + def _make_request( + self, + conn: BaseHTTPConnection, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + retries: Retry | None = None, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + chunked: bool = False, + response_conn: BaseHTTPConnection | None = None, + preload_content: bool = True, + decode_content: bool = True, + enforce_content_length: bool = True, + ) -> BaseHTTPResponse: + """ + Perform a request on a given urllib connection object taken from our + pool. + + :param conn: + a connection from one of our connection pools + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param url: + The URL to perform the request on. + + :param body: + Data to send in the request body, either :class:`str`, :class:`bytes`, + an iterable of :class:`str`/:class:`bytes`, or a file-like object. + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. If None, pool headers are used. If provided, + these headers completely replace any pool-specific headers. + + :param retries: + Configure the number of retries to allow before raising a + :class:`~urllib3.exceptions.MaxRetryError` exception. + + Pass ``None`` to retry until you receive a response. Pass a + :class:`~urllib3.util.retry.Retry` object for fine-grained control + over different types of retries. + Pass an integer number to retry connection errors that many times, + but no other types of errors. Pass zero to never retry. + + If ``False``, then retries are disabled and any exception is raised + immediately. Also, instead of raising a MaxRetryError on redirects, + the redirect response will be returned. + + :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. + + :param timeout: + If specified, overrides the default timeout for this one + request. It may be a float (in seconds) or an instance of + :class:`urllib3.util.Timeout`. + + :param chunked: + If True, urllib3 will send the body using chunked transfer + encoding. Otherwise, urllib3 will send the body using the standard + content-length form. Defaults to False. + + :param response_conn: + Set this to ``None`` if you will handle releasing the connection or + set the connection to have the response release it. + + :param preload_content: + If True, the response's body will be preloaded during construction. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + + :param enforce_content_length: + Enforce content length checking. Body returned by server must match + value of Content-Length header, if present. Otherwise, raise error. + """ + self.num_requests += 1 + + timeout_obj = self._get_timeout(timeout) + timeout_obj.start_connect() + conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout) + + try: + # Trigger any extra validation we need to do. + try: + self._validate_conn(conn) + except (SocketTimeout, BaseSSLError) as e: + self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) + raise + + # _validate_conn() starts the connection to an HTTPS proxy + # so we need to wrap errors with 'ProxyError' here too. + except ( + OSError, + NewConnectionError, + TimeoutError, + BaseSSLError, + CertificateError, + SSLError, + ) as e: + new_e: Exception = e + if isinstance(e, (BaseSSLError, CertificateError)): + new_e = SSLError(e) + # If the connection didn't successfully connect to it's proxy + # then there + if isinstance( + new_e, (OSError, NewConnectionError, TimeoutError, SSLError) + ) and (conn and conn.proxy and not conn.has_connected_to_proxy): + new_e = _wrap_proxy_error(new_e, conn.proxy.scheme) + raise new_e + + # conn.request() calls http.client.*.request, not the method in + # urllib3.request. It also calls makefile (recv) on the socket. + try: + conn.request( + method, + url, + body=body, + headers=headers, + chunked=chunked, + preload_content=preload_content, + decode_content=decode_content, + enforce_content_length=enforce_content_length, + ) + + # We are swallowing BrokenPipeError (errno.EPIPE) since the server is + # legitimately able to close the connection after sending a valid response. + # With this behaviour, the received response is still readable. + except BrokenPipeError: + pass + except OSError as e: + # MacOS/Linux + # EPROTOTYPE and ECONNRESET are needed on macOS + # https://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ + # Condition changed later to emit ECONNRESET instead of only EPROTOTYPE. + if e.errno != errno.EPROTOTYPE and e.errno != errno.ECONNRESET: + raise + + # Reset the timeout for the recv() on the socket + read_timeout = timeout_obj.read_timeout + + if not conn.is_closed: + # In Python 3 socket.py will catch EAGAIN and return None when you + # try and read into the file pointer created by http.client, which + # instead raises a BadStatusLine exception. Instead of catching + # the exception and assuming all BadStatusLine exceptions are read + # timeouts, check for a zero timeout before making the request. + if read_timeout == 0: + raise ReadTimeoutError( + self, url, f"Read timed out. (read timeout={read_timeout})" + ) + conn.timeout = read_timeout + + # Receive the response from the server + try: + response = conn.getresponse() + except (BaseSSLError, OSError) as e: + self._raise_timeout(err=e, url=url, timeout_value=read_timeout) + raise + + # Set properties that are used by the pooling layer. + response.retries = retries + response._connection = response_conn # type: ignore[attr-defined] + response._pool = self # type: ignore[attr-defined] + + log.debug( + '%s://%s:%s "%s %s %s" %s %s', + self.scheme, + self.host, + self.port, + method, + url, + response.version_string, + response.status, + response.length_remaining, + ) + + return response + + def close(self) -> None: + """ + Close all pooled connections and disable the pool. + """ + if self.pool is None: + return + # Disable access to the pool + old_pool, self.pool = self.pool, None + + # Close all the HTTPConnections in the pool. + _close_pool_connections(old_pool) + + def is_same_host(self, url: str) -> bool: + """ + Check if the given ``url`` is a member of the same host as this + connection pool. + """ + if url.startswith("/"): + return True + + # TODO: Add optional support for socket.gethostbyname checking. + scheme, _, host, port, *_ = parse_url(url) + scheme = scheme or "http" + if host is not None: + host = _normalize_host(host, scheme=scheme) + + # Use explicit default port for comparison when none is given + if self.port and not port: + port = port_by_scheme.get(scheme) + elif not self.port and port == port_by_scheme.get(scheme): + port = None + + return (scheme, host, port) == (self.scheme, self.host, self.port) + + def urlopen( # type: ignore[override] + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + retries: Retry | bool | int | None = None, + redirect: bool = True, + assert_same_host: bool = True, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + pool_timeout: int | None = None, + release_conn: bool | None = None, + chunked: bool = False, + body_pos: _TYPE_BODY_POSITION | None = None, + preload_content: bool = True, + decode_content: bool = True, + **response_kw: typing.Any, + ) -> BaseHTTPResponse: + """ + Get a connection from the pool and perform an HTTP request. This is the + lowest level call for making a request, so you'll need to specify all + the raw details. + + .. note:: + + More commonly, it's appropriate to use a convenience method + such as :meth:`request`. + + .. note:: + + `release_conn` will only behave as expected if + `preload_content=False` because we want to make + `preload_content=False` the default behaviour someday soon without + breaking backwards compatibility. + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param url: + The URL to perform the request on. + + :param body: + Data to send in the request body, either :class:`str`, :class:`bytes`, + an iterable of :class:`str`/:class:`bytes`, or a file-like object. + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. If None, pool headers are used. If provided, + these headers completely replace any pool-specific headers. + + :param retries: + Configure the number of retries to allow before raising a + :class:`~urllib3.exceptions.MaxRetryError` exception. + + If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a + :class:`~urllib3.util.retry.Retry` object for fine-grained control + over different types of retries. + Pass an integer number to retry connection errors that many times, + but no other types of errors. Pass zero to never retry. + + If ``False``, then retries are disabled and any exception is raised + immediately. Also, instead of raising a MaxRetryError on redirects, + the redirect response will be returned. + + :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. + + :param redirect: + If True, automatically handle redirects (status codes 301, 302, + 303, 307, 308). Each redirect counts as a retry. Disabling retries + will disable redirect, too. + + :param assert_same_host: + If ``True``, will make sure that the host of the pool requests is + consistent else will raise HostChangedError. When ``False``, you can + use the pool on an HTTP proxy and request foreign hosts. + + :param timeout: + If specified, overrides the default timeout for this one + request. It may be a float (in seconds) or an instance of + :class:`urllib3.util.Timeout`. + + :param pool_timeout: + If set and the pool is set to block=True, then this method will + block for ``pool_timeout`` seconds and raise EmptyPoolError if no + connection is available within the time period. + + :param bool preload_content: + If True, the response's body will be preloaded into memory. + + :param bool decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + + :param release_conn: + If False, then the urlopen call will not release the connection + back into the pool once a response is received (but will release if + you read the entire contents of the response such as when + `preload_content=True`). This is useful if you're not preloading + the response's content immediately. You will need to call + ``r.release_conn()`` on the response ``r`` to return the connection + back into the pool. If None, it takes the value of ``preload_content`` + which defaults to ``True``. + + :param bool chunked: + If True, urllib3 will send the body using chunked transfer + encoding. Otherwise, urllib3 will send the body using the standard + content-length form. Defaults to False. + + :param int body_pos: + Position to seek to in file-like body in the event of a retry or + redirect. Typically this won't need to be set because urllib3 will + auto-populate the value when needed. + """ + parsed_url = parse_url(url) + destination_scheme = parsed_url.scheme + + if headers is None: + headers = self.headers + + if not isinstance(retries, Retry): + retries = Retry.from_int(retries, redirect=redirect, default=self.retries) + + if release_conn is None: + release_conn = preload_content + + # Check host + if assert_same_host and not self.is_same_host(url): + raise HostChangedError(self, url, retries) + + # Ensure that the URL we're connecting to is properly encoded + if url.startswith("/"): + url = to_str(_encode_target(url)) + else: + url = to_str(parsed_url.url) + + conn = None + + # Track whether `conn` needs to be released before + # returning/raising/recursing. Update this variable if necessary, and + # leave `release_conn` constant throughout the function. That way, if + # the function recurses, the original value of `release_conn` will be + # passed down into the recursive call, and its value will be respected. + # + # See issue #651 [1] for details. + # + # [1] + release_this_conn = release_conn + + http_tunnel_required = connection_requires_http_tunnel( + self.proxy, self.proxy_config, destination_scheme + ) + + # Merge the proxy headers. Only done when not using HTTP CONNECT. We + # have to copy the headers dict so we can safely change it without those + # changes being reflected in anyone else's copy. + if not http_tunnel_required: + headers = headers.copy() # type: ignore[attr-defined] + headers.update(self.proxy_headers) # type: ignore[union-attr] + + # Must keep the exception bound to a separate variable or else Python 3 + # complains about UnboundLocalError. + err = None + + # Keep track of whether we cleanly exited the except block. This + # ensures we do proper cleanup in finally. + clean_exit = False + + # Rewind body position, if needed. Record current position + # for future rewinds in the event of a redirect/retry. + body_pos = set_file_position(body, body_pos) + + try: + # Request a connection from the queue. + timeout_obj = self._get_timeout(timeout) + conn = self._get_conn(timeout=pool_timeout) + + conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] + + # Is this a closed/new connection that requires CONNECT tunnelling? + if self.proxy is not None and http_tunnel_required and conn.is_closed: + try: + self._prepare_proxy(conn) + except (BaseSSLError, OSError, SocketTimeout) as e: + self._raise_timeout( + err=e, url=self.proxy.url, timeout_value=conn.timeout + ) + raise + + # If we're going to release the connection in ``finally:``, then + # the response doesn't need to know about the connection. Otherwise + # it will also try to release it and we'll have a double-release + # mess. + response_conn = conn if not release_conn else None + + # Make the request on the HTTPConnection object + response = self._make_request( + conn, + method, + url, + timeout=timeout_obj, + body=body, + headers=headers, + chunked=chunked, + retries=retries, + response_conn=response_conn, + preload_content=preload_content, + decode_content=decode_content, + **response_kw, + ) + + # Everything went great! + clean_exit = True + + except EmptyPoolError: + # Didn't get a connection from the pool, no need to clean up + clean_exit = True + release_this_conn = False + raise + + except ( + TimeoutError, + HTTPException, + OSError, + ProtocolError, + BaseSSLError, + SSLError, + CertificateError, + ProxyError, + ) as e: + # Discard the connection for these exceptions. It will be + # replaced during the next _get_conn() call. + clean_exit = False + new_e: Exception = e + if isinstance(e, (BaseSSLError, CertificateError)): + new_e = SSLError(e) + if isinstance( + new_e, + ( + OSError, + NewConnectionError, + TimeoutError, + SSLError, + HTTPException, + ), + ) and (conn and conn.proxy and not conn.has_connected_to_proxy): + new_e = _wrap_proxy_error(new_e, conn.proxy.scheme) + elif isinstance(new_e, (OSError, HTTPException)): + new_e = ProtocolError("Connection aborted.", new_e) + + retries = retries.increment( + method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2] + ) + retries.sleep() + + # Keep track of the error for the retry warning. + err = e + + finally: + if not clean_exit: + # We hit some kind of exception, handled or otherwise. We need + # to throw the connection away unless explicitly told not to. + # Close the connection, set the variable to None, and make sure + # we put the None back in the pool to avoid leaking it. + if conn: + conn.close() + conn = None + release_this_conn = True + + if release_this_conn: + # Put the connection back to be reused. If the connection is + # expired then it will be None, which will get replaced with a + # fresh connection during _get_conn. + self._put_conn(conn) + + if not conn: + # Try again + log.warning( + "Retrying (%r) after connection broken by '%r': %s", retries, err, url + ) + return self.urlopen( + method, + url, + body, + headers, + retries, + redirect, + assert_same_host, + timeout=timeout, + pool_timeout=pool_timeout, + release_conn=release_conn, + chunked=chunked, + body_pos=body_pos, + preload_content=preload_content, + decode_content=decode_content, + **response_kw, + ) + + # Handle redirect? + redirect_location = redirect and response.get_redirect_location() + if redirect_location: + if response.status == 303: + # Change the method according to RFC 9110, Section 15.4.4. + method = "GET" + # And lose the body not to transfer anything sensitive. + body = None + headers = HTTPHeaderDict(headers)._prepare_for_method_change() + + try: + retries = retries.increment(method, url, response=response, _pool=self) + except MaxRetryError: + if retries.raise_on_redirect: + response.drain_conn() + raise + return response + + response.drain_conn() + retries.sleep_for_retry(response) + log.debug("Redirecting %s -> %s", url, redirect_location) + return self.urlopen( + method, + redirect_location, + body, + headers, + retries=retries, + redirect=redirect, + assert_same_host=assert_same_host, + timeout=timeout, + pool_timeout=pool_timeout, + release_conn=release_conn, + chunked=chunked, + body_pos=body_pos, + preload_content=preload_content, + decode_content=decode_content, + **response_kw, + ) + + # Check if we should retry the HTTP response. + has_retry_after = bool(response.headers.get("Retry-After")) + if retries.is_retry(method, response.status, has_retry_after): + try: + retries = retries.increment(method, url, response=response, _pool=self) + except MaxRetryError: + if retries.raise_on_status: + response.drain_conn() + raise + return response + + response.drain_conn() + retries.sleep(response) + log.debug("Retry: %s", url) + return self.urlopen( + method, + url, + body, + headers, + retries=retries, + redirect=redirect, + assert_same_host=assert_same_host, + timeout=timeout, + pool_timeout=pool_timeout, + release_conn=release_conn, + chunked=chunked, + body_pos=body_pos, + preload_content=preload_content, + decode_content=decode_content, + **response_kw, + ) + + return response + + +class HTTPSConnectionPool(HTTPConnectionPool): + """ + Same as :class:`.HTTPConnectionPool`, but HTTPS. + + :class:`.HTTPSConnection` uses one of ``assert_fingerprint``, + ``assert_hostname`` and ``host`` in this order to verify connections. + If ``assert_hostname`` is False, no verification is done. + + The ``key_file``, ``cert_file``, ``cert_reqs``, ``ca_certs``, + ``ca_cert_dir``, ``ssl_version``, ``key_password`` are only used if :mod:`ssl` + is available and are fed into :meth:`urllib3.util.ssl_wrap_socket` to upgrade + the connection socket into an SSL socket. + """ + + scheme = "https" + ConnectionCls: type[BaseHTTPSConnection] = HTTPSConnection + + def __init__( + self, + host: str, + port: int | None = None, + timeout: _TYPE_TIMEOUT | None = _DEFAULT_TIMEOUT, + maxsize: int = 1, + block: bool = False, + headers: typing.Mapping[str, str] | None = None, + retries: Retry | bool | int | None = None, + _proxy: Url | None = None, + _proxy_headers: typing.Mapping[str, str] | None = None, + key_file: str | None = None, + cert_file: str | None = None, + cert_reqs: int | str | None = None, + key_password: str | None = None, + ca_certs: str | None = None, + ssl_version: int | str | None = None, + ssl_minimum_version: ssl.TLSVersion | None = None, + ssl_maximum_version: ssl.TLSVersion | None = None, + assert_hostname: str | typing.Literal[False] | None = None, + assert_fingerprint: str | None = None, + ca_cert_dir: str | None = None, + **conn_kw: typing.Any, + ) -> None: + super().__init__( + host, + port, + timeout, + maxsize, + block, + headers, + retries, + _proxy, + _proxy_headers, + **conn_kw, + ) + + self.key_file = key_file + self.cert_file = cert_file + self.cert_reqs = cert_reqs + self.key_password = key_password + self.ca_certs = ca_certs + self.ca_cert_dir = ca_cert_dir + self.ssl_version = ssl_version + self.ssl_minimum_version = ssl_minimum_version + self.ssl_maximum_version = ssl_maximum_version + self.assert_hostname = assert_hostname + self.assert_fingerprint = assert_fingerprint + + def _prepare_proxy(self, conn: HTTPSConnection) -> None: # type: ignore[override] + """Establishes a tunnel connection through HTTP CONNECT.""" + if self.proxy and self.proxy.scheme == "https": + tunnel_scheme = "https" + else: + tunnel_scheme = "http" + + conn.set_tunnel( + scheme=tunnel_scheme, + host=self._tunnel_host, + port=self.port, + headers=self.proxy_headers, + ) + conn.connect() + + def _new_conn(self) -> BaseHTTPSConnection: + """ + Return a fresh :class:`urllib3.connection.HTTPConnection`. + """ + self.num_connections += 1 + log.debug( + "Starting new HTTPS connection (%d): %s:%s", + self.num_connections, + self.host, + self.port or "443", + ) + + if not self.ConnectionCls or self.ConnectionCls is DummyConnection: # type: ignore[comparison-overlap] + raise ImportError( + "Can't connect to HTTPS URL because the SSL module is not available." + ) + + actual_host: str = self.host + actual_port = self.port + if self.proxy is not None and self.proxy.host is not None: + actual_host = self.proxy.host + actual_port = self.proxy.port + + return self.ConnectionCls( + host=actual_host, + port=actual_port, + timeout=self.timeout.connect_timeout, + cert_file=self.cert_file, + key_file=self.key_file, + key_password=self.key_password, + cert_reqs=self.cert_reqs, + ca_certs=self.ca_certs, + ca_cert_dir=self.ca_cert_dir, + assert_hostname=self.assert_hostname, + assert_fingerprint=self.assert_fingerprint, + ssl_version=self.ssl_version, + ssl_minimum_version=self.ssl_minimum_version, + ssl_maximum_version=self.ssl_maximum_version, + **self.conn_kw, + ) + + def _validate_conn(self, conn: BaseHTTPConnection) -> None: + """ + Called right before a request is made, after the socket is created. + """ + super()._validate_conn(conn) + + # Force connect early to allow us to validate the connection. + if conn.is_closed: + conn.connect() + + # TODO revise this, see https://github.com/urllib3/urllib3/issues/2791 + if not conn.is_verified and not conn.proxy_is_verified: + warnings.warn( + ( + f"Unverified HTTPS request is being made to host '{conn.host}'. " + "Adding certificate verification is strongly advised. See: " + "https://urllib3.readthedocs.io/en/latest/advanced-usage.html" + "#tls-warnings" + ), + InsecureRequestWarning, + ) + + +def connection_from_url(url: str, **kw: typing.Any) -> HTTPConnectionPool: + """ + Given a url, return an :class:`.ConnectionPool` instance of its host. + + This is a shortcut for not having to parse out the scheme, host, and port + of the url before creating an :class:`.ConnectionPool` instance. + + :param url: + Absolute URL string that must include the scheme. Port is optional. + + :param \\**kw: + Passes additional parameters to the constructor of the appropriate + :class:`.ConnectionPool`. Useful for specifying things like + timeout, maxsize, headers, etc. + + Example:: + + >>> conn = connection_from_url('http://google.com/') + >>> r = conn.request('GET', '/') + """ + scheme, _, host, port, *_ = parse_url(url) + scheme = scheme or "http" + port = port or port_by_scheme.get(scheme, 80) + if scheme == "https": + return HTTPSConnectionPool(host, port=port, **kw) # type: ignore[arg-type] + else: + return HTTPConnectionPool(host, port=port, **kw) # type: ignore[arg-type] + + +@typing.overload +def _normalize_host(host: None, scheme: str | None) -> None: ... + + +@typing.overload +def _normalize_host(host: str, scheme: str | None) -> str: ... + + +def _normalize_host(host: str | None, scheme: str | None) -> str | None: + """ + Normalize hosts for comparisons and use with sockets. + """ + + host = normalize_host(host, scheme) + + # httplib doesn't like it when we include brackets in IPv6 addresses + # Specifically, if we include brackets but also pass the port then + # httplib crazily doubles up the square brackets on the Host header. + # Instead, we need to make sure we never pass ``None`` as the port. + # However, for backward compatibility reasons we can't actually + # *assert* that. See http://bugs.python.org/issue28539 + if host and host.startswith("[") and host.endswith("]"): + host = host[1:-1] + return host + + +def _url_from_pool( + pool: HTTPConnectionPool | HTTPSConnectionPool, path: str | None = None +) -> str: + """Returns the URL from a given connection pool. This is mainly used for testing and logging.""" + return Url(scheme=pool.scheme, host=pool.host, port=pool.port, path=path).url + + +def _close_pool_connections(pool: queue.LifoQueue[typing.Any]) -> None: + """Drains a queue of connections and closes each one.""" + try: + while True: + conn = pool.get(block=False) + if conn: + conn.close() + except queue.Empty: + pass # Done. diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__init__.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..55ff0698 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc new file mode 100644 index 00000000..81366031 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/socks.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/socks.cpython-312.pyc new file mode 100644 index 00000000..aba5004b Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/socks.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__init__.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__init__.py new file mode 100644 index 00000000..8a3c5beb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__init__.py @@ -0,0 +1,16 @@ +from __future__ import annotations + +import urllib3.connection + +from ...connectionpool import HTTPConnectionPool, HTTPSConnectionPool +from .connection import EmscriptenHTTPConnection, EmscriptenHTTPSConnection + + +def inject_into_urllib3() -> None: + # override connection classes to use emscripten specific classes + # n.b. mypy complains about the overriding of classes below + # if it isn't ignored + HTTPConnectionPool.ConnectionCls = EmscriptenHTTPConnection + HTTPSConnectionPool.ConnectionCls = EmscriptenHTTPSConnection + urllib3.connection.HTTPConnection = EmscriptenHTTPConnection # type: ignore[misc,assignment] + urllib3.connection.HTTPSConnection = EmscriptenHTTPSConnection # type: ignore[misc,assignment] diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..dac1453f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/connection.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/connection.cpython-312.pyc new file mode 100644 index 00000000..7dba89bf Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/connection.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/fetch.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/fetch.cpython-312.pyc new file mode 100644 index 00000000..8ca35552 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/fetch.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/request.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/request.cpython-312.pyc new file mode 100644 index 00000000..405be058 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/request.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/response.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/response.cpython-312.pyc new file mode 100644 index 00000000..c23336c2 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/response.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/connection.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/connection.py new file mode 100644 index 00000000..41bfd279 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/connection.py @@ -0,0 +1,255 @@ +from __future__ import annotations + +import os +import typing + +# use http.client.HTTPException for consistency with non-emscripten +from http.client import HTTPException as HTTPException # noqa: F401 +from http.client import ResponseNotReady + +from ..._base_connection import _TYPE_BODY +from ...connection import HTTPConnection, ProxyConfig, port_by_scheme +from ...exceptions import TimeoutError +from ...response import BaseHTTPResponse +from ...util.connection import _TYPE_SOCKET_OPTIONS +from ...util.timeout import _DEFAULT_TIMEOUT, _TYPE_TIMEOUT +from ...util.url import Url +from .fetch import _RequestError, _TimeoutError, send_request, send_streaming_request +from .request import EmscriptenRequest +from .response import EmscriptenHttpResponseWrapper, EmscriptenResponse + +if typing.TYPE_CHECKING: + from ..._base_connection import BaseHTTPConnection, BaseHTTPSConnection + + +class EmscriptenHTTPConnection: + default_port: typing.ClassVar[int] = port_by_scheme["http"] + default_socket_options: typing.ClassVar[_TYPE_SOCKET_OPTIONS] + + timeout: None | (float) + + host: str + port: int + blocksize: int + source_address: tuple[str, int] | None + socket_options: _TYPE_SOCKET_OPTIONS | None + + proxy: Url | None + proxy_config: ProxyConfig | None + + is_verified: bool = False + proxy_is_verified: bool | None = None + + _response: EmscriptenResponse | None + + def __init__( + self, + host: str, + port: int = 0, + *, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + blocksize: int = 8192, + socket_options: _TYPE_SOCKET_OPTIONS | None = None, + proxy: Url | None = None, + proxy_config: ProxyConfig | None = None, + ) -> None: + self.host = host + self.port = port + self.timeout = timeout if isinstance(timeout, float) else 0.0 + self.scheme = "http" + self._closed = True + self._response = None + # ignore these things because we don't + # have control over that stuff + self.proxy = None + self.proxy_config = None + self.blocksize = blocksize + self.source_address = None + self.socket_options = None + self.is_verified = False + + def set_tunnel( + self, + host: str, + port: int | None = 0, + headers: typing.Mapping[str, str] | None = None, + scheme: str = "http", + ) -> None: + pass + + def connect(self) -> None: + pass + + def request( + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + # We know *at least* botocore is depending on the order of the + # first 3 parameters so to be safe we only mark the later ones + # as keyword-only to ensure we have space to extend. + *, + chunked: bool = False, + preload_content: bool = True, + decode_content: bool = True, + enforce_content_length: bool = True, + ) -> None: + self._closed = False + if url.startswith("/"): + # no scheme / host / port included, make a full url + url = f"{self.scheme}://{self.host}:{self.port}" + url + request = EmscriptenRequest( + url=url, + method=method, + timeout=self.timeout if self.timeout else 0, + decode_content=decode_content, + ) + request.set_body(body) + if headers: + for k, v in headers.items(): + request.set_header(k, v) + self._response = None + try: + if not preload_content: + self._response = send_streaming_request(request) + if self._response is None: + self._response = send_request(request) + except _TimeoutError as e: + raise TimeoutError(e.message) from e + except _RequestError as e: + raise HTTPException(e.message) from e + + def getresponse(self) -> BaseHTTPResponse: + if self._response is not None: + return EmscriptenHttpResponseWrapper( + internal_response=self._response, + url=self._response.request.url, + connection=self, + ) + else: + raise ResponseNotReady() + + def close(self) -> None: + self._closed = True + self._response = None + + @property + def is_closed(self) -> bool: + """Whether the connection either is brand new or has been previously closed. + If this property is True then both ``is_connected`` and ``has_connected_to_proxy`` + properties must be False. + """ + return self._closed + + @property + def is_connected(self) -> bool: + """Whether the connection is actively connected to any origin (proxy or target)""" + return True + + @property + def has_connected_to_proxy(self) -> bool: + """Whether the connection has successfully connected to its proxy. + This returns False if no proxy is in use. Used to determine whether + errors are coming from the proxy layer or from tunnelling to the target origin. + """ + return False + + +class EmscriptenHTTPSConnection(EmscriptenHTTPConnection): + default_port = port_by_scheme["https"] + # all this is basically ignored, as browser handles https + cert_reqs: int | str | None = None + ca_certs: str | None = None + ca_cert_dir: str | None = None + ca_cert_data: None | str | bytes = None + cert_file: str | None + key_file: str | None + key_password: str | None + ssl_context: typing.Any | None + ssl_version: int | str | None = None + ssl_minimum_version: int | None = None + ssl_maximum_version: int | None = None + assert_hostname: None | str | typing.Literal[False] + assert_fingerprint: str | None = None + + def __init__( + self, + host: str, + port: int = 0, + *, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + blocksize: int = 16384, + socket_options: ( + None | _TYPE_SOCKET_OPTIONS + ) = HTTPConnection.default_socket_options, + proxy: Url | None = None, + proxy_config: ProxyConfig | None = None, + cert_reqs: int | str | None = None, + assert_hostname: None | str | typing.Literal[False] = None, + assert_fingerprint: str | None = None, + server_hostname: str | None = None, + ssl_context: typing.Any | None = None, + ca_certs: str | None = None, + ca_cert_dir: str | None = None, + ca_cert_data: None | str | bytes = None, + ssl_minimum_version: int | None = None, + ssl_maximum_version: int | None = None, + ssl_version: int | str | None = None, # Deprecated + cert_file: str | None = None, + key_file: str | None = None, + key_password: str | None = None, + ) -> None: + super().__init__( + host, + port=port, + timeout=timeout, + source_address=source_address, + blocksize=blocksize, + socket_options=socket_options, + proxy=proxy, + proxy_config=proxy_config, + ) + self.scheme = "https" + + self.key_file = key_file + self.cert_file = cert_file + self.key_password = key_password + self.ssl_context = ssl_context + self.server_hostname = server_hostname + self.assert_hostname = assert_hostname + self.assert_fingerprint = assert_fingerprint + self.ssl_version = ssl_version + self.ssl_minimum_version = ssl_minimum_version + self.ssl_maximum_version = ssl_maximum_version + self.ca_certs = ca_certs and os.path.expanduser(ca_certs) + self.ca_cert_dir = ca_cert_dir and os.path.expanduser(ca_cert_dir) + self.ca_cert_data = ca_cert_data + + self.cert_reqs = None + + # The browser will automatically verify all requests. + # We have no control over that setting. + self.is_verified = True + + def set_cert( + self, + key_file: str | None = None, + cert_file: str | None = None, + cert_reqs: int | str | None = None, + key_password: str | None = None, + ca_certs: str | None = None, + assert_hostname: None | str | typing.Literal[False] = None, + assert_fingerprint: str | None = None, + ca_cert_dir: str | None = None, + ca_cert_data: None | str | bytes = None, + ) -> None: + pass + + +# verify that this class implements BaseHTTP(s) connection correctly +if typing.TYPE_CHECKING: + _supports_http_protocol: BaseHTTPConnection = EmscriptenHTTPConnection("", 0) + _supports_https_protocol: BaseHTTPSConnection = EmscriptenHTTPSConnection("", 0) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js new file mode 100644 index 00000000..243b8622 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js @@ -0,0 +1,110 @@ +let Status = { + SUCCESS_HEADER: -1, + SUCCESS_EOF: -2, + ERROR_TIMEOUT: -3, + ERROR_EXCEPTION: -4, +}; + +let connections = {}; +let nextConnectionID = 1; +const encoder = new TextEncoder(); + +self.addEventListener("message", async function (event) { + if (event.data.close) { + let connectionID = event.data.close; + delete connections[connectionID]; + return; + } else if (event.data.getMore) { + let connectionID = event.data.getMore; + let { curOffset, value, reader, intBuffer, byteBuffer } = + connections[connectionID]; + // if we still have some in buffer, then just send it back straight away + if (!value || curOffset >= value.length) { + // read another buffer if required + try { + let readResponse = await reader.read(); + + if (readResponse.done) { + // read everything - clear connection and return + delete connections[connectionID]; + Atomics.store(intBuffer, 0, Status.SUCCESS_EOF); + Atomics.notify(intBuffer, 0); + // finished reading successfully + // return from event handler + return; + } + curOffset = 0; + connections[connectionID].value = readResponse.value; + value = readResponse.value; + } catch (error) { + console.log("Request exception:", error); + let errorBytes = encoder.encode(error.message); + let written = errorBytes.length; + byteBuffer.set(errorBytes); + intBuffer[1] = written; + Atomics.store(intBuffer, 0, Status.ERROR_EXCEPTION); + Atomics.notify(intBuffer, 0); + } + } + + // send as much buffer as we can + let curLen = value.length - curOffset; + if (curLen > byteBuffer.length) { + curLen = byteBuffer.length; + } + byteBuffer.set(value.subarray(curOffset, curOffset + curLen), 0); + + Atomics.store(intBuffer, 0, curLen); // store current length in bytes + Atomics.notify(intBuffer, 0); + curOffset += curLen; + connections[connectionID].curOffset = curOffset; + + return; + } else { + // start fetch + let connectionID = nextConnectionID; + nextConnectionID += 1; + const intBuffer = new Int32Array(event.data.buffer); + const byteBuffer = new Uint8Array(event.data.buffer, 8); + try { + const response = await fetch(event.data.url, event.data.fetchParams); + // return the headers first via textencoder + var headers = []; + for (const pair of response.headers.entries()) { + headers.push([pair[0], pair[1]]); + } + let headerObj = { + headers: headers, + status: response.status, + connectionID, + }; + const headerText = JSON.stringify(headerObj); + let headerBytes = encoder.encode(headerText); + let written = headerBytes.length; + byteBuffer.set(headerBytes); + intBuffer[1] = written; + // make a connection + connections[connectionID] = { + reader: response.body.getReader(), + intBuffer: intBuffer, + byteBuffer: byteBuffer, + value: undefined, + curOffset: 0, + }; + // set header ready + Atomics.store(intBuffer, 0, Status.SUCCESS_HEADER); + Atomics.notify(intBuffer, 0); + // all fetching after this goes through a new postmessage call with getMore + // this allows for parallel requests + } catch (error) { + console.log("Request exception:", error); + let errorBytes = encoder.encode(error.message); + let written = errorBytes.length; + byteBuffer.set(errorBytes); + intBuffer[1] = written; + Atomics.store(intBuffer, 0, Status.ERROR_EXCEPTION); + Atomics.notify(intBuffer, 0); + } + } +}); +self.postMessage({ inited: true }); diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/fetch.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/fetch.py new file mode 100644 index 00000000..66958217 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/fetch.py @@ -0,0 +1,728 @@ +""" +Support for streaming http requests in emscripten. + +A few caveats - + +If your browser (or Node.js) has WebAssembly JavaScript Promise Integration enabled +https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md +*and* you launch pyodide using `pyodide.runPythonAsync`, this will fetch data using the +JavaScript asynchronous fetch api (wrapped via `pyodide.ffi.call_sync`). In this case +timeouts and streaming should just work. + +Otherwise, it uses a combination of XMLHttpRequest and a web-worker for streaming. + +This approach has several caveats: + +Firstly, you can't do streaming http in the main UI thread, because atomics.wait isn't allowed. +Streaming only works if you're running pyodide in a web worker. + +Secondly, this uses an extra web worker and SharedArrayBuffer to do the asynchronous fetch +operation, so it requires that you have crossOriginIsolation enabled, by serving over https +(or from localhost) with the two headers below set: + + Cross-Origin-Opener-Policy: same-origin + Cross-Origin-Embedder-Policy: require-corp + +You can tell if cross origin isolation is successfully enabled by looking at the global crossOriginIsolated variable in +JavaScript console. If it isn't, streaming requests will fallback to XMLHttpRequest, i.e. getting the whole +request into a buffer and then returning it. it shows a warning in the JavaScript console in this case. + +Finally, the webworker which does the streaming fetch is created on initial import, but will only be started once +control is returned to javascript. Call `await wait_for_streaming_ready()` to wait for streaming fetch. + +NB: in this code, there are a lot of JavaScript objects. They are named js_* +to make it clear what type of object they are. +""" + +from __future__ import annotations + +import io +import json +from email.parser import Parser +from importlib.resources import files +from typing import TYPE_CHECKING, Any + +import js # type: ignore[import-not-found] +from pyodide.ffi import ( # type: ignore[import-not-found] + JsArray, + JsException, + JsProxy, + to_js, +) + +if TYPE_CHECKING: + from typing_extensions import Buffer + +from .request import EmscriptenRequest +from .response import EmscriptenResponse + +""" +There are some headers that trigger unintended CORS preflight requests. +See also https://github.com/koenvo/pyodide-http/issues/22 +""" +HEADERS_TO_IGNORE = ("user-agent",) + +SUCCESS_HEADER = -1 +SUCCESS_EOF = -2 +ERROR_TIMEOUT = -3 +ERROR_EXCEPTION = -4 + +_STREAMING_WORKER_CODE = ( + files(__package__) + .joinpath("emscripten_fetch_worker.js") + .read_text(encoding="utf-8") +) + + +class _RequestError(Exception): + def __init__( + self, + message: str | None = None, + *, + request: EmscriptenRequest | None = None, + response: EmscriptenResponse | None = None, + ): + self.request = request + self.response = response + self.message = message + super().__init__(self.message) + + +class _StreamingError(_RequestError): + pass + + +class _TimeoutError(_RequestError): + pass + + +def _obj_from_dict(dict_val: dict[str, Any]) -> JsProxy: + return to_js(dict_val, dict_converter=js.Object.fromEntries) + + +class _ReadStream(io.RawIOBase): + def __init__( + self, + int_buffer: JsArray, + byte_buffer: JsArray, + timeout: float, + worker: JsProxy, + connection_id: int, + request: EmscriptenRequest, + ): + self.int_buffer = int_buffer + self.byte_buffer = byte_buffer + self.read_pos = 0 + self.read_len = 0 + self.connection_id = connection_id + self.worker = worker + self.timeout = int(1000 * timeout) if timeout > 0 else None + self.is_live = True + self._is_closed = False + self.request: EmscriptenRequest | None = request + + def __del__(self) -> None: + self.close() + + # this is compatible with _base_connection + def is_closed(self) -> bool: + return self._is_closed + + # for compatibility with RawIOBase + @property + def closed(self) -> bool: + return self.is_closed() + + def close(self) -> None: + if self.is_closed(): + return + self.read_len = 0 + self.read_pos = 0 + self.int_buffer = None + self.byte_buffer = None + self._is_closed = True + self.request = None + if self.is_live: + self.worker.postMessage(_obj_from_dict({"close": self.connection_id})) + self.is_live = False + super().close() + + def readable(self) -> bool: + return True + + def writable(self) -> bool: + return False + + def seekable(self) -> bool: + return False + + def readinto(self, byte_obj: Buffer) -> int: + if not self.int_buffer: + raise _StreamingError( + "No buffer for stream in _ReadStream.readinto", + request=self.request, + response=None, + ) + if self.read_len == 0: + # wait for the worker to send something + js.Atomics.store(self.int_buffer, 0, ERROR_TIMEOUT) + self.worker.postMessage(_obj_from_dict({"getMore": self.connection_id})) + if ( + js.Atomics.wait(self.int_buffer, 0, ERROR_TIMEOUT, self.timeout) + == "timed-out" + ): + raise _TimeoutError + data_len = self.int_buffer[0] + if data_len > 0: + self.read_len = data_len + self.read_pos = 0 + elif data_len == ERROR_EXCEPTION: + string_len = self.int_buffer[1] + # decode the error string + js_decoder = js.TextDecoder.new() + json_str = js_decoder.decode(self.byte_buffer.slice(0, string_len)) + raise _StreamingError( + f"Exception thrown in fetch: {json_str}", + request=self.request, + response=None, + ) + else: + # EOF, free the buffers and return zero + # and free the request + self.is_live = False + self.close() + return 0 + # copy from int32array to python bytes + ret_length = min(self.read_len, len(memoryview(byte_obj))) + subarray = self.byte_buffer.subarray( + self.read_pos, self.read_pos + ret_length + ).to_py() + memoryview(byte_obj)[0:ret_length] = subarray + self.read_len -= ret_length + self.read_pos += ret_length + return ret_length + + +class _StreamingFetcher: + def __init__(self) -> None: + # make web-worker and data buffer on startup + self.streaming_ready = False + + js_data_blob = js.Blob.new( + to_js([_STREAMING_WORKER_CODE], create_pyproxies=False), + _obj_from_dict({"type": "application/javascript"}), + ) + + def promise_resolver(js_resolve_fn: JsProxy, js_reject_fn: JsProxy) -> None: + def onMsg(e: JsProxy) -> None: + self.streaming_ready = True + js_resolve_fn(e) + + def onErr(e: JsProxy) -> None: + js_reject_fn(e) # Defensive: never happens in ci + + self.js_worker.onmessage = onMsg + self.js_worker.onerror = onErr + + js_data_url = js.URL.createObjectURL(js_data_blob) + self.js_worker = js.globalThis.Worker.new(js_data_url) + self.js_worker_ready_promise = js.globalThis.Promise.new(promise_resolver) + + def send(self, request: EmscriptenRequest) -> EmscriptenResponse: + headers = { + k: v for k, v in request.headers.items() if k not in HEADERS_TO_IGNORE + } + + body = request.body + fetch_data = {"headers": headers, "body": to_js(body), "method": request.method} + # start the request off in the worker + timeout = int(1000 * request.timeout) if request.timeout > 0 else None + js_shared_buffer = js.SharedArrayBuffer.new(1048576) + js_int_buffer = js.Int32Array.new(js_shared_buffer) + js_byte_buffer = js.Uint8Array.new(js_shared_buffer, 8) + + js.Atomics.store(js_int_buffer, 0, ERROR_TIMEOUT) + js.Atomics.notify(js_int_buffer, 0) + js_absolute_url = js.URL.new(request.url, js.location).href + self.js_worker.postMessage( + _obj_from_dict( + { + "buffer": js_shared_buffer, + "url": js_absolute_url, + "fetchParams": fetch_data, + } + ) + ) + # wait for the worker to send something + js.Atomics.wait(js_int_buffer, 0, ERROR_TIMEOUT, timeout) + if js_int_buffer[0] == ERROR_TIMEOUT: + raise _TimeoutError( + "Timeout connecting to streaming request", + request=request, + response=None, + ) + elif js_int_buffer[0] == SUCCESS_HEADER: + # got response + # header length is in second int of intBuffer + string_len = js_int_buffer[1] + # decode the rest to a JSON string + js_decoder = js.TextDecoder.new() + # this does a copy (the slice) because decode can't work on shared array + # for some silly reason + json_str = js_decoder.decode(js_byte_buffer.slice(0, string_len)) + # get it as an object + response_obj = json.loads(json_str) + return EmscriptenResponse( + request=request, + status_code=response_obj["status"], + headers=response_obj["headers"], + body=_ReadStream( + js_int_buffer, + js_byte_buffer, + request.timeout, + self.js_worker, + response_obj["connectionID"], + request, + ), + ) + elif js_int_buffer[0] == ERROR_EXCEPTION: + string_len = js_int_buffer[1] + # decode the error string + js_decoder = js.TextDecoder.new() + json_str = js_decoder.decode(js_byte_buffer.slice(0, string_len)) + raise _StreamingError( + f"Exception thrown in fetch: {json_str}", request=request, response=None + ) + else: + raise _StreamingError( + f"Unknown status from worker in fetch: {js_int_buffer[0]}", + request=request, + response=None, + ) + + +class _JSPIReadStream(io.RawIOBase): + """ + A read stream that uses pyodide.ffi.run_sync to read from a JavaScript fetch + response. This requires support for WebAssembly JavaScript Promise Integration + in the containing browser, and for pyodide to be launched via runPythonAsync. + + :param js_read_stream: + The JavaScript stream reader + + :param timeout: + Timeout in seconds + + :param request: + The request we're handling + + :param response: + The response this stream relates to + + :param js_abort_controller: + A JavaScript AbortController object, used for timeouts + """ + + def __init__( + self, + js_read_stream: Any, + timeout: float, + request: EmscriptenRequest, + response: EmscriptenResponse, + js_abort_controller: Any, # JavaScript AbortController for timeouts + ): + self.js_read_stream = js_read_stream + self.timeout = timeout + self._is_closed = False + self._is_done = False + self.request: EmscriptenRequest | None = request + self.response: EmscriptenResponse | None = response + self.current_buffer = None + self.current_buffer_pos = 0 + self.js_abort_controller = js_abort_controller + + def __del__(self) -> None: + self.close() + + # this is compatible with _base_connection + def is_closed(self) -> bool: + return self._is_closed + + # for compatibility with RawIOBase + @property + def closed(self) -> bool: + return self.is_closed() + + def close(self) -> None: + if self.is_closed(): + return + self.read_len = 0 + self.read_pos = 0 + self.js_read_stream.cancel() + self.js_read_stream = None + self._is_closed = True + self._is_done = True + self.request = None + self.response = None + super().close() + + def readable(self) -> bool: + return True + + def writable(self) -> bool: + return False + + def seekable(self) -> bool: + return False + + def _get_next_buffer(self) -> bool: + result_js = _run_sync_with_timeout( + self.js_read_stream.read(), + self.timeout, + self.js_abort_controller, + request=self.request, + response=self.response, + ) + if result_js.done: + self._is_done = True + return False + else: + self.current_buffer = result_js.value.to_py() + self.current_buffer_pos = 0 + return True + + def readinto(self, byte_obj: Buffer) -> int: + if self.current_buffer is None: + if not self._get_next_buffer() or self.current_buffer is None: + self.close() + return 0 + ret_length = min( + len(byte_obj), len(self.current_buffer) - self.current_buffer_pos + ) + byte_obj[0:ret_length] = self.current_buffer[ + self.current_buffer_pos : self.current_buffer_pos + ret_length + ] + self.current_buffer_pos += ret_length + if self.current_buffer_pos == len(self.current_buffer): + self.current_buffer = None + return ret_length + + +# check if we are in a worker or not +def is_in_browser_main_thread() -> bool: + return hasattr(js, "window") and hasattr(js, "self") and js.self == js.window + + +def is_cross_origin_isolated() -> bool: + return hasattr(js, "crossOriginIsolated") and js.crossOriginIsolated + + +def is_in_node() -> bool: + return ( + hasattr(js, "process") + and hasattr(js.process, "release") + and hasattr(js.process.release, "name") + and js.process.release.name == "node" + ) + + +def is_worker_available() -> bool: + return hasattr(js, "Worker") and hasattr(js, "Blob") + + +_fetcher: _StreamingFetcher | None = None + +if is_worker_available() and ( + (is_cross_origin_isolated() and not is_in_browser_main_thread()) + and (not is_in_node()) +): + _fetcher = _StreamingFetcher() +else: + _fetcher = None + + +NODE_JSPI_ERROR = ( + "urllib3 only works in Node.js with pyodide.runPythonAsync" + " and requires the flag --experimental-wasm-stack-switching in " + " versions of node <24." +) + + +def send_streaming_request(request: EmscriptenRequest) -> EmscriptenResponse | None: + if has_jspi(): + return send_jspi_request(request, True) + elif is_in_node(): + raise _RequestError( + message=NODE_JSPI_ERROR, + request=request, + response=None, + ) + + if _fetcher and streaming_ready(): + return _fetcher.send(request) + else: + _show_streaming_warning() + return None + + +_SHOWN_TIMEOUT_WARNING = False + + +def _show_timeout_warning() -> None: + global _SHOWN_TIMEOUT_WARNING + if not _SHOWN_TIMEOUT_WARNING: + _SHOWN_TIMEOUT_WARNING = True + message = "Warning: Timeout is not available on main browser thread" + js.console.warn(message) + + +_SHOWN_STREAMING_WARNING = False + + +def _show_streaming_warning() -> None: + global _SHOWN_STREAMING_WARNING + if not _SHOWN_STREAMING_WARNING: + _SHOWN_STREAMING_WARNING = True + message = "Can't stream HTTP requests because: \n" + if not is_cross_origin_isolated(): + message += " Page is not cross-origin isolated\n" + if is_in_browser_main_thread(): + message += " Python is running in main browser thread\n" + if not is_worker_available(): + message += " Worker or Blob classes are not available in this environment." # Defensive: this is always False in browsers that we test in + if streaming_ready() is False: + message += """ Streaming fetch worker isn't ready. If you want to be sure that streaming fetch +is working, you need to call: 'await urllib3.contrib.emscripten.fetch.wait_for_streaming_ready()`""" + from js import console + + console.warn(message) + + +def send_request(request: EmscriptenRequest) -> EmscriptenResponse: + if has_jspi(): + return send_jspi_request(request, False) + elif is_in_node(): + raise _RequestError( + message=NODE_JSPI_ERROR, + request=request, + response=None, + ) + try: + js_xhr = js.XMLHttpRequest.new() + + if not is_in_browser_main_thread(): + js_xhr.responseType = "arraybuffer" + if request.timeout: + js_xhr.timeout = int(request.timeout * 1000) + else: + js_xhr.overrideMimeType("text/plain; charset=ISO-8859-15") + if request.timeout: + # timeout isn't available on the main thread - show a warning in console + # if it is set + _show_timeout_warning() + + js_xhr.open(request.method, request.url, False) + for name, value in request.headers.items(): + if name.lower() not in HEADERS_TO_IGNORE: + js_xhr.setRequestHeader(name, value) + + js_xhr.send(to_js(request.body)) + + headers = dict(Parser().parsestr(js_xhr.getAllResponseHeaders())) + + if not is_in_browser_main_thread(): + body = js_xhr.response.to_py().tobytes() + else: + body = js_xhr.response.encode("ISO-8859-15") + return EmscriptenResponse( + status_code=js_xhr.status, headers=headers, body=body, request=request + ) + except JsException as err: + if err.name == "TimeoutError": + raise _TimeoutError(err.message, request=request) + elif err.name == "NetworkError": + raise _RequestError(err.message, request=request) + else: + # general http error + raise _RequestError(err.message, request=request) + + +def send_jspi_request( + request: EmscriptenRequest, streaming: bool +) -> EmscriptenResponse: + """ + Send a request using WebAssembly JavaScript Promise Integration + to wrap the asynchronous JavaScript fetch api (experimental). + + :param request: + Request to send + + :param streaming: + Whether to stream the response + + :return: The response object + :rtype: EmscriptenResponse + """ + timeout = request.timeout + js_abort_controller = js.AbortController.new() + headers = {k: v for k, v in request.headers.items() if k not in HEADERS_TO_IGNORE} + req_body = request.body + fetch_data = { + "headers": headers, + "body": to_js(req_body), + "method": request.method, + "signal": js_abort_controller.signal, + } + # Node.js returns the whole response (unlike opaqueredirect in browsers), + # so urllib3 can set `redirect: manual` to control redirects itself. + # https://stackoverflow.com/a/78524615 + if _is_node_js(): + fetch_data["redirect"] = "manual" + # Call JavaScript fetch (async api, returns a promise) + fetcher_promise_js = js.fetch(request.url, _obj_from_dict(fetch_data)) + # Now suspend WebAssembly until we resolve that promise + # or time out. + response_js = _run_sync_with_timeout( + fetcher_promise_js, + timeout, + js_abort_controller, + request=request, + response=None, + ) + headers = {} + header_iter = response_js.headers.entries() + while True: + iter_value_js = header_iter.next() + if getattr(iter_value_js, "done", False): + break + else: + headers[str(iter_value_js.value[0])] = str(iter_value_js.value[1]) + status_code = response_js.status + body: bytes | io.RawIOBase = b"" + + response = EmscriptenResponse( + status_code=status_code, headers=headers, body=b"", request=request + ) + if streaming: + # get via inputstream + if response_js.body is not None: + # get a reader from the fetch response + body_stream_js = response_js.body.getReader() + body = _JSPIReadStream( + body_stream_js, timeout, request, response, js_abort_controller + ) + else: + # get directly via arraybuffer + # n.b. this is another async JavaScript call. + body = _run_sync_with_timeout( + response_js.arrayBuffer(), + timeout, + js_abort_controller, + request=request, + response=response, + ).to_py() + response.body = body + return response + + +def _run_sync_with_timeout( + promise: Any, + timeout: float, + js_abort_controller: Any, + request: EmscriptenRequest | None, + response: EmscriptenResponse | None, +) -> Any: + """ + Await a JavaScript promise synchronously with a timeout which is implemented + via the AbortController + + :param promise: + Javascript promise to await + + :param timeout: + Timeout in seconds + + :param js_abort_controller: + A JavaScript AbortController object, used on timeout + + :param request: + The request being handled + + :param response: + The response being handled (if it exists yet) + + :raises _TimeoutError: If the request times out + :raises _RequestError: If the request raises a JavaScript exception + + :return: The result of awaiting the promise. + """ + timer_id = None + if timeout > 0: + timer_id = js.setTimeout( + js_abort_controller.abort.bind(js_abort_controller), int(timeout * 1000) + ) + try: + from pyodide.ffi import run_sync + + # run_sync here uses WebAssembly JavaScript Promise Integration to + # suspend python until the JavaScript promise resolves. + return run_sync(promise) + except JsException as err: + if err.name == "AbortError": + raise _TimeoutError( + message="Request timed out", request=request, response=response + ) + else: + raise _RequestError(message=err.message, request=request, response=response) + finally: + if timer_id is not None: + js.clearTimeout(timer_id) + + +def has_jspi() -> bool: + """ + Return true if jspi can be used. + + This requires both browser support and also WebAssembly + to be in the correct state - i.e. that the javascript + call into python was async not sync. + + :return: True if jspi can be used. + :rtype: bool + """ + try: + from pyodide.ffi import can_run_sync, run_sync # noqa: F401 + + return bool(can_run_sync()) + except ImportError: + return False + + +def _is_node_js() -> bool: + """ + Check if we are in Node.js. + + :return: True if we are in Node.js. + :rtype: bool + """ + return ( + hasattr(js, "process") + and hasattr(js.process, "release") + # According to the Node.js documentation, the release name is always "node". + and js.process.release.name == "node" + ) + + +def streaming_ready() -> bool | None: + if _fetcher: + return _fetcher.streaming_ready + else: + return None # no fetcher, return None to signify that + + +async def wait_for_streaming_ready() -> bool: + if _fetcher: + await _fetcher.js_worker_ready_promise + return True + else: + return False diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/request.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/request.py new file mode 100644 index 00000000..e692e692 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/request.py @@ -0,0 +1,22 @@ +from __future__ import annotations + +from dataclasses import dataclass, field + +from ..._base_connection import _TYPE_BODY + + +@dataclass +class EmscriptenRequest: + method: str + url: str + params: dict[str, str] | None = None + body: _TYPE_BODY | None = None + headers: dict[str, str] = field(default_factory=dict) + timeout: float = 0 + decode_content: bool = True + + def set_header(self, name: str, value: str) -> None: + self.headers[name.capitalize()] = value + + def set_body(self, body: _TYPE_BODY | None) -> None: + self.body = body diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/response.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/response.py new file mode 100644 index 00000000..cb1088a1 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/response.py @@ -0,0 +1,277 @@ +from __future__ import annotations + +import json as _json +import logging +import typing +from contextlib import contextmanager +from dataclasses import dataclass +from http.client import HTTPException as HTTPException +from io import BytesIO, IOBase + +from ...exceptions import InvalidHeader, TimeoutError +from ...response import BaseHTTPResponse +from ...util.retry import Retry +from .request import EmscriptenRequest + +if typing.TYPE_CHECKING: + from ..._base_connection import BaseHTTPConnection, BaseHTTPSConnection + +log = logging.getLogger(__name__) + + +@dataclass +class EmscriptenResponse: + status_code: int + headers: dict[str, str] + body: IOBase | bytes + request: EmscriptenRequest + + +class EmscriptenHttpResponseWrapper(BaseHTTPResponse): + def __init__( + self, + internal_response: EmscriptenResponse, + url: str | None = None, + connection: BaseHTTPConnection | BaseHTTPSConnection | None = None, + ): + self._pool = None # set by pool class + self._body = None + self._response = internal_response + self._url = url + self._connection = connection + self._closed = False + super().__init__( + headers=internal_response.headers, + status=internal_response.status_code, + request_url=url, + version=0, + version_string="HTTP/?", + reason="", + decode_content=True, + ) + self.length_remaining = self._init_length(self._response.request.method) + self.length_is_certain = False + + @property + def url(self) -> str | None: + return self._url + + @url.setter + def url(self, url: str | None) -> None: + self._url = url + + @property + def connection(self) -> BaseHTTPConnection | BaseHTTPSConnection | None: + return self._connection + + @property + def retries(self) -> Retry | None: + return self._retries + + @retries.setter + def retries(self, retries: Retry | None) -> None: + # Override the request_url if retries has a redirect location. + self._retries = retries + + def stream( + self, amt: int | None = 2**16, decode_content: bool | None = None + ) -> typing.Generator[bytes]: + """ + A generator wrapper for the read() method. A call will block until + ``amt`` bytes have been read from the connection or until the + connection is closed. + + :param amt: + How much of the content to read. The generator will return up to + much data per iteration, but may return less. This is particularly + likely when using compressed data. However, the empty string will + never be returned. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + """ + while True: + data = self.read(amt=amt, decode_content=decode_content) + + if data: + yield data + else: + break + + def _init_length(self, request_method: str | None) -> int | None: + length: int | None + content_length: str | None = self.headers.get("content-length") + + if content_length is not None: + try: + # RFC 7230 section 3.3.2 specifies multiple content lengths can + # be sent in a single Content-Length header + # (e.g. Content-Length: 42, 42). This line ensures the values + # are all valid ints and that as long as the `set` length is 1, + # all values are the same. Otherwise, the header is invalid. + lengths = {int(val) for val in content_length.split(",")} + if len(lengths) > 1: + raise InvalidHeader( + "Content-Length contained multiple " + "unmatching values (%s)" % content_length + ) + length = lengths.pop() + except ValueError: + length = None + else: + if length < 0: + length = None + + else: # if content_length is None + length = None + + # Check for responses that shouldn't include a body + if ( + self.status in (204, 304) + or 100 <= self.status < 200 + or request_method == "HEAD" + ): + length = 0 + + return length + + def read( + self, + amt: int | None = None, + decode_content: bool | None = None, # ignored because browser decodes always + cache_content: bool = False, + ) -> bytes: + if ( + self._closed + or self._response is None + or (isinstance(self._response.body, IOBase) and self._response.body.closed) + ): + return b"" + + with self._error_catcher(): + # body has been preloaded as a string by XmlHttpRequest + if not isinstance(self._response.body, IOBase): + self.length_remaining = len(self._response.body) + self.length_is_certain = True + # wrap body in IOStream + self._response.body = BytesIO(self._response.body) + if amt is not None and amt >= 0: + # don't cache partial content + cache_content = False + data = self._response.body.read(amt) + else: # read all we can (and cache it) + data = self._response.body.read() + if cache_content: + self._body = data + if self.length_remaining is not None: + self.length_remaining = max(self.length_remaining - len(data), 0) + if len(data) == 0 or ( + self.length_is_certain and self.length_remaining == 0 + ): + # definitely finished reading, close response stream + self._response.body.close() + return typing.cast(bytes, data) + + def read_chunked( + self, + amt: int | None = None, + decode_content: bool | None = None, + ) -> typing.Generator[bytes]: + # chunked is handled by browser + while True: + bytes = self.read(amt, decode_content) + if not bytes: + break + yield bytes + + def release_conn(self) -> None: + if not self._pool or not self._connection: + return None + + self._pool._put_conn(self._connection) + self._connection = None + + def drain_conn(self) -> None: + self.close() + + @property + def data(self) -> bytes: + if self._body: + return self._body + else: + return self.read(cache_content=True) + + def json(self) -> typing.Any: + """ + Deserializes the body of the HTTP response as a Python object. + + The body of the HTTP response must be encoded using UTF-8, as per + `RFC 8529 Section 8.1 `_. + + To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to + your custom decoder instead. + + If the body of the HTTP response is not decodable to UTF-8, a + `UnicodeDecodeError` will be raised. If the body of the HTTP response is not a + valid JSON document, a `json.JSONDecodeError` will be raised. + + Read more :ref:`here `. + + :returns: The body of the HTTP response as a Python object. + """ + data = self.data.decode("utf-8") + return _json.loads(data) + + def close(self) -> None: + if not self._closed: + if isinstance(self._response.body, IOBase): + self._response.body.close() + if self._connection: + self._connection.close() + self._connection = None + self._closed = True + + @contextmanager + def _error_catcher(self) -> typing.Generator[None]: + """ + Catch Emscripten specific exceptions thrown by fetch.py, + instead re-raising urllib3 variants, so that low-level exceptions + are not leaked in the high-level api. + + On exit, release the connection back to the pool. + """ + from .fetch import _RequestError, _TimeoutError # avoid circular import + + clean_exit = False + + try: + yield + # If no exception is thrown, we should avoid cleaning up + # unnecessarily. + clean_exit = True + except _TimeoutError as e: + raise TimeoutError(str(e)) + except _RequestError as e: + raise HTTPException(str(e)) + finally: + # If we didn't terminate cleanly, we need to throw away our + # connection. + if not clean_exit: + # The response may not be closed but we're not going to use it + # anymore so close it now + if ( + isinstance(self._response.body, IOBase) + and not self._response.body.closed + ): + self._response.body.close() + # release the connection back to the pool + self.release_conn() + else: + # If we have read everything from the response stream, + # return the connection back to the pool. + if ( + isinstance(self._response.body, IOBase) + and self._response.body.closed + ): + self.release_conn() diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/pyopenssl.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/pyopenssl.py new file mode 100644 index 00000000..3714500e --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/pyopenssl.py @@ -0,0 +1,564 @@ +""" +Module for using pyOpenSSL as a TLS backend. This module was relevant before +the standard library ``ssl`` module supported SNI, but now that we've dropped +support for Python 2.7 all relevant Python versions support SNI so +**this module is no longer recommended**. + +This needs the following packages installed: + +* `pyOpenSSL`_ (tested with 16.0.0) +* `cryptography`_ (minimum 1.3.4, from pyopenssl) +* `idna`_ (minimum 2.0) + +However, pyOpenSSL depends on cryptography, so while we use all three directly here we +end up having relatively few packages required. + +You can install them with the following command: + +.. code-block:: bash + + $ python -m pip install pyopenssl cryptography idna + +To activate certificate checking, call +:func:`~urllib3.contrib.pyopenssl.inject_into_urllib3` from your Python code +before you begin making HTTP requests. This can be done in a ``sitecustomize`` +module, or at any other time before your application begins using ``urllib3``, +like this: + +.. code-block:: python + + try: + import urllib3.contrib.pyopenssl + urllib3.contrib.pyopenssl.inject_into_urllib3() + except ImportError: + pass + +.. _pyopenssl: https://www.pyopenssl.org +.. _cryptography: https://cryptography.io +.. _idna: https://github.com/kjd/idna +""" + +from __future__ import annotations + +import OpenSSL.SSL # type: ignore[import-untyped] +from cryptography import x509 + +try: + from cryptography.x509 import UnsupportedExtension # type: ignore[attr-defined] +except ImportError: + # UnsupportedExtension is gone in cryptography >= 2.1.0 + class UnsupportedExtension(Exception): # type: ignore[no-redef] + pass + + +import logging +import ssl +import typing +from io import BytesIO +from socket import socket as socket_cls +from socket import timeout + +from .. import util + +if typing.TYPE_CHECKING: + from OpenSSL.crypto import X509 # type: ignore[import-untyped] + + +__all__ = ["inject_into_urllib3", "extract_from_urllib3"] + +# Map from urllib3 to PyOpenSSL compatible parameter-values. +_openssl_versions: dict[int, int] = { + util.ssl_.PROTOCOL_TLS: OpenSSL.SSL.SSLv23_METHOD, # type: ignore[attr-defined] + util.ssl_.PROTOCOL_TLS_CLIENT: OpenSSL.SSL.SSLv23_METHOD, # type: ignore[attr-defined] + ssl.PROTOCOL_TLSv1: OpenSSL.SSL.TLSv1_METHOD, +} + +if hasattr(ssl, "PROTOCOL_TLSv1_1") and hasattr(OpenSSL.SSL, "TLSv1_1_METHOD"): + _openssl_versions[ssl.PROTOCOL_TLSv1_1] = OpenSSL.SSL.TLSv1_1_METHOD + +if hasattr(ssl, "PROTOCOL_TLSv1_2") and hasattr(OpenSSL.SSL, "TLSv1_2_METHOD"): + _openssl_versions[ssl.PROTOCOL_TLSv1_2] = OpenSSL.SSL.TLSv1_2_METHOD + + +_stdlib_to_openssl_verify = { + ssl.CERT_NONE: OpenSSL.SSL.VERIFY_NONE, + ssl.CERT_OPTIONAL: OpenSSL.SSL.VERIFY_PEER, + ssl.CERT_REQUIRED: OpenSSL.SSL.VERIFY_PEER + + OpenSSL.SSL.VERIFY_FAIL_IF_NO_PEER_CERT, +} +_openssl_to_stdlib_verify = {v: k for k, v in _stdlib_to_openssl_verify.items()} + +# The SSLvX values are the most likely to be missing in the future +# but we check them all just to be sure. +_OP_NO_SSLv2_OR_SSLv3: int = getattr(OpenSSL.SSL, "OP_NO_SSLv2", 0) | getattr( + OpenSSL.SSL, "OP_NO_SSLv3", 0 +) +_OP_NO_TLSv1: int = getattr(OpenSSL.SSL, "OP_NO_TLSv1", 0) +_OP_NO_TLSv1_1: int = getattr(OpenSSL.SSL, "OP_NO_TLSv1_1", 0) +_OP_NO_TLSv1_2: int = getattr(OpenSSL.SSL, "OP_NO_TLSv1_2", 0) +_OP_NO_TLSv1_3: int = getattr(OpenSSL.SSL, "OP_NO_TLSv1_3", 0) + +_openssl_to_ssl_minimum_version: dict[int, int] = { + ssl.TLSVersion.MINIMUM_SUPPORTED: _OP_NO_SSLv2_OR_SSLv3, + ssl.TLSVersion.TLSv1: _OP_NO_SSLv2_OR_SSLv3, + ssl.TLSVersion.TLSv1_1: _OP_NO_SSLv2_OR_SSLv3 | _OP_NO_TLSv1, + ssl.TLSVersion.TLSv1_2: _OP_NO_SSLv2_OR_SSLv3 | _OP_NO_TLSv1 | _OP_NO_TLSv1_1, + ssl.TLSVersion.TLSv1_3: ( + _OP_NO_SSLv2_OR_SSLv3 | _OP_NO_TLSv1 | _OP_NO_TLSv1_1 | _OP_NO_TLSv1_2 + ), + ssl.TLSVersion.MAXIMUM_SUPPORTED: ( + _OP_NO_SSLv2_OR_SSLv3 | _OP_NO_TLSv1 | _OP_NO_TLSv1_1 | _OP_NO_TLSv1_2 + ), +} +_openssl_to_ssl_maximum_version: dict[int, int] = { + ssl.TLSVersion.MINIMUM_SUPPORTED: ( + _OP_NO_SSLv2_OR_SSLv3 + | _OP_NO_TLSv1 + | _OP_NO_TLSv1_1 + | _OP_NO_TLSv1_2 + | _OP_NO_TLSv1_3 + ), + ssl.TLSVersion.TLSv1: ( + _OP_NO_SSLv2_OR_SSLv3 | _OP_NO_TLSv1_1 | _OP_NO_TLSv1_2 | _OP_NO_TLSv1_3 + ), + ssl.TLSVersion.TLSv1_1: _OP_NO_SSLv2_OR_SSLv3 | _OP_NO_TLSv1_2 | _OP_NO_TLSv1_3, + ssl.TLSVersion.TLSv1_2: _OP_NO_SSLv2_OR_SSLv3 | _OP_NO_TLSv1_3, + ssl.TLSVersion.TLSv1_3: _OP_NO_SSLv2_OR_SSLv3, + ssl.TLSVersion.MAXIMUM_SUPPORTED: _OP_NO_SSLv2_OR_SSLv3, +} + +# OpenSSL will only write 16K at a time +SSL_WRITE_BLOCKSIZE = 16384 + +orig_util_SSLContext = util.ssl_.SSLContext + + +log = logging.getLogger(__name__) + + +def inject_into_urllib3() -> None: + "Monkey-patch urllib3 with PyOpenSSL-backed SSL-support." + + _validate_dependencies_met() + + util.SSLContext = PyOpenSSLContext # type: ignore[assignment] + util.ssl_.SSLContext = PyOpenSSLContext # type: ignore[assignment] + util.IS_PYOPENSSL = True + util.ssl_.IS_PYOPENSSL = True + + +def extract_from_urllib3() -> None: + "Undo monkey-patching by :func:`inject_into_urllib3`." + + util.SSLContext = orig_util_SSLContext + util.ssl_.SSLContext = orig_util_SSLContext + util.IS_PYOPENSSL = False + util.ssl_.IS_PYOPENSSL = False + + +def _validate_dependencies_met() -> None: + """ + Verifies that PyOpenSSL's package-level dependencies have been met. + Throws `ImportError` if they are not met. + """ + # Method added in `cryptography==1.1`; not available in older versions + from cryptography.x509.extensions import Extensions + + if getattr(Extensions, "get_extension_for_class", None) is None: + raise ImportError( + "'cryptography' module missing required functionality. " + "Try upgrading to v1.3.4 or newer." + ) + + # pyOpenSSL 0.14 and above use cryptography for OpenSSL bindings. The _x509 + # attribute is only present on those versions. + from OpenSSL.crypto import X509 + + x509 = X509() + if getattr(x509, "_x509", None) is None: + raise ImportError( + "'pyOpenSSL' module missing required functionality. " + "Try upgrading to v0.14 or newer." + ) + + +def _dnsname_to_stdlib(name: str) -> str | None: + """ + Converts a dNSName SubjectAlternativeName field to the form used by the + standard library on the given Python version. + + Cryptography produces a dNSName as a unicode string that was idna-decoded + from ASCII bytes. We need to idna-encode that string to get it back, and + then on Python 3 we also need to convert to unicode via UTF-8 (the stdlib + uses PyUnicode_FromStringAndSize on it, which decodes via UTF-8). + + If the name cannot be idna-encoded then we return None signalling that + the name given should be skipped. + """ + + def idna_encode(name: str) -> bytes | None: + """ + Borrowed wholesale from the Python Cryptography Project. It turns out + that we can't just safely call `idna.encode`: it can explode for + wildcard names. This avoids that problem. + """ + import idna + + try: + for prefix in ["*.", "."]: + if name.startswith(prefix): + name = name[len(prefix) :] + return prefix.encode("ascii") + idna.encode(name) + return idna.encode(name) + except idna.core.IDNAError: + return None + + # Don't send IPv6 addresses through the IDNA encoder. + if ":" in name: + return name + + encoded_name = idna_encode(name) + if encoded_name is None: + return None + return encoded_name.decode("utf-8") + + +def get_subj_alt_name(peer_cert: X509) -> list[tuple[str, str]]: + """ + Given an PyOpenSSL certificate, provides all the subject alternative names. + """ + cert = peer_cert.to_cryptography() + + # We want to find the SAN extension. Ask Cryptography to locate it (it's + # faster than looping in Python) + try: + ext = cert.extensions.get_extension_for_class(x509.SubjectAlternativeName).value + except x509.ExtensionNotFound: + # No such extension, return the empty list. + return [] + except ( + x509.DuplicateExtension, + UnsupportedExtension, + x509.UnsupportedGeneralNameType, + UnicodeError, + ) as e: + # A problem has been found with the quality of the certificate. Assume + # no SAN field is present. + log.warning( + "A problem was encountered with the certificate that prevented " + "urllib3 from finding the SubjectAlternativeName field. This can " + "affect certificate validation. The error was %s", + e, + ) + return [] + + # We want to return dNSName and iPAddress fields. We need to cast the IPs + # back to strings because the match_hostname function wants them as + # strings. + # Sadly the DNS names need to be idna encoded and then, on Python 3, UTF-8 + # decoded. This is pretty frustrating, but that's what the standard library + # does with certificates, and so we need to attempt to do the same. + # We also want to skip over names which cannot be idna encoded. + names = [ + ("DNS", name) + for name in map(_dnsname_to_stdlib, ext.get_values_for_type(x509.DNSName)) + if name is not None + ] + names.extend( + ("IP Address", str(name)) for name in ext.get_values_for_type(x509.IPAddress) + ) + + return names + + +class WrappedSocket: + """API-compatibility wrapper for Python OpenSSL's Connection-class.""" + + def __init__( + self, + connection: OpenSSL.SSL.Connection, + socket: socket_cls, + suppress_ragged_eofs: bool = True, + ) -> None: + self.connection = connection + self.socket = socket + self.suppress_ragged_eofs = suppress_ragged_eofs + self._io_refs = 0 + self._closed = False + + def fileno(self) -> int: + return self.socket.fileno() + + # Copy-pasted from Python 3.5 source code + def _decref_socketios(self) -> None: + if self._io_refs > 0: + self._io_refs -= 1 + if self._closed: + self.close() + + def recv(self, *args: typing.Any, **kwargs: typing.Any) -> bytes: + try: + data = self.connection.recv(*args, **kwargs) + except OpenSSL.SSL.SysCallError as e: + if self.suppress_ragged_eofs and e.args == (-1, "Unexpected EOF"): + return b"" + else: + raise OSError(e.args[0], str(e)) from e + except OpenSSL.SSL.ZeroReturnError: + if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN: + return b"" + else: + raise + except OpenSSL.SSL.WantReadError as e: + if not util.wait_for_read(self.socket, self.socket.gettimeout()): + raise timeout("The read operation timed out") from e + else: + return self.recv(*args, **kwargs) + + # TLS 1.3 post-handshake authentication + except OpenSSL.SSL.Error as e: + raise ssl.SSLError(f"read error: {e!r}") from e + else: + return data # type: ignore[no-any-return] + + def recv_into(self, *args: typing.Any, **kwargs: typing.Any) -> int: + try: + return self.connection.recv_into(*args, **kwargs) # type: ignore[no-any-return] + except OpenSSL.SSL.SysCallError as e: + if self.suppress_ragged_eofs and e.args == (-1, "Unexpected EOF"): + return 0 + else: + raise OSError(e.args[0], str(e)) from e + except OpenSSL.SSL.ZeroReturnError: + if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN: + return 0 + else: + raise + except OpenSSL.SSL.WantReadError as e: + if not util.wait_for_read(self.socket, self.socket.gettimeout()): + raise timeout("The read operation timed out") from e + else: + return self.recv_into(*args, **kwargs) + + # TLS 1.3 post-handshake authentication + except OpenSSL.SSL.Error as e: + raise ssl.SSLError(f"read error: {e!r}") from e + + def settimeout(self, timeout: float) -> None: + return self.socket.settimeout(timeout) + + def _send_until_done(self, data: bytes) -> int: + while True: + try: + return self.connection.send(data) # type: ignore[no-any-return] + except OpenSSL.SSL.WantWriteError as e: + if not util.wait_for_write(self.socket, self.socket.gettimeout()): + raise timeout() from e + continue + except OpenSSL.SSL.SysCallError as e: + raise OSError(e.args[0], str(e)) from e + + def sendall(self, data: bytes) -> None: + total_sent = 0 + while total_sent < len(data): + sent = self._send_until_done( + data[total_sent : total_sent + SSL_WRITE_BLOCKSIZE] + ) + total_sent += sent + + def shutdown(self, how: int) -> None: + try: + self.connection.shutdown() + except OpenSSL.SSL.Error as e: + raise ssl.SSLError(f"shutdown error: {e!r}") from e + + def close(self) -> None: + self._closed = True + if self._io_refs <= 0: + self._real_close() + + def _real_close(self) -> None: + try: + return self.connection.close() # type: ignore[no-any-return] + except OpenSSL.SSL.Error: + return + + def getpeercert( + self, binary_form: bool = False + ) -> dict[str, list[typing.Any]] | None: + x509 = self.connection.get_peer_certificate() + + if not x509: + return x509 # type: ignore[no-any-return] + + if binary_form: + return OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1, x509) # type: ignore[no-any-return] + + return { + "subject": ((("commonName", x509.get_subject().CN),),), # type: ignore[dict-item] + "subjectAltName": get_subj_alt_name(x509), + } + + def version(self) -> str: + return self.connection.get_protocol_version_name() # type: ignore[no-any-return] + + def selected_alpn_protocol(self) -> str | None: + alpn_proto = self.connection.get_alpn_proto_negotiated() + return alpn_proto.decode() if alpn_proto else None + + +WrappedSocket.makefile = socket_cls.makefile # type: ignore[attr-defined] + + +class PyOpenSSLContext: + """ + I am a wrapper class for the PyOpenSSL ``Context`` object. I am responsible + for translating the interface of the standard library ``SSLContext`` object + to calls into PyOpenSSL. + """ + + def __init__(self, protocol: int) -> None: + self.protocol = _openssl_versions[protocol] + self._ctx = OpenSSL.SSL.Context(self.protocol) + self._options = 0 + self.check_hostname = False + self._minimum_version: int = ssl.TLSVersion.MINIMUM_SUPPORTED + self._maximum_version: int = ssl.TLSVersion.MAXIMUM_SUPPORTED + self._verify_flags: int = ssl.VERIFY_X509_TRUSTED_FIRST + + @property + def options(self) -> int: + return self._options + + @options.setter + def options(self, value: int) -> None: + self._options = value + self._set_ctx_options() + + @property + def verify_flags(self) -> int: + return self._verify_flags + + @verify_flags.setter + def verify_flags(self, value: int) -> None: + self._verify_flags = value + self._ctx.get_cert_store().set_flags(self._verify_flags) + + @property + def verify_mode(self) -> int: + return _openssl_to_stdlib_verify[self._ctx.get_verify_mode()] + + @verify_mode.setter + def verify_mode(self, value: ssl.VerifyMode) -> None: + self._ctx.set_verify(_stdlib_to_openssl_verify[value], _verify_callback) + + def set_default_verify_paths(self) -> None: + self._ctx.set_default_verify_paths() + + def set_ciphers(self, ciphers: bytes | str) -> None: + if isinstance(ciphers, str): + ciphers = ciphers.encode("utf-8") + self._ctx.set_cipher_list(ciphers) + + def load_verify_locations( + self, + cafile: str | None = None, + capath: str | None = None, + cadata: bytes | None = None, + ) -> None: + if cafile is not None: + cafile = cafile.encode("utf-8") # type: ignore[assignment] + if capath is not None: + capath = capath.encode("utf-8") # type: ignore[assignment] + try: + self._ctx.load_verify_locations(cafile, capath) + if cadata is not None: + self._ctx.load_verify_locations(BytesIO(cadata)) + except OpenSSL.SSL.Error as e: + raise ssl.SSLError(f"unable to load trusted certificates: {e!r}") from e + + def load_cert_chain( + self, + certfile: str, + keyfile: str | None = None, + password: str | None = None, + ) -> None: + try: + self._ctx.use_certificate_chain_file(certfile) + if password is not None: + if not isinstance(password, bytes): + password = password.encode("utf-8") # type: ignore[assignment] + self._ctx.set_passwd_cb(lambda *_: password) + self._ctx.use_privatekey_file(keyfile or certfile) + except OpenSSL.SSL.Error as e: + raise ssl.SSLError(f"Unable to load certificate chain: {e!r}") from e + + def set_alpn_protocols(self, protocols: list[bytes | str]) -> None: + protocols = [util.util.to_bytes(p, "ascii") for p in protocols] + return self._ctx.set_alpn_protos(protocols) # type: ignore[no-any-return] + + def wrap_socket( + self, + sock: socket_cls, + server_side: bool = False, + do_handshake_on_connect: bool = True, + suppress_ragged_eofs: bool = True, + server_hostname: bytes | str | None = None, + ) -> WrappedSocket: + cnx = OpenSSL.SSL.Connection(self._ctx, sock) + + # If server_hostname is an IP, don't use it for SNI, per RFC6066 Section 3 + if server_hostname and not util.ssl_.is_ipaddress(server_hostname): + if isinstance(server_hostname, str): + server_hostname = server_hostname.encode("utf-8") + cnx.set_tlsext_host_name(server_hostname) + + cnx.set_connect_state() + + while True: + try: + cnx.do_handshake() + except OpenSSL.SSL.WantReadError as e: + if not util.wait_for_read(sock, sock.gettimeout()): + raise timeout("select timed out") from e + continue + except OpenSSL.SSL.Error as e: + raise ssl.SSLError(f"bad handshake: {e!r}") from e + break + + return WrappedSocket(cnx, sock) + + def _set_ctx_options(self) -> None: + self._ctx.set_options( + self._options + | _openssl_to_ssl_minimum_version[self._minimum_version] + | _openssl_to_ssl_maximum_version[self._maximum_version] + ) + + @property + def minimum_version(self) -> int: + return self._minimum_version + + @minimum_version.setter + def minimum_version(self, minimum_version: int) -> None: + self._minimum_version = minimum_version + self._set_ctx_options() + + @property + def maximum_version(self) -> int: + return self._maximum_version + + @maximum_version.setter + def maximum_version(self, maximum_version: int) -> None: + self._maximum_version = maximum_version + self._set_ctx_options() + + +def _verify_callback( + cnx: OpenSSL.SSL.Connection, + x509: X509, + err_no: int, + err_depth: int, + return_code: int, +) -> bool: + return err_no == 0 diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/socks.py b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/socks.py new file mode 100644 index 00000000..c62b5e03 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/contrib/socks.py @@ -0,0 +1,228 @@ +""" +This module contains provisional support for SOCKS proxies from within +urllib3. This module supports SOCKS4, SOCKS4A (an extension of SOCKS4), and +SOCKS5. To enable its functionality, either install PySocks or install this +module with the ``socks`` extra. + +The SOCKS implementation supports the full range of urllib3 features. It also +supports the following SOCKS features: + +- SOCKS4A (``proxy_url='socks4a://...``) +- SOCKS4 (``proxy_url='socks4://...``) +- SOCKS5 with remote DNS (``proxy_url='socks5h://...``) +- SOCKS5 with local DNS (``proxy_url='socks5://...``) +- Usernames and passwords for the SOCKS proxy + +.. note:: + It is recommended to use ``socks5h://`` or ``socks4a://`` schemes in + your ``proxy_url`` to ensure that DNS resolution is done from the remote + server instead of client-side when connecting to a domain name. + +SOCKS4 supports IPv4 and domain names with the SOCKS4A extension. SOCKS5 +supports IPv4, IPv6, and domain names. + +When connecting to a SOCKS4 proxy the ``username`` portion of the ``proxy_url`` +will be sent as the ``userid`` section of the SOCKS request: + +.. code-block:: python + + proxy_url="socks4a://@proxy-host" + +When connecting to a SOCKS5 proxy the ``username`` and ``password`` portion +of the ``proxy_url`` will be sent as the username/password to authenticate +with the proxy: + +.. code-block:: python + + proxy_url="socks5h://:@proxy-host" + +""" + +from __future__ import annotations + +try: + import socks # type: ignore[import-not-found] +except ImportError: + import warnings + + from ..exceptions import DependencyWarning + + warnings.warn( + ( + "SOCKS support in urllib3 requires the installation of optional " + "dependencies: specifically, PySocks. For more information, see " + "https://urllib3.readthedocs.io/en/latest/advanced-usage.html#socks-proxies" + ), + DependencyWarning, + ) + raise + +import typing +from socket import timeout as SocketTimeout + +from ..connection import HTTPConnection, HTTPSConnection +from ..connectionpool import HTTPConnectionPool, HTTPSConnectionPool +from ..exceptions import ConnectTimeoutError, NewConnectionError +from ..poolmanager import PoolManager +from ..util.url import parse_url + +try: + import ssl +except ImportError: + ssl = None # type: ignore[assignment] + + +class _TYPE_SOCKS_OPTIONS(typing.TypedDict): + socks_version: int + proxy_host: str | None + proxy_port: str | None + username: str | None + password: str | None + rdns: bool + + +class SOCKSConnection(HTTPConnection): + """ + A plain-text HTTP connection that connects via a SOCKS proxy. + """ + + def __init__( + self, + _socks_options: _TYPE_SOCKS_OPTIONS, + *args: typing.Any, + **kwargs: typing.Any, + ) -> None: + self._socks_options = _socks_options + super().__init__(*args, **kwargs) + + def _new_conn(self) -> socks.socksocket: + """ + Establish a new connection via the SOCKS proxy. + """ + extra_kw: dict[str, typing.Any] = {} + if self.source_address: + extra_kw["source_address"] = self.source_address + + if self.socket_options: + extra_kw["socket_options"] = self.socket_options + + try: + conn = socks.create_connection( + (self.host, self.port), + proxy_type=self._socks_options["socks_version"], + proxy_addr=self._socks_options["proxy_host"], + proxy_port=self._socks_options["proxy_port"], + proxy_username=self._socks_options["username"], + proxy_password=self._socks_options["password"], + proxy_rdns=self._socks_options["rdns"], + timeout=self.timeout, + **extra_kw, + ) + + except SocketTimeout as e: + raise ConnectTimeoutError( + self, + f"Connection to {self.host} timed out. (connect timeout={self.timeout})", + ) from e + + except socks.ProxyError as e: + # This is fragile as hell, but it seems to be the only way to raise + # useful errors here. + if e.socket_err: + error = e.socket_err + if isinstance(error, SocketTimeout): + raise ConnectTimeoutError( + self, + f"Connection to {self.host} timed out. (connect timeout={self.timeout})", + ) from e + else: + # Adding `from e` messes with coverage somehow, so it's omitted. + # See #2386. + raise NewConnectionError( + self, f"Failed to establish a new connection: {error}" + ) + else: + raise NewConnectionError( + self, f"Failed to establish a new connection: {e}" + ) from e + + except OSError as e: # Defensive: PySocks should catch all these. + raise NewConnectionError( + self, f"Failed to establish a new connection: {e}" + ) from e + + return conn + + +# We don't need to duplicate the Verified/Unverified distinction from +# urllib3/connection.py here because the HTTPSConnection will already have been +# correctly set to either the Verified or Unverified form by that module. This +# means the SOCKSHTTPSConnection will automatically be the correct type. +class SOCKSHTTPSConnection(SOCKSConnection, HTTPSConnection): + pass + + +class SOCKSHTTPConnectionPool(HTTPConnectionPool): + ConnectionCls = SOCKSConnection + + +class SOCKSHTTPSConnectionPool(HTTPSConnectionPool): + ConnectionCls = SOCKSHTTPSConnection + + +class SOCKSProxyManager(PoolManager): + """ + A version of the urllib3 ProxyManager that routes connections via the + defined SOCKS proxy. + """ + + pool_classes_by_scheme = { + "http": SOCKSHTTPConnectionPool, + "https": SOCKSHTTPSConnectionPool, + } + + def __init__( + self, + proxy_url: str, + username: str | None = None, + password: str | None = None, + num_pools: int = 10, + headers: typing.Mapping[str, str] | None = None, + **connection_pool_kw: typing.Any, + ): + parsed = parse_url(proxy_url) + + if username is None and password is None and parsed.auth is not None: + split = parsed.auth.split(":") + if len(split) == 2: + username, password = split + if parsed.scheme == "socks5": + socks_version = socks.PROXY_TYPE_SOCKS5 + rdns = False + elif parsed.scheme == "socks5h": + socks_version = socks.PROXY_TYPE_SOCKS5 + rdns = True + elif parsed.scheme == "socks4": + socks_version = socks.PROXY_TYPE_SOCKS4 + rdns = False + elif parsed.scheme == "socks4a": + socks_version = socks.PROXY_TYPE_SOCKS4 + rdns = True + else: + raise ValueError(f"Unable to determine SOCKS version from {proxy_url}") + + self.proxy_url = proxy_url + + socks_options = { + "socks_version": socks_version, + "proxy_host": parsed.host, + "proxy_port": parsed.port, + "username": username, + "password": password, + "rdns": rdns, + } + connection_pool_kw["_socks_options"] = socks_options + + super().__init__(num_pools, headers, **connection_pool_kw) + + self.pool_classes_by_scheme = SOCKSProxyManager.pool_classes_by_scheme diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/exceptions.py b/Backend/venv/lib/python3.12/site-packages/urllib3/exceptions.py new file mode 100644 index 00000000..a0de9d6c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/exceptions.py @@ -0,0 +1,335 @@ +from __future__ import annotations + +import socket +import typing +import warnings +from email.errors import MessageDefect +from http.client import IncompleteRead as httplib_IncompleteRead + +if typing.TYPE_CHECKING: + from .connection import HTTPConnection + from .connectionpool import ConnectionPool + from .response import HTTPResponse + from .util.retry import Retry + +# Base Exceptions + + +class HTTPError(Exception): + """Base exception used by this module.""" + + +class HTTPWarning(Warning): + """Base warning used by this module.""" + + +_TYPE_REDUCE_RESULT = tuple[typing.Callable[..., object], tuple[object, ...]] + + +class PoolError(HTTPError): + """Base exception for errors caused within a pool.""" + + def __init__(self, pool: ConnectionPool, message: str) -> None: + self.pool = pool + self._message = message + super().__init__(f"{pool}: {message}") + + def __reduce__(self) -> _TYPE_REDUCE_RESULT: + # For pickling purposes. + return self.__class__, (None, self._message) + + +class RequestError(PoolError): + """Base exception for PoolErrors that have associated URLs.""" + + def __init__(self, pool: ConnectionPool, url: str, message: str) -> None: + self.url = url + super().__init__(pool, message) + + def __reduce__(self) -> _TYPE_REDUCE_RESULT: + # For pickling purposes. + return self.__class__, (None, self.url, self._message) + + +class SSLError(HTTPError): + """Raised when SSL certificate fails in an HTTPS connection.""" + + +class ProxyError(HTTPError): + """Raised when the connection to a proxy fails.""" + + # The original error is also available as __cause__. + original_error: Exception + + def __init__(self, message: str, error: Exception) -> None: + super().__init__(message, error) + self.original_error = error + + +class DecodeError(HTTPError): + """Raised when automatic decoding based on Content-Type fails.""" + + +class ProtocolError(HTTPError): + """Raised when something unexpected happens mid-request/response.""" + + +#: Renamed to ProtocolError but aliased for backwards compatibility. +ConnectionError = ProtocolError + + +# Leaf Exceptions + + +class MaxRetryError(RequestError): + """Raised when the maximum number of retries is exceeded. + + :param pool: The connection pool + :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool` + :param str url: The requested Url + :param reason: The underlying error + :type reason: :class:`Exception` + + """ + + def __init__( + self, pool: ConnectionPool, url: str, reason: Exception | None = None + ) -> None: + self.reason = reason + + message = f"Max retries exceeded with url: {url} (Caused by {reason!r})" + + super().__init__(pool, url, message) + + def __reduce__(self) -> _TYPE_REDUCE_RESULT: + # For pickling purposes. + return self.__class__, (None, self.url, self.reason) + + +class HostChangedError(RequestError): + """Raised when an existing pool gets a request for a foreign host.""" + + def __init__( + self, pool: ConnectionPool, url: str, retries: Retry | int = 3 + ) -> None: + message = f"Tried to open a foreign host with url: {url}" + super().__init__(pool, url, message) + self.retries = retries + + +class TimeoutStateError(HTTPError): + """Raised when passing an invalid state to a timeout""" + + +class TimeoutError(HTTPError): + """Raised when a socket timeout error occurs. + + Catching this error will catch both :exc:`ReadTimeoutErrors + ` and :exc:`ConnectTimeoutErrors `. + """ + + +class ReadTimeoutError(TimeoutError, RequestError): + """Raised when a socket timeout occurs while receiving data from a server""" + + +# This timeout error does not have a URL attached and needs to inherit from the +# base HTTPError +class ConnectTimeoutError(TimeoutError): + """Raised when a socket timeout occurs while connecting to a server""" + + +class NewConnectionError(ConnectTimeoutError, HTTPError): + """Raised when we fail to establish a new connection. Usually ECONNREFUSED.""" + + def __init__(self, conn: HTTPConnection, message: str) -> None: + self.conn = conn + self._message = message + super().__init__(f"{conn}: {message}") + + def __reduce__(self) -> _TYPE_REDUCE_RESULT: + # For pickling purposes. + return self.__class__, (None, self._message) + + @property + def pool(self) -> HTTPConnection: + warnings.warn( + "The 'pool' property is deprecated and will be removed " + "in urllib3 v2.1.0. Use 'conn' instead.", + DeprecationWarning, + stacklevel=2, + ) + + return self.conn + + +class NameResolutionError(NewConnectionError): + """Raised when host name resolution fails.""" + + def __init__(self, host: str, conn: HTTPConnection, reason: socket.gaierror): + message = f"Failed to resolve '{host}' ({reason})" + self._host = host + self._reason = reason + super().__init__(conn, message) + + def __reduce__(self) -> _TYPE_REDUCE_RESULT: + # For pickling purposes. + return self.__class__, (self._host, None, self._reason) + + +class EmptyPoolError(PoolError): + """Raised when a pool runs out of connections and no more are allowed.""" + + +class FullPoolError(PoolError): + """Raised when we try to add a connection to a full pool in blocking mode.""" + + +class ClosedPoolError(PoolError): + """Raised when a request enters a pool after the pool has been closed.""" + + +class LocationValueError(ValueError, HTTPError): + """Raised when there is something wrong with a given URL input.""" + + +class LocationParseError(LocationValueError): + """Raised when get_host or similar fails to parse the URL input.""" + + def __init__(self, location: str) -> None: + message = f"Failed to parse: {location}" + super().__init__(message) + + self.location = location + + +class URLSchemeUnknown(LocationValueError): + """Raised when a URL input has an unsupported scheme.""" + + def __init__(self, scheme: str): + message = f"Not supported URL scheme {scheme}" + super().__init__(message) + + self.scheme = scheme + + +class ResponseError(HTTPError): + """Used as a container for an error reason supplied in a MaxRetryError.""" + + GENERIC_ERROR = "too many error responses" + SPECIFIC_ERROR = "too many {status_code} error responses" + + +class SecurityWarning(HTTPWarning): + """Warned when performing security reducing actions""" + + +class InsecureRequestWarning(SecurityWarning): + """Warned when making an unverified HTTPS request.""" + + +class NotOpenSSLWarning(SecurityWarning): + """Warned when using unsupported SSL library""" + + +class SystemTimeWarning(SecurityWarning): + """Warned when system time is suspected to be wrong""" + + +class InsecurePlatformWarning(SecurityWarning): + """Warned when certain TLS/SSL configuration is not available on a platform.""" + + +class DependencyWarning(HTTPWarning): + """ + Warned when an attempt is made to import a module with missing optional + dependencies. + """ + + +class ResponseNotChunked(ProtocolError, ValueError): + """Response needs to be chunked in order to read it as chunks.""" + + +class BodyNotHttplibCompatible(HTTPError): + """ + Body should be :class:`http.client.HTTPResponse` like + (have an fp attribute which returns raw chunks) for read_chunked(). + """ + + +class IncompleteRead(HTTPError, httplib_IncompleteRead): + """ + Response length doesn't match expected Content-Length + + Subclass of :class:`http.client.IncompleteRead` to allow int value + for ``partial`` to avoid creating large objects on streamed reads. + """ + + partial: int # type: ignore[assignment] + expected: int + + def __init__(self, partial: int, expected: int) -> None: + self.partial = partial + self.expected = expected + + def __repr__(self) -> str: + return "IncompleteRead(%i bytes read, %i more expected)" % ( + self.partial, + self.expected, + ) + + +class InvalidChunkLength(HTTPError, httplib_IncompleteRead): + """Invalid chunk length in a chunked response.""" + + def __init__(self, response: HTTPResponse, length: bytes) -> None: + self.partial: int = response.tell() # type: ignore[assignment] + self.expected: int | None = response.length_remaining + self.response = response + self.length = length + + def __repr__(self) -> str: + return "InvalidChunkLength(got length %r, %i bytes read)" % ( + self.length, + self.partial, + ) + + +class InvalidHeader(HTTPError): + """The header provided was somehow invalid.""" + + +class ProxySchemeUnknown(AssertionError, URLSchemeUnknown): + """ProxyManager does not support the supplied scheme""" + + # TODO(t-8ch): Stop inheriting from AssertionError in v2.0. + + def __init__(self, scheme: str | None) -> None: + # 'localhost' is here because our URL parser parses + # localhost:8080 -> scheme=localhost, remove if we fix this. + if scheme == "localhost": + scheme = None + if scheme is None: + message = "Proxy URL had no scheme, should start with http:// or https://" + else: + message = f"Proxy URL had unsupported scheme {scheme}, should use http:// or https://" + super().__init__(message) + + +class ProxySchemeUnsupported(ValueError): + """Fetching HTTPS resources through HTTPS proxies is unsupported""" + + +class HeaderParsingError(HTTPError): + """Raised by assert_header_parsing, but we convert it to a log.warning statement.""" + + def __init__( + self, defects: list[MessageDefect], unparsed_data: bytes | str | None + ) -> None: + message = f"{defects or 'Unknown'}, unparsed data: {unparsed_data!r}" + super().__init__(message) + + +class UnrewindableBodyError(HTTPError): + """urllib3 encountered an error when trying to rewind a body""" diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/fields.py b/Backend/venv/lib/python3.12/site-packages/urllib3/fields.py new file mode 100644 index 00000000..97c4730c --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/fields.py @@ -0,0 +1,341 @@ +from __future__ import annotations + +import email.utils +import mimetypes +import typing + +_TYPE_FIELD_VALUE = typing.Union[str, bytes] +_TYPE_FIELD_VALUE_TUPLE = typing.Union[ + _TYPE_FIELD_VALUE, + tuple[str, _TYPE_FIELD_VALUE], + tuple[str, _TYPE_FIELD_VALUE, str], +] + + +def guess_content_type( + filename: str | None, default: str = "application/octet-stream" +) -> str: + """ + Guess the "Content-Type" of a file. + + :param filename: + The filename to guess the "Content-Type" of using :mod:`mimetypes`. + :param default: + If no "Content-Type" can be guessed, default to `default`. + """ + if filename: + return mimetypes.guess_type(filename)[0] or default + return default + + +def format_header_param_rfc2231(name: str, value: _TYPE_FIELD_VALUE) -> str: + """ + Helper function to format and quote a single header parameter using the + strategy defined in RFC 2231. + + Particularly useful for header parameters which might contain + non-ASCII values, like file names. This follows + `RFC 2388 Section 4.4 `_. + + :param name: + The name of the parameter, a string expected to be ASCII only. + :param value: + The value of the parameter, provided as ``bytes`` or `str``. + :returns: + An RFC-2231-formatted unicode string. + + .. deprecated:: 2.0.0 + Will be removed in urllib3 v2.1.0. This is not valid for + ``multipart/form-data`` header parameters. + """ + import warnings + + warnings.warn( + "'format_header_param_rfc2231' is deprecated and will be " + "removed in urllib3 v2.1.0. This is not valid for " + "multipart/form-data header parameters.", + DeprecationWarning, + stacklevel=2, + ) + + if isinstance(value, bytes): + value = value.decode("utf-8") + + if not any(ch in value for ch in '"\\\r\n'): + result = f'{name}="{value}"' + try: + result.encode("ascii") + except (UnicodeEncodeError, UnicodeDecodeError): + pass + else: + return result + + value = email.utils.encode_rfc2231(value, "utf-8") + value = f"{name}*={value}" + + return value + + +def format_multipart_header_param(name: str, value: _TYPE_FIELD_VALUE) -> str: + """ + Format and quote a single multipart header parameter. + + This follows the `WHATWG HTML Standard`_ as of 2021/06/10, matching + the behavior of current browser and curl versions. Values are + assumed to be UTF-8. The ``\\n``, ``\\r``, and ``"`` characters are + percent encoded. + + .. _WHATWG HTML Standard: + https://html.spec.whatwg.org/multipage/ + form-control-infrastructure.html#multipart-form-data + + :param name: + The name of the parameter, an ASCII-only ``str``. + :param value: + The value of the parameter, a ``str`` or UTF-8 encoded + ``bytes``. + :returns: + A string ``name="value"`` with the escaped value. + + .. versionchanged:: 2.0.0 + Matches the WHATWG HTML Standard as of 2021/06/10. Control + characters are no longer percent encoded. + + .. versionchanged:: 2.0.0 + Renamed from ``format_header_param_html5`` and + ``format_header_param``. The old names will be removed in + urllib3 v2.1.0. + """ + if isinstance(value, bytes): + value = value.decode("utf-8") + + # percent encode \n \r " + value = value.translate({10: "%0A", 13: "%0D", 34: "%22"}) + return f'{name}="{value}"' + + +def format_header_param_html5(name: str, value: _TYPE_FIELD_VALUE) -> str: + """ + .. deprecated:: 2.0.0 + Renamed to :func:`format_multipart_header_param`. Will be + removed in urllib3 v2.1.0. + """ + import warnings + + warnings.warn( + "'format_header_param_html5' has been renamed to " + "'format_multipart_header_param'. The old name will be " + "removed in urllib3 v2.1.0.", + DeprecationWarning, + stacklevel=2, + ) + return format_multipart_header_param(name, value) + + +def format_header_param(name: str, value: _TYPE_FIELD_VALUE) -> str: + """ + .. deprecated:: 2.0.0 + Renamed to :func:`format_multipart_header_param`. Will be + removed in urllib3 v2.1.0. + """ + import warnings + + warnings.warn( + "'format_header_param' has been renamed to " + "'format_multipart_header_param'. The old name will be " + "removed in urllib3 v2.1.0.", + DeprecationWarning, + stacklevel=2, + ) + return format_multipart_header_param(name, value) + + +class RequestField: + """ + A data container for request body parameters. + + :param name: + The name of this request field. Must be unicode. + :param data: + The data/value body. + :param filename: + An optional filename of the request field. Must be unicode. + :param headers: + An optional dict-like object of headers to initially use for the field. + + .. versionchanged:: 2.0.0 + The ``header_formatter`` parameter is deprecated and will + be removed in urllib3 v2.1.0. + """ + + def __init__( + self, + name: str, + data: _TYPE_FIELD_VALUE, + filename: str | None = None, + headers: typing.Mapping[str, str] | None = None, + header_formatter: typing.Callable[[str, _TYPE_FIELD_VALUE], str] | None = None, + ): + self._name = name + self._filename = filename + self.data = data + self.headers: dict[str, str | None] = {} + if headers: + self.headers = dict(headers) + + if header_formatter is not None: + import warnings + + warnings.warn( + "The 'header_formatter' parameter is deprecated and " + "will be removed in urllib3 v2.1.0.", + DeprecationWarning, + stacklevel=2, + ) + self.header_formatter = header_formatter + else: + self.header_formatter = format_multipart_header_param + + @classmethod + def from_tuples( + cls, + fieldname: str, + value: _TYPE_FIELD_VALUE_TUPLE, + header_formatter: typing.Callable[[str, _TYPE_FIELD_VALUE], str] | None = None, + ) -> RequestField: + """ + A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters. + + Supports constructing :class:`~urllib3.fields.RequestField` from + parameter of key/value strings AND key/filetuple. A filetuple is a + (filename, data, MIME type) tuple where the MIME type is optional. + For example:: + + 'foo': 'bar', + 'fakefile': ('foofile.txt', 'contents of foofile'), + 'realfile': ('barfile.txt', open('realfile').read()), + 'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'), + 'nonamefile': 'contents of nonamefile field', + + Field names and filenames must be unicode. + """ + filename: str | None + content_type: str | None + data: _TYPE_FIELD_VALUE + + if isinstance(value, tuple): + if len(value) == 3: + filename, data, content_type = value + else: + filename, data = value + content_type = guess_content_type(filename) + else: + filename = None + content_type = None + data = value + + request_param = cls( + fieldname, data, filename=filename, header_formatter=header_formatter + ) + request_param.make_multipart(content_type=content_type) + + return request_param + + def _render_part(self, name: str, value: _TYPE_FIELD_VALUE) -> str: + """ + Override this method to change how each multipart header + parameter is formatted. By default, this calls + :func:`format_multipart_header_param`. + + :param name: + The name of the parameter, an ASCII-only ``str``. + :param value: + The value of the parameter, a ``str`` or UTF-8 encoded + ``bytes``. + + :meta public: + """ + return self.header_formatter(name, value) + + def _render_parts( + self, + header_parts: ( + dict[str, _TYPE_FIELD_VALUE | None] + | typing.Sequence[tuple[str, _TYPE_FIELD_VALUE | None]] + ), + ) -> str: + """ + Helper function to format and quote a single header. + + Useful for single headers that are composed of multiple items. E.g., + 'Content-Disposition' fields. + + :param header_parts: + A sequence of (k, v) tuples or a :class:`dict` of (k, v) to format + as `k1="v1"; k2="v2"; ...`. + """ + iterable: typing.Iterable[tuple[str, _TYPE_FIELD_VALUE | None]] + + parts = [] + if isinstance(header_parts, dict): + iterable = header_parts.items() + else: + iterable = header_parts + + for name, value in iterable: + if value is not None: + parts.append(self._render_part(name, value)) + + return "; ".join(parts) + + def render_headers(self) -> str: + """ + Renders the headers for this request field. + """ + lines = [] + + sort_keys = ["Content-Disposition", "Content-Type", "Content-Location"] + for sort_key in sort_keys: + if self.headers.get(sort_key, False): + lines.append(f"{sort_key}: {self.headers[sort_key]}") + + for header_name, header_value in self.headers.items(): + if header_name not in sort_keys: + if header_value: + lines.append(f"{header_name}: {header_value}") + + lines.append("\r\n") + return "\r\n".join(lines) + + def make_multipart( + self, + content_disposition: str | None = None, + content_type: str | None = None, + content_location: str | None = None, + ) -> None: + """ + Makes this request field into a multipart request field. + + This method overrides "Content-Disposition", "Content-Type" and + "Content-Location" headers to the request parameter. + + :param content_disposition: + The 'Content-Disposition' of the request body. Defaults to 'form-data' + :param content_type: + The 'Content-Type' of the request body. + :param content_location: + The 'Content-Location' of the request body. + + """ + content_disposition = (content_disposition or "form-data") + "; ".join( + [ + "", + self._render_parts( + (("name", self._name), ("filename", self._filename)) + ), + ] + ) + + self.headers["Content-Disposition"] = content_disposition + self.headers["Content-Type"] = content_type + self.headers["Content-Location"] = content_location diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/filepost.py b/Backend/venv/lib/python3.12/site-packages/urllib3/filepost.py new file mode 100644 index 00000000..14f70b05 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/filepost.py @@ -0,0 +1,89 @@ +from __future__ import annotations + +import binascii +import codecs +import os +import typing +from io import BytesIO + +from .fields import _TYPE_FIELD_VALUE_TUPLE, RequestField + +writer = codecs.lookup("utf-8")[3] + +_TYPE_FIELDS_SEQUENCE = typing.Sequence[ + typing.Union[tuple[str, _TYPE_FIELD_VALUE_TUPLE], RequestField] +] +_TYPE_FIELDS = typing.Union[ + _TYPE_FIELDS_SEQUENCE, + typing.Mapping[str, _TYPE_FIELD_VALUE_TUPLE], +] + + +def choose_boundary() -> str: + """ + Our embarrassingly-simple replacement for mimetools.choose_boundary. + """ + return binascii.hexlify(os.urandom(16)).decode() + + +def iter_field_objects(fields: _TYPE_FIELDS) -> typing.Iterable[RequestField]: + """ + Iterate over fields. + + Supports list of (k, v) tuples and dicts, and lists of + :class:`~urllib3.fields.RequestField`. + + """ + iterable: typing.Iterable[RequestField | tuple[str, _TYPE_FIELD_VALUE_TUPLE]] + + if isinstance(fields, typing.Mapping): + iterable = fields.items() + else: + iterable = fields + + for field in iterable: + if isinstance(field, RequestField): + yield field + else: + yield RequestField.from_tuples(*field) + + +def encode_multipart_formdata( + fields: _TYPE_FIELDS, boundary: str | None = None +) -> tuple[bytes, str]: + """ + Encode a dictionary of ``fields`` using the multipart/form-data MIME format. + + :param fields: + Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`). + Values are processed by :func:`urllib3.fields.RequestField.from_tuples`. + + :param boundary: + If not specified, then a random boundary will be generated using + :func:`urllib3.filepost.choose_boundary`. + """ + body = BytesIO() + if boundary is None: + boundary = choose_boundary() + + for field in iter_field_objects(fields): + body.write(f"--{boundary}\r\n".encode("latin-1")) + + writer(body).write(field.render_headers()) + data = field.data + + if isinstance(data, int): + data = str(data) # Backwards compatibility + + if isinstance(data, str): + writer(body).write(data) + else: + body.write(data) + + body.write(b"\r\n") + + body.write(f"--{boundary}--\r\n".encode("latin-1")) + + content_type = f"multipart/form-data; boundary={boundary}" + + return body.getvalue(), content_type diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__init__.py b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__init__.py new file mode 100644 index 00000000..133e1d8f --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__init__.py @@ -0,0 +1,53 @@ +from __future__ import annotations + +from importlib.metadata import version + +__all__ = [ + "inject_into_urllib3", + "extract_from_urllib3", +] + +import typing + +orig_HTTPSConnection: typing.Any = None + + +def inject_into_urllib3() -> None: + # First check if h2 version is valid + h2_version = version("h2") + if not h2_version.startswith("4."): + raise ImportError( + "urllib3 v2 supports h2 version 4.x.x, currently " + f"the 'h2' module is compiled with {h2_version!r}. " + "See: https://github.com/urllib3/urllib3/issues/3290" + ) + + # Import here to avoid circular dependencies. + from .. import connection as urllib3_connection + from .. import util as urllib3_util + from ..connectionpool import HTTPSConnectionPool + from ..util import ssl_ as urllib3_util_ssl + from .connection import HTTP2Connection + + global orig_HTTPSConnection + orig_HTTPSConnection = urllib3_connection.HTTPSConnection + + HTTPSConnectionPool.ConnectionCls = HTTP2Connection + urllib3_connection.HTTPSConnection = HTTP2Connection # type: ignore[misc] + + # TODO: Offer 'http/1.1' as well, but for testing purposes this is handy. + urllib3_util.ALPN_PROTOCOLS = ["h2"] + urllib3_util_ssl.ALPN_PROTOCOLS = ["h2"] + + +def extract_from_urllib3() -> None: + from .. import connection as urllib3_connection + from .. import util as urllib3_util + from ..connectionpool import HTTPSConnectionPool + from ..util import ssl_ as urllib3_util_ssl + + HTTPSConnectionPool.ConnectionCls = orig_HTTPSConnection + urllib3_connection.HTTPSConnection = orig_HTTPSConnection # type: ignore[misc] + + urllib3_util.ALPN_PROTOCOLS = ["http/1.1"] + urllib3_util_ssl.ALPN_PROTOCOLS = ["http/1.1"] diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..1f1bf1a5 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/connection.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/connection.cpython-312.pyc new file mode 100644 index 00000000..fb4d2cb1 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/connection.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/probe.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/probe.cpython-312.pyc new file mode 100644 index 00000000..3bc56d6c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/probe.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/http2/connection.py b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/connection.py new file mode 100644 index 00000000..d0822391 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/connection.py @@ -0,0 +1,356 @@ +from __future__ import annotations + +import logging +import re +import threading +import types +import typing + +import h2.config # type: ignore[import-untyped] +import h2.connection # type: ignore[import-untyped] +import h2.events # type: ignore[import-untyped] + +from .._base_connection import _TYPE_BODY +from .._collections import HTTPHeaderDict +from ..connection import HTTPSConnection, _get_default_user_agent +from ..exceptions import ConnectionError +from ..response import BaseHTTPResponse + +orig_HTTPSConnection = HTTPSConnection + +T = typing.TypeVar("T") + +log = logging.getLogger(__name__) + +RE_IS_LEGAL_HEADER_NAME = re.compile(rb"^[!#$%&'*+\-.^_`|~0-9a-z]+$") +RE_IS_ILLEGAL_HEADER_VALUE = re.compile(rb"[\0\x00\x0a\x0d\r\n]|^[ \r\n\t]|[ \r\n\t]$") + + +def _is_legal_header_name(name: bytes) -> bool: + """ + "An implementation that validates fields according to the definitions in Sections + 5.1 and 5.5 of [HTTP] only needs an additional check that field names do not + include uppercase characters." (https://httpwg.org/specs/rfc9113.html#n-field-validity) + + `http.client._is_legal_header_name` does not validate the field name according to the + HTTP 1.1 spec, so we do that here, in addition to checking for uppercase characters. + + This does not allow for the `:` character in the header name, so should not + be used to validate pseudo-headers. + """ + return bool(RE_IS_LEGAL_HEADER_NAME.match(name)) + + +def _is_illegal_header_value(value: bytes) -> bool: + """ + "A field value MUST NOT contain the zero value (ASCII NUL, 0x00), line feed + (ASCII LF, 0x0a), or carriage return (ASCII CR, 0x0d) at any position. A field + value MUST NOT start or end with an ASCII whitespace character (ASCII SP or HTAB, + 0x20 or 0x09)." (https://httpwg.org/specs/rfc9113.html#n-field-validity) + """ + return bool(RE_IS_ILLEGAL_HEADER_VALUE.search(value)) + + +class _LockedObject(typing.Generic[T]): + """ + A wrapper class that hides a specific object behind a lock. + The goal here is to provide a simple way to protect access to an object + that cannot safely be simultaneously accessed from multiple threads. The + intended use of this class is simple: take hold of it with a context + manager, which returns the protected object. + """ + + __slots__ = ( + "lock", + "_obj", + ) + + def __init__(self, obj: T): + self.lock = threading.RLock() + self._obj = obj + + def __enter__(self) -> T: + self.lock.acquire() + return self._obj + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: types.TracebackType | None, + ) -> None: + self.lock.release() + + +class HTTP2Connection(HTTPSConnection): + def __init__( + self, host: str, port: int | None = None, **kwargs: typing.Any + ) -> None: + self._h2_conn = self._new_h2_conn() + self._h2_stream: int | None = None + self._headers: list[tuple[bytes, bytes]] = [] + + if "proxy" in kwargs or "proxy_config" in kwargs: # Defensive: + raise NotImplementedError("Proxies aren't supported with HTTP/2") + + super().__init__(host, port, **kwargs) + + if self._tunnel_host is not None: + raise NotImplementedError("Tunneling isn't supported with HTTP/2") + + def _new_h2_conn(self) -> _LockedObject[h2.connection.H2Connection]: + config = h2.config.H2Configuration(client_side=True) + return _LockedObject(h2.connection.H2Connection(config=config)) + + def connect(self) -> None: + super().connect() + with self._h2_conn as conn: + conn.initiate_connection() + if data_to_send := conn.data_to_send(): + self.sock.sendall(data_to_send) + + def putrequest( # type: ignore[override] + self, + method: str, + url: str, + **kwargs: typing.Any, + ) -> None: + """putrequest + This deviates from the HTTPConnection method signature since we never need to override + sending accept-encoding headers or the host header. + """ + if "skip_host" in kwargs: + raise NotImplementedError("`skip_host` isn't supported") + if "skip_accept_encoding" in kwargs: + raise NotImplementedError("`skip_accept_encoding` isn't supported") + + self._request_url = url or "/" + self._validate_path(url) # type: ignore[attr-defined] + + if ":" in self.host: + authority = f"[{self.host}]:{self.port or 443}" + else: + authority = f"{self.host}:{self.port or 443}" + + self._headers.append((b":scheme", b"https")) + self._headers.append((b":method", method.encode())) + self._headers.append((b":authority", authority.encode())) + self._headers.append((b":path", url.encode())) + + with self._h2_conn as conn: + self._h2_stream = conn.get_next_available_stream_id() + + def putheader(self, header: str | bytes, *values: str | bytes) -> None: # type: ignore[override] + # TODO SKIPPABLE_HEADERS from urllib3 are ignored. + header = header.encode() if isinstance(header, str) else header + header = header.lower() # A lot of upstream code uses capitalized headers. + if not _is_legal_header_name(header): + raise ValueError(f"Illegal header name {str(header)}") + + for value in values: + value = value.encode() if isinstance(value, str) else value + if _is_illegal_header_value(value): + raise ValueError(f"Illegal header value {str(value)}") + self._headers.append((header, value)) + + def endheaders(self, message_body: typing.Any = None) -> None: # type: ignore[override] + if self._h2_stream is None: + raise ConnectionError("Must call `putrequest` first.") + + with self._h2_conn as conn: + conn.send_headers( + stream_id=self._h2_stream, + headers=self._headers, + end_stream=(message_body is None), + ) + if data_to_send := conn.data_to_send(): + self.sock.sendall(data_to_send) + self._headers = [] # Reset headers for the next request. + + def send(self, data: typing.Any) -> None: + """Send data to the server. + `data` can be: `str`, `bytes`, an iterable, or file-like objects + that support a .read() method. + """ + if self._h2_stream is None: + raise ConnectionError("Must call `putrequest` first.") + + with self._h2_conn as conn: + if data_to_send := conn.data_to_send(): + self.sock.sendall(data_to_send) + + if hasattr(data, "read"): # file-like objects + while True: + chunk = data.read(self.blocksize) + if not chunk: + break + if isinstance(chunk, str): + chunk = chunk.encode() # pragma: no cover + conn.send_data(self._h2_stream, chunk, end_stream=False) + if data_to_send := conn.data_to_send(): + self.sock.sendall(data_to_send) + conn.end_stream(self._h2_stream) + return + + if isinstance(data, str): # str -> bytes + data = data.encode() + + try: + if isinstance(data, bytes): + conn.send_data(self._h2_stream, data, end_stream=True) + if data_to_send := conn.data_to_send(): + self.sock.sendall(data_to_send) + else: + for chunk in data: + conn.send_data(self._h2_stream, chunk, end_stream=False) + if data_to_send := conn.data_to_send(): + self.sock.sendall(data_to_send) + conn.end_stream(self._h2_stream) + except TypeError: + raise TypeError( + "`data` should be str, bytes, iterable, or file. got %r" + % type(data) + ) + + def set_tunnel( + self, + host: str, + port: int | None = None, + headers: typing.Mapping[str, str] | None = None, + scheme: str = "http", + ) -> None: + raise NotImplementedError( + "HTTP/2 does not support setting up a tunnel through a proxy" + ) + + def getresponse( # type: ignore[override] + self, + ) -> HTTP2Response: + status = None + data = bytearray() + with self._h2_conn as conn: + end_stream = False + while not end_stream: + # TODO: Arbitrary read value. + if received_data := self.sock.recv(65535): + events = conn.receive_data(received_data) + for event in events: + if isinstance(event, h2.events.ResponseReceived): + headers = HTTPHeaderDict() + for header, value in event.headers: + if header == b":status": + status = int(value.decode()) + else: + headers.add( + header.decode("ascii"), value.decode("ascii") + ) + + elif isinstance(event, h2.events.DataReceived): + data += event.data + conn.acknowledge_received_data( + event.flow_controlled_length, event.stream_id + ) + + elif isinstance(event, h2.events.StreamEnded): + end_stream = True + + if data_to_send := conn.data_to_send(): + self.sock.sendall(data_to_send) + + assert status is not None + return HTTP2Response( + status=status, + headers=headers, + request_url=self._request_url, + data=bytes(data), + ) + + def request( # type: ignore[override] + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + *, + preload_content: bool = True, + decode_content: bool = True, + enforce_content_length: bool = True, + **kwargs: typing.Any, + ) -> None: + """Send an HTTP/2 request""" + if "chunked" in kwargs: + # TODO this is often present from upstream. + # raise NotImplementedError("`chunked` isn't supported with HTTP/2") + pass + + if self.sock is not None: + self.sock.settimeout(self.timeout) + + self.putrequest(method, url) + + headers = headers or {} + for k, v in headers.items(): + if k.lower() == "transfer-encoding" and v == "chunked": + continue + else: + self.putheader(k, v) + + if b"user-agent" not in dict(self._headers): + self.putheader(b"user-agent", _get_default_user_agent()) + + if body: + self.endheaders(message_body=body) + self.send(body) + else: + self.endheaders() + + def close(self) -> None: + with self._h2_conn as conn: + try: + conn.close_connection() + if data := conn.data_to_send(): + self.sock.sendall(data) + except Exception: + pass + + # Reset all our HTTP/2 connection state. + self._h2_conn = self._new_h2_conn() + self._h2_stream = None + self._headers = [] + + super().close() + + +class HTTP2Response(BaseHTTPResponse): + # TODO: This is a woefully incomplete response object, but works for non-streaming. + def __init__( + self, + status: int, + headers: HTTPHeaderDict, + request_url: str, + data: bytes, + decode_content: bool = False, # TODO: support decoding + ) -> None: + super().__init__( + status=status, + headers=headers, + # Following CPython, we map HTTP versions to major * 10 + minor integers + version=20, + version_string="HTTP/2", + # No reason phrase in HTTP/2 + reason=None, + decode_content=decode_content, + request_url=request_url, + ) + self._data = data + self.length_remaining = 0 + + @property + def data(self) -> bytes: + return self._data + + def get_redirect_location(self) -> None: + return None + + def close(self) -> None: + pass diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/http2/probe.py b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/probe.py new file mode 100644 index 00000000..9ea90076 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/http2/probe.py @@ -0,0 +1,87 @@ +from __future__ import annotations + +import threading + + +class _HTTP2ProbeCache: + __slots__ = ( + "_lock", + "_cache_locks", + "_cache_values", + ) + + def __init__(self) -> None: + self._lock = threading.Lock() + self._cache_locks: dict[tuple[str, int], threading.RLock] = {} + self._cache_values: dict[tuple[str, int], bool | None] = {} + + def acquire_and_get(self, host: str, port: int) -> bool | None: + # By the end of this block we know that + # _cache_[values,locks] is available. + value = None + with self._lock: + key = (host, port) + try: + value = self._cache_values[key] + # If it's a known value we return right away. + if value is not None: + return value + except KeyError: + self._cache_locks[key] = threading.RLock() + self._cache_values[key] = None + + # If the value is unknown, we acquire the lock to signal + # to the requesting thread that the probe is in progress + # or that the current thread needs to return their findings. + key_lock = self._cache_locks[key] + key_lock.acquire() + try: + # If the by the time we get the lock the value has been + # updated we want to return the updated value. + value = self._cache_values[key] + + # In case an exception like KeyboardInterrupt is raised here. + except BaseException as e: # Defensive: + assert not isinstance(e, KeyError) # KeyError shouldn't be possible. + key_lock.release() + raise + + return value + + def set_and_release( + self, host: str, port: int, supports_http2: bool | None + ) -> None: + key = (host, port) + key_lock = self._cache_locks[key] + with key_lock: # Uses an RLock, so can be locked again from same thread. + if supports_http2 is None and self._cache_values[key] is not None: + raise ValueError( + "Cannot reset HTTP/2 support for origin after value has been set." + ) # Defensive: not expected in normal usage + + self._cache_values[key] = supports_http2 + key_lock.release() + + def _values(self) -> dict[tuple[str, int], bool | None]: + """This function is for testing purposes only. Gets the current state of the probe cache""" + with self._lock: + return {k: v for k, v in self._cache_values.items()} + + def _reset(self) -> None: + """This function is for testing purposes only. Reset the cache values""" + with self._lock: + self._cache_locks = {} + self._cache_values = {} + + +_HTTP2_PROBE_CACHE = _HTTP2ProbeCache() + +set_and_release = _HTTP2_PROBE_CACHE.set_and_release +acquire_and_get = _HTTP2_PROBE_CACHE.acquire_and_get +_values = _HTTP2_PROBE_CACHE._values +_reset = _HTTP2_PROBE_CACHE._reset + +__all__ = [ + "set_and_release", + "acquire_and_get", +] diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/poolmanager.py b/Backend/venv/lib/python3.12/site-packages/urllib3/poolmanager.py new file mode 100644 index 00000000..5763fea8 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/poolmanager.py @@ -0,0 +1,653 @@ +from __future__ import annotations + +import functools +import logging +import typing +import warnings +from types import TracebackType +from urllib.parse import urljoin + +from ._collections import HTTPHeaderDict, RecentlyUsedContainer +from ._request_methods import RequestMethods +from .connection import ProxyConfig +from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, port_by_scheme +from .exceptions import ( + LocationValueError, + MaxRetryError, + ProxySchemeUnknown, + URLSchemeUnknown, +) +from .response import BaseHTTPResponse +from .util.connection import _TYPE_SOCKET_OPTIONS +from .util.proxy import connection_requires_http_tunnel +from .util.retry import Retry +from .util.timeout import Timeout +from .util.url import Url, parse_url + +if typing.TYPE_CHECKING: + import ssl + + from typing_extensions import Self + +__all__ = ["PoolManager", "ProxyManager", "proxy_from_url"] + + +log = logging.getLogger(__name__) + +SSL_KEYWORDS = ( + "key_file", + "cert_file", + "cert_reqs", + "ca_certs", + "ca_cert_data", + "ssl_version", + "ssl_minimum_version", + "ssl_maximum_version", + "ca_cert_dir", + "ssl_context", + "key_password", + "server_hostname", +) +# Default value for `blocksize` - a new parameter introduced to +# http.client.HTTPConnection & http.client.HTTPSConnection in Python 3.7 +_DEFAULT_BLOCKSIZE = 16384 + + +class PoolKey(typing.NamedTuple): + """ + All known keyword arguments that could be provided to the pool manager, its + pools, or the underlying connections. + + All custom key schemes should include the fields in this key at a minimum. + """ + + key_scheme: str + key_host: str + key_port: int | None + key_timeout: Timeout | float | int | None + key_retries: Retry | bool | int | None + key_block: bool | None + key_source_address: tuple[str, int] | None + key_key_file: str | None + key_key_password: str | None + key_cert_file: str | None + key_cert_reqs: str | None + key_ca_certs: str | None + key_ca_cert_data: str | bytes | None + key_ssl_version: int | str | None + key_ssl_minimum_version: ssl.TLSVersion | None + key_ssl_maximum_version: ssl.TLSVersion | None + key_ca_cert_dir: str | None + key_ssl_context: ssl.SSLContext | None + key_maxsize: int | None + key_headers: frozenset[tuple[str, str]] | None + key__proxy: Url | None + key__proxy_headers: frozenset[tuple[str, str]] | None + key__proxy_config: ProxyConfig | None + key_socket_options: _TYPE_SOCKET_OPTIONS | None + key__socks_options: frozenset[tuple[str, str]] | None + key_assert_hostname: bool | str | None + key_assert_fingerprint: str | None + key_server_hostname: str | None + key_blocksize: int | None + + +def _default_key_normalizer( + key_class: type[PoolKey], request_context: dict[str, typing.Any] +) -> PoolKey: + """ + Create a pool key out of a request context dictionary. + + According to RFC 3986, both the scheme and host are case-insensitive. + Therefore, this function normalizes both before constructing the pool + key for an HTTPS request. If you wish to change this behaviour, provide + alternate callables to ``key_fn_by_scheme``. + + :param key_class: + The class to use when constructing the key. This should be a namedtuple + with the ``scheme`` and ``host`` keys at a minimum. + :type key_class: namedtuple + :param request_context: + A dictionary-like object that contain the context for a request. + :type request_context: dict + + :return: A namedtuple that can be used as a connection pool key. + :rtype: PoolKey + """ + # Since we mutate the dictionary, make a copy first + context = request_context.copy() + context["scheme"] = context["scheme"].lower() + context["host"] = context["host"].lower() + + # These are both dictionaries and need to be transformed into frozensets + for key in ("headers", "_proxy_headers", "_socks_options"): + if key in context and context[key] is not None: + context[key] = frozenset(context[key].items()) + + # The socket_options key may be a list and needs to be transformed into a + # tuple. + socket_opts = context.get("socket_options") + if socket_opts is not None: + context["socket_options"] = tuple(socket_opts) + + # Map the kwargs to the names in the namedtuple - this is necessary since + # namedtuples can't have fields starting with '_'. + for key in list(context.keys()): + context["key_" + key] = context.pop(key) + + # Default to ``None`` for keys missing from the context + for field in key_class._fields: + if field not in context: + context[field] = None + + # Default key_blocksize to _DEFAULT_BLOCKSIZE if missing from the context + if context.get("key_blocksize") is None: + context["key_blocksize"] = _DEFAULT_BLOCKSIZE + + return key_class(**context) + + +#: A dictionary that maps a scheme to a callable that creates a pool key. +#: This can be used to alter the way pool keys are constructed, if desired. +#: Each PoolManager makes a copy of this dictionary so they can be configured +#: globally here, or individually on the instance. +key_fn_by_scheme = { + "http": functools.partial(_default_key_normalizer, PoolKey), + "https": functools.partial(_default_key_normalizer, PoolKey), +} + +pool_classes_by_scheme = {"http": HTTPConnectionPool, "https": HTTPSConnectionPool} + + +class PoolManager(RequestMethods): + """ + Allows for arbitrary requests while transparently keeping track of + necessary connection pools for you. + + :param num_pools: + Number of connection pools to cache before discarding the least + recently used pool. + + :param headers: + Headers to include with all requests, unless other headers are given + explicitly. + + :param \\**connection_pool_kw: + Additional parameters are used to create fresh + :class:`urllib3.connectionpool.ConnectionPool` instances. + + Example: + + .. code-block:: python + + import urllib3 + + http = urllib3.PoolManager(num_pools=2) + + resp1 = http.request("GET", "https://google.com/") + resp2 = http.request("GET", "https://google.com/mail") + resp3 = http.request("GET", "https://yahoo.com/") + + print(len(http.pools)) + # 2 + + """ + + proxy: Url | None = None + proxy_config: ProxyConfig | None = None + + def __init__( + self, + num_pools: int = 10, + headers: typing.Mapping[str, str] | None = None, + **connection_pool_kw: typing.Any, + ) -> None: + super().__init__(headers) + if "retries" in connection_pool_kw: + retries = connection_pool_kw["retries"] + if not isinstance(retries, Retry): + # When Retry is initialized, raise_on_redirect is based + # on a redirect boolean value. + # But requests made via a pool manager always set + # redirect to False, and raise_on_redirect always ends + # up being False consequently. + # Here we fix the issue by setting raise_on_redirect to + # a value needed by the pool manager without considering + # the redirect boolean. + raise_on_redirect = retries is not False + retries = Retry.from_int(retries, redirect=False) + retries.raise_on_redirect = raise_on_redirect + connection_pool_kw = connection_pool_kw.copy() + connection_pool_kw["retries"] = retries + self.connection_pool_kw = connection_pool_kw + + self.pools: RecentlyUsedContainer[PoolKey, HTTPConnectionPool] + self.pools = RecentlyUsedContainer(num_pools) + + # Locally set the pool classes and keys so other PoolManagers can + # override them. + self.pool_classes_by_scheme = pool_classes_by_scheme + self.key_fn_by_scheme = key_fn_by_scheme.copy() + + def __enter__(self) -> Self: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None, + ) -> typing.Literal[False]: + self.clear() + # Return False to re-raise any potential exceptions + return False + + def _new_pool( + self, + scheme: str, + host: str, + port: int, + request_context: dict[str, typing.Any] | None = None, + ) -> HTTPConnectionPool: + """ + Create a new :class:`urllib3.connectionpool.ConnectionPool` based on host, port, scheme, and + any additional pool keyword arguments. + + If ``request_context`` is provided, it is provided as keyword arguments + to the pool class used. This method is used to actually create the + connection pools handed out by :meth:`connection_from_url` and + companion methods. It is intended to be overridden for customization. + """ + pool_cls: type[HTTPConnectionPool] = self.pool_classes_by_scheme[scheme] + if request_context is None: + request_context = self.connection_pool_kw.copy() + + # Default blocksize to _DEFAULT_BLOCKSIZE if missing or explicitly + # set to 'None' in the request_context. + if request_context.get("blocksize") is None: + request_context["blocksize"] = _DEFAULT_BLOCKSIZE + + # Although the context has everything necessary to create the pool, + # this function has historically only used the scheme, host, and port + # in the positional args. When an API change is acceptable these can + # be removed. + for key in ("scheme", "host", "port"): + request_context.pop(key, None) + + if scheme == "http": + for kw in SSL_KEYWORDS: + request_context.pop(kw, None) + + return pool_cls(host, port, **request_context) + + def clear(self) -> None: + """ + Empty our store of pools and direct them all to close. + + This will not affect in-flight connections, but they will not be + re-used after completion. + """ + self.pools.clear() + + def connection_from_host( + self, + host: str | None, + port: int | None = None, + scheme: str | None = "http", + pool_kwargs: dict[str, typing.Any] | None = None, + ) -> HTTPConnectionPool: + """ + Get a :class:`urllib3.connectionpool.ConnectionPool` based on the host, port, and scheme. + + If ``port`` isn't given, it will be derived from the ``scheme`` using + ``urllib3.connectionpool.port_by_scheme``. If ``pool_kwargs`` is + provided, it is merged with the instance's ``connection_pool_kw`` + variable and used to create the new connection pool, if one is + needed. + """ + + if not host: + raise LocationValueError("No host specified.") + + request_context = self._merge_pool_kwargs(pool_kwargs) + request_context["scheme"] = scheme or "http" + if not port: + port = port_by_scheme.get(request_context["scheme"].lower(), 80) + request_context["port"] = port + request_context["host"] = host + + return self.connection_from_context(request_context) + + def connection_from_context( + self, request_context: dict[str, typing.Any] + ) -> HTTPConnectionPool: + """ + Get a :class:`urllib3.connectionpool.ConnectionPool` based on the request context. + + ``request_context`` must at least contain the ``scheme`` key and its + value must be a key in ``key_fn_by_scheme`` instance variable. + """ + if "strict" in request_context: + warnings.warn( + "The 'strict' parameter is no longer needed on Python 3+. " + "This will raise an error in urllib3 v2.1.0.", + DeprecationWarning, + ) + request_context.pop("strict") + + scheme = request_context["scheme"].lower() + pool_key_constructor = self.key_fn_by_scheme.get(scheme) + if not pool_key_constructor: + raise URLSchemeUnknown(scheme) + pool_key = pool_key_constructor(request_context) + + return self.connection_from_pool_key(pool_key, request_context=request_context) + + def connection_from_pool_key( + self, pool_key: PoolKey, request_context: dict[str, typing.Any] + ) -> HTTPConnectionPool: + """ + Get a :class:`urllib3.connectionpool.ConnectionPool` based on the provided pool key. + + ``pool_key`` should be a namedtuple that only contains immutable + objects. At a minimum it must have the ``scheme``, ``host``, and + ``port`` fields. + """ + with self.pools.lock: + # If the scheme, host, or port doesn't match existing open + # connections, open a new ConnectionPool. + pool = self.pools.get(pool_key) + if pool: + return pool + + # Make a fresh ConnectionPool of the desired type + scheme = request_context["scheme"] + host = request_context["host"] + port = request_context["port"] + pool = self._new_pool(scheme, host, port, request_context=request_context) + self.pools[pool_key] = pool + + return pool + + def connection_from_url( + self, url: str, pool_kwargs: dict[str, typing.Any] | None = None + ) -> HTTPConnectionPool: + """ + Similar to :func:`urllib3.connectionpool.connection_from_url`. + + If ``pool_kwargs`` is not provided and a new pool needs to be + constructed, ``self.connection_pool_kw`` is used to initialize + the :class:`urllib3.connectionpool.ConnectionPool`. If ``pool_kwargs`` + is provided, it is used instead. Note that if a new pool does not + need to be created for the request, the provided ``pool_kwargs`` are + not used. + """ + u = parse_url(url) + return self.connection_from_host( + u.host, port=u.port, scheme=u.scheme, pool_kwargs=pool_kwargs + ) + + def _merge_pool_kwargs( + self, override: dict[str, typing.Any] | None + ) -> dict[str, typing.Any]: + """ + Merge a dictionary of override values for self.connection_pool_kw. + + This does not modify self.connection_pool_kw and returns a new dict. + Any keys in the override dictionary with a value of ``None`` are + removed from the merged dictionary. + """ + base_pool_kwargs = self.connection_pool_kw.copy() + if override: + for key, value in override.items(): + if value is None: + try: + del base_pool_kwargs[key] + except KeyError: + pass + else: + base_pool_kwargs[key] = value + return base_pool_kwargs + + def _proxy_requires_url_absolute_form(self, parsed_url: Url) -> bool: + """ + Indicates if the proxy requires the complete destination URL in the + request. Normally this is only needed when not using an HTTP CONNECT + tunnel. + """ + if self.proxy is None: + return False + + return not connection_requires_http_tunnel( + self.proxy, self.proxy_config, parsed_url.scheme + ) + + def urlopen( # type: ignore[override] + self, method: str, url: str, redirect: bool = True, **kw: typing.Any + ) -> BaseHTTPResponse: + """ + Same as :meth:`urllib3.HTTPConnectionPool.urlopen` + with custom cross-host redirect logic and only sends the request-uri + portion of the ``url``. + + The given ``url`` parameter must be absolute, such that an appropriate + :class:`urllib3.connectionpool.ConnectionPool` can be chosen for it. + """ + u = parse_url(url) + + if u.scheme is None: + warnings.warn( + "URLs without a scheme (ie 'https://') are deprecated and will raise an error " + "in a future version of urllib3. To avoid this DeprecationWarning ensure all URLs " + "start with 'https://' or 'http://'. Read more in this issue: " + "https://github.com/urllib3/urllib3/issues/2920", + category=DeprecationWarning, + stacklevel=2, + ) + + conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme) + + kw["assert_same_host"] = False + kw["redirect"] = False + + if "headers" not in kw: + kw["headers"] = self.headers + + if self._proxy_requires_url_absolute_form(u): + response = conn.urlopen(method, url, **kw) + else: + response = conn.urlopen(method, u.request_uri, **kw) + + redirect_location = redirect and response.get_redirect_location() + if not redirect_location: + return response + + # Support relative URLs for redirecting. + redirect_location = urljoin(url, redirect_location) + + if response.status == 303: + # Change the method according to RFC 9110, Section 15.4.4. + method = "GET" + # And lose the body not to transfer anything sensitive. + kw["body"] = None + kw["headers"] = HTTPHeaderDict(kw["headers"])._prepare_for_method_change() + + retries = kw.get("retries", response.retries) + if not isinstance(retries, Retry): + retries = Retry.from_int(retries, redirect=redirect) + + # Strip headers marked as unsafe to forward to the redirected location. + # Check remove_headers_on_redirect to avoid a potential network call within + # conn.is_same_host() which may use socket.gethostbyname() in the future. + if retries.remove_headers_on_redirect and not conn.is_same_host( + redirect_location + ): + new_headers = kw["headers"].copy() + for header in kw["headers"]: + if header.lower() in retries.remove_headers_on_redirect: + new_headers.pop(header, None) + kw["headers"] = new_headers + + try: + retries = retries.increment(method, url, response=response, _pool=conn) + except MaxRetryError: + if retries.raise_on_redirect: + response.drain_conn() + raise + return response + + kw["retries"] = retries + kw["redirect"] = redirect + + log.info("Redirecting %s -> %s", url, redirect_location) + + response.drain_conn() + return self.urlopen(method, redirect_location, **kw) + + +class ProxyManager(PoolManager): + """ + Behaves just like :class:`PoolManager`, but sends all requests through + the defined proxy, using the CONNECT method for HTTPS URLs. + + :param proxy_url: + The URL of the proxy to be used. + + :param proxy_headers: + A dictionary containing headers that will be sent to the proxy. In case + of HTTP they are being sent with each request, while in the + HTTPS/CONNECT case they are sent only once. Could be used for proxy + authentication. + + :param proxy_ssl_context: + The proxy SSL context is used to establish the TLS connection to the + proxy when using HTTPS proxies. + + :param use_forwarding_for_https: + (Defaults to False) If set to True will forward requests to the HTTPS + proxy to be made on behalf of the client instead of creating a TLS + tunnel via the CONNECT method. **Enabling this flag means that request + and response headers and content will be visible from the HTTPS proxy** + whereas tunneling keeps request and response headers and content + private. IP address, target hostname, SNI, and port are always visible + to an HTTPS proxy even when this flag is disabled. + + :param proxy_assert_hostname: + The hostname of the certificate to verify against. + + :param proxy_assert_fingerprint: + The fingerprint of the certificate to verify against. + + Example: + + .. code-block:: python + + import urllib3 + + proxy = urllib3.ProxyManager("https://localhost:3128/") + + resp1 = proxy.request("GET", "https://google.com/") + resp2 = proxy.request("GET", "https://httpbin.org/") + + print(len(proxy.pools)) + # 1 + + resp3 = proxy.request("GET", "https://httpbin.org/") + resp4 = proxy.request("GET", "https://twitter.com/") + + print(len(proxy.pools)) + # 3 + + """ + + def __init__( + self, + proxy_url: str, + num_pools: int = 10, + headers: typing.Mapping[str, str] | None = None, + proxy_headers: typing.Mapping[str, str] | None = None, + proxy_ssl_context: ssl.SSLContext | None = None, + use_forwarding_for_https: bool = False, + proxy_assert_hostname: None | str | typing.Literal[False] = None, + proxy_assert_fingerprint: str | None = None, + **connection_pool_kw: typing.Any, + ) -> None: + if isinstance(proxy_url, HTTPConnectionPool): + str_proxy_url = f"{proxy_url.scheme}://{proxy_url.host}:{proxy_url.port}" + else: + str_proxy_url = proxy_url + proxy = parse_url(str_proxy_url) + + if proxy.scheme not in ("http", "https"): + raise ProxySchemeUnknown(proxy.scheme) + + if not proxy.port: + port = port_by_scheme.get(proxy.scheme, 80) + proxy = proxy._replace(port=port) + + self.proxy = proxy + self.proxy_headers = proxy_headers or {} + self.proxy_ssl_context = proxy_ssl_context + self.proxy_config = ProxyConfig( + proxy_ssl_context, + use_forwarding_for_https, + proxy_assert_hostname, + proxy_assert_fingerprint, + ) + + connection_pool_kw["_proxy"] = self.proxy + connection_pool_kw["_proxy_headers"] = self.proxy_headers + connection_pool_kw["_proxy_config"] = self.proxy_config + + super().__init__(num_pools, headers, **connection_pool_kw) + + def connection_from_host( + self, + host: str | None, + port: int | None = None, + scheme: str | None = "http", + pool_kwargs: dict[str, typing.Any] | None = None, + ) -> HTTPConnectionPool: + if scheme == "https": + return super().connection_from_host( + host, port, scheme, pool_kwargs=pool_kwargs + ) + + return super().connection_from_host( + self.proxy.host, self.proxy.port, self.proxy.scheme, pool_kwargs=pool_kwargs # type: ignore[union-attr] + ) + + def _set_proxy_headers( + self, url: str, headers: typing.Mapping[str, str] | None = None + ) -> typing.Mapping[str, str]: + """ + Sets headers needed by proxies: specifically, the Accept and Host + headers. Only sets headers not provided by the user. + """ + headers_ = {"Accept": "*/*"} + + netloc = parse_url(url).netloc + if netloc: + headers_["Host"] = netloc + + if headers: + headers_.update(headers) + return headers_ + + def urlopen( # type: ignore[override] + self, method: str, url: str, redirect: bool = True, **kw: typing.Any + ) -> BaseHTTPResponse: + "Same as HTTP(S)ConnectionPool.urlopen, ``url`` must be absolute." + u = parse_url(url) + if not connection_requires_http_tunnel(self.proxy, self.proxy_config, u.scheme): + # For connections using HTTP CONNECT, httplib sets the necessary + # headers on the CONNECT to the proxy. If we're not using CONNECT, + # we'll definitely need to set 'Host' at the very least. + headers = kw.get("headers", self.headers) + kw["headers"] = self._set_proxy_headers(url, headers) + + return super().urlopen(method, url, redirect=redirect, **kw) + + +def proxy_from_url(url: str, **kw: typing.Any) -> ProxyManager: + return ProxyManager(proxy_url=url, **kw) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/py.typed b/Backend/venv/lib/python3.12/site-packages/urllib3/py.typed new file mode 100644 index 00000000..5f3ea3d9 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/py.typed @@ -0,0 +1,2 @@ +# Instruct type checkers to look for inline type annotations in this package. +# See PEP 561. diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/response.py b/Backend/venv/lib/python3.12/site-packages/urllib3/response.py new file mode 100644 index 00000000..5632dab3 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/response.py @@ -0,0 +1,1307 @@ +from __future__ import annotations + +import collections +import io +import json as _json +import logging +import re +import socket +import sys +import typing +import warnings +import zlib +from contextlib import contextmanager +from http.client import HTTPMessage as _HttplibHTTPMessage +from http.client import HTTPResponse as _HttplibHTTPResponse +from socket import timeout as SocketTimeout + +if typing.TYPE_CHECKING: + from ._base_connection import BaseHTTPConnection + +try: + try: + import brotlicffi as brotli # type: ignore[import-not-found] + except ImportError: + import brotli # type: ignore[import-not-found] +except ImportError: + brotli = None + +from . import util +from ._base_connection import _TYPE_BODY +from ._collections import HTTPHeaderDict +from .connection import BaseSSLError, HTTPConnection, HTTPException +from .exceptions import ( + BodyNotHttplibCompatible, + DecodeError, + HTTPError, + IncompleteRead, + InvalidChunkLength, + InvalidHeader, + ProtocolError, + ReadTimeoutError, + ResponseNotChunked, + SSLError, +) +from .util.response import is_fp_closed, is_response_to_head +from .util.retry import Retry + +if typing.TYPE_CHECKING: + from .connectionpool import HTTPConnectionPool + +log = logging.getLogger(__name__) + + +class ContentDecoder: + def decompress(self, data: bytes) -> bytes: + raise NotImplementedError() + + def flush(self) -> bytes: + raise NotImplementedError() + + +class DeflateDecoder(ContentDecoder): + def __init__(self) -> None: + self._first_try = True + self._data = b"" + self._obj = zlib.decompressobj() + + def decompress(self, data: bytes) -> bytes: + if not data: + return data + + if not self._first_try: + return self._obj.decompress(data) + + self._data += data + try: + decompressed = self._obj.decompress(data) + if decompressed: + self._first_try = False + self._data = None # type: ignore[assignment] + return decompressed + except zlib.error: + self._first_try = False + self._obj = zlib.decompressobj(-zlib.MAX_WBITS) + try: + return self.decompress(self._data) + finally: + self._data = None # type: ignore[assignment] + + def flush(self) -> bytes: + return self._obj.flush() + + +class GzipDecoderState: + FIRST_MEMBER = 0 + OTHER_MEMBERS = 1 + SWALLOW_DATA = 2 + + +class GzipDecoder(ContentDecoder): + def __init__(self) -> None: + self._obj = zlib.decompressobj(16 + zlib.MAX_WBITS) + self._state = GzipDecoderState.FIRST_MEMBER + + def decompress(self, data: bytes) -> bytes: + ret = bytearray() + if self._state == GzipDecoderState.SWALLOW_DATA or not data: + return bytes(ret) + while True: + try: + ret += self._obj.decompress(data) + except zlib.error: + previous_state = self._state + # Ignore data after the first error + self._state = GzipDecoderState.SWALLOW_DATA + if previous_state == GzipDecoderState.OTHER_MEMBERS: + # Allow trailing garbage acceptable in other gzip clients + return bytes(ret) + raise + data = self._obj.unused_data + if not data: + return bytes(ret) + self._state = GzipDecoderState.OTHER_MEMBERS + self._obj = zlib.decompressobj(16 + zlib.MAX_WBITS) + + def flush(self) -> bytes: + return self._obj.flush() + + +if brotli is not None: + + class BrotliDecoder(ContentDecoder): + # Supports both 'brotlipy' and 'Brotli' packages + # since they share an import name. The top branches + # are for 'brotlipy' and bottom branches for 'Brotli' + def __init__(self) -> None: + self._obj = brotli.Decompressor() + if hasattr(self._obj, "decompress"): + setattr(self, "decompress", self._obj.decompress) + else: + setattr(self, "decompress", self._obj.process) + + def flush(self) -> bytes: + if hasattr(self._obj, "flush"): + return self._obj.flush() # type: ignore[no-any-return] + return b"" + + +try: + # Python 3.14+ + from compression import zstd # type: ignore[import-not-found] # noqa: F401 + + HAS_ZSTD = True + + class ZstdDecoder(ContentDecoder): + def __init__(self) -> None: + self._obj = zstd.ZstdDecompressor() + + def decompress(self, data: bytes) -> bytes: + if not data: + return b"" + data_parts = [self._obj.decompress(data)] + while self._obj.eof and self._obj.unused_data: + unused_data = self._obj.unused_data + self._obj = zstd.ZstdDecompressor() + data_parts.append(self._obj.decompress(unused_data)) + return b"".join(data_parts) + + def flush(self) -> bytes: + if not self._obj.eof: + raise DecodeError("Zstandard data is incomplete") + return b"" + +except ImportError: + try: + # Python 3.13 and earlier require the 'zstandard' module. + import zstandard as zstd + + # The package 'zstandard' added the 'eof' property starting + # in v0.18.0 which we require to ensure a complete and + # valid zstd stream was fed into the ZstdDecoder. + # See: https://github.com/urllib3/urllib3/pull/2624 + _zstd_version = tuple( + map(int, re.search(r"^([0-9]+)\.([0-9]+)", zstd.__version__).groups()) # type: ignore[union-attr] + ) + if _zstd_version < (0, 18): # Defensive: + raise ImportError("zstandard module doesn't have eof") + except (AttributeError, ImportError, ValueError): # Defensive: + HAS_ZSTD = False + else: + HAS_ZSTD = True + + class ZstdDecoder(ContentDecoder): # type: ignore[no-redef] + def __init__(self) -> None: + self._obj = zstd.ZstdDecompressor().decompressobj() + + def decompress(self, data: bytes) -> bytes: + if not data: + return b"" + data_parts = [self._obj.decompress(data)] + while self._obj.eof and self._obj.unused_data: + unused_data = self._obj.unused_data + self._obj = zstd.ZstdDecompressor().decompressobj() + data_parts.append(self._obj.decompress(unused_data)) + return b"".join(data_parts) + + def flush(self) -> bytes: + ret = self._obj.flush() # note: this is a no-op + if not self._obj.eof: + raise DecodeError("Zstandard data is incomplete") + return ret # type: ignore[no-any-return] + + +class MultiDecoder(ContentDecoder): + """ + From RFC7231: + If one or more encodings have been applied to a representation, the + sender that applied the encodings MUST generate a Content-Encoding + header field that lists the content codings in the order in which + they were applied. + """ + + def __init__(self, modes: str) -> None: + self._decoders = [_get_decoder(m.strip()) for m in modes.split(",")] + + def flush(self) -> bytes: + return self._decoders[0].flush() + + def decompress(self, data: bytes) -> bytes: + for d in reversed(self._decoders): + data = d.decompress(data) + return data + + +def _get_decoder(mode: str) -> ContentDecoder: + if "," in mode: + return MultiDecoder(mode) + + # According to RFC 9110 section 8.4.1.3, recipients should + # consider x-gzip equivalent to gzip + if mode in ("gzip", "x-gzip"): + return GzipDecoder() + + if brotli is not None and mode == "br": + return BrotliDecoder() + + if HAS_ZSTD and mode == "zstd": + return ZstdDecoder() + + return DeflateDecoder() + + +class BytesQueueBuffer: + """Memory-efficient bytes buffer + + To return decoded data in read() and still follow the BufferedIOBase API, we need a + buffer to always return the correct amount of bytes. + + This buffer should be filled using calls to put() + + Our maximum memory usage is determined by the sum of the size of: + + * self.buffer, which contains the full data + * the largest chunk that we will copy in get() + + The worst case scenario is a single chunk, in which case we'll make a full copy of + the data inside get(). + """ + + def __init__(self) -> None: + self.buffer: typing.Deque[bytes] = collections.deque() + self._size: int = 0 + + def __len__(self) -> int: + return self._size + + def put(self, data: bytes) -> None: + self.buffer.append(data) + self._size += len(data) + + def get(self, n: int) -> bytes: + if n == 0: + return b"" + elif not self.buffer: + raise RuntimeError("buffer is empty") + elif n < 0: + raise ValueError("n should be > 0") + + fetched = 0 + ret = io.BytesIO() + while fetched < n: + remaining = n - fetched + chunk = self.buffer.popleft() + chunk_length = len(chunk) + if remaining < chunk_length: + left_chunk, right_chunk = chunk[:remaining], chunk[remaining:] + ret.write(left_chunk) + self.buffer.appendleft(right_chunk) + self._size -= remaining + break + else: + ret.write(chunk) + self._size -= chunk_length + fetched += chunk_length + + if not self.buffer: + break + + return ret.getvalue() + + def get_all(self) -> bytes: + buffer = self.buffer + if not buffer: + assert self._size == 0 + return b"" + if len(buffer) == 1: + result = buffer.pop() + else: + ret = io.BytesIO() + ret.writelines(buffer.popleft() for _ in range(len(buffer))) + result = ret.getvalue() + self._size = 0 + return result + + +class BaseHTTPResponse(io.IOBase): + CONTENT_DECODERS = ["gzip", "x-gzip", "deflate"] + if brotli is not None: + CONTENT_DECODERS += ["br"] + if HAS_ZSTD: + CONTENT_DECODERS += ["zstd"] + REDIRECT_STATUSES = [301, 302, 303, 307, 308] + + DECODER_ERROR_CLASSES: tuple[type[Exception], ...] = (IOError, zlib.error) + if brotli is not None: + DECODER_ERROR_CLASSES += (brotli.error,) + + if HAS_ZSTD: + DECODER_ERROR_CLASSES += (zstd.ZstdError,) + + def __init__( + self, + *, + headers: typing.Mapping[str, str] | typing.Mapping[bytes, bytes] | None = None, + status: int, + version: int, + version_string: str, + reason: str | None, + decode_content: bool, + request_url: str | None, + retries: Retry | None = None, + ) -> None: + if isinstance(headers, HTTPHeaderDict): + self.headers = headers + else: + self.headers = HTTPHeaderDict(headers) # type: ignore[arg-type] + self.status = status + self.version = version + self.version_string = version_string + self.reason = reason + self.decode_content = decode_content + self._has_decoded_content = False + self._request_url: str | None = request_url + self.retries = retries + + self.chunked = False + tr_enc = self.headers.get("transfer-encoding", "").lower() + # Don't incur the penalty of creating a list and then discarding it + encodings = (enc.strip() for enc in tr_enc.split(",")) + if "chunked" in encodings: + self.chunked = True + + self._decoder: ContentDecoder | None = None + self.length_remaining: int | None + + def get_redirect_location(self) -> str | None | typing.Literal[False]: + """ + Should we redirect and where to? + + :returns: Truthy redirect location string if we got a redirect status + code and valid location. ``None`` if redirect status and no + location. ``False`` if not a redirect status code. + """ + if self.status in self.REDIRECT_STATUSES: + return self.headers.get("location") + return False + + @property + def data(self) -> bytes: + raise NotImplementedError() + + def json(self) -> typing.Any: + """ + Deserializes the body of the HTTP response as a Python object. + + The body of the HTTP response must be encoded using UTF-8, as per + `RFC 8529 Section 8.1 `_. + + To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to + your custom decoder instead. + + If the body of the HTTP response is not decodable to UTF-8, a + `UnicodeDecodeError` will be raised. If the body of the HTTP response is not a + valid JSON document, a `json.JSONDecodeError` will be raised. + + Read more :ref:`here `. + + :returns: The body of the HTTP response as a Python object. + """ + data = self.data.decode("utf-8") + return _json.loads(data) + + @property + def url(self) -> str | None: + raise NotImplementedError() + + @url.setter + def url(self, url: str | None) -> None: + raise NotImplementedError() + + @property + def connection(self) -> BaseHTTPConnection | None: + raise NotImplementedError() + + @property + def retries(self) -> Retry | None: + return self._retries + + @retries.setter + def retries(self, retries: Retry | None) -> None: + # Override the request_url if retries has a redirect location. + if retries is not None and retries.history: + self.url = retries.history[-1].redirect_location + self._retries = retries + + def stream( + self, amt: int | None = 2**16, decode_content: bool | None = None + ) -> typing.Iterator[bytes]: + raise NotImplementedError() + + def read( + self, + amt: int | None = None, + decode_content: bool | None = None, + cache_content: bool = False, + ) -> bytes: + raise NotImplementedError() + + def read1( + self, + amt: int | None = None, + decode_content: bool | None = None, + ) -> bytes: + raise NotImplementedError() + + def read_chunked( + self, + amt: int | None = None, + decode_content: bool | None = None, + ) -> typing.Iterator[bytes]: + raise NotImplementedError() + + def release_conn(self) -> None: + raise NotImplementedError() + + def drain_conn(self) -> None: + raise NotImplementedError() + + def shutdown(self) -> None: + raise NotImplementedError() + + def close(self) -> None: + raise NotImplementedError() + + def _init_decoder(self) -> None: + """ + Set-up the _decoder attribute if necessary. + """ + # Note: content-encoding value should be case-insensitive, per RFC 7230 + # Section 3.2 + content_encoding = self.headers.get("content-encoding", "").lower() + if self._decoder is None: + if content_encoding in self.CONTENT_DECODERS: + self._decoder = _get_decoder(content_encoding) + elif "," in content_encoding: + encodings = [ + e.strip() + for e in content_encoding.split(",") + if e.strip() in self.CONTENT_DECODERS + ] + if encodings: + self._decoder = _get_decoder(content_encoding) + + def _decode( + self, data: bytes, decode_content: bool | None, flush_decoder: bool + ) -> bytes: + """ + Decode the data passed in and potentially flush the decoder. + """ + if not decode_content: + if self._has_decoded_content: + raise RuntimeError( + "Calling read(decode_content=False) is not supported after " + "read(decode_content=True) was called." + ) + return data + + try: + if self._decoder: + data = self._decoder.decompress(data) + self._has_decoded_content = True + except self.DECODER_ERROR_CLASSES as e: + content_encoding = self.headers.get("content-encoding", "").lower() + raise DecodeError( + "Received response with content-encoding: %s, but " + "failed to decode it." % content_encoding, + e, + ) from e + if flush_decoder: + data += self._flush_decoder() + + return data + + def _flush_decoder(self) -> bytes: + """ + Flushes the decoder. Should only be called if the decoder is actually + being used. + """ + if self._decoder: + return self._decoder.decompress(b"") + self._decoder.flush() + return b"" + + # Compatibility methods for `io` module + def readinto(self, b: bytearray) -> int: + temp = self.read(len(b)) + if len(temp) == 0: + return 0 + else: + b[: len(temp)] = temp + return len(temp) + + # Compatibility methods for http.client.HTTPResponse + def getheaders(self) -> HTTPHeaderDict: + warnings.warn( + "HTTPResponse.getheaders() is deprecated and will be removed " + "in urllib3 v2.6.0. Instead access HTTPResponse.headers directly.", + category=DeprecationWarning, + stacklevel=2, + ) + return self.headers + + def getheader(self, name: str, default: str | None = None) -> str | None: + warnings.warn( + "HTTPResponse.getheader() is deprecated and will be removed " + "in urllib3 v2.6.0. Instead use HTTPResponse.headers.get(name, default).", + category=DeprecationWarning, + stacklevel=2, + ) + return self.headers.get(name, default) + + # Compatibility method for http.cookiejar + def info(self) -> HTTPHeaderDict: + return self.headers + + def geturl(self) -> str | None: + return self.url + + +class HTTPResponse(BaseHTTPResponse): + """ + HTTP Response container. + + Backwards-compatible with :class:`http.client.HTTPResponse` but the response ``body`` is + loaded and decoded on-demand when the ``data`` property is accessed. This + class is also compatible with the Python standard library's :mod:`io` + module, and can hence be treated as a readable object in the context of that + framework. + + Extra parameters for behaviour not present in :class:`http.client.HTTPResponse`: + + :param preload_content: + If True, the response's body will be preloaded during construction. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + + :param original_response: + When this HTTPResponse wrapper is generated from an :class:`http.client.HTTPResponse` + object, it's convenient to include the original for debug purposes. It's + otherwise unused. + + :param retries: + The retries contains the last :class:`~urllib3.util.retry.Retry` that + was used during the request. + + :param enforce_content_length: + Enforce content length checking. Body returned by server must match + value of Content-Length header, if present. Otherwise, raise error. + """ + + def __init__( + self, + body: _TYPE_BODY = "", + headers: typing.Mapping[str, str] | typing.Mapping[bytes, bytes] | None = None, + status: int = 0, + version: int = 0, + version_string: str = "HTTP/?", + reason: str | None = None, + preload_content: bool = True, + decode_content: bool = True, + original_response: _HttplibHTTPResponse | None = None, + pool: HTTPConnectionPool | None = None, + connection: HTTPConnection | None = None, + msg: _HttplibHTTPMessage | None = None, + retries: Retry | None = None, + enforce_content_length: bool = True, + request_method: str | None = None, + request_url: str | None = None, + auto_close: bool = True, + sock_shutdown: typing.Callable[[int], None] | None = None, + ) -> None: + super().__init__( + headers=headers, + status=status, + version=version, + version_string=version_string, + reason=reason, + decode_content=decode_content, + request_url=request_url, + retries=retries, + ) + + self.enforce_content_length = enforce_content_length + self.auto_close = auto_close + + self._body = None + self._fp: _HttplibHTTPResponse | None = None + self._original_response = original_response + self._fp_bytes_read = 0 + self.msg = msg + + if body and isinstance(body, (str, bytes)): + self._body = body + + self._pool = pool + self._connection = connection + + if hasattr(body, "read"): + self._fp = body # type: ignore[assignment] + self._sock_shutdown = sock_shutdown + + # Are we using the chunked-style of transfer encoding? + self.chunk_left: int | None = None + + # Determine length of response + self.length_remaining = self._init_length(request_method) + + # Used to return the correct amount of bytes for partial read()s + self._decoded_buffer = BytesQueueBuffer() + + # If requested, preload the body. + if preload_content and not self._body: + self._body = self.read(decode_content=decode_content) + + def release_conn(self) -> None: + if not self._pool or not self._connection: + return None + + self._pool._put_conn(self._connection) + self._connection = None + + def drain_conn(self) -> None: + """ + Read and discard any remaining HTTP response data in the response connection. + + Unread data in the HTTPResponse connection blocks the connection from being released back to the pool. + """ + try: + self.read() + except (HTTPError, OSError, BaseSSLError, HTTPException): + pass + + @property + def data(self) -> bytes: + # For backwards-compat with earlier urllib3 0.4 and earlier. + if self._body: + return self._body # type: ignore[return-value] + + if self._fp: + return self.read(cache_content=True) + + return None # type: ignore[return-value] + + @property + def connection(self) -> HTTPConnection | None: + return self._connection + + def isclosed(self) -> bool: + return is_fp_closed(self._fp) + + def tell(self) -> int: + """ + Obtain the number of bytes pulled over the wire so far. May differ from + the amount of content returned by :meth:``urllib3.response.HTTPResponse.read`` + if bytes are encoded on the wire (e.g, compressed). + """ + return self._fp_bytes_read + + def _init_length(self, request_method: str | None) -> int | None: + """ + Set initial length value for Response content if available. + """ + length: int | None + content_length: str | None = self.headers.get("content-length") + + if content_length is not None: + if self.chunked: + # This Response will fail with an IncompleteRead if it can't be + # received as chunked. This method falls back to attempt reading + # the response before raising an exception. + log.warning( + "Received response with both Content-Length and " + "Transfer-Encoding set. This is expressly forbidden " + "by RFC 7230 sec 3.3.2. Ignoring Content-Length and " + "attempting to process response as Transfer-Encoding: " + "chunked." + ) + return None + + try: + # RFC 7230 section 3.3.2 specifies multiple content lengths can + # be sent in a single Content-Length header + # (e.g. Content-Length: 42, 42). This line ensures the values + # are all valid ints and that as long as the `set` length is 1, + # all values are the same. Otherwise, the header is invalid. + lengths = {int(val) for val in content_length.split(",")} + if len(lengths) > 1: + raise InvalidHeader( + "Content-Length contained multiple " + "unmatching values (%s)" % content_length + ) + length = lengths.pop() + except ValueError: + length = None + else: + if length < 0: + length = None + + else: # if content_length is None + length = None + + # Convert status to int for comparison + # In some cases, httplib returns a status of "_UNKNOWN" + try: + status = int(self.status) + except ValueError: + status = 0 + + # Check for responses that shouldn't include a body + if status in (204, 304) or 100 <= status < 200 or request_method == "HEAD": + length = 0 + + return length + + @contextmanager + def _error_catcher(self) -> typing.Generator[None]: + """ + Catch low-level python exceptions, instead re-raising urllib3 + variants, so that low-level exceptions are not leaked in the + high-level api. + + On exit, release the connection back to the pool. + """ + clean_exit = False + + try: + try: + yield + + except SocketTimeout as e: + # FIXME: Ideally we'd like to include the url in the ReadTimeoutError but + # there is yet no clean way to get at it from this context. + raise ReadTimeoutError(self._pool, None, "Read timed out.") from e # type: ignore[arg-type] + + except BaseSSLError as e: + # FIXME: Is there a better way to differentiate between SSLErrors? + if "read operation timed out" not in str(e): + # SSL errors related to framing/MAC get wrapped and reraised here + raise SSLError(e) from e + + raise ReadTimeoutError(self._pool, None, "Read timed out.") from e # type: ignore[arg-type] + + except IncompleteRead as e: + if ( + e.expected is not None + and e.partial is not None + and e.expected == -e.partial + ): + arg = "Response may not contain content." + else: + arg = f"Connection broken: {e!r}" + raise ProtocolError(arg, e) from e + + except (HTTPException, OSError) as e: + raise ProtocolError(f"Connection broken: {e!r}", e) from e + + # If no exception is thrown, we should avoid cleaning up + # unnecessarily. + clean_exit = True + finally: + # If we didn't terminate cleanly, we need to throw away our + # connection. + if not clean_exit: + # The response may not be closed but we're not going to use it + # anymore so close it now to ensure that the connection is + # released back to the pool. + if self._original_response: + self._original_response.close() + + # Closing the response may not actually be sufficient to close + # everything, so if we have a hold of the connection close that + # too. + if self._connection: + self._connection.close() + + # If we hold the original response but it's closed now, we should + # return the connection back to the pool. + if self._original_response and self._original_response.isclosed(): + self.release_conn() + + def _fp_read( + self, + amt: int | None = None, + *, + read1: bool = False, + ) -> bytes: + """ + Read a response with the thought that reading the number of bytes + larger than can fit in a 32-bit int at a time via SSL in some + known cases leads to an overflow error that has to be prevented + if `amt` or `self.length_remaining` indicate that a problem may + happen. + + The known cases: + * CPython < 3.9.7 because of a bug + https://github.com/urllib3/urllib3/issues/2513#issuecomment-1152559900. + * urllib3 injected with pyOpenSSL-backed SSL-support. + * CPython < 3.10 only when `amt` does not fit 32-bit int. + """ + assert self._fp + c_int_max = 2**31 - 1 + if ( + (amt and amt > c_int_max) + or ( + amt is None + and self.length_remaining + and self.length_remaining > c_int_max + ) + ) and (util.IS_PYOPENSSL or sys.version_info < (3, 10)): + if read1: + return self._fp.read1(c_int_max) + buffer = io.BytesIO() + # Besides `max_chunk_amt` being a maximum chunk size, it + # affects memory overhead of reading a response by this + # method in CPython. + # `c_int_max` equal to 2 GiB - 1 byte is the actual maximum + # chunk size that does not lead to an overflow error, but + # 256 MiB is a compromise. + max_chunk_amt = 2**28 + while amt is None or amt != 0: + if amt is not None: + chunk_amt = min(amt, max_chunk_amt) + amt -= chunk_amt + else: + chunk_amt = max_chunk_amt + data = self._fp.read(chunk_amt) + if not data: + break + buffer.write(data) + del data # to reduce peak memory usage by `max_chunk_amt`. + return buffer.getvalue() + elif read1: + return self._fp.read1(amt) if amt is not None else self._fp.read1() + else: + # StringIO doesn't like amt=None + return self._fp.read(amt) if amt is not None else self._fp.read() + + def _raw_read( + self, + amt: int | None = None, + *, + read1: bool = False, + ) -> bytes: + """ + Reads `amt` of bytes from the socket. + """ + if self._fp is None: + return None # type: ignore[return-value] + + fp_closed = getattr(self._fp, "closed", False) + + with self._error_catcher(): + data = self._fp_read(amt, read1=read1) if not fp_closed else b"" + if amt is not None and amt != 0 and not data: + # Platform-specific: Buggy versions of Python. + # Close the connection when no data is returned + # + # This is redundant to what httplib/http.client _should_ + # already do. However, versions of python released before + # December 15, 2012 (http://bugs.python.org/issue16298) do + # not properly close the connection in all cases. There is + # no harm in redundantly calling close. + self._fp.close() + if ( + self.enforce_content_length + and self.length_remaining is not None + and self.length_remaining != 0 + ): + # This is an edge case that httplib failed to cover due + # to concerns of backward compatibility. We're + # addressing it here to make sure IncompleteRead is + # raised during streaming, so all calls with incorrect + # Content-Length are caught. + raise IncompleteRead(self._fp_bytes_read, self.length_remaining) + elif read1 and ( + (amt != 0 and not data) or self.length_remaining == len(data) + ): + # All data has been read, but `self._fp.read1` in + # CPython 3.12 and older doesn't always close + # `http.client.HTTPResponse`, so we close it here. + # See https://github.com/python/cpython/issues/113199 + self._fp.close() + + if data: + self._fp_bytes_read += len(data) + if self.length_remaining is not None: + self.length_remaining -= len(data) + return data + + def read( + self, + amt: int | None = None, + decode_content: bool | None = None, + cache_content: bool = False, + ) -> bytes: + """ + Similar to :meth:`http.client.HTTPResponse.read`, but with two additional + parameters: ``decode_content`` and ``cache_content``. + + :param amt: + How much of the content to read. If specified, caching is skipped + because it doesn't make sense to cache partial content as the full + response. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + + :param cache_content: + If True, will save the returned data such that the same result is + returned despite of the state of the underlying file object. This + is useful if you want the ``.data`` property to continue working + after having ``.read()`` the file object. (Overridden if ``amt`` is + set.) + """ + self._init_decoder() + if decode_content is None: + decode_content = self.decode_content + + if amt and amt < 0: + # Negative numbers and `None` should be treated the same. + amt = None + elif amt is not None: + cache_content = False + + if len(self._decoded_buffer) >= amt: + return self._decoded_buffer.get(amt) + + data = self._raw_read(amt) + + flush_decoder = amt is None or (amt != 0 and not data) + + if not data and len(self._decoded_buffer) == 0: + return data + + if amt is None: + data = self._decode(data, decode_content, flush_decoder) + if cache_content: + self._body = data + else: + # do not waste memory on buffer when not decoding + if not decode_content: + if self._has_decoded_content: + raise RuntimeError( + "Calling read(decode_content=False) is not supported after " + "read(decode_content=True) was called." + ) + return data + + decoded_data = self._decode(data, decode_content, flush_decoder) + self._decoded_buffer.put(decoded_data) + + while len(self._decoded_buffer) < amt and data: + # TODO make sure to initially read enough data to get past the headers + # For example, the GZ file header takes 10 bytes, we don't want to read + # it one byte at a time + data = self._raw_read(amt) + decoded_data = self._decode(data, decode_content, flush_decoder) + self._decoded_buffer.put(decoded_data) + data = self._decoded_buffer.get(amt) + + return data + + def read1( + self, + amt: int | None = None, + decode_content: bool | None = None, + ) -> bytes: + """ + Similar to ``http.client.HTTPResponse.read1`` and documented + in :meth:`io.BufferedReader.read1`, but with an additional parameter: + ``decode_content``. + + :param amt: + How much of the content to read. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + """ + if decode_content is None: + decode_content = self.decode_content + if amt and amt < 0: + # Negative numbers and `None` should be treated the same. + amt = None + # try and respond without going to the network + if self._has_decoded_content: + if not decode_content: + raise RuntimeError( + "Calling read1(decode_content=False) is not supported after " + "read1(decode_content=True) was called." + ) + if len(self._decoded_buffer) > 0: + if amt is None: + return self._decoded_buffer.get_all() + return self._decoded_buffer.get(amt) + if amt == 0: + return b"" + + # FIXME, this method's type doesn't say returning None is possible + data = self._raw_read(amt, read1=True) + if not decode_content or data is None: + return data + + self._init_decoder() + while True: + flush_decoder = not data + decoded_data = self._decode(data, decode_content, flush_decoder) + self._decoded_buffer.put(decoded_data) + if decoded_data or flush_decoder: + break + data = self._raw_read(8192, read1=True) + + if amt is None: + return self._decoded_buffer.get_all() + return self._decoded_buffer.get(amt) + + def stream( + self, amt: int | None = 2**16, decode_content: bool | None = None + ) -> typing.Generator[bytes]: + """ + A generator wrapper for the read() method. A call will block until + ``amt`` bytes have been read from the connection or until the + connection is closed. + + :param amt: + How much of the content to read. The generator will return up to + much data per iteration, but may return less. This is particularly + likely when using compressed data. However, the empty string will + never be returned. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + """ + if self.chunked and self.supports_chunked_reads(): + yield from self.read_chunked(amt, decode_content=decode_content) + else: + while not is_fp_closed(self._fp) or len(self._decoded_buffer) > 0: + data = self.read(amt=amt, decode_content=decode_content) + + if data: + yield data + + # Overrides from io.IOBase + def readable(self) -> bool: + return True + + def shutdown(self) -> None: + if not self._sock_shutdown: + raise ValueError("Cannot shutdown socket as self._sock_shutdown is not set") + if self._connection is None: + raise RuntimeError( + "Cannot shutdown as connection has already been released to the pool" + ) + self._sock_shutdown(socket.SHUT_RD) + + def close(self) -> None: + self._sock_shutdown = None + + if not self.closed and self._fp: + self._fp.close() + + if self._connection: + self._connection.close() + + if not self.auto_close: + io.IOBase.close(self) + + @property + def closed(self) -> bool: + if not self.auto_close: + return io.IOBase.closed.__get__(self) # type: ignore[no-any-return] + elif self._fp is None: + return True + elif hasattr(self._fp, "isclosed"): + return self._fp.isclosed() + elif hasattr(self._fp, "closed"): + return self._fp.closed + else: + return True + + def fileno(self) -> int: + if self._fp is None: + raise OSError("HTTPResponse has no file to get a fileno from") + elif hasattr(self._fp, "fileno"): + return self._fp.fileno() + else: + raise OSError( + "The file-like object this HTTPResponse is wrapped " + "around has no file descriptor" + ) + + def flush(self) -> None: + if ( + self._fp is not None + and hasattr(self._fp, "flush") + and not getattr(self._fp, "closed", False) + ): + return self._fp.flush() + + def supports_chunked_reads(self) -> bool: + """ + Checks if the underlying file-like object looks like a + :class:`http.client.HTTPResponse` object. We do this by testing for + the fp attribute. If it is present we assume it returns raw chunks as + processed by read_chunked(). + """ + return hasattr(self._fp, "fp") + + def _update_chunk_length(self) -> None: + # First, we'll figure out length of a chunk and then + # we'll try to read it from socket. + if self.chunk_left is not None: + return None + line = self._fp.fp.readline() # type: ignore[union-attr] + line = line.split(b";", 1)[0] + try: + self.chunk_left = int(line, 16) + except ValueError: + self.close() + if line: + # Invalid chunked protocol response, abort. + raise InvalidChunkLength(self, line) from None + else: + # Truncated at start of next chunk + raise ProtocolError("Response ended prematurely") from None + + def _handle_chunk(self, amt: int | None) -> bytes: + returned_chunk = None + if amt is None: + chunk = self._fp._safe_read(self.chunk_left) # type: ignore[union-attr] + returned_chunk = chunk + self._fp._safe_read(2) # type: ignore[union-attr] # Toss the CRLF at the end of the chunk. + self.chunk_left = None + elif self.chunk_left is not None and amt < self.chunk_left: + value = self._fp._safe_read(amt) # type: ignore[union-attr] + self.chunk_left = self.chunk_left - amt + returned_chunk = value + elif amt == self.chunk_left: + value = self._fp._safe_read(amt) # type: ignore[union-attr] + self._fp._safe_read(2) # type: ignore[union-attr] # Toss the CRLF at the end of the chunk. + self.chunk_left = None + returned_chunk = value + else: # amt > self.chunk_left + returned_chunk = self._fp._safe_read(self.chunk_left) # type: ignore[union-attr] + self._fp._safe_read(2) # type: ignore[union-attr] # Toss the CRLF at the end of the chunk. + self.chunk_left = None + return returned_chunk # type: ignore[no-any-return] + + def read_chunked( + self, amt: int | None = None, decode_content: bool | None = None + ) -> typing.Generator[bytes]: + """ + Similar to :meth:`HTTPResponse.read`, but with an additional + parameter: ``decode_content``. + + :param amt: + How much of the content to read. If specified, caching is skipped + because it doesn't make sense to cache partial content as the full + response. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + """ + self._init_decoder() + # FIXME: Rewrite this method and make it a class with a better structured logic. + if not self.chunked: + raise ResponseNotChunked( + "Response is not chunked. " + "Header 'transfer-encoding: chunked' is missing." + ) + if not self.supports_chunked_reads(): + raise BodyNotHttplibCompatible( + "Body should be http.client.HTTPResponse like. " + "It should have have an fp attribute which returns raw chunks." + ) + + with self._error_catcher(): + # Don't bother reading the body of a HEAD request. + if self._original_response and is_response_to_head(self._original_response): + self._original_response.close() + return None + + # If a response is already read and closed + # then return immediately. + if self._fp.fp is None: # type: ignore[union-attr] + return None + + if amt and amt < 0: + # Negative numbers and `None` should be treated the same, + # but httplib handles only `None` correctly. + amt = None + + while True: + self._update_chunk_length() + if self.chunk_left == 0: + break + chunk = self._handle_chunk(amt) + decoded = self._decode( + chunk, decode_content=decode_content, flush_decoder=False + ) + if decoded: + yield decoded + + if decode_content: + # On CPython and PyPy, we should never need to flush the + # decoder. However, on Jython we *might* need to, so + # lets defensively do it anyway. + decoded = self._flush_decoder() + if decoded: # Platform-specific: Jython. + yield decoded + + # Chunk content ends with \r\n: discard it. + while self._fp is not None: + line = self._fp.fp.readline() + if not line: + # Some sites may not end with '\r\n'. + break + if line == b"\r\n": + break + + # We read everything; close the "file". + if self._original_response: + self._original_response.close() + + @property + def url(self) -> str | None: + """ + Returns the URL that was the source of this response. + If the request that generated this response redirected, this method + will return the final redirect location. + """ + return self._request_url + + @url.setter + def url(self, url: str) -> None: + self._request_url = url + + def __iter__(self) -> typing.Iterator[bytes]: + buffer: list[bytes] = [] + for chunk in self.stream(decode_content=True): + if b"\n" in chunk: + chunks = chunk.split(b"\n") + yield b"".join(buffer) + chunks[0] + b"\n" + for x in chunks[1:-1]: + yield x + b"\n" + if chunks[-1]: + buffer = [chunks[-1]] + else: + buffer = [] + else: + buffer.append(chunk) + if buffer: + yield b"".join(buffer) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__init__.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__init__.py new file mode 100644 index 00000000..53412603 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__init__.py @@ -0,0 +1,42 @@ +# For backwards compatibility, provide imports that used to be here. +from __future__ import annotations + +from .connection import is_connection_dropped +from .request import SKIP_HEADER, SKIPPABLE_HEADERS, make_headers +from .response import is_fp_closed +from .retry import Retry +from .ssl_ import ( + ALPN_PROTOCOLS, + IS_PYOPENSSL, + SSLContext, + assert_fingerprint, + create_urllib3_context, + resolve_cert_reqs, + resolve_ssl_version, + ssl_wrap_socket, +) +from .timeout import Timeout +from .url import Url, parse_url +from .wait import wait_for_read, wait_for_write + +__all__ = ( + "IS_PYOPENSSL", + "SSLContext", + "ALPN_PROTOCOLS", + "Retry", + "Timeout", + "Url", + "assert_fingerprint", + "create_urllib3_context", + "is_connection_dropped", + "is_fp_closed", + "parse_url", + "make_headers", + "resolve_cert_reqs", + "resolve_ssl_version", + "ssl_wrap_socket", + "wait_for_read", + "wait_for_write", + "SKIP_HEADER", + "SKIPPABLE_HEADERS", +) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/__init__.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 00000000..e0332381 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/__init__.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/connection.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/connection.cpython-312.pyc new file mode 100644 index 00000000..f228eddd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/connection.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/proxy.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/proxy.cpython-312.pyc new file mode 100644 index 00000000..6f7d326c Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/proxy.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/request.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/request.cpython-312.pyc new file mode 100644 index 00000000..2d581052 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/request.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/response.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/response.cpython-312.pyc new file mode 100644 index 00000000..8f7c5ef9 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/response.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/retry.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/retry.cpython-312.pyc new file mode 100644 index 00000000..ea11a617 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/retry.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_.cpython-312.pyc new file mode 100644 index 00000000..1a376dfa Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc new file mode 100644 index 00000000..9b0022dd Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssltransport.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssltransport.cpython-312.pyc new file mode 100644 index 00000000..45e6762f Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssltransport.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/timeout.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/timeout.cpython-312.pyc new file mode 100644 index 00000000..fab88eda Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/timeout.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/url.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/url.cpython-312.pyc new file mode 100644 index 00000000..27106258 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/url.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/util.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/util.cpython-312.pyc new file mode 100644 index 00000000..0642ed63 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/util.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/wait.cpython-312.pyc b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/wait.cpython-312.pyc new file mode 100644 index 00000000..e529c151 Binary files /dev/null and b/Backend/venv/lib/python3.12/site-packages/urllib3/util/__pycache__/wait.cpython-312.pyc differ diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/connection.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/connection.py new file mode 100644 index 00000000..f92519ee --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/connection.py @@ -0,0 +1,137 @@ +from __future__ import annotations + +import socket +import typing + +from ..exceptions import LocationParseError +from .timeout import _DEFAULT_TIMEOUT, _TYPE_TIMEOUT + +_TYPE_SOCKET_OPTIONS = list[tuple[int, int, typing.Union[int, bytes]]] + +if typing.TYPE_CHECKING: + from .._base_connection import BaseHTTPConnection + + +def is_connection_dropped(conn: BaseHTTPConnection) -> bool: # Platform-specific + """ + Returns True if the connection is dropped and should be closed. + :param conn: :class:`urllib3.connection.HTTPConnection` object. + """ + return not conn.is_connected + + +# This function is copied from socket.py in the Python 2.7 standard +# library test suite. Added to its signature is only `socket_options`. +# One additional modification is that we avoid binding to IPv6 servers +# discovered in DNS if the system doesn't have IPv6 functionality. +def create_connection( + address: tuple[str, int], + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + socket_options: _TYPE_SOCKET_OPTIONS | None = None, +) -> socket.socket: + """Connect to *address* and return the socket object. + + Convenience function. Connect to *address* (a 2-tuple ``(host, + port)``) and return the socket object. Passing the optional + *timeout* parameter will set the timeout on the socket instance + before attempting to connect. If no *timeout* is supplied, the + global default timeout setting returned by :func:`socket.getdefaulttimeout` + is used. If *source_address* is set it must be a tuple of (host, port) + for the socket to bind as a source address before making the connection. + An host of '' or port 0 tells the OS to use the default. + """ + + host, port = address + if host.startswith("["): + host = host.strip("[]") + err = None + + # Using the value from allowed_gai_family() in the context of getaddrinfo lets + # us select whether to work with IPv4 DNS records, IPv6 records, or both. + # The original create_connection function always returns all records. + family = allowed_gai_family() + + try: + host.encode("idna") + except UnicodeError: + raise LocationParseError(f"'{host}', label empty or too long") from None + + for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): + af, socktype, proto, canonname, sa = res + sock = None + try: + sock = socket.socket(af, socktype, proto) + + # If provided, set socket level options before connecting. + _set_socket_options(sock, socket_options) + + if timeout is not _DEFAULT_TIMEOUT: + sock.settimeout(timeout) + if source_address: + sock.bind(source_address) + sock.connect(sa) + # Break explicitly a reference cycle + err = None + return sock + + except OSError as _: + err = _ + if sock is not None: + sock.close() + + if err is not None: + try: + raise err + finally: + # Break explicitly a reference cycle + err = None + else: + raise OSError("getaddrinfo returns an empty list") + + +def _set_socket_options( + sock: socket.socket, options: _TYPE_SOCKET_OPTIONS | None +) -> None: + if options is None: + return + + for opt in options: + sock.setsockopt(*opt) + + +def allowed_gai_family() -> socket.AddressFamily: + """This function is designed to work in the context of + getaddrinfo, where family=socket.AF_UNSPEC is the default and + will perform a DNS search for both IPv6 and IPv4 records.""" + + family = socket.AF_INET + if HAS_IPV6: + family = socket.AF_UNSPEC + return family + + +def _has_ipv6(host: str) -> bool: + """Returns True if the system can bind an IPv6 address.""" + sock = None + has_ipv6 = False + + if socket.has_ipv6: + # has_ipv6 returns true if cPython was compiled with IPv6 support. + # It does not tell us if the system has IPv6 support enabled. To + # determine that we must bind to an IPv6 address. + # https://github.com/urllib3/urllib3/pull/611 + # https://bugs.python.org/issue658327 + try: + sock = socket.socket(socket.AF_INET6) + sock.bind((host, 0)) + has_ipv6 = True + except Exception: + pass + + if sock: + sock.close() + return has_ipv6 + + +HAS_IPV6 = _has_ipv6("::1") diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/proxy.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/proxy.py new file mode 100644 index 00000000..908fc662 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/proxy.py @@ -0,0 +1,43 @@ +from __future__ import annotations + +import typing + +from .url import Url + +if typing.TYPE_CHECKING: + from ..connection import ProxyConfig + + +def connection_requires_http_tunnel( + proxy_url: Url | None = None, + proxy_config: ProxyConfig | None = None, + destination_scheme: str | None = None, +) -> bool: + """ + Returns True if the connection requires an HTTP CONNECT through the proxy. + + :param URL proxy_url: + URL of the proxy. + :param ProxyConfig proxy_config: + Proxy configuration from poolmanager.py + :param str destination_scheme: + The scheme of the destination. (i.e https, http, etc) + """ + # If we're not using a proxy, no way to use a tunnel. + if proxy_url is None: + return False + + # HTTP destinations never require tunneling, we always forward. + if destination_scheme == "http": + return False + + # Support for forwarding with HTTPS proxies and HTTPS destinations. + if ( + proxy_url.scheme == "https" + and proxy_config + and proxy_config.use_forwarding_for_https + ): + return False + + # Otherwise always use a tunnel. + return True diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/request.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/request.py new file mode 100644 index 00000000..23605c52 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/request.py @@ -0,0 +1,266 @@ +from __future__ import annotations + +import io +import typing +from base64 import b64encode +from enum import Enum + +from ..exceptions import UnrewindableBodyError +from .util import to_bytes + +if typing.TYPE_CHECKING: + from typing import Final + +# Pass as a value within ``headers`` to skip +# emitting some HTTP headers that are added automatically. +# The only headers that are supported are ``Accept-Encoding``, +# ``Host``, and ``User-Agent``. +SKIP_HEADER = "@@@SKIP_HEADER@@@" +SKIPPABLE_HEADERS = frozenset(["accept-encoding", "host", "user-agent"]) + +ACCEPT_ENCODING = "gzip,deflate" +try: + try: + import brotlicffi as _unused_module_brotli # type: ignore[import-not-found] # noqa: F401 + except ImportError: + import brotli as _unused_module_brotli # type: ignore[import-not-found] # noqa: F401 +except ImportError: + pass +else: + ACCEPT_ENCODING += ",br" + +try: + from compression import ( # type: ignore[import-not-found] # noqa: F401 + zstd as _unused_module_zstd, + ) + + ACCEPT_ENCODING += ",zstd" +except ImportError: + try: + import zstandard as _unused_module_zstd # noqa: F401 + + ACCEPT_ENCODING += ",zstd" + except ImportError: + pass + + +class _TYPE_FAILEDTELL(Enum): + token = 0 + + +_FAILEDTELL: Final[_TYPE_FAILEDTELL] = _TYPE_FAILEDTELL.token + +_TYPE_BODY_POSITION = typing.Union[int, _TYPE_FAILEDTELL] + +# When sending a request with these methods we aren't expecting +# a body so don't need to set an explicit 'Content-Length: 0' +# The reason we do this in the negative instead of tracking methods +# which 'should' have a body is because unknown methods should be +# treated as if they were 'POST' which *does* expect a body. +_METHODS_NOT_EXPECTING_BODY = {"GET", "HEAD", "DELETE", "TRACE", "OPTIONS", "CONNECT"} + + +def make_headers( + keep_alive: bool | None = None, + accept_encoding: bool | list[str] | str | None = None, + user_agent: str | None = None, + basic_auth: str | None = None, + proxy_basic_auth: str | None = None, + disable_cache: bool | None = None, +) -> dict[str, str]: + """ + Shortcuts for generating request headers. + + :param keep_alive: + If ``True``, adds 'connection: keep-alive' header. + + :param accept_encoding: + Can be a boolean, list, or string. + ``True`` translates to 'gzip,deflate'. If the dependencies for + Brotli (either the ``brotli`` or ``brotlicffi`` package) and/or Zstandard + (the ``zstandard`` package) algorithms are installed, then their encodings are + included in the string ('br' and 'zstd', respectively). + List will get joined by comma. + String will be used as provided. + + :param user_agent: + String representing the user-agent you want, such as + "python-urllib3/0.6" + + :param basic_auth: + Colon-separated username:password string for 'authorization: basic ...' + auth header. + + :param proxy_basic_auth: + Colon-separated username:password string for 'proxy-authorization: basic ...' + auth header. + + :param disable_cache: + If ``True``, adds 'cache-control: no-cache' header. + + Example: + + .. code-block:: python + + import urllib3 + + print(urllib3.util.make_headers(keep_alive=True, user_agent="Batman/1.0")) + # {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'} + print(urllib3.util.make_headers(accept_encoding=True)) + # {'accept-encoding': 'gzip,deflate'} + """ + headers: dict[str, str] = {} + if accept_encoding: + if isinstance(accept_encoding, str): + pass + elif isinstance(accept_encoding, list): + accept_encoding = ",".join(accept_encoding) + else: + accept_encoding = ACCEPT_ENCODING + headers["accept-encoding"] = accept_encoding + + if user_agent: + headers["user-agent"] = user_agent + + if keep_alive: + headers["connection"] = "keep-alive" + + if basic_auth: + headers["authorization"] = ( + f"Basic {b64encode(basic_auth.encode('latin-1')).decode()}" + ) + + if proxy_basic_auth: + headers["proxy-authorization"] = ( + f"Basic {b64encode(proxy_basic_auth.encode('latin-1')).decode()}" + ) + + if disable_cache: + headers["cache-control"] = "no-cache" + + return headers + + +def set_file_position( + body: typing.Any, pos: _TYPE_BODY_POSITION | None +) -> _TYPE_BODY_POSITION | None: + """ + If a position is provided, move file to that point. + Otherwise, we'll attempt to record a position for future use. + """ + if pos is not None: + rewind_body(body, pos) + elif getattr(body, "tell", None) is not None: + try: + pos = body.tell() + except OSError: + # This differentiates from None, allowing us to catch + # a failed `tell()` later when trying to rewind the body. + pos = _FAILEDTELL + + return pos + + +def rewind_body(body: typing.IO[typing.AnyStr], body_pos: _TYPE_BODY_POSITION) -> None: + """ + Attempt to rewind body to a certain position. + Primarily used for request redirects and retries. + + :param body: + File-like object that supports seek. + + :param int pos: + Position to seek to in file. + """ + body_seek = getattr(body, "seek", None) + if body_seek is not None and isinstance(body_pos, int): + try: + body_seek(body_pos) + except OSError as e: + raise UnrewindableBodyError( + "An error occurred when rewinding request body for redirect/retry." + ) from e + elif body_pos is _FAILEDTELL: + raise UnrewindableBodyError( + "Unable to record file position for rewinding " + "request body during a redirect/retry." + ) + else: + raise ValueError( + f"body_pos must be of type integer, instead it was {type(body_pos)}." + ) + + +class ChunksAndContentLength(typing.NamedTuple): + chunks: typing.Iterable[bytes] | None + content_length: int | None + + +def body_to_chunks( + body: typing.Any | None, method: str, blocksize: int +) -> ChunksAndContentLength: + """Takes the HTTP request method, body, and blocksize and + transforms them into an iterable of chunks to pass to + socket.sendall() and an optional 'Content-Length' header. + + A 'Content-Length' of 'None' indicates the length of the body + can't be determined so should use 'Transfer-Encoding: chunked' + for framing instead. + """ + + chunks: typing.Iterable[bytes] | None + content_length: int | None + + # No body, we need to make a recommendation on 'Content-Length' + # based on whether that request method is expected to have + # a body or not. + if body is None: + chunks = None + if method.upper() not in _METHODS_NOT_EXPECTING_BODY: + content_length = 0 + else: + content_length = None + + # Bytes or strings become bytes + elif isinstance(body, (str, bytes)): + chunks = (to_bytes(body),) + content_length = len(chunks[0]) + + # File-like object, TODO: use seek() and tell() for length? + elif hasattr(body, "read"): + + def chunk_readable() -> typing.Iterable[bytes]: + nonlocal body, blocksize + encode = isinstance(body, io.TextIOBase) + while True: + datablock = body.read(blocksize) + if not datablock: + break + if encode: + datablock = datablock.encode("utf-8") + yield datablock + + chunks = chunk_readable() + content_length = None + + # Otherwise we need to start checking via duck-typing. + else: + try: + # Check if the body implements the buffer API. + mv = memoryview(body) + except TypeError: + try: + # Check if the body is an iterable + chunks = iter(body) + content_length = None + except TypeError: + raise TypeError( + f"'body' must be a bytes-like object, file-like " + f"object, or iterable. Instead was {body!r}" + ) from None + else: + # Since it implements the buffer API can be passed directly to socket.sendall() + chunks = (body,) + content_length = mv.nbytes + + return ChunksAndContentLength(chunks=chunks, content_length=content_length) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/response.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/response.py new file mode 100644 index 00000000..0f457869 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/response.py @@ -0,0 +1,101 @@ +from __future__ import annotations + +import http.client as httplib +from email.errors import MultipartInvariantViolationDefect, StartBoundaryNotFoundDefect + +from ..exceptions import HeaderParsingError + + +def is_fp_closed(obj: object) -> bool: + """ + Checks whether a given file-like object is closed. + + :param obj: + The file-like object to check. + """ + + try: + # Check `isclosed()` first, in case Python3 doesn't set `closed`. + # GH Issue #928 + return obj.isclosed() # type: ignore[no-any-return, attr-defined] + except AttributeError: + pass + + try: + # Check via the official file-like-object way. + return obj.closed # type: ignore[no-any-return, attr-defined] + except AttributeError: + pass + + try: + # Check if the object is a container for another file-like object that + # gets released on exhaustion (e.g. HTTPResponse). + return obj.fp is None # type: ignore[attr-defined] + except AttributeError: + pass + + raise ValueError("Unable to determine whether fp is closed.") + + +def assert_header_parsing(headers: httplib.HTTPMessage) -> None: + """ + Asserts whether all headers have been successfully parsed. + Extracts encountered errors from the result of parsing headers. + + Only works on Python 3. + + :param http.client.HTTPMessage headers: Headers to verify. + + :raises urllib3.exceptions.HeaderParsingError: + If parsing errors are found. + """ + + # This will fail silently if we pass in the wrong kind of parameter. + # To make debugging easier add an explicit check. + if not isinstance(headers, httplib.HTTPMessage): + raise TypeError(f"expected httplib.Message, got {type(headers)}.") + + unparsed_data = None + + # get_payload is actually email.message.Message.get_payload; + # we're only interested in the result if it's not a multipart message + if not headers.is_multipart(): + payload = headers.get_payload() + + if isinstance(payload, (bytes, str)): + unparsed_data = payload + + # httplib is assuming a response body is available + # when parsing headers even when httplib only sends + # header data to parse_headers() This results in + # defects on multipart responses in particular. + # See: https://github.com/urllib3/urllib3/issues/800 + + # So we ignore the following defects: + # - StartBoundaryNotFoundDefect: + # The claimed start boundary was never found. + # - MultipartInvariantViolationDefect: + # A message claimed to be a multipart but no subparts were found. + defects = [ + defect + for defect in headers.defects + if not isinstance( + defect, (StartBoundaryNotFoundDefect, MultipartInvariantViolationDefect) + ) + ] + + if defects or unparsed_data: + raise HeaderParsingError(defects=defects, unparsed_data=unparsed_data) + + +def is_response_to_head(response: httplib.HTTPResponse) -> bool: + """ + Checks whether the request of a response has been a HEAD-request. + + :param http.client.HTTPResponse response: + Response to check if the originating request + used 'HEAD' as a method. + """ + # FIXME: Can we do this somehow without accessing private httplib _method? + method_str = response._method # type: str # type: ignore[attr-defined] + return method_str.upper() == "HEAD" diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/retry.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/retry.py new file mode 100644 index 00000000..0456cceb --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/retry.py @@ -0,0 +1,533 @@ +from __future__ import annotations + +import email +import logging +import random +import re +import time +import typing +from itertools import takewhile +from types import TracebackType + +from ..exceptions import ( + ConnectTimeoutError, + InvalidHeader, + MaxRetryError, + ProtocolError, + ProxyError, + ReadTimeoutError, + ResponseError, +) +from .util import reraise + +if typing.TYPE_CHECKING: + from typing_extensions import Self + + from ..connectionpool import ConnectionPool + from ..response import BaseHTTPResponse + +log = logging.getLogger(__name__) + + +# Data structure for representing the metadata of requests that result in a retry. +class RequestHistory(typing.NamedTuple): + method: str | None + url: str | None + error: Exception | None + status: int | None + redirect_location: str | None + + +class Retry: + """Retry configuration. + + Each retry attempt will create a new Retry object with updated values, so + they can be safely reused. + + Retries can be defined as a default for a pool: + + .. code-block:: python + + retries = Retry(connect=5, read=2, redirect=5) + http = PoolManager(retries=retries) + response = http.request("GET", "https://example.com/") + + Or per-request (which overrides the default for the pool): + + .. code-block:: python + + response = http.request("GET", "https://example.com/", retries=Retry(10)) + + Retries can be disabled by passing ``False``: + + .. code-block:: python + + response = http.request("GET", "https://example.com/", retries=False) + + Errors will be wrapped in :class:`~urllib3.exceptions.MaxRetryError` unless + retries are disabled, in which case the causing exception will be raised. + + :param int total: + Total number of retries to allow. Takes precedence over other counts. + + Set to ``None`` to remove this constraint and fall back on other + counts. + + Set to ``0`` to fail on the first retry. + + Set to ``False`` to disable and imply ``raise_on_redirect=False``. + + :param int connect: + How many connection-related errors to retry on. + + These are errors raised before the request is sent to the remote server, + which we assume has not triggered the server to process the request. + + Set to ``0`` to fail on the first retry of this type. + + :param int read: + How many times to retry on read errors. + + These errors are raised after the request was sent to the server, so the + request may have side-effects. + + Set to ``0`` to fail on the first retry of this type. + + :param int redirect: + How many redirects to perform. Limit this to avoid infinite redirect + loops. + + A redirect is a HTTP response with a status code 301, 302, 303, 307 or + 308. + + Set to ``0`` to fail on the first retry of this type. + + Set to ``False`` to disable and imply ``raise_on_redirect=False``. + + :param int status: + How many times to retry on bad status codes. + + These are retries made on responses, where status code matches + ``status_forcelist``. + + Set to ``0`` to fail on the first retry of this type. + + :param int other: + How many times to retry on other errors. + + Other errors are errors that are not connect, read, redirect or status errors. + These errors might be raised after the request was sent to the server, so the + request might have side-effects. + + Set to ``0`` to fail on the first retry of this type. + + If ``total`` is not set, it's a good idea to set this to 0 to account + for unexpected edge cases and avoid infinite retry loops. + + :param Collection allowed_methods: + Set of uppercased HTTP method verbs that we should retry on. + + By default, we only retry on methods which are considered to be + idempotent (multiple requests with the same parameters end with the + same state). See :attr:`Retry.DEFAULT_ALLOWED_METHODS`. + + Set to a ``None`` value to retry on any verb. + + :param Collection status_forcelist: + A set of integer HTTP status codes that we should force a retry on. + A retry is initiated if the request method is in ``allowed_methods`` + and the response status code is in ``status_forcelist``. + + By default, this is disabled with ``None``. + + :param float backoff_factor: + A backoff factor to apply between attempts after the second try + (most errors are resolved immediately by a second try without a + delay). urllib3 will sleep for:: + + {backoff factor} * (2 ** ({number of previous retries})) + + seconds. If `backoff_jitter` is non-zero, this sleep is extended by:: + + random.uniform(0, {backoff jitter}) + + seconds. For example, if the backoff_factor is 0.1, then :func:`Retry.sleep` will + sleep for [0.0s, 0.2s, 0.4s, 0.8s, ...] between retries. No backoff will ever + be longer than `backoff_max`. + + By default, backoff is disabled (factor set to 0). + + :param bool raise_on_redirect: Whether, if the number of redirects is + exhausted, to raise a MaxRetryError, or to return a response with a + response code in the 3xx range. + + :param bool raise_on_status: Similar meaning to ``raise_on_redirect``: + whether we should raise an exception, or return a response, + if status falls in ``status_forcelist`` range and retries have + been exhausted. + + :param tuple history: The history of the request encountered during + each call to :meth:`~Retry.increment`. The list is in the order + the requests occurred. Each list item is of class :class:`RequestHistory`. + + :param bool respect_retry_after_header: + Whether to respect Retry-After header on status codes defined as + :attr:`Retry.RETRY_AFTER_STATUS_CODES` or not. + + :param Collection remove_headers_on_redirect: + Sequence of headers to remove from the request when a response + indicating a redirect is returned before firing off the redirected + request. + """ + + #: Default methods to be used for ``allowed_methods`` + DEFAULT_ALLOWED_METHODS = frozenset( + ["HEAD", "GET", "PUT", "DELETE", "OPTIONS", "TRACE"] + ) + + #: Default status codes to be used for ``status_forcelist`` + RETRY_AFTER_STATUS_CODES = frozenset([413, 429, 503]) + + #: Default headers to be used for ``remove_headers_on_redirect`` + DEFAULT_REMOVE_HEADERS_ON_REDIRECT = frozenset( + ["Cookie", "Authorization", "Proxy-Authorization"] + ) + + #: Default maximum backoff time. + DEFAULT_BACKOFF_MAX = 120 + + # Backward compatibility; assigned outside of the class. + DEFAULT: typing.ClassVar[Retry] + + def __init__( + self, + total: bool | int | None = 10, + connect: int | None = None, + read: int | None = None, + redirect: bool | int | None = None, + status: int | None = None, + other: int | None = None, + allowed_methods: typing.Collection[str] | None = DEFAULT_ALLOWED_METHODS, + status_forcelist: typing.Collection[int] | None = None, + backoff_factor: float = 0, + backoff_max: float = DEFAULT_BACKOFF_MAX, + raise_on_redirect: bool = True, + raise_on_status: bool = True, + history: tuple[RequestHistory, ...] | None = None, + respect_retry_after_header: bool = True, + remove_headers_on_redirect: typing.Collection[ + str + ] = DEFAULT_REMOVE_HEADERS_ON_REDIRECT, + backoff_jitter: float = 0.0, + ) -> None: + self.total = total + self.connect = connect + self.read = read + self.status = status + self.other = other + + if redirect is False or total is False: + redirect = 0 + raise_on_redirect = False + + self.redirect = redirect + self.status_forcelist = status_forcelist or set() + self.allowed_methods = allowed_methods + self.backoff_factor = backoff_factor + self.backoff_max = backoff_max + self.raise_on_redirect = raise_on_redirect + self.raise_on_status = raise_on_status + self.history = history or () + self.respect_retry_after_header = respect_retry_after_header + self.remove_headers_on_redirect = frozenset( + h.lower() for h in remove_headers_on_redirect + ) + self.backoff_jitter = backoff_jitter + + def new(self, **kw: typing.Any) -> Self: + params = dict( + total=self.total, + connect=self.connect, + read=self.read, + redirect=self.redirect, + status=self.status, + other=self.other, + allowed_methods=self.allowed_methods, + status_forcelist=self.status_forcelist, + backoff_factor=self.backoff_factor, + backoff_max=self.backoff_max, + raise_on_redirect=self.raise_on_redirect, + raise_on_status=self.raise_on_status, + history=self.history, + remove_headers_on_redirect=self.remove_headers_on_redirect, + respect_retry_after_header=self.respect_retry_after_header, + backoff_jitter=self.backoff_jitter, + ) + + params.update(kw) + return type(self)(**params) # type: ignore[arg-type] + + @classmethod + def from_int( + cls, + retries: Retry | bool | int | None, + redirect: bool | int | None = True, + default: Retry | bool | int | None = None, + ) -> Retry: + """Backwards-compatibility for the old retries format.""" + if retries is None: + retries = default if default is not None else cls.DEFAULT + + if isinstance(retries, Retry): + return retries + + redirect = bool(redirect) and None + new_retries = cls(retries, redirect=redirect) + log.debug("Converted retries value: %r -> %r", retries, new_retries) + return new_retries + + def get_backoff_time(self) -> float: + """Formula for computing the current backoff + + :rtype: float + """ + # We want to consider only the last consecutive errors sequence (Ignore redirects). + consecutive_errors_len = len( + list( + takewhile(lambda x: x.redirect_location is None, reversed(self.history)) + ) + ) + if consecutive_errors_len <= 1: + return 0 + + backoff_value = self.backoff_factor * (2 ** (consecutive_errors_len - 1)) + if self.backoff_jitter != 0.0: + backoff_value += random.random() * self.backoff_jitter + return float(max(0, min(self.backoff_max, backoff_value))) + + def parse_retry_after(self, retry_after: str) -> float: + seconds: float + # Whitespace: https://tools.ietf.org/html/rfc7230#section-3.2.4 + if re.match(r"^\s*[0-9]+\s*$", retry_after): + seconds = int(retry_after) + else: + retry_date_tuple = email.utils.parsedate_tz(retry_after) + if retry_date_tuple is None: + raise InvalidHeader(f"Invalid Retry-After header: {retry_after}") + + retry_date = email.utils.mktime_tz(retry_date_tuple) + seconds = retry_date - time.time() + + seconds = max(seconds, 0) + + return seconds + + def get_retry_after(self, response: BaseHTTPResponse) -> float | None: + """Get the value of Retry-After in seconds.""" + + retry_after = response.headers.get("Retry-After") + + if retry_after is None: + return None + + return self.parse_retry_after(retry_after) + + def sleep_for_retry(self, response: BaseHTTPResponse) -> bool: + retry_after = self.get_retry_after(response) + if retry_after: + time.sleep(retry_after) + return True + + return False + + def _sleep_backoff(self) -> None: + backoff = self.get_backoff_time() + if backoff <= 0: + return + time.sleep(backoff) + + def sleep(self, response: BaseHTTPResponse | None = None) -> None: + """Sleep between retry attempts. + + This method will respect a server's ``Retry-After`` response header + and sleep the duration of the time requested. If that is not present, it + will use an exponential backoff. By default, the backoff factor is 0 and + this method will return immediately. + """ + + if self.respect_retry_after_header and response: + slept = self.sleep_for_retry(response) + if slept: + return + + self._sleep_backoff() + + def _is_connection_error(self, err: Exception) -> bool: + """Errors when we're fairly sure that the server did not receive the + request, so it should be safe to retry. + """ + if isinstance(err, ProxyError): + err = err.original_error + return isinstance(err, ConnectTimeoutError) + + def _is_read_error(self, err: Exception) -> bool: + """Errors that occur after the request has been started, so we should + assume that the server began processing it. + """ + return isinstance(err, (ReadTimeoutError, ProtocolError)) + + def _is_method_retryable(self, method: str) -> bool: + """Checks if a given HTTP method should be retried upon, depending if + it is included in the allowed_methods + """ + if self.allowed_methods and method.upper() not in self.allowed_methods: + return False + return True + + def is_retry( + self, method: str, status_code: int, has_retry_after: bool = False + ) -> bool: + """Is this method/status code retryable? (Based on allowlists and control + variables such as the number of total retries to allow, whether to + respect the Retry-After header, whether this header is present, and + whether the returned status code is on the list of status codes to + be retried upon on the presence of the aforementioned header) + """ + if not self._is_method_retryable(method): + return False + + if self.status_forcelist and status_code in self.status_forcelist: + return True + + return bool( + self.total + and self.respect_retry_after_header + and has_retry_after + and (status_code in self.RETRY_AFTER_STATUS_CODES) + ) + + def is_exhausted(self) -> bool: + """Are we out of retries?""" + retry_counts = [ + x + for x in ( + self.total, + self.connect, + self.read, + self.redirect, + self.status, + self.other, + ) + if x + ] + if not retry_counts: + return False + + return min(retry_counts) < 0 + + def increment( + self, + method: str | None = None, + url: str | None = None, + response: BaseHTTPResponse | None = None, + error: Exception | None = None, + _pool: ConnectionPool | None = None, + _stacktrace: TracebackType | None = None, + ) -> Self: + """Return a new Retry object with incremented retry counters. + + :param response: A response object, or None, if the server did not + return a response. + :type response: :class:`~urllib3.response.BaseHTTPResponse` + :param Exception error: An error encountered during the request, or + None if the response was received successfully. + + :return: A new ``Retry`` object. + """ + if self.total is False and error: + # Disabled, indicate to re-raise the error. + raise reraise(type(error), error, _stacktrace) + + total = self.total + if total is not None: + total -= 1 + + connect = self.connect + read = self.read + redirect = self.redirect + status_count = self.status + other = self.other + cause = "unknown" + status = None + redirect_location = None + + if error and self._is_connection_error(error): + # Connect retry? + if connect is False: + raise reraise(type(error), error, _stacktrace) + elif connect is not None: + connect -= 1 + + elif error and self._is_read_error(error): + # Read retry? + if read is False or method is None or not self._is_method_retryable(method): + raise reraise(type(error), error, _stacktrace) + elif read is not None: + read -= 1 + + elif error: + # Other retry? + if other is not None: + other -= 1 + + elif response and response.get_redirect_location(): + # Redirect retry? + if redirect is not None: + redirect -= 1 + cause = "too many redirects" + response_redirect_location = response.get_redirect_location() + if response_redirect_location: + redirect_location = response_redirect_location + status = response.status + + else: + # Incrementing because of a server error like a 500 in + # status_forcelist and the given method is in the allowed_methods + cause = ResponseError.GENERIC_ERROR + if response and response.status: + if status_count is not None: + status_count -= 1 + cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) + status = response.status + + history = self.history + ( + RequestHistory(method, url, error, status, redirect_location), + ) + + new_retry = self.new( + total=total, + connect=connect, + read=read, + redirect=redirect, + status=status_count, + other=other, + history=history, + ) + + if new_retry.is_exhausted(): + reason = error or ResponseError(cause) + raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] + + log.debug("Incremented Retry for (url='%s'): %r", url, new_retry) + + return new_retry + + def __repr__(self) -> str: + return ( + f"{type(self).__name__}(total={self.total}, connect={self.connect}, " + f"read={self.read}, redirect={self.redirect}, status={self.status})" + ) + + +# For backwards compatibility (equivalent to pre-v1.9): +Retry.DEFAULT = Retry(3) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssl_.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssl_.py new file mode 100644 index 00000000..b2cc1aa7 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssl_.py @@ -0,0 +1,524 @@ +from __future__ import annotations + +import hashlib +import hmac +import os +import socket +import sys +import typing +import warnings +from binascii import unhexlify + +from ..exceptions import ProxySchemeUnsupported, SSLError +from .url import _BRACELESS_IPV6_ADDRZ_RE, _IPV4_RE + +SSLContext = None +SSLTransport = None +HAS_NEVER_CHECK_COMMON_NAME = False +IS_PYOPENSSL = False +ALPN_PROTOCOLS = ["http/1.1"] + +_TYPE_VERSION_INFO = tuple[int, int, int, str, int] + +# Maps the length of a digest to a possible hash function producing this digest +HASHFUNC_MAP = { + length: getattr(hashlib, algorithm, None) + for length, algorithm in ((32, "md5"), (40, "sha1"), (64, "sha256")) +} + + +def _is_bpo_43522_fixed( + implementation_name: str, + version_info: _TYPE_VERSION_INFO, + pypy_version_info: _TYPE_VERSION_INFO | None, +) -> bool: + """Return True for CPython 3.9.3+ or 3.10+ and PyPy 7.3.8+ where + setting SSLContext.hostname_checks_common_name to False works. + + Outside of CPython and PyPy we don't know which implementations work + or not so we conservatively use our hostname matching as we know that works + on all implementations. + + https://github.com/urllib3/urllib3/issues/2192#issuecomment-821832963 + https://foss.heptapod.net/pypy/pypy/-/issues/3539 + """ + if implementation_name == "pypy": + # https://foss.heptapod.net/pypy/pypy/-/issues/3129 + return pypy_version_info >= (7, 3, 8) # type: ignore[operator] + elif implementation_name == "cpython": + major_minor = version_info[:2] + micro = version_info[2] + return (major_minor == (3, 9) and micro >= 3) or major_minor >= (3, 10) + else: # Defensive: + return False + + +def _is_has_never_check_common_name_reliable( + openssl_version: str, + openssl_version_number: int, + implementation_name: str, + version_info: _TYPE_VERSION_INFO, + pypy_version_info: _TYPE_VERSION_INFO | None, +) -> bool: + # As of May 2023, all released versions of LibreSSL fail to reject certificates with + # only common names, see https://github.com/urllib3/urllib3/pull/3024 + is_openssl = openssl_version.startswith("OpenSSL ") + # Before fixing OpenSSL issue #14579, the SSL_new() API was not copying hostflags + # like X509_CHECK_FLAG_NEVER_CHECK_SUBJECT, which tripped up CPython. + # https://github.com/openssl/openssl/issues/14579 + # This was released in OpenSSL 1.1.1l+ (>=0x101010cf) + is_openssl_issue_14579_fixed = openssl_version_number >= 0x101010CF + + return is_openssl and ( + is_openssl_issue_14579_fixed + or _is_bpo_43522_fixed(implementation_name, version_info, pypy_version_info) + ) + + +if typing.TYPE_CHECKING: + from ssl import VerifyMode + from typing import TypedDict + + from .ssltransport import SSLTransport as SSLTransportType + + class _TYPE_PEER_CERT_RET_DICT(TypedDict, total=False): + subjectAltName: tuple[tuple[str, str], ...] + subject: tuple[tuple[tuple[str, str], ...], ...] + serialNumber: str + + +# Mapping from 'ssl.PROTOCOL_TLSX' to 'TLSVersion.X' +_SSL_VERSION_TO_TLS_VERSION: dict[int, int] = {} + +try: # Do we have ssl at all? + import ssl + from ssl import ( # type: ignore[assignment] + CERT_REQUIRED, + HAS_NEVER_CHECK_COMMON_NAME, + OP_NO_COMPRESSION, + OP_NO_TICKET, + OPENSSL_VERSION, + OPENSSL_VERSION_NUMBER, + PROTOCOL_TLS, + PROTOCOL_TLS_CLIENT, + VERIFY_X509_STRICT, + OP_NO_SSLv2, + OP_NO_SSLv3, + SSLContext, + TLSVersion, + ) + + PROTOCOL_SSLv23 = PROTOCOL_TLS + + # Needed for Python 3.9 which does not define this + VERIFY_X509_PARTIAL_CHAIN = getattr(ssl, "VERIFY_X509_PARTIAL_CHAIN", 0x80000) + + # Setting SSLContext.hostname_checks_common_name = False didn't work before CPython + # 3.9.3, and 3.10 (but OK on PyPy) or OpenSSL 1.1.1l+ + if HAS_NEVER_CHECK_COMMON_NAME and not _is_has_never_check_common_name_reliable( + OPENSSL_VERSION, + OPENSSL_VERSION_NUMBER, + sys.implementation.name, + sys.version_info, + sys.pypy_version_info if sys.implementation.name == "pypy" else None, # type: ignore[attr-defined] + ): # Defensive: for Python < 3.9.3 + HAS_NEVER_CHECK_COMMON_NAME = False + + # Need to be careful here in case old TLS versions get + # removed in future 'ssl' module implementations. + for attr in ("TLSv1", "TLSv1_1", "TLSv1_2"): + try: + _SSL_VERSION_TO_TLS_VERSION[getattr(ssl, f"PROTOCOL_{attr}")] = getattr( + TLSVersion, attr + ) + except AttributeError: # Defensive: + continue + + from .ssltransport import SSLTransport # type: ignore[assignment] +except ImportError: + OP_NO_COMPRESSION = 0x20000 # type: ignore[assignment] + OP_NO_TICKET = 0x4000 # type: ignore[assignment] + OP_NO_SSLv2 = 0x1000000 # type: ignore[assignment] + OP_NO_SSLv3 = 0x2000000 # type: ignore[assignment] + PROTOCOL_SSLv23 = PROTOCOL_TLS = 2 # type: ignore[assignment] + PROTOCOL_TLS_CLIENT = 16 # type: ignore[assignment] + VERIFY_X509_PARTIAL_CHAIN = 0x80000 + VERIFY_X509_STRICT = 0x20 # type: ignore[assignment] + + +_TYPE_PEER_CERT_RET = typing.Union["_TYPE_PEER_CERT_RET_DICT", bytes, None] + + +def assert_fingerprint(cert: bytes | None, fingerprint: str) -> None: + """ + Checks if given fingerprint matches the supplied certificate. + + :param cert: + Certificate as bytes object. + :param fingerprint: + Fingerprint as string of hexdigits, can be interspersed by colons. + """ + + if cert is None: + raise SSLError("No certificate for the peer.") + + fingerprint = fingerprint.replace(":", "").lower() + digest_length = len(fingerprint) + if digest_length not in HASHFUNC_MAP: + raise SSLError(f"Fingerprint of invalid length: {fingerprint}") + hashfunc = HASHFUNC_MAP.get(digest_length) + if hashfunc is None: + raise SSLError( + f"Hash function implementation unavailable for fingerprint length: {digest_length}" + ) + + # We need encode() here for py32; works on py2 and p33. + fingerprint_bytes = unhexlify(fingerprint.encode()) + + cert_digest = hashfunc(cert).digest() + + if not hmac.compare_digest(cert_digest, fingerprint_bytes): + raise SSLError( + f'Fingerprints did not match. Expected "{fingerprint}", got "{cert_digest.hex()}"' + ) + + +def resolve_cert_reqs(candidate: None | int | str) -> VerifyMode: + """ + Resolves the argument to a numeric constant, which can be passed to + the wrap_socket function/method from the ssl module. + Defaults to :data:`ssl.CERT_REQUIRED`. + If given a string it is assumed to be the name of the constant in the + :mod:`ssl` module or its abbreviation. + (So you can specify `REQUIRED` instead of `CERT_REQUIRED`. + If it's neither `None` nor a string we assume it is already the numeric + constant which can directly be passed to wrap_socket. + """ + if candidate is None: + return CERT_REQUIRED + + if isinstance(candidate, str): + res = getattr(ssl, candidate, None) + if res is None: + res = getattr(ssl, "CERT_" + candidate) + return res # type: ignore[no-any-return] + + return candidate # type: ignore[return-value] + + +def resolve_ssl_version(candidate: None | int | str) -> int: + """ + like resolve_cert_reqs + """ + if candidate is None: + return PROTOCOL_TLS + + if isinstance(candidate, str): + res = getattr(ssl, candidate, None) + if res is None: + res = getattr(ssl, "PROTOCOL_" + candidate) + return typing.cast(int, res) + + return candidate + + +def create_urllib3_context( + ssl_version: int | None = None, + cert_reqs: int | None = None, + options: int | None = None, + ciphers: str | None = None, + ssl_minimum_version: int | None = None, + ssl_maximum_version: int | None = None, + verify_flags: int | None = None, +) -> ssl.SSLContext: + """Creates and configures an :class:`ssl.SSLContext` instance for use with urllib3. + + :param ssl_version: + The desired protocol version to use. This will default to + PROTOCOL_SSLv23 which will negotiate the highest protocol that both + the server and your installation of OpenSSL support. + + This parameter is deprecated instead use 'ssl_minimum_version'. + :param ssl_minimum_version: + The minimum version of TLS to be used. Use the 'ssl.TLSVersion' enum for specifying the value. + :param ssl_maximum_version: + The maximum version of TLS to be used. Use the 'ssl.TLSVersion' enum for specifying the value. + Not recommended to set to anything other than 'ssl.TLSVersion.MAXIMUM_SUPPORTED' which is the + default value. + :param cert_reqs: + Whether to require the certificate verification. This defaults to + ``ssl.CERT_REQUIRED``. + :param options: + Specific OpenSSL options. These default to ``ssl.OP_NO_SSLv2``, + ``ssl.OP_NO_SSLv3``, ``ssl.OP_NO_COMPRESSION``, and ``ssl.OP_NO_TICKET``. + :param ciphers: + Which cipher suites to allow the server to select. Defaults to either system configured + ciphers if OpenSSL 1.1.1+, otherwise uses a secure default set of ciphers. + :param verify_flags: + The flags for certificate verification operations. These default to + ``ssl.VERIFY_X509_PARTIAL_CHAIN`` and ``ssl.VERIFY_X509_STRICT`` for Python 3.13+. + :returns: + Constructed SSLContext object with specified options + :rtype: SSLContext + """ + if SSLContext is None: + raise TypeError("Can't create an SSLContext object without an ssl module") + + # This means 'ssl_version' was specified as an exact value. + if ssl_version not in (None, PROTOCOL_TLS, PROTOCOL_TLS_CLIENT): + # Disallow setting 'ssl_version' and 'ssl_minimum|maximum_version' + # to avoid conflicts. + if ssl_minimum_version is not None or ssl_maximum_version is not None: + raise ValueError( + "Can't specify both 'ssl_version' and either " + "'ssl_minimum_version' or 'ssl_maximum_version'" + ) + + # 'ssl_version' is deprecated and will be removed in the future. + else: + # Use 'ssl_minimum_version' and 'ssl_maximum_version' instead. + ssl_minimum_version = _SSL_VERSION_TO_TLS_VERSION.get( + ssl_version, TLSVersion.MINIMUM_SUPPORTED + ) + ssl_maximum_version = _SSL_VERSION_TO_TLS_VERSION.get( + ssl_version, TLSVersion.MAXIMUM_SUPPORTED + ) + + # This warning message is pushing users to use 'ssl_minimum_version' + # instead of both min/max. Best practice is to only set the minimum version and + # keep the maximum version to be it's default value: 'TLSVersion.MAXIMUM_SUPPORTED' + warnings.warn( + "'ssl_version' option is deprecated and will be " + "removed in urllib3 v2.6.0. Instead use 'ssl_minimum_version'", + category=DeprecationWarning, + stacklevel=2, + ) + + # PROTOCOL_TLS is deprecated in Python 3.10 so we always use PROTOCOL_TLS_CLIENT + context = SSLContext(PROTOCOL_TLS_CLIENT) + + if ssl_minimum_version is not None: + context.minimum_version = ssl_minimum_version + else: # Python <3.10 defaults to 'MINIMUM_SUPPORTED' so explicitly set TLSv1.2 here + context.minimum_version = TLSVersion.TLSv1_2 + + if ssl_maximum_version is not None: + context.maximum_version = ssl_maximum_version + + # Unless we're given ciphers defer to either system ciphers in + # the case of OpenSSL 1.1.1+ or use our own secure default ciphers. + if ciphers: + context.set_ciphers(ciphers) + + # Setting the default here, as we may have no ssl module on import + cert_reqs = ssl.CERT_REQUIRED if cert_reqs is None else cert_reqs + + if options is None: + options = 0 + # SSLv2 is easily broken and is considered harmful and dangerous + options |= OP_NO_SSLv2 + # SSLv3 has several problems and is now dangerous + options |= OP_NO_SSLv3 + # Disable compression to prevent CRIME attacks for OpenSSL 1.0+ + # (issue #309) + options |= OP_NO_COMPRESSION + # TLSv1.2 only. Unless set explicitly, do not request tickets. + # This may save some bandwidth on wire, and although the ticket is encrypted, + # there is a risk associated with it being on wire, + # if the server is not rotating its ticketing keys properly. + options |= OP_NO_TICKET + + context.options |= options + + if verify_flags is None: + verify_flags = 0 + # In Python 3.13+ ssl.create_default_context() sets VERIFY_X509_PARTIAL_CHAIN + # and VERIFY_X509_STRICT so we do the same + if sys.version_info >= (3, 13): + verify_flags |= VERIFY_X509_PARTIAL_CHAIN + verify_flags |= VERIFY_X509_STRICT + + context.verify_flags |= verify_flags + + # Enable post-handshake authentication for TLS 1.3, see GH #1634. PHA is + # necessary for conditional client cert authentication with TLS 1.3. + # The attribute is None for OpenSSL <= 1.1.0 or does not exist when using + # an SSLContext created by pyOpenSSL. + if getattr(context, "post_handshake_auth", None) is not None: + context.post_handshake_auth = True + + # The order of the below lines setting verify_mode and check_hostname + # matter due to safe-guards SSLContext has to prevent an SSLContext with + # check_hostname=True, verify_mode=NONE/OPTIONAL. + # We always set 'check_hostname=False' for pyOpenSSL so we rely on our own + # 'ssl.match_hostname()' implementation. + if cert_reqs == ssl.CERT_REQUIRED and not IS_PYOPENSSL: + context.verify_mode = cert_reqs + context.check_hostname = True + else: + context.check_hostname = False + context.verify_mode = cert_reqs + + try: + context.hostname_checks_common_name = False + except AttributeError: # Defensive: for CPython < 3.9.3; for PyPy < 7.3.8 + pass + + sslkeylogfile = os.environ.get("SSLKEYLOGFILE") + if sslkeylogfile: + context.keylog_filename = sslkeylogfile + + return context + + +@typing.overload +def ssl_wrap_socket( + sock: socket.socket, + keyfile: str | None = ..., + certfile: str | None = ..., + cert_reqs: int | None = ..., + ca_certs: str | None = ..., + server_hostname: str | None = ..., + ssl_version: int | None = ..., + ciphers: str | None = ..., + ssl_context: ssl.SSLContext | None = ..., + ca_cert_dir: str | None = ..., + key_password: str | None = ..., + ca_cert_data: None | str | bytes = ..., + tls_in_tls: typing.Literal[False] = ..., +) -> ssl.SSLSocket: ... + + +@typing.overload +def ssl_wrap_socket( + sock: socket.socket, + keyfile: str | None = ..., + certfile: str | None = ..., + cert_reqs: int | None = ..., + ca_certs: str | None = ..., + server_hostname: str | None = ..., + ssl_version: int | None = ..., + ciphers: str | None = ..., + ssl_context: ssl.SSLContext | None = ..., + ca_cert_dir: str | None = ..., + key_password: str | None = ..., + ca_cert_data: None | str | bytes = ..., + tls_in_tls: bool = ..., +) -> ssl.SSLSocket | SSLTransportType: ... + + +def ssl_wrap_socket( + sock: socket.socket, + keyfile: str | None = None, + certfile: str | None = None, + cert_reqs: int | None = None, + ca_certs: str | None = None, + server_hostname: str | None = None, + ssl_version: int | None = None, + ciphers: str | None = None, + ssl_context: ssl.SSLContext | None = None, + ca_cert_dir: str | None = None, + key_password: str | None = None, + ca_cert_data: None | str | bytes = None, + tls_in_tls: bool = False, +) -> ssl.SSLSocket | SSLTransportType: + """ + All arguments except for server_hostname, ssl_context, tls_in_tls, ca_cert_data and + ca_cert_dir have the same meaning as they do when using + :func:`ssl.create_default_context`, :meth:`ssl.SSLContext.load_cert_chain`, + :meth:`ssl.SSLContext.set_ciphers` and :meth:`ssl.SSLContext.wrap_socket`. + + :param server_hostname: + When SNI is supported, the expected hostname of the certificate + :param ssl_context: + A pre-made :class:`SSLContext` object. If none is provided, one will + be created using :func:`create_urllib3_context`. + :param ciphers: + A string of ciphers we wish the client to support. + :param ca_cert_dir: + A directory containing CA certificates in multiple separate files, as + supported by OpenSSL's -CApath flag or the capath argument to + SSLContext.load_verify_locations(). + :param key_password: + Optional password if the keyfile is encrypted. + :param ca_cert_data: + Optional string containing CA certificates in PEM format suitable for + passing as the cadata parameter to SSLContext.load_verify_locations() + :param tls_in_tls: + Use SSLTransport to wrap the existing socket. + """ + context = ssl_context + if context is None: + # Note: This branch of code and all the variables in it are only used in tests. + # We should consider deprecating and removing this code. + context = create_urllib3_context(ssl_version, cert_reqs, ciphers=ciphers) + + if ca_certs or ca_cert_dir or ca_cert_data: + try: + context.load_verify_locations(ca_certs, ca_cert_dir, ca_cert_data) + except OSError as e: + raise SSLError(e) from e + + elif ssl_context is None and hasattr(context, "load_default_certs"): + # try to load OS default certs; works well on Windows. + context.load_default_certs() + + # Attempt to detect if we get the goofy behavior of the + # keyfile being encrypted and OpenSSL asking for the + # passphrase via the terminal and instead error out. + if keyfile and key_password is None and _is_key_file_encrypted(keyfile): + raise SSLError("Client private key is encrypted, password is required") + + if certfile: + if key_password is None: + context.load_cert_chain(certfile, keyfile) + else: + context.load_cert_chain(certfile, keyfile, key_password) + + context.set_alpn_protocols(ALPN_PROTOCOLS) + + ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname) + return ssl_sock + + +def is_ipaddress(hostname: str | bytes) -> bool: + """Detects whether the hostname given is an IPv4 or IPv6 address. + Also detects IPv6 addresses with Zone IDs. + + :param str hostname: Hostname to examine. + :return: True if the hostname is an IP address, False otherwise. + """ + if isinstance(hostname, bytes): + # IDN A-label bytes are ASCII compatible. + hostname = hostname.decode("ascii") + return bool(_IPV4_RE.match(hostname) or _BRACELESS_IPV6_ADDRZ_RE.match(hostname)) + + +def _is_key_file_encrypted(key_file: str) -> bool: + """Detects if a key file is encrypted or not.""" + with open(key_file) as f: + for line in f: + # Look for Proc-Type: 4,ENCRYPTED + if "ENCRYPTED" in line: + return True + + return False + + +def _ssl_wrap_socket_impl( + sock: socket.socket, + ssl_context: ssl.SSLContext, + tls_in_tls: bool, + server_hostname: str | None = None, +) -> ssl.SSLSocket | SSLTransportType: + if tls_in_tls: + if not SSLTransport: + # Import error, ssl is not available. + raise ProxySchemeUnsupported( + "TLS in TLS requires support for the 'ssl' module" + ) + + SSLTransport._validate_ssl_context_for_tls_in_tls(ssl_context) + return SSLTransport(sock, ssl_context, server_hostname) + + return ssl_context.wrap_socket(sock, server_hostname=server_hostname) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssl_match_hostname.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssl_match_hostname.py new file mode 100644 index 00000000..25d91000 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssl_match_hostname.py @@ -0,0 +1,159 @@ +"""The match_hostname() function from Python 3.5, essential when using SSL.""" + +# Note: This file is under the PSF license as the code comes from the python +# stdlib. http://docs.python.org/3/license.html +# It is modified to remove commonName support. + +from __future__ import annotations + +import ipaddress +import re +import typing +from ipaddress import IPv4Address, IPv6Address + +if typing.TYPE_CHECKING: + from .ssl_ import _TYPE_PEER_CERT_RET_DICT + +__version__ = "3.5.0.1" + + +class CertificateError(ValueError): + pass + + +def _dnsname_match( + dn: typing.Any, hostname: str, max_wildcards: int = 1 +) -> typing.Match[str] | None | bool: + """Matching according to RFC 6125, section 6.4.3 + + http://tools.ietf.org/html/rfc6125#section-6.4.3 + """ + pats = [] + if not dn: + return False + + # Ported from python3-syntax: + # leftmost, *remainder = dn.split(r'.') + parts = dn.split(r".") + leftmost = parts[0] + remainder = parts[1:] + + wildcards = leftmost.count("*") + if wildcards > max_wildcards: + # Issue #17980: avoid denials of service by refusing more + # than one wildcard per fragment. A survey of established + # policy among SSL implementations showed it to be a + # reasonable choice. + raise CertificateError( + "too many wildcards in certificate DNS name: " + repr(dn) + ) + + # speed up common case w/o wildcards + if not wildcards: + return bool(dn.lower() == hostname.lower()) + + # RFC 6125, section 6.4.3, subitem 1. + # The client SHOULD NOT attempt to match a presented identifier in which + # the wildcard character comprises a label other than the left-most label. + if leftmost == "*": + # When '*' is a fragment by itself, it matches a non-empty dotless + # fragment. + pats.append("[^.]+") + elif leftmost.startswith("xn--") or hostname.startswith("xn--"): + # RFC 6125, section 6.4.3, subitem 3. + # The client SHOULD NOT attempt to match a presented identifier + # where the wildcard character is embedded within an A-label or + # U-label of an internationalized domain name. + pats.append(re.escape(leftmost)) + else: + # Otherwise, '*' matches any dotless string, e.g. www* + pats.append(re.escape(leftmost).replace(r"\*", "[^.]*")) + + # add the remaining fragments, ignore any wildcards + for frag in remainder: + pats.append(re.escape(frag)) + + pat = re.compile(r"\A" + r"\.".join(pats) + r"\Z", re.IGNORECASE) + return pat.match(hostname) + + +def _ipaddress_match(ipname: str, host_ip: IPv4Address | IPv6Address) -> bool: + """Exact matching of IP addresses. + + RFC 9110 section 4.3.5: "A reference identity of IP-ID contains the decoded + bytes of the IP address. An IP version 4 address is 4 octets, and an IP + version 6 address is 16 octets. [...] A reference identity of type IP-ID + matches if the address is identical to an iPAddress value of the + subjectAltName extension of the certificate." + """ + # OpenSSL may add a trailing newline to a subjectAltName's IP address + # Divergence from upstream: ipaddress can't handle byte str + ip = ipaddress.ip_address(ipname.rstrip()) + return bool(ip.packed == host_ip.packed) + + +def match_hostname( + cert: _TYPE_PEER_CERT_RET_DICT | None, + hostname: str, + hostname_checks_common_name: bool = False, +) -> None: + """Verify that *cert* (in decoded format as returned by + SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 + rules are followed, but IP addresses are not accepted for *hostname*. + + CertificateError is raised on failure. On success, the function + returns nothing. + """ + if not cert: + raise ValueError( + "empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED" + ) + try: + # Divergence from upstream: ipaddress can't handle byte str + # + # The ipaddress module shipped with Python < 3.9 does not support + # scoped IPv6 addresses so we unconditionally strip the Zone IDs for + # now. Once we drop support for Python 3.9 we can remove this branch. + if "%" in hostname: + host_ip = ipaddress.ip_address(hostname[: hostname.rfind("%")]) + else: + host_ip = ipaddress.ip_address(hostname) + + except ValueError: + # Not an IP address (common case) + host_ip = None + dnsnames = [] + san: tuple[tuple[str, str], ...] = cert.get("subjectAltName", ()) + key: str + value: str + for key, value in san: + if key == "DNS": + if host_ip is None and _dnsname_match(value, hostname): + return + dnsnames.append(value) + elif key == "IP Address": + if host_ip is not None and _ipaddress_match(value, host_ip): + return + dnsnames.append(value) + + # We only check 'commonName' if it's enabled and we're not verifying + # an IP address. IP addresses aren't valid within 'commonName'. + if hostname_checks_common_name and host_ip is None and not dnsnames: + for sub in cert.get("subject", ()): + for key, value in sub: + if key == "commonName": + if _dnsname_match(value, hostname): + return + dnsnames.append(value) # Defensive: for Python < 3.9.3 + + if len(dnsnames) > 1: + raise CertificateError( + "hostname %r " + "doesn't match either of %s" % (hostname, ", ".join(map(repr, dnsnames))) + ) + elif len(dnsnames) == 1: + raise CertificateError(f"hostname {hostname!r} doesn't match {dnsnames[0]!r}") + else: + raise CertificateError("no appropriate subjectAltName fields were found") diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssltransport.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssltransport.py new file mode 100644 index 00000000..6d59bc3b --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/ssltransport.py @@ -0,0 +1,271 @@ +from __future__ import annotations + +import io +import socket +import ssl +import typing + +from ..exceptions import ProxySchemeUnsupported + +if typing.TYPE_CHECKING: + from typing_extensions import Self + + from .ssl_ import _TYPE_PEER_CERT_RET, _TYPE_PEER_CERT_RET_DICT + + +_WriteBuffer = typing.Union[bytearray, memoryview] +_ReturnValue = typing.TypeVar("_ReturnValue") + +SSL_BLOCKSIZE = 16384 + + +class SSLTransport: + """ + The SSLTransport wraps an existing socket and establishes an SSL connection. + + Contrary to Python's implementation of SSLSocket, it allows you to chain + multiple TLS connections together. It's particularly useful if you need to + implement TLS within TLS. + + The class supports most of the socket API operations. + """ + + @staticmethod + def _validate_ssl_context_for_tls_in_tls(ssl_context: ssl.SSLContext) -> None: + """ + Raises a ProxySchemeUnsupported if the provided ssl_context can't be used + for TLS in TLS. + + The only requirement is that the ssl_context provides the 'wrap_bio' + methods. + """ + + if not hasattr(ssl_context, "wrap_bio"): + raise ProxySchemeUnsupported( + "TLS in TLS requires SSLContext.wrap_bio() which isn't " + "available on non-native SSLContext" + ) + + def __init__( + self, + socket: socket.socket, + ssl_context: ssl.SSLContext, + server_hostname: str | None = None, + suppress_ragged_eofs: bool = True, + ) -> None: + """ + Create an SSLTransport around socket using the provided ssl_context. + """ + self.incoming = ssl.MemoryBIO() + self.outgoing = ssl.MemoryBIO() + + self.suppress_ragged_eofs = suppress_ragged_eofs + self.socket = socket + + self.sslobj = ssl_context.wrap_bio( + self.incoming, self.outgoing, server_hostname=server_hostname + ) + + # Perform initial handshake. + self._ssl_io_loop(self.sslobj.do_handshake) + + def __enter__(self) -> Self: + return self + + def __exit__(self, *_: typing.Any) -> None: + self.close() + + def fileno(self) -> int: + return self.socket.fileno() + + def read(self, len: int = 1024, buffer: typing.Any | None = None) -> int | bytes: + return self._wrap_ssl_read(len, buffer) + + def recv(self, buflen: int = 1024, flags: int = 0) -> int | bytes: + if flags != 0: + raise ValueError("non-zero flags not allowed in calls to recv") + return self._wrap_ssl_read(buflen) + + def recv_into( + self, + buffer: _WriteBuffer, + nbytes: int | None = None, + flags: int = 0, + ) -> None | int | bytes: + if flags != 0: + raise ValueError("non-zero flags not allowed in calls to recv_into") + if nbytes is None: + nbytes = len(buffer) + return self.read(nbytes, buffer) + + def sendall(self, data: bytes, flags: int = 0) -> None: + if flags != 0: + raise ValueError("non-zero flags not allowed in calls to sendall") + count = 0 + with memoryview(data) as view, view.cast("B") as byte_view: + amount = len(byte_view) + while count < amount: + v = self.send(byte_view[count:]) + count += v + + def send(self, data: bytes, flags: int = 0) -> int: + if flags != 0: + raise ValueError("non-zero flags not allowed in calls to send") + return self._ssl_io_loop(self.sslobj.write, data) + + def makefile( + self, + mode: str, + buffering: int | None = None, + *, + encoding: str | None = None, + errors: str | None = None, + newline: str | None = None, + ) -> typing.BinaryIO | typing.TextIO | socket.SocketIO: + """ + Python's httpclient uses makefile and buffered io when reading HTTP + messages and we need to support it. + + This is unfortunately a copy and paste of socket.py makefile with small + changes to point to the socket directly. + """ + if not set(mode) <= {"r", "w", "b"}: + raise ValueError(f"invalid mode {mode!r} (only r, w, b allowed)") + + writing = "w" in mode + reading = "r" in mode or not writing + assert reading or writing + binary = "b" in mode + rawmode = "" + if reading: + rawmode += "r" + if writing: + rawmode += "w" + raw = socket.SocketIO(self, rawmode) # type: ignore[arg-type] + self.socket._io_refs += 1 # type: ignore[attr-defined] + if buffering is None: + buffering = -1 + if buffering < 0: + buffering = io.DEFAULT_BUFFER_SIZE + if buffering == 0: + if not binary: + raise ValueError("unbuffered streams must be binary") + return raw + buffer: typing.BinaryIO + if reading and writing: + buffer = io.BufferedRWPair(raw, raw, buffering) # type: ignore[assignment] + elif reading: + buffer = io.BufferedReader(raw, buffering) + else: + assert writing + buffer = io.BufferedWriter(raw, buffering) + if binary: + return buffer + text = io.TextIOWrapper(buffer, encoding, errors, newline) + text.mode = mode # type: ignore[misc] + return text + + def unwrap(self) -> None: + self._ssl_io_loop(self.sslobj.unwrap) + + def close(self) -> None: + self.socket.close() + + @typing.overload + def getpeercert( + self, binary_form: typing.Literal[False] = ... + ) -> _TYPE_PEER_CERT_RET_DICT | None: ... + + @typing.overload + def getpeercert(self, binary_form: typing.Literal[True]) -> bytes | None: ... + + def getpeercert(self, binary_form: bool = False) -> _TYPE_PEER_CERT_RET: + return self.sslobj.getpeercert(binary_form) # type: ignore[return-value] + + def version(self) -> str | None: + return self.sslobj.version() + + def cipher(self) -> tuple[str, str, int] | None: + return self.sslobj.cipher() + + def selected_alpn_protocol(self) -> str | None: + return self.sslobj.selected_alpn_protocol() + + def shared_ciphers(self) -> list[tuple[str, str, int]] | None: + return self.sslobj.shared_ciphers() + + def compression(self) -> str | None: + return self.sslobj.compression() + + def settimeout(self, value: float | None) -> None: + self.socket.settimeout(value) + + def gettimeout(self) -> float | None: + return self.socket.gettimeout() + + def _decref_socketios(self) -> None: + self.socket._decref_socketios() # type: ignore[attr-defined] + + def _wrap_ssl_read(self, len: int, buffer: bytearray | None = None) -> int | bytes: + try: + return self._ssl_io_loop(self.sslobj.read, len, buffer) + except ssl.SSLError as e: + if e.errno == ssl.SSL_ERROR_EOF and self.suppress_ragged_eofs: + return 0 # eof, return 0. + else: + raise + + # func is sslobj.do_handshake or sslobj.unwrap + @typing.overload + def _ssl_io_loop(self, func: typing.Callable[[], None]) -> None: ... + + # func is sslobj.write, arg1 is data + @typing.overload + def _ssl_io_loop(self, func: typing.Callable[[bytes], int], arg1: bytes) -> int: ... + + # func is sslobj.read, arg1 is len, arg2 is buffer + @typing.overload + def _ssl_io_loop( + self, + func: typing.Callable[[int, bytearray | None], bytes], + arg1: int, + arg2: bytearray | None, + ) -> bytes: ... + + def _ssl_io_loop( + self, + func: typing.Callable[..., _ReturnValue], + arg1: None | bytes | int = None, + arg2: bytearray | None = None, + ) -> _ReturnValue: + """Performs an I/O loop between incoming/outgoing and the socket.""" + should_loop = True + ret = None + + while should_loop: + errno = None + try: + if arg1 is None and arg2 is None: + ret = func() + elif arg2 is None: + ret = func(arg1) + else: + ret = func(arg1, arg2) + except ssl.SSLError as e: + if e.errno not in (ssl.SSL_ERROR_WANT_READ, ssl.SSL_ERROR_WANT_WRITE): + # WANT_READ, and WANT_WRITE are expected, others are not. + raise e + errno = e.errno + + buf = self.outgoing.read() + self.socket.sendall(buf) + + if errno is None: + should_loop = False + elif errno == ssl.SSL_ERROR_WANT_READ: + buf = self.socket.recv(SSL_BLOCKSIZE) + if buf: + self.incoming.write(buf) + else: + self.incoming.write_eof() + return typing.cast(_ReturnValue, ret) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/timeout.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/timeout.py new file mode 100644 index 00000000..4bb1be11 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/timeout.py @@ -0,0 +1,275 @@ +from __future__ import annotations + +import time +import typing +from enum import Enum +from socket import getdefaulttimeout + +from ..exceptions import TimeoutStateError + +if typing.TYPE_CHECKING: + from typing import Final + + +class _TYPE_DEFAULT(Enum): + # This value should never be passed to socket.settimeout() so for safety we use a -1. + # socket.settimout() raises a ValueError for negative values. + token = -1 + + +_DEFAULT_TIMEOUT: Final[_TYPE_DEFAULT] = _TYPE_DEFAULT.token + +_TYPE_TIMEOUT = typing.Optional[typing.Union[float, _TYPE_DEFAULT]] + + +class Timeout: + """Timeout configuration. + + Timeouts can be defined as a default for a pool: + + .. code-block:: python + + import urllib3 + + timeout = urllib3.util.Timeout(connect=2.0, read=7.0) + + http = urllib3.PoolManager(timeout=timeout) + + resp = http.request("GET", "https://example.com/") + + print(resp.status) + + Or per-request (which overrides the default for the pool): + + .. code-block:: python + + response = http.request("GET", "https://example.com/", timeout=Timeout(10)) + + Timeouts can be disabled by setting all the parameters to ``None``: + + .. code-block:: python + + no_timeout = Timeout(connect=None, read=None) + response = http.request("GET", "https://example.com/", timeout=no_timeout) + + + :param total: + This combines the connect and read timeouts into one; the read timeout + will be set to the time leftover from the connect attempt. In the + event that both a connect timeout and a total are specified, or a read + timeout and a total are specified, the shorter timeout will be applied. + + Defaults to None. + + :type total: int, float, or None + + :param connect: + The maximum amount of time (in seconds) to wait for a connection + attempt to a server to succeed. Omitting the parameter will default the + connect timeout to the system default, probably `the global default + timeout in socket.py + `_. + None will set an infinite timeout for connection attempts. + + :type connect: int, float, or None + + :param read: + The maximum amount of time (in seconds) to wait between consecutive + read operations for a response from the server. Omitting the parameter + will default the read timeout to the system default, probably `the + global default timeout in socket.py + `_. + None will set an infinite timeout. + + :type read: int, float, or None + + .. note:: + + Many factors can affect the total amount of time for urllib3 to return + an HTTP response. + + For example, Python's DNS resolver does not obey the timeout specified + on the socket. Other factors that can affect total request time include + high CPU load, high swap, the program running at a low priority level, + or other behaviors. + + In addition, the read and total timeouts only measure the time between + read operations on the socket connecting the client and the server, + not the total amount of time for the request to return a complete + response. For most requests, the timeout is raised because the server + has not sent the first byte in the specified time. This is not always + the case; if a server streams one byte every fifteen seconds, a timeout + of 20 seconds will not trigger, even though the request will take + several minutes to complete. + """ + + #: A sentinel object representing the default timeout value + DEFAULT_TIMEOUT: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT + + def __init__( + self, + total: _TYPE_TIMEOUT = None, + connect: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + read: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + ) -> None: + self._connect = self._validate_timeout(connect, "connect") + self._read = self._validate_timeout(read, "read") + self.total = self._validate_timeout(total, "total") + self._start_connect: float | None = None + + def __repr__(self) -> str: + return f"{type(self).__name__}(connect={self._connect!r}, read={self._read!r}, total={self.total!r})" + + # __str__ provided for backwards compatibility + __str__ = __repr__ + + @staticmethod + def resolve_default_timeout(timeout: _TYPE_TIMEOUT) -> float | None: + return getdefaulttimeout() if timeout is _DEFAULT_TIMEOUT else timeout + + @classmethod + def _validate_timeout(cls, value: _TYPE_TIMEOUT, name: str) -> _TYPE_TIMEOUT: + """Check that a timeout attribute is valid. + + :param value: The timeout value to validate + :param name: The name of the timeout attribute to validate. This is + used to specify in error messages. + :return: The validated and casted version of the given value. + :raises ValueError: If it is a numeric value less than or equal to + zero, or the type is not an integer, float, or None. + """ + if value is None or value is _DEFAULT_TIMEOUT: + return value + + if isinstance(value, bool): + raise ValueError( + "Timeout cannot be a boolean value. It must " + "be an int, float or None." + ) + try: + float(value) + except (TypeError, ValueError): + raise ValueError( + "Timeout value %s was %s, but it must be an " + "int, float or None." % (name, value) + ) from None + + try: + if value <= 0: + raise ValueError( + "Attempted to set %s timeout to %s, but the " + "timeout cannot be set to a value less " + "than or equal to 0." % (name, value) + ) + except TypeError: + raise ValueError( + "Timeout value %s was %s, but it must be an " + "int, float or None." % (name, value) + ) from None + + return value + + @classmethod + def from_float(cls, timeout: _TYPE_TIMEOUT) -> Timeout: + """Create a new Timeout from a legacy timeout value. + + The timeout value used by httplib.py sets the same timeout on the + connect(), and recv() socket requests. This creates a :class:`Timeout` + object that sets the individual timeouts to the ``timeout`` value + passed to this function. + + :param timeout: The legacy timeout value. + :type timeout: integer, float, :attr:`urllib3.util.Timeout.DEFAULT_TIMEOUT`, or None + :return: Timeout object + :rtype: :class:`Timeout` + """ + return Timeout(read=timeout, connect=timeout) + + def clone(self) -> Timeout: + """Create a copy of the timeout object + + Timeout properties are stored per-pool but each request needs a fresh + Timeout object to ensure each one has its own start/stop configured. + + :return: a copy of the timeout object + :rtype: :class:`Timeout` + """ + # We can't use copy.deepcopy because that will also create a new object + # for _GLOBAL_DEFAULT_TIMEOUT, which socket.py uses as a sentinel to + # detect the user default. + return Timeout(connect=self._connect, read=self._read, total=self.total) + + def start_connect(self) -> float: + """Start the timeout clock, used during a connect() attempt + + :raises urllib3.exceptions.TimeoutStateError: if you attempt + to start a timer that has been started already. + """ + if self._start_connect is not None: + raise TimeoutStateError("Timeout timer has already been started.") + self._start_connect = time.monotonic() + return self._start_connect + + def get_connect_duration(self) -> float: + """Gets the time elapsed since the call to :meth:`start_connect`. + + :return: Elapsed time in seconds. + :rtype: float + :raises urllib3.exceptions.TimeoutStateError: if you attempt + to get duration for a timer that hasn't been started. + """ + if self._start_connect is None: + raise TimeoutStateError( + "Can't get connect duration for timer that has not started." + ) + return time.monotonic() - self._start_connect + + @property + def connect_timeout(self) -> _TYPE_TIMEOUT: + """Get the value to use when setting a connection timeout. + + This will be a positive float or integer, the value None + (never timeout), or the default system timeout. + + :return: Connect timeout. + :rtype: int, float, :attr:`Timeout.DEFAULT_TIMEOUT` or None + """ + if self.total is None: + return self._connect + + if self._connect is None or self._connect is _DEFAULT_TIMEOUT: + return self.total + + return min(self._connect, self.total) # type: ignore[type-var] + + @property + def read_timeout(self) -> float | None: + """Get the value for the read timeout. + + This assumes some time has elapsed in the connection timeout and + computes the read timeout appropriately. + + If self.total is set, the read timeout is dependent on the amount of + time taken by the connect timeout. If the connection time has not been + established, a :exc:`~urllib3.exceptions.TimeoutStateError` will be + raised. + + :return: Value to use for the read timeout. + :rtype: int, float or None + :raises urllib3.exceptions.TimeoutStateError: If :meth:`start_connect` + has not yet been called on this object. + """ + if ( + self.total is not None + and self.total is not _DEFAULT_TIMEOUT + and self._read is not None + and self._read is not _DEFAULT_TIMEOUT + ): + # In case the connect timeout has not yet been established. + if self._start_connect is None: + return self._read + return max(0, min(self.total - self.get_connect_duration(), self._read)) + elif self.total is not None and self.total is not _DEFAULT_TIMEOUT: + return max(0, self.total - self.get_connect_duration()) + else: + return self.resolve_default_timeout(self._read) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/url.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/url.py new file mode 100644 index 00000000..db057f17 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/url.py @@ -0,0 +1,469 @@ +from __future__ import annotations + +import re +import typing + +from ..exceptions import LocationParseError +from .util import to_str + +# We only want to normalize urls with an HTTP(S) scheme. +# urllib3 infers URLs without a scheme (None) to be http. +_NORMALIZABLE_SCHEMES = ("http", "https", None) + +# Almost all of these patterns were derived from the +# 'rfc3986' module: https://github.com/python-hyper/rfc3986 +_PERCENT_RE = re.compile(r"%[a-fA-F0-9]{2}") +_SCHEME_RE = re.compile(r"^(?:[a-zA-Z][a-zA-Z0-9+-]*:|/)") +_URI_RE = re.compile( + r"^(?:([a-zA-Z][a-zA-Z0-9+.-]*):)?" + r"(?://([^\\/?#]*))?" + r"([^?#]*)" + r"(?:\?([^#]*))?" + r"(?:#(.*))?$", + re.UNICODE | re.DOTALL, +) + +_IPV4_PAT = r"(?:[0-9]{1,3}\.){3}[0-9]{1,3}" +_HEX_PAT = "[0-9A-Fa-f]{1,4}" +_LS32_PAT = "(?:{hex}:{hex}|{ipv4})".format(hex=_HEX_PAT, ipv4=_IPV4_PAT) +_subs = {"hex": _HEX_PAT, "ls32": _LS32_PAT} +_variations = [ + # 6( h16 ":" ) ls32 + "(?:%(hex)s:){6}%(ls32)s", + # "::" 5( h16 ":" ) ls32 + "::(?:%(hex)s:){5}%(ls32)s", + # [ h16 ] "::" 4( h16 ":" ) ls32 + "(?:%(hex)s)?::(?:%(hex)s:){4}%(ls32)s", + # [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32 + "(?:(?:%(hex)s:)?%(hex)s)?::(?:%(hex)s:){3}%(ls32)s", + # [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32 + "(?:(?:%(hex)s:){0,2}%(hex)s)?::(?:%(hex)s:){2}%(ls32)s", + # [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32 + "(?:(?:%(hex)s:){0,3}%(hex)s)?::%(hex)s:%(ls32)s", + # [ *4( h16 ":" ) h16 ] "::" ls32 + "(?:(?:%(hex)s:){0,4}%(hex)s)?::%(ls32)s", + # [ *5( h16 ":" ) h16 ] "::" h16 + "(?:(?:%(hex)s:){0,5}%(hex)s)?::%(hex)s", + # [ *6( h16 ":" ) h16 ] "::" + "(?:(?:%(hex)s:){0,6}%(hex)s)?::", +] + +_UNRESERVED_PAT = r"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._\-~" +_IPV6_PAT = "(?:" + "|".join([x % _subs for x in _variations]) + ")" +_ZONE_ID_PAT = "(?:%25|%)(?:[" + _UNRESERVED_PAT + "]|%[a-fA-F0-9]{2})+" +_IPV6_ADDRZ_PAT = r"\[" + _IPV6_PAT + r"(?:" + _ZONE_ID_PAT + r")?\]" +_REG_NAME_PAT = r"(?:[^\[\]%:/?#]|%[a-fA-F0-9]{2})*" +_TARGET_RE = re.compile(r"^(/[^?#]*)(?:\?([^#]*))?(?:#.*)?$") + +_IPV4_RE = re.compile("^" + _IPV4_PAT + "$") +_IPV6_RE = re.compile("^" + _IPV6_PAT + "$") +_IPV6_ADDRZ_RE = re.compile("^" + _IPV6_ADDRZ_PAT + "$") +_BRACELESS_IPV6_ADDRZ_RE = re.compile("^" + _IPV6_ADDRZ_PAT[2:-2] + "$") +_ZONE_ID_RE = re.compile("(" + _ZONE_ID_PAT + r")\]$") + +_HOST_PORT_PAT = ("^(%s|%s|%s)(?::0*?(|0|[1-9][0-9]{0,4}))?$") % ( + _REG_NAME_PAT, + _IPV4_PAT, + _IPV6_ADDRZ_PAT, +) +_HOST_PORT_RE = re.compile(_HOST_PORT_PAT, re.UNICODE | re.DOTALL) + +_UNRESERVED_CHARS = set( + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-~" +) +_SUB_DELIM_CHARS = set("!$&'()*+,;=") +_USERINFO_CHARS = _UNRESERVED_CHARS | _SUB_DELIM_CHARS | {":"} +_PATH_CHARS = _USERINFO_CHARS | {"@", "/"} +_QUERY_CHARS = _FRAGMENT_CHARS = _PATH_CHARS | {"?"} + + +class Url( + typing.NamedTuple( + "Url", + [ + ("scheme", typing.Optional[str]), + ("auth", typing.Optional[str]), + ("host", typing.Optional[str]), + ("port", typing.Optional[int]), + ("path", typing.Optional[str]), + ("query", typing.Optional[str]), + ("fragment", typing.Optional[str]), + ], + ) +): + """ + Data structure for representing an HTTP URL. Used as a return value for + :func:`parse_url`. Both the scheme and host are normalized as they are + both case-insensitive according to RFC 3986. + """ + + def __new__( # type: ignore[no-untyped-def] + cls, + scheme: str | None = None, + auth: str | None = None, + host: str | None = None, + port: int | None = None, + path: str | None = None, + query: str | None = None, + fragment: str | None = None, + ): + if path and not path.startswith("/"): + path = "/" + path + if scheme is not None: + scheme = scheme.lower() + return super().__new__(cls, scheme, auth, host, port, path, query, fragment) + + @property + def hostname(self) -> str | None: + """For backwards-compatibility with urlparse. We're nice like that.""" + return self.host + + @property + def request_uri(self) -> str: + """Absolute path including the query string.""" + uri = self.path or "/" + + if self.query is not None: + uri += "?" + self.query + + return uri + + @property + def authority(self) -> str | None: + """ + Authority component as defined in RFC 3986 3.2. + This includes userinfo (auth), host and port. + + i.e. + userinfo@host:port + """ + userinfo = self.auth + netloc = self.netloc + if netloc is None or userinfo is None: + return netloc + else: + return f"{userinfo}@{netloc}" + + @property + def netloc(self) -> str | None: + """ + Network location including host and port. + + If you need the equivalent of urllib.parse's ``netloc``, + use the ``authority`` property instead. + """ + if self.host is None: + return None + if self.port: + return f"{self.host}:{self.port}" + return self.host + + @property + def url(self) -> str: + """ + Convert self into a url + + This function should more or less round-trip with :func:`.parse_url`. The + returned url may not be exactly the same as the url inputted to + :func:`.parse_url`, but it should be equivalent by the RFC (e.g., urls + with a blank port will have : removed). + + Example: + + .. code-block:: python + + import urllib3 + + U = urllib3.util.parse_url("https://google.com/mail/") + + print(U.url) + # "https://google.com/mail/" + + print( urllib3.util.Url("https", "username:password", + "host.com", 80, "/path", "query", "fragment" + ).url + ) + # "https://username:password@host.com:80/path?query#fragment" + """ + scheme, auth, host, port, path, query, fragment = self + url = "" + + # We use "is not None" we want things to happen with empty strings (or 0 port) + if scheme is not None: + url += scheme + "://" + if auth is not None: + url += auth + "@" + if host is not None: + url += host + if port is not None: + url += ":" + str(port) + if path is not None: + url += path + if query is not None: + url += "?" + query + if fragment is not None: + url += "#" + fragment + + return url + + def __str__(self) -> str: + return self.url + + +@typing.overload +def _encode_invalid_chars( + component: str, allowed_chars: typing.Container[str] +) -> str: # Abstract + ... + + +@typing.overload +def _encode_invalid_chars( + component: None, allowed_chars: typing.Container[str] +) -> None: # Abstract + ... + + +def _encode_invalid_chars( + component: str | None, allowed_chars: typing.Container[str] +) -> str | None: + """Percent-encodes a URI component without reapplying + onto an already percent-encoded component. + """ + if component is None: + return component + + component = to_str(component) + + # Normalize existing percent-encoded bytes. + # Try to see if the component we're encoding is already percent-encoded + # so we can skip all '%' characters but still encode all others. + component, percent_encodings = _PERCENT_RE.subn( + lambda match: match.group(0).upper(), component + ) + + uri_bytes = component.encode("utf-8", "surrogatepass") + is_percent_encoded = percent_encodings == uri_bytes.count(b"%") + encoded_component = bytearray() + + for i in range(0, len(uri_bytes)): + # Will return a single character bytestring + byte = uri_bytes[i : i + 1] + byte_ord = ord(byte) + if (is_percent_encoded and byte == b"%") or ( + byte_ord < 128 and byte.decode() in allowed_chars + ): + encoded_component += byte + continue + encoded_component.extend(b"%" + (hex(byte_ord)[2:].encode().zfill(2).upper())) + + return encoded_component.decode() + + +def _remove_path_dot_segments(path: str) -> str: + # See http://tools.ietf.org/html/rfc3986#section-5.2.4 for pseudo-code + segments = path.split("/") # Turn the path into a list of segments + output = [] # Initialize the variable to use to store output + + for segment in segments: + # '.' is the current directory, so ignore it, it is superfluous + if segment == ".": + continue + # Anything other than '..', should be appended to the output + if segment != "..": + output.append(segment) + # In this case segment == '..', if we can, we should pop the last + # element + elif output: + output.pop() + + # If the path starts with '/' and the output is empty or the first string + # is non-empty + if path.startswith("/") and (not output or output[0]): + output.insert(0, "") + + # If the path starts with '/.' or '/..' ensure we add one more empty + # string to add a trailing '/' + if path.endswith(("/.", "/..")): + output.append("") + + return "/".join(output) + + +@typing.overload +def _normalize_host(host: None, scheme: str | None) -> None: ... + + +@typing.overload +def _normalize_host(host: str, scheme: str | None) -> str: ... + + +def _normalize_host(host: str | None, scheme: str | None) -> str | None: + if host: + if scheme in _NORMALIZABLE_SCHEMES: + is_ipv6 = _IPV6_ADDRZ_RE.match(host) + if is_ipv6: + # IPv6 hosts of the form 'a::b%zone' are encoded in a URL as + # such per RFC 6874: 'a::b%25zone'. Unquote the ZoneID + # separator as necessary to return a valid RFC 4007 scoped IP. + match = _ZONE_ID_RE.search(host) + if match: + start, end = match.span(1) + zone_id = host[start:end] + + if zone_id.startswith("%25") and zone_id != "%25": + zone_id = zone_id[3:] + else: + zone_id = zone_id[1:] + zone_id = _encode_invalid_chars(zone_id, _UNRESERVED_CHARS) + return f"{host[:start].lower()}%{zone_id}{host[end:]}" + else: + return host.lower() + elif not _IPV4_RE.match(host): + return to_str( + b".".join([_idna_encode(label) for label in host.split(".")]), + "ascii", + ) + return host + + +def _idna_encode(name: str) -> bytes: + if not name.isascii(): + try: + import idna + except ImportError: + raise LocationParseError( + "Unable to parse URL without the 'idna' module" + ) from None + + try: + return idna.encode(name.lower(), strict=True, std3_rules=True) + except idna.IDNAError: + raise LocationParseError( + f"Name '{name}' is not a valid IDNA label" + ) from None + + return name.lower().encode("ascii") + + +def _encode_target(target: str) -> str: + """Percent-encodes a request target so that there are no invalid characters + + Pre-condition for this function is that 'target' must start with '/'. + If that is the case then _TARGET_RE will always produce a match. + """ + match = _TARGET_RE.match(target) + if not match: # Defensive: + raise LocationParseError(f"{target!r} is not a valid request URI") + + path, query = match.groups() + encoded_target = _encode_invalid_chars(path, _PATH_CHARS) + if query is not None: + query = _encode_invalid_chars(query, _QUERY_CHARS) + encoded_target += "?" + query + return encoded_target + + +def parse_url(url: str) -> Url: + """ + Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is + performed to parse incomplete urls. Fields not provided will be None. + This parser is RFC 3986 and RFC 6874 compliant. + + The parser logic and helper functions are based heavily on + work done in the ``rfc3986`` module. + + :param str url: URL to parse into a :class:`.Url` namedtuple. + + Partly backwards-compatible with :mod:`urllib.parse`. + + Example: + + .. code-block:: python + + import urllib3 + + print( urllib3.util.parse_url('http://google.com/mail/')) + # Url(scheme='http', host='google.com', port=None, path='/mail/', ...) + + print( urllib3.util.parse_url('google.com:80')) + # Url(scheme=None, host='google.com', port=80, path=None, ...) + + print( urllib3.util.parse_url('/foo?bar')) + # Url(scheme=None, host=None, port=None, path='/foo', query='bar', ...) + """ + if not url: + # Empty + return Url() + + source_url = url + if not _SCHEME_RE.search(url): + url = "//" + url + + scheme: str | None + authority: str | None + auth: str | None + host: str | None + port: str | None + port_int: int | None + path: str | None + query: str | None + fragment: str | None + + try: + scheme, authority, path, query, fragment = _URI_RE.match(url).groups() # type: ignore[union-attr] + normalize_uri = scheme is None or scheme.lower() in _NORMALIZABLE_SCHEMES + + if scheme: + scheme = scheme.lower() + + if authority: + auth, _, host_port = authority.rpartition("@") + auth = auth or None + host, port = _HOST_PORT_RE.match(host_port).groups() # type: ignore[union-attr] + if auth and normalize_uri: + auth = _encode_invalid_chars(auth, _USERINFO_CHARS) + if port == "": + port = None + else: + auth, host, port = None, None, None + + if port is not None: + port_int = int(port) + if not (0 <= port_int <= 65535): + raise LocationParseError(url) + else: + port_int = None + + host = _normalize_host(host, scheme) + + if normalize_uri and path: + path = _remove_path_dot_segments(path) + path = _encode_invalid_chars(path, _PATH_CHARS) + if normalize_uri and query: + query = _encode_invalid_chars(query, _QUERY_CHARS) + if normalize_uri and fragment: + fragment = _encode_invalid_chars(fragment, _FRAGMENT_CHARS) + + except (ValueError, AttributeError) as e: + raise LocationParseError(source_url) from e + + # For the sake of backwards compatibility we put empty + # string values for path if there are any defined values + # beyond the path in the URL. + # TODO: Remove this when we break backwards compatibility. + if not path: + if query is not None or fragment is not None: + path = "" + else: + path = None + + return Url( + scheme=scheme, + auth=auth, + host=host, + port=port_int, + path=path, + query=query, + fragment=fragment, + ) diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/util.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/util.py new file mode 100644 index 00000000..35c77e40 --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/util.py @@ -0,0 +1,42 @@ +from __future__ import annotations + +import typing +from types import TracebackType + + +def to_bytes( + x: str | bytes, encoding: str | None = None, errors: str | None = None +) -> bytes: + if isinstance(x, bytes): + return x + elif not isinstance(x, str): + raise TypeError(f"not expecting type {type(x).__name__}") + if encoding or errors: + return x.encode(encoding or "utf-8", errors=errors or "strict") + return x.encode() + + +def to_str( + x: str | bytes, encoding: str | None = None, errors: str | None = None +) -> str: + if isinstance(x, str): + return x + elif not isinstance(x, bytes): + raise TypeError(f"not expecting type {type(x).__name__}") + if encoding or errors: + return x.decode(encoding or "utf-8", errors=errors or "strict") + return x.decode() + + +def reraise( + tp: type[BaseException] | None, + value: BaseException, + tb: TracebackType | None = None, +) -> typing.NoReturn: + try: + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + finally: + value = None # type: ignore[assignment] + tb = None diff --git a/Backend/venv/lib/python3.12/site-packages/urllib3/util/wait.py b/Backend/venv/lib/python3.12/site-packages/urllib3/util/wait.py new file mode 100644 index 00000000..aeca0c7a --- /dev/null +++ b/Backend/venv/lib/python3.12/site-packages/urllib3/util/wait.py @@ -0,0 +1,124 @@ +from __future__ import annotations + +import select +import socket +from functools import partial + +__all__ = ["wait_for_read", "wait_for_write"] + + +# How should we wait on sockets? +# +# There are two types of APIs you can use for waiting on sockets: the fancy +# modern stateful APIs like epoll/kqueue, and the older stateless APIs like +# select/poll. The stateful APIs are more efficient when you have a lots of +# sockets to keep track of, because you can set them up once and then use them +# lots of times. But we only ever want to wait on a single socket at a time +# and don't want to keep track of state, so the stateless APIs are actually +# more efficient. So we want to use select() or poll(). +# +# Now, how do we choose between select() and poll()? On traditional Unixes, +# select() has a strange calling convention that makes it slow, or fail +# altogether, for high-numbered file descriptors. The point of poll() is to fix +# that, so on Unixes, we prefer poll(). +# +# On Windows, there is no poll() (or at least Python doesn't provide a wrapper +# for it), but that's OK, because on Windows, select() doesn't have this +# strange calling convention; plain select() works fine. +# +# So: on Windows we use select(), and everywhere else we use poll(). We also +# fall back to select() in case poll() is somehow broken or missing. + + +def select_wait_for_socket( + sock: socket.socket, + read: bool = False, + write: bool = False, + timeout: float | None = None, +) -> bool: + if not read and not write: + raise RuntimeError("must specify at least one of read=True, write=True") + rcheck = [] + wcheck = [] + if read: + rcheck.append(sock) + if write: + wcheck.append(sock) + # When doing a non-blocking connect, most systems signal success by + # marking the socket writable. Windows, though, signals success by marked + # it as "exceptional". We paper over the difference by checking the write + # sockets for both conditions. (The stdlib selectors module does the same + # thing.) + fn = partial(select.select, rcheck, wcheck, wcheck) + rready, wready, xready = fn(timeout) + return bool(rready or wready or xready) + + +def poll_wait_for_socket( + sock: socket.socket, + read: bool = False, + write: bool = False, + timeout: float | None = None, +) -> bool: + if not read and not write: + raise RuntimeError("must specify at least one of read=True, write=True") + mask = 0 + if read: + mask |= select.POLLIN + if write: + mask |= select.POLLOUT + poll_obj = select.poll() + poll_obj.register(sock, mask) + + # For some reason, poll() takes timeout in milliseconds + def do_poll(t: float | None) -> list[tuple[int, int]]: + if t is not None: + t *= 1000 + return poll_obj.poll(t) + + return bool(do_poll(timeout)) + + +def _have_working_poll() -> bool: + # Apparently some systems have a select.poll that fails as soon as you try + # to use it, either due to strange configuration or broken monkeypatching + # from libraries like eventlet/greenlet. + try: + poll_obj = select.poll() + poll_obj.poll(0) + except (AttributeError, OSError): + return False + else: + return True + + +def wait_for_socket( + sock: socket.socket, + read: bool = False, + write: bool = False, + timeout: float | None = None, +) -> bool: + # We delay choosing which implementation to use until the first time we're + # called. We could do it at import time, but then we might make the wrong + # decision if someone goes wild with monkeypatching select.poll after + # we're imported. + global wait_for_socket + if _have_working_poll(): + wait_for_socket = poll_wait_for_socket + elif hasattr(select, "select"): + wait_for_socket = select_wait_for_socket + return wait_for_socket(sock, read, write, timeout) + + +def wait_for_read(sock: socket.socket, timeout: float | None = None) -> bool: + """Waits for reading to be available on a given socket. + Returns True if the socket is readable, or False if the timeout expired. + """ + return wait_for_socket(sock, read=True, timeout=timeout) + + +def wait_for_write(sock: socket.socket, timeout: float | None = None) -> bool: + """Waits for writing to be available on a given socket. + Returns True if the socket is readable, or False if the timeout expired. + """ + return wait_for_socket(sock, write=True, timeout=timeout) diff --git a/Frontend/package-lock.json b/Frontend/package-lock.json index 12a377d2..53b9c52f 100644 --- a/Frontend/package-lock.json +++ b/Frontend/package-lock.json @@ -9,6 +9,8 @@ "version": "1.0.0", "dependencies": { "@hookform/resolvers": "^3.3.2", + "@stripe/react-stripe-js": "^2.9.0", + "@stripe/stripe-js": "^2.4.0", "@types/react-datepicker": "^6.2.0", "axios": "^1.6.2", "date-fns": "^2.30.0", @@ -1436,6 +1438,27 @@ "win32" ] }, + "node_modules/@stripe/react-stripe-js": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-2.9.0.tgz", + "integrity": "sha512-+/j2g6qKAKuWSurhgRMfdlIdKM+nVVJCy/wl0US2Ccodlqx0WqfIIBhUkeONkCG+V/b+bZzcj4QVa3E/rXtT4Q==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "@stripe/stripe-js": "^1.44.1 || ^2.0.0 || ^3.0.0 || ^4.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@stripe/stripe-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-2.4.0.tgz", + "integrity": "sha512-WFkQx1mbs2b5+7looI9IV1BLa3bIApuN3ehp9FP58xGg7KL9hCHDECgW3BwO9l9L+xBPVAD7Yjn1EhGe6EDTeA==", + "license": "MIT", + "peer": true + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -3609,7 +3632,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3990,6 +4012,17 @@ "node": ">= 0.8.0" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/property-expr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", @@ -4126,6 +4159,12 @@ "react": "^16.8.0 || ^17 || ^18 || ^19" } }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/react-refresh": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", diff --git a/Frontend/package.json b/Frontend/package.json index 10eecba0..a2d8b81e 100644 --- a/Frontend/package.json +++ b/Frontend/package.json @@ -11,6 +11,8 @@ }, "dependencies": { "@hookform/resolvers": "^3.3.2", + "@stripe/react-stripe-js": "^2.9.0", + "@stripe/stripe-js": "^2.4.0", "@types/react-datepicker": "^6.2.0", "axios": "^1.6.2", "date-fns": "^2.30.0", diff --git a/Frontend/src/App.tsx b/Frontend/src/App.tsx index 7852c35f..57be6cef 100644 --- a/Frontend/src/App.tsx +++ b/Frontend/src/App.tsx @@ -9,6 +9,7 @@ import { ToastContainer } from 'react-toastify'; import 'react-toastify/dist/ReactToastify.css'; import { GlobalLoadingProvider } from './contexts/GlobalLoadingContext'; import { CookieConsentProvider } from './contexts/CookieConsentContext'; +import { CurrencyProvider } from './contexts/CurrencyContext'; import OfflineIndicator from './components/common/OfflineIndicator'; import CookieConsentBanner from './components/common/CookieConsentBanner'; import AnalyticsLoader from './components/common/AnalyticsLoader'; @@ -40,8 +41,10 @@ const BookingPage = lazy(() => import('./pages/customer/BookingPage')); const BookingSuccessPage = lazy(() => import('./pages/customer/BookingSuccessPage')); const BookingDetailPage = lazy(() => import('./pages/customer/BookingDetailPage')); const DepositPaymentPage = lazy(() => import('./pages/customer/DepositPaymentPage')); +const FullPaymentPage = lazy(() => import('./pages/customer/FullPaymentPage')); const PaymentConfirmationPage = lazy(() => import('./pages/customer/PaymentConfirmationPage')); const PaymentResultPage = lazy(() => import('./pages/customer/PaymentResultPage')); +const InvoicePage = lazy(() => import('./pages/customer/InvoicePage')); const ProfilePage = lazy(() => import('./pages/customer/ProfilePage')); const AboutPage = lazy(() => import('./pages/AboutPage')); const LoginPage = lazy(() => import('./pages/auth/LoginPage')); @@ -55,12 +58,15 @@ const RoomManagementPage = lazy(() => import('./pages/admin/RoomManagementPage') const UserManagementPage = lazy(() => import('./pages/admin/UserManagementPage')); const BookingManagementPage = lazy(() => import('./pages/admin/BookingManagementPage')); const PaymentManagementPage = lazy(() => import('./pages/admin/PaymentManagementPage')); +const InvoiceManagementPage = lazy(() => import('./pages/admin/InvoiceManagementPage')); const ServiceManagementPage = lazy(() => import('./pages/admin/ServiceManagementPage')); const ReviewManagementPage = lazy(() => import('./pages/admin/ReviewManagementPage')); const PromotionManagementPage = lazy(() => import('./pages/admin/PromotionManagementPage')); const BannerManagementPage = lazy(() => import('./pages/admin/BannerManagementPage')); const ReportsPage = lazy(() => import('./pages/admin/ReportsPage')); const CookieSettingsPage = lazy(() => import('./pages/admin/CookieSettingsPage')); +const CurrencySettingsPage = lazy(() => import('./pages/admin/CurrencySettingsPage')); +const StripeSettingsPage = lazy(() => import('./pages/admin/StripeSettingsPage')); const AuditLogsPage = lazy(() => import('./pages/admin/AuditLogsPage')); const CheckInPage = lazy(() => import('./pages/admin/CheckInPage')); const CheckOutPage = lazy(() => import('./pages/admin/CheckOutPage')); @@ -123,6 +129,7 @@ function App() { return ( + } /> } /> } /> + + + + } + /> } @@ -218,7 +233,15 @@ function App() { } /> + + + } + /> + @@ -283,6 +306,10 @@ function App() { path="payments" element={} /> + } + /> } @@ -319,6 +346,14 @@ function App() { path="settings" element={} /> + } + /> + } + /> {/* 404 Route */} @@ -347,6 +382,7 @@ function App() { + ); diff --git a/Frontend/src/components/common/CurrencyIcon.tsx b/Frontend/src/components/common/CurrencyIcon.tsx new file mode 100644 index 00000000..2b38de3c --- /dev/null +++ b/Frontend/src/components/common/CurrencyIcon.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import { useCurrency } from '../../contexts/CurrencyContext'; +import { getCurrencySymbol } from '../../utils/format'; + +interface CurrencyIconProps { + className?: string; + size?: number; + currency?: string; // Optional: if not provided, uses currency from context +} + +/** + * Dynamic currency icon component that displays the currency symbol + * instead of a hardcoded dollar sign icon + */ +const CurrencyIcon: React.FC = ({ + className = '', + size = 24, + currency +}) => { + const { currency: contextCurrency } = useCurrency(); + const currencyToUse = currency || contextCurrency || 'VND'; + const symbol = getCurrencySymbol(currencyToUse); + + return ( +
+ {symbol} +
+ ); +}; + +export default CurrencyIcon; + diff --git a/Frontend/src/components/common/CurrencySelector.tsx b/Frontend/src/components/common/CurrencySelector.tsx new file mode 100644 index 00000000..cb94b412 --- /dev/null +++ b/Frontend/src/components/common/CurrencySelector.tsx @@ -0,0 +1,126 @@ +import React, { useState } from 'react'; +import { useCurrency } from '../../contexts/CurrencyContext'; +import { Globe, Save } from 'lucide-react'; +import { toast } from 'react-toastify'; +import systemSettingsService from '../../services/api/systemSettingsService'; +import useAuthStore from '../../store/useAuthStore'; +import { getCurrencySymbol } from '../../utils/format'; + +interface CurrencySelectorProps { + className?: string; + showLabel?: boolean; + variant?: 'dropdown' | 'select'; + adminMode?: boolean; // If true, allows updating platform currency +} + +const CurrencySelector: React.FC = ({ + className = '', + showLabel = true, + variant = 'select', + adminMode = false, +}) => { + const { currency, supportedCurrencies, isLoading, refreshCurrency } = useCurrency(); + const { userInfo } = useAuthStore(); + const [saving, setSaving] = useState(false); + const isAdmin = userInfo?.role === 'admin'; + + const currencyNames: Record = { + VND: 'Vietnamese Dong', + USD: 'US Dollar', + EUR: 'Euro', + GBP: 'British Pound', + JPY: 'Japanese Yen', + CNY: 'Chinese Yuan', + KRW: 'South Korean Won', + SGD: 'Singapore Dollar', + THB: 'Thai Baht', + AUD: 'Australian Dollar', + CAD: 'Canadian Dollar', + }; + + const getCurrencyDisplayName = (code: string): string => { + const name = currencyNames[code] || code; + const symbol = getCurrencySymbol(code); + return `${name} (${symbol})`; + }; + + const handleChange = async (e: React.ChangeEvent) => { + const newCurrency = e.target.value; + + // If admin mode, update platform currency + if (adminMode && isAdmin) { + try { + setSaving(true); + await systemSettingsService.updatePlatformCurrency(newCurrency); + await refreshCurrency(); + toast.success('Platform currency updated successfully'); + } catch (error: any) { + toast.error(error.message || 'Failed to update platform currency'); + } finally { + setSaving(false); + } + } + }; + + if (isLoading) { + return ( +
+ {showLabel && Currency:} +
+
+ ); + } + + if (variant === 'dropdown') { + return ( +
+ {showLabel && ( + + )} +
+ +
+ +
+
+
+ ); + } + + return ( +
+ {showLabel && ( + + + Currency: + + )} + +
+ ); +}; + +export default CurrencySelector; + diff --git a/Frontend/src/components/common/PaymentMethodSelector.tsx b/Frontend/src/components/common/PaymentMethodSelector.tsx index f82a0504..9dcffa4d 100644 --- a/Frontend/src/components/common/PaymentMethodSelector.tsx +++ b/Frontend/src/components/common/PaymentMethodSelector.tsx @@ -1,9 +1,9 @@ import React from 'react'; -import { CreditCard, Building2 } from 'lucide-react'; +import { CreditCard } from 'lucide-react'; interface PaymentMethodSelectorProps { - value: 'cash' | 'bank_transfer'; - onChange: (value: 'cash' | 'bank_transfer') => void; + value: 'cash' | 'stripe'; + onChange: (value: 'cash' | 'stripe') => void; error?: string; disabled?: boolean; } @@ -62,12 +62,12 @@ const PaymentMethodSelector: React.FC< - {/* Bank Transfer */} + {/* Stripe Payment */} @@ -123,11 +123,10 @@ const PaymentMethodSelector: React.FC< border-blue-200 rounded-lg" >

- 💡 Note: You will not be - charged immediately. {' '} + 💡 Note: {' '} {value === 'cash' - ? 'Payment when checking in.' - : 'Transfer after booking confirmation.'} + ? 'You will pay when checking in. Cash and card accepted at the hotel.' + : 'Your payment will be processed securely through Stripe.'}

diff --git a/Frontend/src/components/layout/Header.tsx b/Frontend/src/components/layout/Header.tsx index 2504563c..db1df150 100644 --- a/Frontend/src/components/layout/Header.tsx +++ b/Frontend/src/components/layout/Header.tsx @@ -11,6 +11,7 @@ import { Heart, Phone, Mail, + Calendar, } from 'lucide-react'; import { useClickOutside } from '../../hooks/useClickOutside'; @@ -121,25 +122,6 @@ const Header: React.FC = ({ Rooms - - Bookings - - - - - Favorites - - Profile + setIsUserMenuOpen(false)} + className="flex items-center space-x-3 + px-4 py-2.5 text-white/90 + hover:bg-[#d4af37]/10 hover:text-[#d4af37] + transition-all duration-300 border-l-2 border-transparent + hover:border-[#d4af37]" + > + + Favorites + + setIsUserMenuOpen(false)} + className="flex items-center space-x-3 + px-4 py-2.5 text-white/90 + hover:bg-[#d4af37]/10 hover:text-[#d4af37] + transition-all duration-300 border-l-2 border-transparent + hover:border-[#d4af37]" + > + + My Bookings + {userInfo?.role === 'admin' && ( = ({ > Rooms - setIsMobileMenuOpen(false)} - className="px-4 py-3 text-white/90 - hover:bg-[#d4af37]/10 hover:text-[#d4af37] - rounded-sm transition-all duration-300 - border-l-2 border-transparent - hover:border-[#d4af37] font-light tracking-wide" - > - Bookings - - setIsMobileMenuOpen(false)} - className="px-4 py-3 text-white/90 - hover:bg-[#d4af37]/10 hover:text-[#d4af37] - rounded-sm transition-all duration-300 - border-l-2 border-transparent - hover:border-[#d4af37] font-light tracking-wide - flex items-center gap-2" - > - - Favorites - setIsMobileMenuOpen(false)} @@ -408,6 +390,36 @@ const Header: React.FC = ({ Profile + + setIsMobileMenuOpen(false) + } + className="flex items-center + space-x-2 px-4 py-3 text-white/90 + hover:bg-[#d4af37]/10 hover:text-[#d4af37] + rounded-sm transition-all duration-300 + border-l-2 border-transparent + hover:border-[#d4af37] font-light tracking-wide" + > + + Favorites + + + setIsMobileMenuOpen(false) + } + className="flex items-center + space-x-2 px-4 py-3 text-white/90 + hover:bg-[#d4af37]/10 hover:text-[#d4af37] + rounded-sm transition-all duration-300 + border-l-2 border-transparent + hover:border-[#d4af37] font-light tracking-wide" + > + + My Bookings + {userInfo?.role === 'admin' && ( = ({ isCollapsed: controlledCollapsed, onToggle }) => { - const [internalCollapsed, setInternalCollapsed] = - useState(false); + const [internalCollapsed, setInternalCollapsed] = useState(false); + const [isMobile, setIsMobile] = useState(false); + const [isMobileOpen, setIsMobileOpen] = useState(false); const location = useLocation(); + // Check if mobile on mount and resize + useEffect(() => { + const checkMobile = () => { + setIsMobile(window.innerWidth < 1024); // lg breakpoint + if (window.innerWidth >= 1024) { + setIsMobileOpen(false); + } + }; + + checkMobile(); + window.addEventListener('resize', checkMobile); + return () => window.removeEventListener('resize', checkMobile); + }, []); + const isCollapsed = controlledCollapsed !== undefined ? controlledCollapsed @@ -45,6 +63,16 @@ const SidebarAdmin: React.FC = ({ } }; + const handleMobileToggle = () => { + setIsMobileOpen(!isMobileOpen); + }; + + const handleLinkClick = () => { + if (isMobile) { + setIsMobileOpen(false); + } + }; + const menuItems = [ { path: '/admin/dashboard', @@ -71,6 +99,11 @@ const SidebarAdmin: React.FC = ({ icon: CreditCard, label: 'Payments' }, + { + path: '/admin/invoices', + icon: FileText, + label: 'Invoices' + }, { path: '/admin/services', icon: Settings, @@ -114,97 +147,171 @@ const SidebarAdmin: React.FC = ({ { path: '/admin/settings', icon: FileText, - label: 'Settings' + label: 'Cookie Settings' + }, + { + path: '/admin/settings/currency', + icon: DollarSign, + label: 'Currency Settings' + }, + { + path: '/admin/settings/stripe', + icon: CreditCard, + label: 'Stripe Settings' }, ]; const isActive = (path: string) => { - return location.pathname === path || - location.pathname.startsWith(`${path}/`); + // Exact match + if (location.pathname === path) return true; + // For settings paths, only match if it's an exact match or a direct child + if (path === '/admin/settings') { + return location.pathname === '/admin/settings'; + } + // For other paths, check if it starts with the path followed by / + return location.pathname.startsWith(`${path}/`); }; return ( - + {/* Sidebar */} + + ); }; diff --git a/Frontend/src/components/payments/StripePaymentForm.tsx b/Frontend/src/components/payments/StripePaymentForm.tsx new file mode 100644 index 00000000..c5db54f8 --- /dev/null +++ b/Frontend/src/components/payments/StripePaymentForm.tsx @@ -0,0 +1,174 @@ +import React, { useState, useEffect } from 'react'; +import { + PaymentElement, + useStripe, + useElements, +} from '@stripe/react-stripe-js'; +import { CreditCard, Loader2, AlertCircle, CheckCircle } from 'lucide-react'; +import { toast } from 'react-toastify'; + +interface StripePaymentFormProps { + clientSecret: string; + amount: number; + onSuccess: (paymentIntentId: string) => void; + onError: (error: string) => void; +} + +const StripePaymentForm: React.FC = ({ + clientSecret, + amount, + onSuccess, + onError, +}) => { + const stripe = useStripe(); + const elements = useElements(); + + const [isProcessing, setIsProcessing] = useState(false); + const [message, setMessage] = useState(null); + + useEffect(() => { + if (!stripe || !clientSecret) { + return; + } + }, [stripe, clientSecret]); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + if (!stripe || !elements) { + return; + } + + setIsProcessing(true); + setMessage(null); + + try { + const { error, paymentIntent } = await stripe.confirmPayment({ + elements, + confirmParams: { + return_url: window.location.origin + '/payment-success', + }, + redirect: 'if_required', + }); + + if (error) { + setMessage(error.message || 'An error occurred during payment'); + onError(error.message || 'Payment failed'); + toast.error(error.message || 'Payment failed'); + } else if (paymentIntent && paymentIntent.status === 'succeeded') { + setMessage('Payment succeeded!'); + toast.success('Payment successful!'); + onSuccess(paymentIntent.id); + } else { + setMessage('Payment processing...'); + } + } catch (err: any) { + const errorMessage = err.message || 'An unexpected error occurred'; + setMessage(errorMessage); + onError(errorMessage); + toast.error(errorMessage); + } finally { + setIsProcessing(false); + } + }; + + if (!stripe || !elements) { + return ( +
+ + Loading payment form... +
+ ); + } + + return ( +
+
+
+ +

+ Payment Details +

+
+ +
+
+ + Amount to Pay + + + ${amount.toFixed(2)} + +
+
+ +
+ +
+ + {message && ( +
+ {message.includes('succeeded') ? ( + + ) : message.includes('error') || message.includes('failed') ? ( + + ) : ( + + )} +

+ {message} +

+
+ )} + + + +

+ Your payment is secure and encrypted +

+
+
+ ); +}; + +export default StripePaymentForm; + diff --git a/Frontend/src/components/payments/StripePaymentWrapper.tsx b/Frontend/src/components/payments/StripePaymentWrapper.tsx new file mode 100644 index 00000000..997e1a29 --- /dev/null +++ b/Frontend/src/components/payments/StripePaymentWrapper.tsx @@ -0,0 +1,197 @@ +import React, { useState, useEffect } from 'react'; +import { loadStripe, StripeElementsOptions } from '@stripe/stripe-js'; +import { Elements } from '@stripe/react-stripe-js'; +import StripePaymentForm from './StripePaymentForm'; +import { createStripePaymentIntent, confirmStripePayment } from '../../services/api/paymentService'; +import { Loader2, AlertCircle } from 'lucide-react'; +import Loading from '../common/Loading'; + +interface StripePaymentWrapperProps { + bookingId: number; + amount: number; + currency?: string; + onSuccess: () => void; + onError?: (error: string) => void; +} + +const StripePaymentWrapper: React.FC = ({ + bookingId, + amount, + currency = 'usd', + onSuccess, + onError, +}) => { + const [stripePromise, setStripePromise] = useState | null>(null); + const [clientSecret, setClientSecret] = useState(null); + const [publishableKey, setPublishableKey] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [paymentCompleted, setPaymentCompleted] = useState(false); + + // Initialize Stripe payment intent + useEffect(() => { + // Don't initialize if payment is already completed + if (paymentCompleted) { + return; + } + + // First, create payment intent to get publishable key + const initializeStripe = async () => { + try { + setLoading(true); + setError(null); + + const response = await createStripePaymentIntent( + bookingId, + amount, + currency + ); + + if (response.success && response.data) { + const { publishable_key, client_secret } = response.data; + + console.log('Payment intent response:', { publishable_key: publishable_key ? 'present' : 'missing', client_secret: client_secret ? 'present' : 'missing' }); + + if (!client_secret) { + throw new Error('Client secret not received from server'); + } + + if (!publishable_key) { + throw new Error('Publishable key not configured. Please configure Stripe settings in Admin Panel.'); + } + + setPublishableKey(publishable_key); + setClientSecret(client_secret); + + // Initialize Stripe with publishable key + // loadStripe returns a Promise, so we don't need to wrap it + const stripePromise = loadStripe(publishable_key); + setStripePromise(stripePromise); + + // Wait for Stripe to load before proceeding + const stripe = await stripePromise; + if (!stripe) { + throw new Error('Failed to load Stripe'); + } + } else { + throw new Error(response.message || 'Failed to initialize payment'); + } + } catch (err: any) { + console.error('Error initializing Stripe:', err); + const errorMessage = err.response?.data?.message || err.message || 'Failed to initialize payment'; + setError(errorMessage); + if (onError) { + onError(errorMessage); + } + } finally { + setLoading(false); + } + }; + + initializeStripe(); + }, [bookingId, amount, currency, onError, paymentCompleted]); + + // Debug logging - must be before any conditional returns + useEffect(() => { + if (clientSecret && stripePromise) { + console.log('Stripe initialized successfully', { hasClientSecret: !!clientSecret, hasStripePromise: !!stripePromise }); + } else { + console.log('Stripe not ready', { hasClientSecret: !!clientSecret, hasStripePromise: !!stripePromise, error }); + } + }, [clientSecret, stripePromise, error]); + + const handlePaymentSuccess = async (paymentIntentId: string) => { + try { + // Mark payment as completed to prevent re-initialization + setPaymentCompleted(true); + + const response = await confirmStripePayment(paymentIntentId, bookingId); + + if (response.success) { + onSuccess(); + } else { + // Reset payment completed flag if confirmation failed + setPaymentCompleted(false); + throw new Error(response.message || 'Payment confirmation failed'); + } + } catch (err: any) { + console.error('Error confirming payment:', err); + // Reset payment completed flag on error + setPaymentCompleted(false); + const errorMessage = err.response?.data?.message || err.message || 'Payment confirmation failed'; + setError(errorMessage); + if (onError) { + onError(errorMessage); + } + } + }; + + const handlePaymentError = (errorMessage: string) => { + setError(errorMessage); + if (onError) { + onError(errorMessage); + } + }; + + // Don't show error if payment is completed + if (paymentCompleted) { + return null; // Component will be unmounted by parent + } + + if (loading) { + return ( +
+ + Initializing payment... +
+ ); + } + + if (error) { + return ( +
+
+ +
+

+ Payment Initialization Failed +

+

+ {error || 'Unable to initialize payment. Please try again.'} +

+
+
+
+ ); + } + + if (!clientSecret || !stripePromise) { + return ( +
+ + Loading payment form... +
+ ); + } + + const options: StripeElementsOptions = { + clientSecret, + appearance: { + theme: 'stripe', + }, + }; + + return ( + + + + ); +}; + +export default StripePaymentWrapper; + diff --git a/Frontend/src/components/rooms/Pagination.tsx b/Frontend/src/components/rooms/Pagination.tsx index 828f2ad1..f4c1e96d 100644 --- a/Frontend/src/components/rooms/Pagination.tsx +++ b/Frontend/src/components/rooms/Pagination.tsx @@ -77,10 +77,11 @@ const Pagination: React.FC = ({ + )} + +
+
setCheckOutDate(date)} selectsEnd startDate={checkInDate} endDate={checkOutDate} - minDate={checkInDate || new Date()} + minDate={ + checkInDate + ? new Date(checkInDate.getTime() + 24 * 60 * 60 * 1000) // Next day after check-in + : new Date() + } + disabled={!checkInDate} dateFormat="dd/MM/yyyy" - placeholderText="" - className="luxury-input" - /> + placeholderText={checkInDate ? "Select check-out" : "Select check-in first"} + className="w-full px-4 py-3.5 pl-11 bg-[#1a1a1a] border-2 + border-[#d4af37]/30 rounded-lg text-white text-base + placeholder-gray-400 focus:ring-2 + focus:ring-[#d4af37]/60 focus:border-[#d4af37] + transition-all duration-300 font-normal tracking-wide + hover:border-[#d4af37]/50 + disabled:opacity-50 disabled:cursor-not-allowed" + wrapperClassName="w-full" + /> + {checkOutDate && ( + + )} + +
+ {checkInDate && !checkOutDate && ( +

+ Select check-out date (minimum 1 night stay) +

+ )}
{/* Price Range */} +
+
+
+ = ({ onFilterChange }) => { placeholder="0" inputMode="numeric" pattern="[0-9.]*" - className="luxury-input" + className="w-full px-4 py-3.5 pl-10 bg-[#1a1a1a] border-2 + border-[#d4af37]/30 rounded-lg text-white text-base + placeholder-gray-400 focus:ring-2 + focus:ring-[#d4af37]/60 focus:border-[#d4af37] + transition-all duration-300 font-normal tracking-wide + hover:border-[#d4af37]/50" /> +
+
+ = ({ onFilterChange }) => { : '' } onChange={handleInputChange} - placeholder="10.000.000" + placeholder="No limit" inputMode="numeric" pattern="[0-9.]*" - className="luxury-input" + className="w-full px-4 py-3.5 pl-10 bg-[#1a1a1a] border-2 + border-[#d4af37]/30 rounded-lg text-white text-base + placeholder-gray-400 focus:ring-2 + focus:ring-[#d4af37]/60 focus:border-[#d4af37] + transition-all duration-300 font-normal tracking-wide + hover:border-[#d4af37]/50" /> +
+
@@ -367,10 +497,14 @@ const RoomFilter: React.FC = ({ onFilterChange }) => { +
+ = ({ onFilterChange }) => { placeholder="1" min="1" max="10" - className="luxury-input" + className="w-full px-4 py-3.5 pl-11 bg-[#1a1a1a] border-2 + border-[#d4af37]/30 rounded-lg text-white text-base + placeholder-gray-400 focus:ring-2 + focus:ring-[#d4af37]/60 focus:border-[#d4af37] + transition-all duration-300 font-normal tracking-wide + hover:border-[#d4af37]/50 + [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none + [&::-webkit-inner-spin-button]:appearance-none" /> +
{/* Amenities */}
-
+ ); +}; + +export default CurrencySettingsPage; + diff --git a/Frontend/src/pages/admin/DashboardPage.tsx b/Frontend/src/pages/admin/DashboardPage.tsx index 201d043a..aeac6fca 100644 --- a/Frontend/src/pages/admin/DashboardPage.tsx +++ b/Frontend/src/pages/admin/DashboardPage.tsx @@ -3,23 +3,30 @@ import { BarChart3, Users, Hotel, - DollarSign, Calendar, TrendingUp, RefreshCw, - TrendingDown + TrendingDown, + CreditCard } from 'lucide-react'; -import { reportService, ReportData } from '../../services/api'; +import { reportService, ReportData, paymentService, Payment } from '../../services/api'; import { toast } from 'react-toastify'; import { Loading, EmptyState } from '../../components/common'; -import { formatCurrency, formatDate } from '../../utils/format'; +import CurrencyIcon from '../../components/common/CurrencyIcon'; +import { formatDate } from '../../utils/format'; +import { useFormatCurrency } from '../../hooks/useFormatCurrency'; import { useAsync } from '../../hooks/useAsync'; +import { useNavigate } from 'react-router-dom'; const DashboardPage: React.FC = () => { + const { formatCurrency } = useFormatCurrency(); + const navigate = useNavigate(); const [dateRange, setDateRange] = useState({ from: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], to: new Date().toISOString().split('T')[0], }); + const [recentPayments, setRecentPayments] = useState([]); + const [loadingPayments, setLoadingPayments] = useState(false); const fetchDashboardData = async () => { const response = await reportService.getReports({ @@ -43,10 +50,56 @@ const DashboardPage: React.FC = () => { execute(); }, [dateRange]); // eslint-disable-line react-hooks/exhaustive-deps + useEffect(() => { + const fetchPayments = async () => { + try { + setLoadingPayments(true); + const response = await paymentService.getPayments({ page: 1, limit: 5 }); + if (response.success && response.data?.payments) { + setRecentPayments(response.data.payments); + } + } catch (err: any) { + console.error('Error fetching payments:', err); + } finally { + setLoadingPayments(false); + } + }; + fetchPayments(); + }, []); + const handleRefresh = () => { execute(); }; + const getPaymentStatusColor = (status: string) => { + switch (status) { + case 'completed': + return 'bg-gradient-to-r from-emerald-50 to-green-50 text-emerald-800 border-emerald-200'; + case 'pending': + return 'bg-gradient-to-r from-amber-50 to-yellow-50 text-amber-800 border-amber-200'; + case 'failed': + return 'bg-gradient-to-r from-rose-50 to-red-50 text-rose-800 border-rose-200'; + case 'refunded': + return 'bg-gradient-to-r from-slate-50 to-gray-50 text-slate-700 border-slate-200'; + default: + return 'bg-gradient-to-r from-slate-50 to-gray-50 text-slate-700 border-slate-200'; + } + }; + + const getPaymentMethodLabel = (method: string) => { + switch (method) { + case 'stripe': + case 'credit_card': + return 'Card'; + case 'bank_transfer': + return 'Bank Transfer'; + case 'cash': + return 'Cash'; + default: + return method; + } + }; + if (loading) { return ; } @@ -67,12 +120,17 @@ const DashboardPage: React.FC = () => { } return ( -
- {/* Header */} +
+ {/* Luxury Header */}
-

Dashboard

-

Hotel operations overview and analytics

+
+
+

+ Dashboard +

+
+

Hotel operations overview and analytics

{/* Date Range Filter */} @@ -82,20 +140,20 @@ const DashboardPage: React.FC = () => { type="date" value={dateRange.from} onChange={(e) => setDateRange({ ...dateRange, from: e.target.value })} - className="enterprise-input text-sm" + className="px-4 py-2.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 font-medium shadow-sm hover:shadow-md" /> - to + to setDateRange({ ...dateRange, to: e.target.value })} - className="enterprise-input text-sm" + className="px-4 py-2.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 font-medium shadow-sm hover:shadow-md" />
- {/* Stats Cards */} + {/* Luxury Stats Cards */}
{/* Total Revenue */} -
+
-

Total Revenue

-

+

Total Revenue

+

{formatCurrency(stats?.total_revenue || 0)}

-
- +
+
- {/* Trend indicator - can be enhanced with actual comparison data */} -
- - Active - All time revenue +
+ + Active + All time revenue
{/* Total Bookings */} -
+
-

Total Bookings

-

+

Total Bookings

+

{stats?.total_bookings || 0}

-
- +
+
-
- +
+ {stats.total_bookings > 0 ? 'Total bookings recorded' : 'No bookings yet'}
{/* Available Rooms */} -
+
-

Available Rooms

-

+

Available Rooms

+

{stats?.available_rooms || 0}

-
- +
+
-
- +
+ {stats?.occupied_rooms || 0} rooms in use
{/* Total Customers */} -
+
-

Customers

-

+

Customers

+

{stats?.total_customers || 0}

-
- +
+
-
- +
+ Unique customers with bookings
@@ -190,10 +247,10 @@ const DashboardPage: React.FC = () => { {/* Charts Section */}
{/* Revenue Chart */} -
-
-

Daily Revenue

-
+
+
+

Daily Revenue

+
@@ -202,22 +259,22 @@ const DashboardPage: React.FC = () => { {stats.revenue_by_date.slice(0, 7).map((item, index) => { const maxRevenue = Math.max(...stats.revenue_by_date!.map(r => r.revenue)); return ( -
- +
+ {formatDate(item.date, 'short')} -
-
+
+
- - {formatCurrency(item.revenue, 'VND')} + + {formatCurrency(item.revenue)}
); @@ -232,9 +289,9 @@ const DashboardPage: React.FC = () => {
{/* Bookings by Status */} -
-
-

Booking Status

+
+
+

Booking Status

{stats?.bookings_by_status && Object.keys(stats.bookings_by_status).length > 0 ? (
@@ -242,11 +299,11 @@ const DashboardPage: React.FC = () => { .filter(([_, count]) => count > 0) .map(([status, count]) => { const statusColors: Record = { - pending: 'bg-yellow-500', + pending: 'bg-amber-500', confirmed: 'bg-blue-500', - checked_in: 'bg-green-500', - checked_out: 'bg-gray-500', - cancelled: 'bg-red-500', + checked_in: 'bg-emerald-500', + checked_out: 'bg-slate-500', + cancelled: 'bg-rose-500', }; const statusLabels: Record = { pending: 'Pending confirmation', @@ -256,12 +313,12 @@ const DashboardPage: React.FC = () => { cancelled: 'Cancelled', }; return ( -
+
-
- {statusLabels[status] || status} +
+ {statusLabels[status] || status}
- {count} + {count}
); })} @@ -275,26 +332,31 @@ const DashboardPage: React.FC = () => {
- {/* Top Rooms and Services */} -
+ {/* Top Rooms, Services & Recent Payments */} +
{/* Top Rooms */} -
-

Top Booked Rooms

+
+
+

Top Booked Rooms

+
+ +
+
{stats?.top_rooms && stats.top_rooms.length > 0 ? (
{stats.top_rooms.map((room, index) => ( -
+
- + {index + 1}
-

Room {room.room_number}

-

{room.bookings} booking{room.bookings !== 1 ? 's' : ''}

+

Room {room.room_number}

+

{room.bookings} booking{room.bookings !== 1 ? 's' : ''}

- - {formatCurrency(room.revenue, 'VND')} + + {formatCurrency(room.revenue)}
))} @@ -308,18 +370,23 @@ const DashboardPage: React.FC = () => {
{/* Service Usage */} -
-

Services Used

+
+
+

Services Used

+
+ +
+
{stats?.service_usage && stats.service_usage.length > 0 ? (
{stats.service_usage.map((service) => ( -
+
-

{service.service_name}

-

{service.usage_count} time{service.usage_count !== 1 ? 's' : ''} used

+

{service.service_name}

+

{service.usage_count} time{service.usage_count !== 1 ? 's' : ''} used

- - {formatCurrency(service.total_revenue, 'VND')} + + {formatCurrency(service.total_revenue)}
))} @@ -331,6 +398,67 @@ const DashboardPage: React.FC = () => { /> )}
+ + {/* Recent Payments */} +
+
+

Recent Payments

+ +
+ {loadingPayments ? ( +
+ +
+ ) : recentPayments && recentPayments.length > 0 ? ( +
+ {recentPayments.map((payment) => ( +
navigate(`/admin/payments`)} + > +
+
+ +
+
+

+ {formatCurrency(payment.amount)} +

+
+

+ {getPaymentMethodLabel(payment.payment_method)} +

+ {payment.payment_date && ( + + • {formatDate(payment.payment_date, 'short')} + + )} +
+
+
+ + {payment.payment_status.charAt(0).toUpperCase() + payment.payment_status.slice(1)} + +
+ ))} +
+ ) : ( + navigate('/admin/payments') + }} + /> + )} +
); diff --git a/Frontend/src/pages/admin/InvoiceManagementPage.tsx b/Frontend/src/pages/admin/InvoiceManagementPage.tsx new file mode 100644 index 00000000..3d897a7a --- /dev/null +++ b/Frontend/src/pages/admin/InvoiceManagementPage.tsx @@ -0,0 +1,306 @@ +import React, { useEffect, useState } from 'react'; +import { Search, Plus, Edit, Trash2, Eye, Download, FileText, Filter } from 'lucide-react'; +import { invoiceService, Invoice } from '../../services/api'; +import { toast } from 'react-toastify'; +import Loading from '../../components/common/Loading'; +import Pagination from '../../components/common/Pagination'; +import { useFormatCurrency } from '../../hooks/useFormatCurrency'; +import { useNavigate } from 'react-router-dom'; +import { formatDate } from '../../utils/format'; + +const InvoiceManagementPage: React.FC = () => { + const { formatCurrency } = useFormatCurrency(); + const navigate = useNavigate(); + const [invoices, setInvoices] = useState([]); + const [loading, setLoading] = useState(true); + const [filters, setFilters] = useState({ + search: '', + status: '', + }); + const [currentPage, setCurrentPage] = useState(1); + const [totalPages, setTotalPages] = useState(1); + const [totalItems, setTotalItems] = useState(0); + const itemsPerPage = 10; + + useEffect(() => { + setCurrentPage(1); + }, [filters]); + + useEffect(() => { + fetchInvoices(); + }, [filters, currentPage]); + + const fetchInvoices = async () => { + try { + setLoading(true); + const response = await invoiceService.getInvoices({ + status: filters.status || undefined, + page: currentPage, + limit: itemsPerPage, + }); + + if (response.status === 'success' && response.data) { + let invoiceList = response.data.invoices || []; + + // Apply search filter + if (filters.search) { + invoiceList = invoiceList.filter((inv) => + inv.invoice_number.toLowerCase().includes(filters.search.toLowerCase()) || + inv.customer_name.toLowerCase().includes(filters.search.toLowerCase()) || + inv.customer_email.toLowerCase().includes(filters.search.toLowerCase()) + ); + } + + setInvoices(invoiceList); + setTotalPages(response.data.total_pages || 1); + setTotalItems(response.data.total || 0); + } + } catch (error: any) { + toast.error(error.response?.data?.message || 'Unable to load invoices'); + } finally { + setLoading(false); + } + }; + + const getStatusBadge = (status: string) => { + const badges: Record = { + draft: { + bg: 'bg-gradient-to-r from-slate-50 to-gray-50', + text: 'text-slate-700', + label: 'Draft', + border: 'border-slate-200' + }, + sent: { + bg: 'bg-gradient-to-r from-blue-50 to-indigo-50', + text: 'text-blue-800', + label: 'Sent', + border: 'border-blue-200' + }, + paid: { + bg: 'bg-gradient-to-r from-emerald-50 to-green-50', + text: 'text-emerald-800', + label: 'Paid', + border: 'border-emerald-200' + }, + overdue: { + bg: 'bg-gradient-to-r from-rose-50 to-red-50', + text: 'text-rose-800', + label: 'Overdue', + border: 'border-rose-200' + }, + cancelled: { + bg: 'bg-gradient-to-r from-slate-50 to-gray-50', + text: 'text-slate-700', + label: 'Cancelled', + border: 'border-slate-200' + }, + }; + return badges[status] || badges.draft; + }; + + const handleDelete = async (id: number) => { + if (!window.confirm('Are you sure you want to delete this invoice?')) { + return; + } + + try { + await invoiceService.deleteInvoice(id); + toast.success('Invoice deleted successfully'); + fetchInvoices(); + } catch (error: any) { + toast.error(error.response?.data?.message || 'Unable to delete invoice'); + } + }; + + if (loading && invoices.length === 0) { + return ; + } + + return ( +
+ {/* Luxury Header */} +
+
+
+
+

+ Invoice Management +

+
+

Manage and track all invoices

+
+ +
+ + {/* Luxury Filters */} +
+
+
+ + setFilters({ ...filters, search: e.target.value })} + className="w-full pl-12 pr-4 py-3.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 placeholder-slate-400 font-medium shadow-sm hover:shadow-md" + /> +
+ +
+ + + {totalItems} invoice{totalItems !== 1 ? 's' : ''} + +
+
+
+ + {/* Luxury Invoices Table */} +
+
+ + + + + + + + + + + + + + {invoices.length > 0 ? ( + invoices.map((invoice, index) => { + const statusBadge = getStatusBadge(invoice.status); + return ( + + + + + + + + + + ); + }) + ) : ( + + + + )} + +
+ Invoice # + + Customer + + Booking + + Amount + + Status + + Due Date + + Actions +
+
+ + + {invoice.invoice_number} + +
+
+
{invoice.customer_name}
+
{invoice.customer_email}
+
+ #{invoice.booking_id} + +
+ {formatCurrency(invoice.total_amount)} +
+ {invoice.balance_due > 0 && ( +
+ Due: {formatCurrency(invoice.balance_due)} +
+ )} +
+ + {statusBadge.label} + + + {formatDate(invoice.due_date, 'short')} + +
+ + + +
+
+
+ +

No invoices found

+

Create your first invoice to get started

+
+
+
+ + {/* Pagination */} + {totalPages > 1 && ( +
+ +
+ )} +
+
+ ); +}; + +export default InvoiceManagementPage; + diff --git a/Frontend/src/pages/admin/PaymentManagementPage.tsx b/Frontend/src/pages/admin/PaymentManagementPage.tsx index 96a342ba..b4f7cea7 100644 --- a/Frontend/src/pages/admin/PaymentManagementPage.tsx +++ b/Frontend/src/pages/admin/PaymentManagementPage.tsx @@ -4,8 +4,10 @@ import { paymentService, Payment } from '../../services/api'; import { toast } from 'react-toastify'; import Loading from '../../components/common/Loading'; import Pagination from '../../components/common/Pagination'; +import { useFormatCurrency } from '../../hooks/useFormatCurrency'; const PaymentManagementPage: React.FC = () => { + const { formatCurrency } = useFormatCurrency(); const [payments, setPayments] = useState([]); const [loading, setLoading] = useState(true); const [filters, setFilters] = useState({ @@ -47,22 +49,37 @@ const PaymentManagementPage: React.FC = () => { } }; - const formatCurrency = (amount: number) => { - return new Intl.NumberFormat('de-DE', { - style: 'currency', - currency: 'EUR', - }).format(amount); - }; const getMethodBadge = (method: string) => { - const badges: Record = { - cash: { bg: 'bg-green-100', text: 'text-green-800', label: 'Cash' }, - bank_transfer: { bg: 'bg-blue-100', text: 'text-blue-800', label: 'Bank transfer' }, - credit_card: { bg: 'bg-purple-100', text: 'text-purple-800', label: 'Credit card' }, + const badges: Record = { + cash: { + bg: 'bg-gradient-to-r from-emerald-50 to-green-50', + text: 'text-emerald-800', + label: 'Cash', + border: 'border-emerald-200' + }, + bank_transfer: { + bg: 'bg-gradient-to-r from-blue-50 to-indigo-50', + text: 'text-blue-800', + label: 'Bank transfer', + border: 'border-blue-200' + }, + stripe: { + bg: 'bg-gradient-to-r from-indigo-50 to-purple-50', + text: 'text-indigo-800', + label: 'Stripe', + border: 'border-indigo-200' + }, + credit_card: { + bg: 'bg-gradient-to-r from-purple-50 to-pink-50', + text: 'text-purple-800', + label: 'Credit card', + border: 'border-purple-200' + }, }; const badge = badges[method] || badges.cash; return ( - + {badge.label} ); @@ -73,104 +90,106 @@ const PaymentManagementPage: React.FC = () => { } return ( -
-
-

Payment Management

-

Track payment transactions

+
+ {/* Luxury Header */} +
+
+
+

+ Payment Management +

+
+

Track payment transactions

-
-
-
- + {/* Luxury Filter Card */} +
+
+
+ setFilters({ ...filters, search: e.target.value })} - className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" + className="w-full pl-12 pr-4 py-3.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 placeholder-slate-400 font-medium shadow-sm hover:shadow-md" />
setFilters({ ...filters, from: e.target.value })} - className="px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" + className="px-4 py-3.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 font-medium shadow-sm hover:shadow-md" placeholder="From date" /> setFilters({ ...filters, to: e.target.value })} - className="px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" + className="px-4 py-3.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 font-medium shadow-sm hover:shadow-md" placeholder="To date" />
-
- - - - - - - - - - - - - {payments.map((payment) => ( - - - - - - - + {/* Luxury Table Card */} +
+
+
- Transaction ID - - Booking Number - - Customer - - Method - - Amount - - Payment Date -
-
{payment.transaction_id || `PAY-${payment.id}`}
-
-
{payment.booking?.booking_number}
-
-
{payment.booking?.user?.name}
-
- {getMethodBadge(payment.payment_method)} - -
- {formatCurrency(payment.amount)} -
-
-
- {new Date(payment.payment_date || payment.createdAt).toLocaleDateString('en-US')} -
-
+ + + + + + + + - ))} - -
Transaction IDBooking NumberCustomerMethodAmountPayment Date
+ + + {payments.map((payment, index) => ( + + +
{payment.transaction_id || `PAY-${payment.id}`}
+ + +
{payment.booking?.booking_number}
+ + +
{payment.booking?.user?.name}
+ + + {getMethodBadge(payment.payment_method)} + + +
+ {formatCurrency(payment.amount)} +
+ + +
+ {new Date(payment.payment_date || payment.createdAt).toLocaleDateString('en-US')} +
+ + + ))} + + +
{ />
- {/* Summary Card */} -
-

Total Revenue

-

- {formatCurrency(payments.reduce((sum, p) => sum + p.amount, 0))} -

-

Total {payments.length} transactions

+ {/* Luxury Summary Card */} +
+
+
+

Total Revenue

+

+ {formatCurrency(payments.reduce((sum, p) => sum + p.amount, 0))} +

+

Total {payments.length} transaction{payments.length !== 1 ? 's' : ''}

+
+
+
{payments.length}
+
+
); diff --git a/Frontend/src/pages/admin/PromotionManagementPage.tsx b/Frontend/src/pages/admin/PromotionManagementPage.tsx index 15278fb0..eb665886 100644 --- a/Frontend/src/pages/admin/PromotionManagementPage.tsx +++ b/Frontend/src/pages/admin/PromotionManagementPage.tsx @@ -4,8 +4,12 @@ import { promotionService, Promotion } from '../../services/api'; import { toast } from 'react-toastify'; import Loading from '../../components/common/Loading'; import Pagination from '../../components/common/Pagination'; +import { useFormatCurrency } from '../../hooks/useFormatCurrency'; +import { useCurrency } from '../../contexts/CurrencyContext'; const PromotionManagementPage: React.FC = () => { + const { currency } = useCurrency(); + const { formatCurrency } = useFormatCurrency(); const [promotions, setPromotions] = useState([]); const [loading, setLoading] = useState(true); const [showModal, setShowModal] = useState(false); @@ -127,18 +131,31 @@ const PromotionManagementPage: React.FC = () => { }); }; - const formatCurrency = (amount: number) => { - return new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(amount); - }; const getStatusBadge = (status: string) => { - const badges: Record = { - active: { bg: 'bg-green-100', text: 'text-green-800', label: 'Active' }, - inactive: { bg: 'bg-gray-100', text: 'text-gray-800', label: 'Inactive' }, + const badges: Record = { + active: { + bg: 'bg-gradient-to-r from-emerald-50 to-green-50', + text: 'text-emerald-800', + label: 'Active', + border: 'border-emerald-200' + }, + inactive: { + bg: 'bg-gradient-to-r from-slate-50 to-gray-50', + text: 'text-slate-700', + label: 'Inactive', + border: 'border-slate-200' + }, + expired: { + bg: 'bg-gradient-to-r from-rose-50 to-red-50', + text: 'text-rose-800', + label: 'Expired', + border: 'border-rose-200' + }, }; const badge = badges[status] || badges.active; return ( - + {badge.label} ); @@ -149,43 +166,47 @@ const PromotionManagementPage: React.FC = () => { } return ( -
-
+
+ {/* Luxury Header */} +
-

Promotion Management

-

Manage discount codes and promotion programs

+
+
+

+ Promotion Management +

+
+

Manage discount codes and promotion programs

- {/* Filters */} -
-
-
-
- - setFilters({ ...filters, search: e.target.value })} - className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" - /> -
+ {/* Luxury Filters */} +
+
+
+ + setFilters({ ...filters, search: e.target.value })} + className="w-full pl-12 pr-4 py-3.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 placeholder-slate-400 font-medium shadow-sm hover:shadow-md" + />
setFilters({ ...filters, status: e.target.value })} - className="px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" + className="px-4 py-3.5 bg-white border-2 border-slate-200 rounded-xl focus:border-amber-400 focus:ring-4 focus:ring-amber-100 transition-all duration-200 text-slate-700 font-medium shadow-sm hover:shadow-md cursor-pointer" > @@ -203,281 +224,294 @@ const PromotionManagementPage: React.FC = () => {
- {/* Table */} -
- - - - - - - - - - - - - - {promotions.map((promotion) => ( - - - - - - - - + {/* Luxury Table */} +
+
+
- Code - - Program Name - - Value - - Period - - Used - - Status - - Actions -
-
- - {promotion.code} -
-
-
{promotion.name}
-
{promotion.description}
-
-
- {promotion.discount_type === 'percentage' - ? `${promotion.discount_value}%` - : formatCurrency(promotion.discount_value)} -
-
-
- {promotion.start_date ? new Date(promotion.start_date).toLocaleDateString('en-US') : 'N/A'} - {' → '} - {promotion.end_date ? new Date(promotion.end_date).toLocaleDateString('en-US') : 'N/A'} -
-
-
- {promotion.used_count || 0} / {promotion.usage_limit || '∞'} -
-
- {getStatusBadge(promotion.status)} - - - -
+ + + + + + + + + - ))} - -
CodeProgram NameValuePeriodUsedStatusActions
+ + + {promotions.map((promotion, index) => ( + + +
+
+ +
+ {promotion.code} +
+ + +
{promotion.name}
+
{promotion.description}
+ + +
+ {promotion.discount_type === 'percentage' + ? `${promotion.discount_value}%` + : formatCurrency(promotion.discount_value)} +
+ + +
+ {promotion.start_date ? new Date(promotion.start_date).toLocaleDateString('en-US', { month: 'short', day: 'numeric' }) : 'N/A'} + + {promotion.end_date ? new Date(promotion.end_date).toLocaleDateString('en-US', { month: 'short', day: 'numeric' }) : 'N/A'} +
+ + +
+ {promotion.used_count || 0} + / + {promotion.usage_limit || '∞'} +
+ + + {getStatusBadge(promotion.status)} + + +
+ + +
+ + + ))} + + +
+
- {/* Pagination */} - - - {/* Modal */} + {/* Luxury Modal */} {showModal && ( -
-
-
-

- {editingPromotion ? 'Update Promotion' : 'Add New Promotion'} -

- -
-
-
+
+
+ {/* Modal Header */} +
+
- - setFormData({ ...formData, code: e.target.value.toUpperCase() })} - className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" - placeholder="e.g: SUMMER2024" - required - /> +

+ {editingPromotion ? 'Update Promotion' : 'Add New Promotion'} +

+

+ {editingPromotion ? 'Modify promotion details' : 'Create a new promotion program'} +

-
- - setFormData({ ...formData, name: e.target.value })} - className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" - placeholder="e.g: Summer Sale" - required - /> -
-
- -
- -